re PR c++/53602 (Libre Office causes an internal compiler error)
[gcc.git] / gcc / ChangeLog
1 2012-06-08 Richard Henderson <rth@redhat.com>
2
3 PR c++/53602
4 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
5 note to a clobber insn when no other insn is available.
6
7 2012-06-08 Georg-Johann Lay <avr@gjlay.de>
8
9 * config/avr/avr.c (avr_case_values_threshold): Return 7.
10
11 2012-06-07 Andreas Schwab <schwab@linux-m68k.org>
12
13 * genhooks.c (main): Set progname.
14 (emit_documentation): Remove variable found_start, always bail out
15 when a place is missing.
16 * doc/tm.texi.in (C++ ABI): Add @hook
17 TARGET_CXX_DECL_MANGLING_CONTEXT.
18
19 2012-06-07 Jakub Jelinek <jakub@redhat.com>
20
21 PR middle-end/53580
22 * omp-low.c (scan_omp): Change first argument to
23 gimple_seq *, call walk_gimple_seq_mod instead of
24 walk_gimple_seq.
25 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
26 scan_omp_for, scan_omp_sections, scan_omp_single,
27 execute_lower_omp): Adjust callers.
28 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
29 returns false, replace stmt with GIMPLE_NOP.
30 (check_omp_nesting_restrictions): Instead of issuing warnings,
31 issue errors and return false if any errors were reported.
32
33 2012-06-06 Steven Bosscher <steven@gcc.gnu.org>
34
35 * doc/invoke.texi (fconserve-space): Remove documentation.
36
37 2012-06-06 Edmar Wienskoski <edmar@freescale.com>
38
39 * config/rs6000/rs6000-tables.opt: Regenerated.
40
41 2012-06-06 Richard Guenther <rguenther@suse.de>
42
43 PR tree-optimization/53081
44 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
45 (adjacent_dr_p): ... this and make it work for reads, too.
46 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
47 (struct partition_s): Change main_stmt to main_dr, add
48 secondary_dr member.
49 (build_size_arg_loc): Change to date data-reference and not
50 gimplify here.
51 (build_addr_arg_loc): New function split out from ...
52 (generate_memset_builtin): ... here. Use it and simplify.
53 (generate_memcpy_builtin): New function.
54 (generate_code_for_partition): Adjust.
55 (classify_partition): Streamline pattern detection. Detect
56 memcpy.
57 (ldist_gen): Adjust.
58 (tree_loop_distribution): Adjust seed statements for memcpy
59 recognition.
60
61 2012-06-06 Matt Turner <mattst88@gmail.com>
62
63 * config/arm/mmintrin.h (_mm_empty): New.
64 (_m_empty): New.
65
66 2012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
67
68 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
69 * common.opt (fsched-pressure-algorithm=): Remove.
70 * flag-types.h (sched_pressure_algorithm): Move to...
71 * sched-int.h (sched_pressure_algorithm): ...here.
72 * params.def (sched-pressure-algorithm): New param.
73 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
74 * common/config/s390/s390-common.c (s390_option_optimization_table):
75 Remove OPT_fsched_pressure_algorithm_ entry.
76 * config/s390/s390.c (s390_option_override): Set a default value for
77 PARAM_SCHED_PRESSURE_ALGORITHM.
78
79 2012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
80
81 PR target/53487
82 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
83 doing an unsigned compare, make sure the second argument is not a
84 negative constant.
85 (rs6000_emit_cmove): Don't allow floating point comparisons when
86 generating ISEL moves.
87
88 2012-06-05 Edmar Wienskoski <edmar@freescale.com>
89
90 * config/rs6000/e5500.md: New file.
91 * config/rs6000/e6500.md: New file.
92 * config/rs6000/rs6000.c (processor_costs): Add new costs for
93 e5500 and e6500.
94 (rs6000_option_override_internal): Altivec and Spe options not
95 allowed with e5500. Spe options not allowed with e6500. Increase
96 move inline limit for e5500 and e6500. Disable string instructions
97 for e5500 and e6500. Enable branch targets alignment for e5500 and
98 e6500. Initialize rs6000_cost for e5500 and e6500.
99 (rs6000_adjust_cost): Add extra scheduling cycles between compare
100 and brnach for e5500 and e6500.
101 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
102 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
103 e6500.
104 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
105 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
106 ppce6500.
107 Include e5500.md and e6500.md.
108 * config/rs6000/rs6000-opt.h (processor_type): Add
109 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
110 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
111 (powerpc*-*-*): Add new cores e5500, e6500.
112 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
113
114 2012-06-05 Richard Guenther <rguenther@suse.de>
115
116 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last
117 change.
118
119 2012-06-05 H.J. Lu <hongjiu.lu@intel.com>
120
121 PR target/53575
122 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
123 is used for x86_64-*-*.
124
125 2012-06-05 Richard Guenther <rguenther@suse.de>
126
127 PR tree-optimization/30442
128 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
129 vectorization stop analysis at the first stmt we cannot compute
130 a data-reference for instead of giving up completely.
131
132 2012-06-05 Richard Guenther <rguenther@suse.de>
133
134 * tree-loop-distribution.c (struct partition_s): Add has_writes
135 member.
136 (partition_alloc): Initialize it.
137 (partition_has_writes): New function.
138 (rdg_flag_uses): Adjust.
139 (rdg_flag_vertex): Likewise.
140 (rdg_flag_vertex_and_dependent): Likewise.
141 (rdg_flag_loop_exits): Likewise.
142 (build_rdg_partition_for_component): Likewise.
143 (rdg_build_partitions): Likewise.
144
145 2012-06-05 Richard Guenther <rguenther@suse.de>
146
147 PR tree-optimization/53081
148 * tree-loop-distribution.c (generate_memset_builtin): Handle all
149 kinds of byte-sized stores.
150 (classify_partition): Likewise.
151 (tree_loop_distribution): Adjust seed statements used for
152 !flag_tree_loop_distribution.
153
154 2012-06-05 Alan Modra <amodra@gmail.com>
155
156 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
157 (rs6000_emit_prologue): Ensure register used for inline saves
158 of vector regs is not the static chain register. Revise comment.
159
160 2012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
161
162 * doc/md.texi (Standard Pattern Names For Generation): Document
163 sincos pattern.
164
165 2012-06-04 H.J. Lu <hongjiu.lu@intel.com>
166
167 PR bootstrap/53555
168 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
169
170 2012-06-04 Jason Merrill <jason@redhat.com>
171
172 * dwarf2out.c (is_unit_die): New.
173 (copy_declaration_context, copy_ancestor_tree): Use it.
174 (copy_decls_walk): Likewise.
175
176 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
177
178 PR c++/53524
179 * doc/invoke.texi (Wenum-compare): Update documentation.
180
181 2012-06-04 Dodji Seketeli <dodji@redhat.com>
182
183 PR preprocessor/53463
184 * parser.c (cp_parser_assignment_expression): Use the location
185 for the '=' as the default location for the expression.
186
187 2012-06-04 Edmar Wienskoski <edmar@freescale.com>
188
189 PR target/53559
190 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
191 operands.
192 (altivec_stvlxl): Ditto.
193 (altivec_stvrx): Ditto.
194 (altivec_stvrxl): Ditto.
195
196 2012-06-04 Vladimir Makarov <vmakarov@redhat.com>
197
198 * ira-int.h (struct target_ira_int): Add member
199 x_ira_uniform_class_p.
200 (ira_uniform_class_p): New macro.
201
202 * ira.c (setup_uniform_class_p): New function.
203 (setup_allocno_and_important_classes): Call the function.
204 (print_unform_and_important_classes): New function.
205 (print_classes): Rename to print_translated_classes.
206 (ira_debug_allocno_classes): Add call of
207 print_unform_and_important_classes.
208
209 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
210 classes instead of pressure classes.
211
212 2012-06-04 Aldy Hernandez <aldyh@redhat.com>
213
214 PR middle-end/47530
215 * trans-mem.c (expand_block_edges): Do not skip the first
216 statement when resetting the BB.
217
218 2012-06-04 Richard Guenther <rguenther@suse.de>
219
220 * tree-data-ref.c (stores_from_loop): Remove.
221 (stmt_with_adjacent_zero_store_dr_p): Likewise.
222 (stores_zero_from_loop): Likewise.
223 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
224 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
225 (adjacent_store_dr_p): New function.
226 * tree-loop-distribution.c (generate_memset_builtin): Pass
227 the RDG, use the already available data-reference.
228 (generate_code_for_partition): Pass down RDG.
229 (classify_partition): Inline parts of the former
230 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
231 (ldist_gen): Remember if there was any detected builtin and
232 do less work if not and flag_tree_loop_distribution is not set.
233 (tree_loop_distribution): Inline and fuse stores_from_loop
234 and stores_zero_from_loop here.
235
236 2012-06-04 Richard Guenther <rguenther@suse.de>
237
238 PR middle-end/53471
239 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
240 create new assembler names.
241
242 2012-06-04 Richard Guenther <rguenther@suse.de>
243
244 * tree-data-ref.c (struct rdg_vertex_info): Remove.
245 (rdg_vertex_for_stmt): Simplify using gimple_uid.
246 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
247 hashtable. Record stmt data-references.
248 (hash_stmt_vertex_info): Remove.
249 (eq_stmt_vertex_info): Likewise.
250 (hash_stmt_vertex_del): Likewise.
251 (build_empty_rdg): Simplify.
252 (build_rdg): Adjust.
253 (free_rdg): Likewise.
254 (ref_base_address): Remove.
255 (have_similar_memory_accesses): Likewise.
256 * tree-data-ref.h (create_rdg_vertices): Remove.
257 (struct rdg_vertex): Add datarefs member.
258 (RDGV_DATAREFS): New define.
259 (RDG_DATAREFS): Likewise.
260 (have_similar_memory_accesses): Remove.
261 (rdg_has_similar_memory_accesses): Likewise.
262 * tree-loop-distribution.c (ref_base_address): Re-implement here.
263 (similar_memory_accesses): Re-implement using existing data-references.
264 (tree_loop_distribution): Initialize stmt uids for the stmt to
265 RDG index mapping.
266 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
267 access stmt vinfo for stmts in loop.
268
269 2012-06-04 Andreas Schwab <schwab@linux-m68k.org>
270
271 PR target/53461
272 * config/m68k/m68k.md ("tablejump"): Fix check for
273 CASE_VECTOR_PC_RELATIVE.
274
275 2012-06-04 Steven Bosscher <steven@gcc.gnu.org>
276
277 * output.h (merge_weak, assemble_alias,
278 initializer_constant_valid_p,
279 initializer_constant_valid_for_bitfield_p): Move protos from here...
280 * tree.h: ... to here.
281 * cgraphclones.c: Do not include output.h.
282 * gimplify.c: Likewise.
283 * reload.c: Likewise.
284 * recog.c: Likewise.
285 * tree-ssa-loop-ivopts.c: Likewise.
286 * tree-switch-conversion.c: Likewise.
287 * c-parser.c: Likewise.
288 * c-typeck.c: Likewise.
289 * Makefile.in: Fix dependencies.
290
291 2012-06-04 Georg-Johann Lay <avr@gjlay.de>
292
293 PR target/46261
294 * config/avr/avr-stdint.h: New file.
295 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
296 newlib-stdint.h
297
298 2012-06-04 Jakub Jelinek <jakub@redhat.com>
299
300 PR tree-optimization/53550
301 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
302 is POINTER_TYPE_P, use sizetype as step type instead of type.
303
304 2012-06-04 Richard Guenther <rguenther@suse.de>
305
306 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
307 (ref_base_address_1): Likewise.
308 (remove_similar_memory_refs): Likewise.
309 * tree-data-ref.h (remove_similar_memory_refs): Remove.
310 * tree-loop-distribution.c (classify_partition): Do not classify
311 as builtin if -ftree-loop-distribute-patterns is not enabled.
312 (fuse_partitions_with_similar_memory_accesses): Inline ...
313 (ldist_gen): ... here. Fuse all non-builtin partitions if
314 -ftree-loop-distribution is not enabled. Properly return
315 the number of created partitions. Do not update SSA form here
316 but ...
317 (tree_loop_distribution): ... once here for the whole function.
318 Only walk innermost loops, constrain loops we consider here
319 further. Do not call remove_similar_memory_refs.
320 (distribute_loop): Do not check number of loop nodes here.
321
322 2012-06-04 Steven Bosscher <steven@gcc.gnu.org>
323
324 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
325
326 2012-06-03 Martin Jambor <mjambor@suse.cz>
327
328 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
329 (ipa_get_jf_known_type_base_type): Likewise.
330 (ipa_get_jf_known_type_component_type): Likewise.
331 (ipa_get_jf_constant): Likewise.
332 (ipa_get_jf_pass_through_formal_id): Likewise.
333 (ipa_get_jf_pass_through_operation): Likewise.
334 (ipa_get_jf_ancestor_offset): Likewise.
335 (ipa_get_jf_ancestor_type): Likewise.
336 (ipa_get_jf_ancestor_formal_id): Likewise.
337 (ipa_get_jf_member_ptr_pfn): Likewise.
338 * ipa-prop.c (ipa_set_jf_known_type): New function.
339 (ipa_set_jf_constant): Likewise.
340 (ipa_set_jf_simple_pass_through): Likewise.
341 (ipa_set_jf_arith_pass_through): Likewise.
342 (ipa_set_ancestor_jf): Likewise.
343 (fill_member_ptr_cst_jump_function): Moved up and renamed to
344 ipa_set_jf_member_ptr_cst.
345 (detect_type_change_1): Use the new jump function creation functions.
346 (compute_complex_assign_jump_func): Likewise.
347 (compute_complex_ancestor_jump_func): Likewise.
348 (compute_known_type_jump_func): Likewise.
349 (compute_scalar_jump_functions): Likewise.
350 (compute_pass_through_member_ptrs): Likewise.
351 (determine_cst_member_ptr): Likewise.
352 (combine_known_type_and_ancestor_jfs): Likewise.
353 (try_make_edge_direct_simple_call): Likewise.
354 (try_make_edge_direct_virtual_call): Likewise.
355 (update_indirect_edges_after_inlining): Likewise.
356 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
357 access functions. Incorporat NOP_EXPR and BINFO handling from its
358 callers.
359 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
360 which was in its callers.
361 (ipa_value_from_jfunc): Use jump function access functions. Some
362 functionality moved to functions above.
363 (propagate_vals_accross_ancestor): Likewise.
364 (propagate_vals_accross_pass_through): Use jump function access
365 functions.
366 (propagate_accross_jump_function): Likewise.
367 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
368 access functions.
369 (inline_merge_summary): Likewise.
370
371 2012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
372
373 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
374 * config/pa/pa.c (pa_attr_length_millicode_call): Use
375 MAX_PCREL17F_OFFSET instead of fixed offset.
376 (pa_attr_length_call): Likewise.
377 (pa_attr_length_indirect_call): Likewise.
378
379 2012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
380
381 PR target/53512
382 * sh.opt (mfsca, mfsrra): New options.
383 * sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA condition.
384 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
385 (sinssf2, cossf2): Fold expanders to ...
386 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
387 TARGET_FSCA condition.
388 * sh.c (sh_option_override): Handle TARGET_FSRRA and TARGET_FSCA.
389 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
390 -mno-fsca, -mfsrra, -mno-fsrra.
391
392 2012-06-03 Matt Turner <mattst88@gmail.com>
393
394 * config/mips/4600.md (r4700_imul_si): New.
395 (r4700_imul_di): New.
396 (r4700_fmul_single): New.
397 (r4700_fmul_double): New.
398 * config/mips/mips-cpus.def: Add r4700.
399 * config/mips/mips.c: Likewise.
400 * config/mips/mips.md: Likewise.
401 * config/mips/mips-tables.opt: Regenerate.
402
403 2012-06-02 Steven Bosscher <steven@gcc.gnu.org>
404
405 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
406 new function sparc_initial_elimination_offset.
407 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
408 function.
409 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
410 Prototype it.
411
412 2012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
413
414 * expmed.c (expand_mult, choose_multiplier): Change "2 *
415 HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
416 * expr.c (convert_modes): Likewise.
417 * explow.c (plus_constant): Likewise.
418 * fixed-value.c (fixed_saturate1, fixed_saturate2)
419 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
420 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
421 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
422 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
423 (do_fixed_shift, fixed_convert, fixed_convert)
424 (fixed_convert_from_int, fixed_convert_from_int)
425 (fixed_convert_from_real): Likewise.
426 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
427 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
428 * varasm.c (output_constructor_bitfield): Likewise.
429 * tree-vrp.c (register_edge_assert_for_2): Likewise.
430 * double-int.c (rshift_double, lshift_double): Likewise.
431 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int): Likewise.
432 * simplify-rtx.c (mode_signbit_p)
433 (simplify_const_unary_operation, simplify_binary_operation_1)
434 (simplify_immed_subreg): Likewise.
435 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
436 * tree-vect-generic.c (build_replicated_const): Likewise.
437 * dbxout.c (stabstr_O): Likewise.
438 * emit-rtl.c (immed_double_int_const, immed_double_const)
439 (gen_lowpart_common, init_emit_once): Likewise.
440 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
441 (widest_int_cst_value, upper_bound_in_type): Likewise.
442 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
443 (fixup_unsigned_type): Likewise.
444 * real.c (real_to_integer2, real_from_integer): Likewise.
445 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
446 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
447
448 2012-06-01 Eric Botcazou <ebotcazou@adacore.com>
449
450 PR middle-end/53501
451 * fold-const.c (fold_binary_loc): Refine previous change.
452
453 2012-06-01 Olivier Hainque <hainque@adacore.com>
454
455 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
456 the "do {" part of the do-while(0) loop.
457
458 2012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
459
460 * config/i386/i386.c (x86_sched_reorder): New function.
461 Added new function x86_sched_reorder.
462
463 2012-06-01 Richard Guenther <rguenther@suse.de>
464
465 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
466 Handle PHIs.
467 (classify_partition): Likewise.
468
469 2012-06-01 Richard Guenther <rguenther@suse.de>
470
471 * tree-loop-distribution.c (enum partition_kind): New enum.
472 (struct partition_s): Add kind and main_stmt members.
473 (partition_alloc): Initialize kind to PKIND_NORMAL.
474 (partition_builtin_p): New function.
475 (copy_loop_before): Remove failure path and assert instead.
476 (generate_loops_for_partition): Likewise.
477 (generate_memset_zero): Fold into ...
478 (generate_memset_builtin): ... this.
479 (classify_partition): New function with code from
480 can_generate_builtin and generate_builtin.
481 (generate_builtin): Remove.
482 (can_generate_builtin): Likewise.
483 (fuse_partitions_with_similar_memory_accesses): Call
484 partition_builtin_p instead of can_generate_builtin.
485 (rdg_build_partitions): Do not call
486 fuse_partitions_with_similar_memory_accesses here...
487 (ldist_gen): ... but here after classifying all partitions.
488 Remove failure path of generate_code_for_partition.
489 (generate_code_for_partition): Generate code according
490 to partition classification.
491
492 2012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
493 Jonathan Wakely <jwakely.gcc@gmail.com>
494
495 PR c++/50134
496 * doc/invoke.texi (Warning Options): Explain purpose and differences
497 between -Wmissing-prototypes and -Wmissing-declarations.
498
499 2012-06-01 Christian Bruel <christian.bruel@st.com>
500
501 * gcc.c (save_switch): Add user_p parameter.
502 (read_specs): Likewise.
503 (set_specs): Likewise.
504 (validate_switches): Likewise.
505 (validate_switches_from_spec): Likewise.
506 (validate_all_switches): Pass on user_p parameter.
507 (struct spec_list): Add user_p field.
508 (struct switchstr): Add known field.
509 (save_switch): Add known parameter.
510 (INIT_STATIC_SPEC): Initialize user_p;
511 (driver_unknown_option_callbac): call save_switch if
512 OPT_SPECIAL_unknown.
513 (driver_handle_option): Propagate OPT_specs.
514 (do_spec_1): Set validated only if known.
515 (check_live_switch): Likewise.
516 (validate_switches): Set validated if known or user_spec.
517
518 2012-06-01 Hans-Peter Nilsson <hp@axis.com>
519
520 Add CRIS atomic patterns for 1, 2, and 4 bytes.
521 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
522 * config/cris/cris-protos.h: Declare it.
523 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
524 (TARGET_DEFAULT): Add alignment by 32.
525 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
526 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
527 TARGET_CPU_DEFAULT == 32.
528 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
529 * config/cris/cris.md: Include sync.md. Avoid allocating specific
530 numbers by replacing the define_constants for all UNSPECs with the
531 equivalent define_c_enum construct.
532 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
533 * config/cris/sync.md: New file.
534
535 2012-05-31 Matt Turner <mattst88@gmail.com>
536
537 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
538 (r4600_imul_di): New.
539 (r4600_idiv_si): Rename from r4600_idiv.
540 (r4600_idiv_di): New.
541
542 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
543
544 * output.h (__gcc_host_wide_int__): Move to hwint.h.
545 (decl_default_tls_model): Move to tree.h
546 (dump_file): Move to system.h.
547 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
548 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
549 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
550 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
551 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
552 dbxout_stab_value_internal_label,
553 dbxout_stab_value_internal_label_diff): Move from here ...
554 * dbxout.h: ... to here.
555 * system.h (dump_file): Moved here from output.h.
556 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
557 * tree.h (decl_default_tls_model): Moved here from output.h.
558 * varasm.c (default_stabs_asm_out_destructor,
559 default_stabs_asm_out_constructor): Move from here ...
560 * dbxout.c: ... to here.
561
562 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
563
564 * collect2.h (dump_file): Rename to dump_ld_file.
565 * collect2.c: Likewise.
566 * tlink.c: Likewise.
567
568 * alias.c: Do not include output.h.
569 * auto-inc-dec.c: Likewise.
570 * bt-load.c: Likewise.
571 * caller-save.c: Likewise.
572 * cfg.c: Likewise.
573 * cfgbuild.c: Likewise.
574 * cfgcleanup.c: Likewise.
575 * cfglayout.c: Likewise.
576 * cfgloop.c: Likewise.
577 * cfgloopanal.c: Likewise.
578 * cfgloopmanip.c: Likewise.
579 * cfgrtl.c: Likewise.
580 * cgraph.c: Likewise.
581 * cgraphclones.c: Likewise.
582 * combine-stack-adj.c: Likewise.
583 * combine.c: Likewise.
584 * cprop.c: Likewise.
585 * cse.c: Likewise.
586 * cselib.c: Likewise.
587 * dbgcnt.c: Likewise.
588 * df-problems.c: Likewise.
589 * df-scan.c: Likewise.
590 * dojump.c: Likewise.
591 * fwprop.c: Likewise.
592 * gcse.c: Likewise.
593 * graph.c: Likewise.
594 * haifa-sched.c: Likewise.
595 * hw-doloop.c: Likewise.
596 * ipa-inline-transform.c: Likewise.
597 * ipa-pure-const.c: Likewise.
598 * ipa-reference.c: Likewise.
599 * ipa-utils.c: Likewise.
600 * ira-build.c: Likewise.
601 * ira-emit.c: Likewise.
602 * lcm.c: Likewise.
603 * loop-doloop.c: Likewise.
604 * loop-invariant.c: Likewise.
605 * loop-iv.c: Likewise.
606 * loop-unroll.c: Likewise.
607 * loop-unswitch.c: Likewise.
608 * lto-cgraph.c: Likewise.
609 * lto-section-in.c: Likewise.
610 * lto-streamer-in.c: Likewise.
611 * mcf.c: Likewise.
612 * mode-switching.c: Likewise.
613 * postreload-gcse.c: Likewise.
614 * postreload.c: Likewise.
615 * predict.c: Likewise.
616 * profile.c: Likewise.
617 * ree.c: Likewise.
618 * reg-stack.c: Likewise.
619 * regcprop.c: Likewise.
620 * regmove.c: Likewise.
621 * regstat.c: Likewise.
622 * reload1.c: Likewise.
623 * sched-ebb.c: Likewise.
624 * sel-sched-dump.c: Likewise.
625 * simplify-rtx.c: Likewise.
626 * stor-layout.c: Likewise.
627 * store-motion.c: Likewise.
628 * tracer.c: Likewise.
629 * tree-affine.c: Likewise.
630 * tree-cfg.c: Likewise.
631 * tree-cfgcleanup.c: Likewise.
632 * tree-dfa.c: Likewise.
633 * tree-into-ssa.c: Likewise.
634 * tree-nomudflap.c: Likewise.
635 * tree-optimize.c: Likewise.
636 * tree-pretty-print.c: Likewise.
637 * tree-profile.c: Likewise.
638 * tree-ssa-address.c: Likewise.
639 * tree-ssa-ccp.c: Likewise.
640 * tree-ssa-copy.c: Likewise.
641 * tree-ssa-dom.c: Likewise.
642 * tree-ssa-loop-ch.c: Likewise.
643 * tree-ssa-loop-im.c: Likewise.
644 * tree-ssa-loop-manip.c: Likewise.
645 * tree-ssa-loop-niter.c: Likewise.
646 * tree-ssa-loop-prefetch.c: Likewise.
647 * tree-ssa-loop-unswitch.c: Likewise.
648 * tree-ssa-loop.c: Likewise.
649 * tree-ssa-propagate.c: Likewise.
650 * tree-ssa-structalias.c: Likewise.
651 * tree-ssa-tail-merge.c: Likewise.
652 * tree-ssa-threadedge.c: Likewise.
653 * tree-ssa-threadupdate.c: Likewise.
654 * tree-ssa-uncprop.c: Likewise.
655 * tree-ssa-uninit.c: Likewise.
656 * tree-ssa.c: Likewise.
657 * value-prof.c: Likewise.
658 * var-tracking.c: Likewise.
659 * web.c: Likewise.
660
661 * config/m32r/m32r.c: Include dbxout.h.
662 * config/pa/pa.c: Likewise.
663 * config/rs6000/rs6000.c: Likewise.
664
665 * Makefile.in: Fix dependencies.
666 * config/rs6000/t-rs5000: Likewise.
667
668 2012-05-31 Aldy Hernandez <aldyh@redhat.com>
669
670 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
671 * gimple.h (block_in_transaction): Check for flag_tm.
672
673 2012-05-31 Aldy Hernandez <aldyh@redhat.com>
674
675 PR tree-optimization/52558
676 * cfg.c (alloc_aux_for_edge): Fix comment.
677 (alloc_aux_for_edge): Remove static.
678 * basic-block.h (alloc_aux_for_edge): Protoize.
679 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
680 (execute_sm_if_changed_flag): New.
681 (execute_sm_if_changed_flag_set): New.
682 (execute_sm): Do not generate data races unless requested.
683 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
684 (tree_ssa_lim_finalize): Call free_aux_for_edges.
685 * gimple.h (block_in_transaction): New.
686 (gimple_in_transaction): Use block_in_transaction.
687
688 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
689
690 PR target/51345
691 * config/avr/avr.opt (-msp8): Document it.
692 * doc/invoke.texi (AVR Options): Ditto. And document related
693 built-in macros.
694
695 2012-05-31 Diego Novillo <dnovillo@google.com>
696
697 * configure.ac (CXX_FOR_BUILD): Define and substitute.
698 (BUILD_CXXFLAGS): Define and substitute.
699 * Makefile.in (BUILD_CXXFLAGS): Define.
700 (CXX_FOR_BUILD): Define.
701 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
702 (LINKER_FOR_BUILD): Likewise.
703 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
704 (BUILD_LINKERFLAGS): Likewise.
705 * configure: Regenerate.
706
707 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
708
709 * Makefile.in: Fix many dependencies.
710 * tree-profile.c: Don't include regs.h.
711 * tree-vectorizer.c: Don't include cfglayout.h.
712 * tree-vect-stmts.c: Likewise.
713 * tree-vect-slp.c: Likewise.
714 * tree-vect-loop.c: Likewise.
715 * reg-stack.c: Likewise.
716 * tree-ssa-loop-manip.c: Likewise.
717 * toplev.c: Likewise.
718 * varasm.c: Don't include cfglayout.h, basic-block.h,
719 and tree-iterator.h.
720 * tree-cfgcleanup.c: Don't include cfglayout.h.
721 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
722 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
723 * cgraphclones.c: Don't include plugin.h.
724
725 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
726
727 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
728 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
729 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
730
731 2012-05-31 Richard Guenther <rguenther@suse.de>
732
733 * tree-loop-distribution.c (struct partition_s): New struct,
734 typedef and vector type.
735 (partition_alloc, partition_free): New functions.
736 (generate_loops_for_partition, generate_builtin,
737 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
738 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
739 build_rdg_partition_for_component, can_generate_builtin,
740 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
741 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
742 number_of_rw_in_partition, partition_contains_all_rw,
743 ldist_gen): Use partition_t instead of bitmap.
744
745 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
746
747 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
748 * doc/avr-mmcu.texi: Regenerate.
749
750 2012-05-31 Richard Guenther <rguenther@suse.de>
751
752 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
753 Use FOR_EACH_SSA_DEF_OPERAND.
754 (generate_builtin): Adjust.
755 (stmt_generated_in_another_partition): Remove.
756 (add_scalar_computations_to_partition): Likewise.
757 (rdg_build_partitions): Do not call
758 add_scalar_computations_to_partition.
759
760 2012-05-31 Eric Botcazou <ebotcazou@adacore.com>
761
762 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
763 double ints throughout.
764 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
765 Check that the position of the field is representable as an integer.
766
767 2012-05-31 Richard Guenther <rguenther@suse.de>
768
769 * tree-data-ref.c (dr_analyze_innermost): Properly convert
770 the MEM_REF offset to sizetype.
771
772 2012-05-31 Georg-Johann Lay <avr@gjlay.de>
773
774 * doc/invoke.texi (AVR Options): Fix typos.
775
776 2012-05-31 Hans-Peter Nilsson <hp@axis.com>
777
778 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
779 and -mcpu= options.
780 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
781 non-v32 into --march=v0_v10.
782
783 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
784
785 * ira-int.h (target_ira_int): Rename x_move_cost to
786 x_ira_register_move_cost, x_may_move_in_cost to
787 x_ira_may_move_in_cost and x_may_move_out_cost to
788 x_ira_may_move_out_cost. Delete the old fields with
789 those names and also x_ira_max_register_move_cost,
790 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
791 (move_cost, may_move_in_cost, may_move_out_cost)
792 (ira_max_register_move_cost, ira_max_may_move_in_cost)
793 (ira_max_may_move_out_cost): Delete.
794 * ira.c (init_move_cost): Rename to...
795 (ira_init_register_move_cost): ...this, deleting the old
796 function with that name. Apply above variable renamings.
797 Retain asserts for null fields.
798 (ira_init_once): Don't initialize register move costs here.
799 (free_register_move_costs): Apply above variable renamings.
800 Remove code for deleted fields.
801
802 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
803
804 * ira.c (init_move_cost): Adjust choice of subclasses to match
805 the current ira_init_register_move_cost choice. Use
806 ira_class_subset_p instead of reg_class_subset_p.
807 (ira_init_register_move_cost): Assert that move_cost,
808 may_move_in_cost and may_move_out_cost already hold the desired
809 values for their ira_* equivalents. For the latter two,
810 ignore classes that can't store a register of the given mode.
811
812 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
813
814 * ira.c (setup_allocno_and_important_classes): Use
815 ira_class_hard_regs_num to check whether a class has any
816 allocatable registers.
817 (ira_init_register_move_cost): Likewise.
818
819 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
820
821 * ira.c (init_move_cost): Adjust local variable names to match
822 file conventions. Use ira_assert instead of gcc_assert.
823
824 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
825
826 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
827 Move these definitions and associated target_globals fields to...
828 * ira-int.h: ...here.
829 * rtl.h (init_move_cost): Delete.
830 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
831 * ira.c: ...here, making the latter static.
832
833 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
834
835 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
836 and ira_register_move_cost instead of init_move_cost and move_cost.
837
838 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
839
840 * ira.h (target_ira): Delete x_ira_available_class_regs.
841 (ira_available_class_regs): Delete.
842 * ira.c (setup_available_class_regs): Delete.
843 (setup_alloc_classes): Don't call it.
844 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
845 ira_available_class_regs.
846 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
847 (model_spill_cost): Likewise.
848 * ira-build.c (low_pressure_loop_node_p): Likewise.
849 * ira-color.c (color_pass): Likewise.
850 * ira-emit.c (change_loop): Likewise.
851 * ira-lives.c (inc_register_pressure, dec_register_pressure)
852 (single_reg_class, ira_implicitly_set_insn_hard_regs)
853 (process_bb_node_lives): Likewise.
854 * loop-invariant.c (gain_for_invariant): Likewise.
855
856 2012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
857
858 PR target/52999
859 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
860 (pa_section_type_flags): New.
861 (pa_legitimate_constant_p): Revert previous change.
862
863 2012-05-30 Steven Bosscher <steven@gcc.gnu.org>
864
865 * ira.c (allocate_initial_values): Make static.
866
867 2012-05-30 Uros Bizjak <ubizjak@gmail.com>
868
869 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
870 Generate tls_initial_exec_64_sun only when !TARGET_X32.
871
872 2012-05-30 Richard Guenther <rguenther@suse.de>
873
874 PR middle-end/53501
875 * fold-const.c (fold_binary_loc): Make sure to call
876 fold_plusminus_mult_expr with the original sign of operands.
877
878 2012-05-30 Steven Bosscher <steven@gcc.gnu.org>
879
880 * Makefile.in: Fix many dependencies.
881 (DWARF2_H): Depend on dwarf2.def.
882 (RTL_ERROR_H): Depend on rtl-error.h.
883 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
884 all gimple-pretty-print.h and tree-pretty-print.h references.
885
886 2012-05-30 Marc Glisse <marc.glisse@inria.fr>
887
888 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
889 concatenations.
890
891 2012-05-30 Richard Guenther <rguenther@suse.de>
892
893 PR middle-end/53522
894 * tree-emutls.c (gen_emutls_addr): Do not add globals to
895 referenced-vars.
896
897 2012-05-30 Eric Botcazou <ebotcazou@adacore.com>
898
899 * explow.c (probe_stack_range): Restore simple control flow and stop
900 again when the probe cannot be generated if HAVE_check_stack.
901
902 2012-05-30 Jakub Jelinek <jakub@redhat.com>
903
904 PR rtl-optimization/53519
905 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
906 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
907
908 2012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
909
910 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
911
912 2012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
913
914 PR debug/53453
915 * doc/tm.texi: Update.
916 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
917 * target.def (force_at_comp_dir): New hook.
918 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
919 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
920
921 2012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
922
923 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
924 Darwin >= 10.
925 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
926 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
927
928 2012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
929
930 PR target/51340
931 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
932 flag_unsafe_math_optimizations is set.
933 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
934 Update description of -mfused-madd.
935
936 2012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
937
938 PR target/52941
939 * config/sh/predicates.md (atomic_arith_operand,
940 atomic_logical_operand): New predicates.
941 * config/sh/sh.c (sh_option_override): Check atomic options.
942 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
943 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
944 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
945 UNSUPPORTED_HARD_ATOMIC_CPU.
946 * config/sh/sync.md: Update description comments.
947 (I12): New mode iterator.
948 (fetchop_predicate, fetchop_constraint): New code attributes.
949 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
950 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
951 atomic_fetch_<fetchop_name>si_hard,
952 atomic_fetch_<fetchop_name><mode>_hard,
953 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
954 atomic_<fetchop_name>_fetchsi_hard,
955 atomic_<fetchop_name>_fetch<mode>_hard,
956 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
957 atomic_test_and_set_hard): New insns.
958 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
959 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
960 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
961 atomic_test_and_set_soft): Use same formatting for the first line of
962 the asm block as in new insns above.
963 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
964 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
965 atomic_test_and_set): Integrate new *_hard insns into expanders.
966 * config/sh/sh.opt (mhard-atomic): New option.
967 * doc/invoke.texi (SH Options): Document it.
968
969 2012-05-29 Meador Inge <meadori@codesourcery.com>
970
971 * c-decl.c (c_push_function_context): Always create a new language
972 function.
973 (c_pop_function_context): Clear the language function created in
974 c_push_function_context.
975
976 2012-05-29 Matt Turner <mattst88@gmail.com>
977
978 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
979 (define_bypass "ev6_fcmov"): New.
980
981 2012-05-29 Steven Bosscher <steven@gcc.gnu.org>
982
983 * integrate.c: Remove.
984 * integrate.h: Remove.
985 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
986 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
987 * config/rs6000/t-rs6000: Likewise
988 * config/spu/t-spu-elf: Likewise.
989 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
990 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
991 from integrate.h to here.
992 (initial_value_entry): New prototype.
993 * reload.h (allocate_initial_values): Remove prototype.
994 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
995 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
996 integrate.c.
997 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
998 set_decl_abstract_flags, set_block_abstract_flags): Move from
999 integrate.c to here, the only user.
1000 * expmed.c (extract_fixed_bit_field): Remove outdated comment
1001 about integrate.c.
1002 * function.c: Don't include integrate.h.
1003 (struct initial_value_pair, struct initial_value_struct,
1004 get_hard_reg_initial_val, has_hard_reg_initial_val,
1005 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
1006 integrate.c to here.
1007 (initial_value_entry): New function.
1008 * genemit.c (main): Don't print integrate.h include line.
1009 * ira.c: Don't include integrate.h.
1010 (allocate_initial_values): Move from integrate.c to here.
1011 (ira): Update allocate_initial_values call.
1012 * tree-inline.c: Don't include integrate.h.
1013 (function_attribute_inlinable_p): Moved from integrate.c to here.
1014 * cfgexpand.c: Don't include integrate.h.
1015 * except.c: Likewise.
1016 * langhooks.c: Likewise.
1017 * passes.c: Likewise.
1018 * toplev.c: Likewise.
1019 * config/frv/frv.c: Likewise.
1020 * config/pa/pa.c: Likewise.
1021 * config/spu/spu.c: Likewise.
1022 * config/epiphany/epiphany.c: Likewise.
1023 * config/mep/mep.c: Likewise.
1024 * config/score/score.c: Likewise.
1025 * config/picochip/picochip.c: Likewise.
1026 * config/sh/sh.c: Likewise.
1027 * config/alpha/alpha.c: Likewise.
1028 * config/microblaze/microblaze.c: Likewise.
1029 * config/mips/mips.c: Likewise.
1030 * config/v850/v850.c: Likewise.
1031 * config/mmix/mmix.c: Likewise.
1032 * config/bfin/bfin.c: Likewise.
1033 * config/arm/arm.c: Likewise.
1034 * config/s390/s390.c: Likewise.
1035 * config/m32r/m32r.c: Likewise.
1036 * config/rs6000/rs6000.c: Likewise.
1037 * config/c6x/c6x.c: Include function.h instead of integrate.h.
1038 * config/tilegx/tilegx.c: Likewise.
1039 * config/tilepro/tilepro.c: Likewise.
1040
1041 2012-05-29 Georg-Johann Lay <avr@gjlay.de>
1042
1043 * config/avr/t-avr (s-avr-mmcu-texi): Call
1044 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
1045
1046 2012-05-29 Michael Matz <matz@suse.de>
1047
1048 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
1049 assign_temp): Remove 'keep' argument.
1050 (mark_temp_addr_taken): Remove prototype.
1051 * tree.h (expand_decl): Remove prototype.
1052 * function.c (struct temp_slot): Remove addr_taken and keep member.
1053 (assign_stack_temp_for_type) Don't initialize above, remove
1054 keep argument.
1055 (assign_stack_temp, assign_temp): Remove keep argument.
1056 (mark_temp_addr_taken): Remove.
1057 (preserve_temp_slots): Remove handling of addr_taken and keep members.
1058 (free_temp_slots): Ditto.
1059 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
1060 dead code.
1061 * stmt.c (expand_asm_operands): Remove dead code.
1062 (expand_decl): Remove.
1063 * c-decl.c (finish_struct): Don't call expand_decl.
1064 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
1065 and assign_stack_temp.
1066 * calls.c (save_fixed_argument_area, initialize_argument_information,
1067 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
1068 * expmed.c (extract_bit_field_1): Ditto.
1069 * expr.c (emit_group_load_1, emit_group_store,
1070 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
1071 store_field, expand_constructor, expand_cond_expr_using_cmove,
1072 expand_expr_real_2, expand_expr_real_1): Ditto.
1073 * stmt.c (expand_asm_operands, expand_return): Ditto.
1074
1075 * function.c (pop_temp_slots): Call free_temp_slots.
1076 * calls.c (store_one_arg): Don't call preserve_temp_slots or
1077 free_temp_slots.
1078 * expr.c (expand_assignment): Don't call free_temp_slots.
1079
1080 * config/arm/arm.c (neon_expand_vector_init): Ditto.
1081 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
1082 (ix86_expand_vector_extract): Ditto.
1083 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
1084 ia64_expand_movxf_movrf): Ditto.
1085 * config/mips/mips.c (mips_expand_vi_general): Ditto.
1086 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
1087 extendsfdf2): Ditto.
1088 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
1089 rs6000_expand_vector_set, rs6000_expand_vector_extract,
1090 rs6000_allocate_stack_temp): Ditto.
1091 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
1092 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
1093 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
1094 sparc_expand_vector_init): Ditto.
1095
1096 2012-05-29 Michael Matz <matz@suse.de>
1097
1098 * c-tree.h (c_expand_decl): Remove prototype.
1099
1100 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
1101 a kept temp.
1102 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
1103 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
1104 COMPOUND_LITERAL_EXPR.
1105 * function.c (expand_function_start): Don't call expand_decl,
1106 instead assert that we have RTL assigned.
1107 * tree-ssa-live.c (remove_unused_locals): Clear
1108 nonlocal_goto_save_area if its backing variable is removed.
1109 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
1110 as mem inputs.
1111 (expand_decl): Assert that this does nothing.
1112 * calls.c (expand_call): Don't call mark_temp_addr_taken.
1113
1114 2012-05-29 Richard Guenther <rguenther@suse.de>
1115
1116 PR tree-optimization/53516
1117 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
1118 bitfield accesses.
1119 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1120
1121 2012-05-29 Joseph Myers <joseph@codesourcery.com>
1122
1123 * LANGUAGES: Fix typos.
1124 * Makefile.in: Fix typos.
1125 * alias.c: Fix typos.
1126 * auto-inc-dec.c: Fix typos.
1127 * bb-reorder.c: Fix typos.
1128 * cfgcleanup.c: Fix typos.
1129 * cgraph.c: Fix typos.
1130 * cgraph.h: Fix typos.
1131 * cgraphunit.c: Fix typos.
1132 * collect2-aix.h: Fix typos.
1133 * collect2.c: Fix typos.
1134 * compare-elim.c: Fix typos.
1135 * config/alpha/vms.h: Fix typos.
1136 * config/arm/README-interworking: Fix typos.
1137 * config/arm/arm.c: Fix typos.
1138 * config/arm/iterators.md: Fix typos.
1139 * config/arm/vxworks.h: Fix typos.
1140 * config/avr/avr.c: Fix typos.
1141 * config/avr/avr.h: Fix typos.
1142 * config/avr/avr.md: Fix typos.
1143 * config/avr/builtins.def: Fix typos.
1144 * config/c6x/c6x.c: Fix typos.
1145 * config/cr16/cr16.c: Fix typos.
1146 * config/cr16/cr16.md: Fix typos.
1147 * config/cris/cris.md: Fix typos.
1148 * config/darwin.c: Fix typos.
1149 * config/darwin.opt: Fix typos.
1150 * config/i386/i386-c.c: Fix typos.
1151 * config/i386/i386.c: Fix typos.
1152 * config/ia64/ia64.c: Fix typos.
1153 * config/m68k/cf.md: Fix typos.
1154 * config/mep/mep.c: Fix typos.
1155 * config/microblaze/microblaze.c: Fix typos.
1156 * config/microblaze/microblaze.h: Fix typos.
1157 * config/mn10300/mn10300.c: Fix typos.
1158 * config/mn10300/mn10300.md: Fix typos.
1159 * config/pa/pa.c: Fix typos.
1160 * config/picochip/picochip.h: Fix typos.
1161 * config/rs6000/a2.md: Fix typos.
1162 * config/rs6000/rs6000.c: Fix typos.
1163 * config/rs6000/vector.md: Fix typos.
1164 * config/rx/rx.md: Fix typos.
1165 * config/rx/rx.opt: Fix typos.
1166 * config/s390/2097.md: Fix typos.
1167 * config/s390/s390.c: Fix typos.
1168 * config/s390/s390.h: Fix typos.
1169 * config/sh/sh.c: Fix typos.
1170 * config/sh/sh.md: Fix typos.
1171 * config/sparc/sync.md: Fix typos.
1172 * config/spu/spu.c: Fix typos.
1173 * config/spu/spu.md: Fix typos.
1174 * config/vms/vms.c: Fix typos.
1175 * config/vxworks-dummy.h: Fix typos.
1176 * config/vxworks.h: Fix typos.
1177 * cselib.c: Fix typos.
1178 * df-scan.c: Fix typos.
1179 * df.h: Fix typos.
1180 * doc/extend.texi: Fix typos.
1181 * doc/install.texi: Fix typos.
1182 * doc/invoke.texi: Fix typos.
1183 * doc/md.texi: Fix typos.
1184 * doc/plugins.texi: Fix typos.
1185 * doc/rtl.texi: Fix typos.
1186 * dse.c: Fix typos.
1187 * dwarf2asm.c: Fix typos.
1188 * dwarf2out.c: Fix typos.
1189 * except.h: Fix typos.
1190 * expr.c: Fix typos.
1191 * fold-const.c: Fix typos.
1192 * gcc.c: Fix typos.
1193 * gcse.c: Fix typos.
1194 * genautomata.c: Fix typos.
1195 * gengtype-state.c: Fix typos.
1196 * gengtype.c: Fix typos.
1197 * genhooks.c: Fix typos.
1198 * gimple-fold.c: Fix typos.
1199 * gimple-pretty-print.c: Fix typos.
1200 * gimple.c: Fix typos.
1201 * gimple.h: Fix typos.
1202 * gimplify.c: Fix typos.
1203 * graphite-interchange.c: Fix typos.
1204 * graphite-sese-to-poly.c: Fix typos.
1205 * ifcvt.c: Fix typos.
1206 * input.c: Fix typos.
1207 * ipa-cp.c: Fix typos.
1208 * ipa-inline-analysis.c: Fix typos.
1209 * ipa-inline-transform.c: Fix typos.
1210 * ipa-inline.c: Fix typos.
1211 * ipa-pure-const.c: Fix typos.
1212 * ipa-ref.h: Fix typos.
1213 * ipa-reference.c: Fix typos.
1214 * ipa-utils.c: Fix typos.
1215 * ipa.c: Fix typos.
1216 * ira-emit.c: Fix typos.
1217 * ira-lives.c: Fix typos.
1218 * lto-streamer.c: Fix typos.
1219 * lto-streamer.h: Fix typos.
1220 * lto-wrapper.c: Fix typos.
1221 * mcf.c: Fix typos.
1222 * mode-switching.c: Fix typos.
1223 * modulo-sched.c: Fix typos.
1224 * plugin.c: Fix typos.
1225 * postreload.c: Fix typos.
1226 * sched-deps.c: Fix typos.
1227 * sel-sched-ir.c: Fix typos.
1228 * sel-sched-ir.h: Fix typos.
1229 * sel-sched.c: Fix typos.
1230 * sese.c: Fix typos.
1231 * stor-layout.c: Fix typos.
1232 * target-hooks-macros.h: Fix typos.
1233 * target.def: Fix typos.
1234 * trans-mem.c: Fix typos.
1235 * tree-eh.c: Fix typos.
1236 * tree-predcom.c: Fix typos.
1237 * tree-sra.c: Fix typos.
1238 * tree-ssa-address.c: Fix typos.
1239 * tree-ssa-loop-ivopts.c: Fix typos.
1240 * tree-ssa-loop-niter.c: Fix typos.
1241 * tree-ssa-math-opts.c: Fix typos.
1242 * tree-ssa-pre.c: Fix typos.
1243 * tree-ssa-propagate.c: Fix typos.
1244 * tree-ssa-reassoc.c: Fix typos.
1245 * tree-ssa-sccvn.c: Fix typos.
1246 * tree-ssa-ter.c: Fix typos.
1247 * tree-ssa-uninit.c: Fix typos.
1248 * tree-ssanames.c: Fix typos.
1249 * tree-vect-generic.c: Fix typos.
1250 * tree-vect-slp.c: Fix typos.
1251 * tree.c: Fix typos.
1252 * tree.h: Fix typos.
1253 * varasm.c: Fix typos.
1254 * varpool.c: Fix typos.
1255
1256 2012-05-29 Joseph Myers <joseph@codesourcery.com>
1257
1258 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
1259
1260 2012-05-29 Richard Guenther <rguenther@suse.de>
1261
1262 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
1263 for globals.
1264 (add_referenced_var_1): Re-organize. Assert we are not
1265 called for globals.
1266 (remove_referenced_var): Likewise.
1267 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
1268 * tree-mudflap.c (execute_mudflap_function_ops): Do not
1269 call add_referenced_var on globals.
1270 * matrix-reorg.c (transform_access_sites): Likewise.
1271
1272 2012-05-29 Steven Bosscher <steven@gcc.gnu.org>
1273
1274 * alias.c (reg_known_value): Make this a VEC.
1275 (reg_known_equiv_p): Make this an sbitmap.
1276 (reg_known_value_size): Remove.
1277 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
1278 set_reg_known_equiv_p): Update for reg_known_value and
1279 reg_known_value_size data structure change.
1280 (init_alias_analysis, end_alias_analysis): Likewise.
1281
1282 2012-05-29 Jakub Jelinek <jakub@redhat.com>
1283
1284 PR middle-end/53510
1285 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
1286 to avoid leaking memory. No need to handle memory allocation
1287 failure. Double string_len on each reallocation instead of adding 2.
1288 * gcov.c (read_line): Likewise.
1289
1290 2012-05-29 Hans-Peter Nilsson <hp@axis.com>
1291
1292 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
1293 New macros.
1294 * config/cris/cris.md ("trap"): Define, enabled for
1295 TARGET_TRAP_USING_BREAK8.
1296 * config/cris/cris.opt (mtrap-using-break8): New option.
1297
1298 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
1299
1300 PR c++/25137
1301 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
1302 for C++.
1303
1304 2012-05-28 Hans-Peter Nilsson <hp@axis.com>
1305
1306 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
1307 (Standard Names): Fix typos in documentation of atomic patterns.
1308
1309 2012-05-27 Nathan Sidwell <nathan@acm.org>
1310
1311 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
1312
1313 2012-05-26 Jason Merrill <jason@redhat.com>
1314
1315 PR c++/53220
1316 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
1317 about array compound literals.
1318
1319 2012-05-26 Eric Botcazou <ebotcazou@adacore.com>
1320
1321 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
1322 if CLEANUP_NO_INSN_DEL.
1323 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
1324 from cfg_layout_merge_blocks.
1325 (emit_nop_for_unique_locus_between): New function.
1326 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
1327 (cfg_layout_merge_blocks): Likewise.
1328
1329 2012-05-26 Dimitrios Apostolou <jimis@gmx.net>
1330 Paolo Bonzini <bonzini@gnu.org>
1331
1332 * df-scan.c (df_def_record_1): Assert a parallel must contain an
1333 EXPR_LIST at this point. Receive the LOC and move its extraction...
1334 (df_defs_record): ... here. Change if-else to a switch statement.
1335 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
1336 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
1337 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
1338 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
1339 regs_invalidated_by_call.
1340 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
1341 df_get_call_refs().
1342
1343 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
1344
1345 PR lto/52178
1346 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
1347 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
1348
1349 2012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
1350
1351 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
1352 software floating point emulation. No longer build the multilibs
1353 with -mstrict-align.
1354
1355 2012-05-25 Aldy Hernandez <aldyh@redhat.com>
1356
1357 PR middle-end/53008
1358 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
1359 accessed indirectly.
1360 (ipa_tm_create_version): Same.
1361
1362 2012-05-25 Uros Bizjak <ubizjak@gmail.com>
1363
1364 PR target/53474
1365 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
1366 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
1367
1368 2012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
1369
1370 PR target/53435
1371 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
1372 (ix86_expand_vec_perm): Use int mode instead of float.
1373 (expand_vec_perm_pshufb): Remove handling of useseless type
1374 conversion.
1375
1376 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
1377
1378 PR ada/52362
1379 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
1380 gnu_ld variables to yes.
1381 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
1382 (HAVE_GNU_AS): Likewise.
1383 * config.in: Regenerate.
1384 * configure: Likewise.
1385
1386 2012-05-25 Tristan Gingold <gingold@adacore.com>
1387
1388 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
1389 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
1390 and preferred_alignment.
1391
1392 2012-05-25 Tristan Gingold <gingold@adacore.com>
1393
1394 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
1395
1396 2012-05-25 Thomas Schwinge <thomas@codesourcery.com>
1397
1398 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
1399 volatile bitfields case.
1400
1401 2012-05-24 Pat Haugen <pthaugen@us.ibm.com>
1402
1403 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
1404 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
1405 (adjacent_mem_locations): Move some code to and call...
1406 (get_memref_parts): ...new function.
1407 (mem_locations_overlap): New function.
1408 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
1409 (is_mem_ref): Rename to...
1410 (find_mem_ref): ...this. Return MEM rtx.
1411 (get_store_dest): Remove function.
1412 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
1413 new parameter and adjust calls.
1414 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
1415 mem refs overlap for true_store_to_load_dep_costly.
1416 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
1417 passed to adjacent_mem_locations.
1418 (is_costly_group): Walk resolved dependency list.
1419 (force_new_group): Emit group ending nop for Power6/Power7.
1420 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
1421 (group_ending_nop): New define_insn.
1422
1423 2012-05-24 Dodji Seketeli <dodji@redhat.com>
1424
1425 Make unwound macro expansion trace less redundant
1426 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
1427 context of macro definition in the trace, when it's redundant.
1428 Update comments.
1429
1430 2012-05-24 Richard Guenther <rguenther@suse.de>
1431
1432 PR middle-end/53460
1433 * tree-profile.c (tree_profiling): Cleanup the CFG if
1434 execute_fixup_cfg requests it.
1435
1436 2012-05-24 Richard Guenther <rguenther@suse.de>
1437
1438 * tree-flow.h (create_var_ann): Remove.
1439 * tree-dfa.c (create_var_ann): Remove and inline into its
1440 single caller ...
1441 (add_referenced_var_1): ... here.
1442 * varpool.c (add_new_static_var): Do not call add_referenced_var
1443 for global vars.
1444 * gimple-fold.c (canonicalize_constructor_val): Likewise.
1445 * tree-switch-conversion.c (build_one_array): Likewise.
1446 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
1447 * tree-flow-inline.h (gimple_referenced_vars): Guard against
1448 NULL fn argument.
1449 * tree-inline.c (remap_gimple_op_r): Likewise. Check
1450 gimple_referenced_vars instead of gimple_in_ssa_p.
1451 (copy_tree_body_r): Likewise.
1452 (setup_one_parameter): Likewise.
1453 (declare_return_variable): Likewise.
1454 (tree_function_versioning): Likewise.
1455
1456 2012-05-24 Jakub Jelinek <jakub@redhat.com>
1457
1458 PR tree-optimization/53465
1459 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
1460 vr0 into *vr, then vrp_meet that.
1461 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
1462 have any equivalences.
1463 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
1464 first time.
1465
1466 2012-05-24 Jim MacArthur <jim.macarthur@arm.com>
1467
1468 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
1469 hard registers.
1470 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
1471 check end_regno - 1 is a hard register.
1472
1473 2012-05-24 Richard Guenther <rguenther@suse.de>
1474
1475 * varpool.c (add_new_static_var): Remove call to create_var_ann.
1476 * tree-ssa-operands.c (create_vop_var): Likewise.
1477
1478 2012-05-24 Richard Guenther <rguenther@suse.de>
1479
1480 PR bootstrap/53466
1481 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
1482 handle globals.
1483 (remove_unused_locals): Pass global_unused_vars to
1484 remove_unused_scope_block_p. Restore code walking all
1485 referenced vars and pruning them.
1486
1487 2012-05-23 Jan Hubicka <jh@suse.cz>
1488
1489 * tree.h (alias_diag_flags): Remove.
1490 (alias_pair): Remove emitted_diags.
1491 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
1492 symbol_alias_set_t, symbol_alias_set_destroy,
1493 symbol_alias_set_contains, propagate_aliases_backward): Remove.
1494 * toplev.c (compile_file): Do not call finish_aliases_2
1495 * cgraphunit.c (cgraph_process_new_functions): Do not call
1496 finish_aliases_1.
1497 (handle_alias_pairs): Output diagnostics about aliases to externals.
1498 (assemble_thunks_and_aliases): Use do_assemble_alias.
1499 (output_weakrefs): Likewise.
1500 (finalize_compilation_unit): Do not call finish_aliases_1.
1501 * ipa.c (symtab_remove_unreachable_nodes): De not call
1502 remove_unreachable_alias_pairs.
1503 * varasm.c (do_assemble_alias): Export.
1504 (symbol_alias_set_create, symbol_alias_set_destroy,
1505 symbol_alias_set_contains, symbol_alias_set_insert,
1506 propagate_aliases_forward, propagate_aliases_backward,
1507 propagate_aliases_backward, trivially_visible_alias,
1508 trivially_defined_alias, remove_unreachable_alias_pairs,
1509 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
1510 * output.h (do_assemble_alias): Declare.
1511 * varpool.c (varpool_remove_unreferenced_decls): Do not call
1512 finish_aliases_1.
1513
1514 2012-05-23 Martin Jambor <mjambor@suse.cz>
1515
1516 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
1517
1518 2012-05-23 Eric Botcazou <ebotcazou@adacore.com>
1519
1520 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
1521 size handling.
1522 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
1523 (iterative_hash_gimple_type): Adjust comment.
1524 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
1525 domain for an array type instead of the domain type itself.
1526
1527 2012-05-23 Richard Guenther <rguenther@suse.de>
1528
1529 PR tree-optimization/53438
1530 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
1531
1532 2012-05-23 Georg-Johann Lay <avr@gjlay.de>
1533
1534 PR target/53448
1535 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
1536 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
1537 ASM_OUTPUT_ALIGN.
1538
1539 2012-05-23 Richard Guenther <rguenther@suse.de>
1540
1541 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
1542 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
1543 via the global_unused_vars bitmap.
1544 (remove_unused_locals): Handle global vars in local-decls via
1545 a global_unused_vars bitmap instead of the used flag in the
1546 var annotation. Simplify global variable handling and removal.
1547
1548 2012-05-22 Jan Hubicka <jh@suse.cz>
1549
1550 PR middle-end/53426
1551 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
1552 from other partitions.
1553
1554 2012-05-22 Jan Hubicka <jh@suse.cz>
1555
1556 PR middle-end/53161
1557 * symtab.c (symtab_register_node): Fix ordering issue.
1558
1559 2012-05-22 Steven Drake <sbd@NetBSD.org>
1560
1561 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
1562
1563 2012-05-22 David Edelsohn <dje.gcc@gmail.com>
1564
1565 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
1566 Use strip_name_encoding target hook.
1567
1568 2012-05-22 Richard Guenther <rguenther@suse.de>
1569
1570 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
1571 (init_function_for_compilation): Remove.
1572 * tree-dfa.c (find_vars_r): Take struct function argument.
1573 (find_referenced_vars_in): Adjust.
1574 * tree-ssa-operands.c (clobber_stats): Remove.
1575 (create_vop_var): Take struct function argument. Mark
1576 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
1577 (init_ssa_operands): Take struct function argument.
1578 (fini_ssa_operands): Do not dump dead stats.
1579 * tree-ssa-operands.h (init_ssa_operands): Take struct function
1580 argument.
1581 * cgraphunit.c (init_lowered_empty_function): Adjust.
1582 * lto-streamer-in.c (input_cfg): Likewise.
1583 * tree-inline.c (initialize_cfun): Likewise.
1584 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
1585 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
1586 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
1587 virtual operands are not registers.
1588
1589 2012-05-22 Richard Guenther <rguenther@suse.de>
1590
1591 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
1592
1593 2012-05-22 Richard Guenther <rguenther@suse.de>
1594
1595 PR middle-end/53437
1596 * tree-inline.c (setup_one_parameter): Create a dummy init
1597 statement for unused parameters when not optimizing.
1598
1599 2012-05-22 Richard Guenther <rguenther@suse.de>
1600
1601 * tree-flow.h (add_referenced_var_1): Declare.
1602 (add_referenced_var): Define.
1603 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
1604 (add_referenced_var): Rename to ...
1605 (add_referenced_var_1): ... this. Take struct function argument.
1606
1607 2012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1608
1609 PR target/53334
1610 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
1611 * config/arm/arm.c (arm_validize_comparison): Define.
1612 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
1613 arm_validize_comparison.
1614 ("cbranchdi4"): Likewise.
1615 ("cstoredi4"): Likewise.
1616 ("movsicc"): Likewise.
1617 ("movsfcc"): Likewise.
1618 ("movdfcc"): Likewise.
1619
1620 2012-05-22 Dimitrios Apostolou <jimis@gmx.net>
1621
1622 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
1623 the mw_reg_pool size.
1624
1625 2012-05-22 Paolo Bonzini <bonzini@gnu.org>
1626
1627 PR tree-optimization/53336
1628 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
1629 non-integer integral types to offset type and vice versa.
1630
1631 2012-05-22 Alan Modra <amodra@gmail.com>
1632
1633 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
1634 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
1635 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
1636 V_SAVE_INLINE): Delete.
1637 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
1638 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
1639 For ELF targets, use out-of-line restores for -Os and any number
1640 of regs if the restore exits, and out-of-line gp save for two or
1641 more regs. Use save_reg_p to test for holes in reg restore set.
1642 Replace "#if" with "if".
1643
1644 2012-05-22 Alan Modra <amodra@gmail.com>
1645
1646 * config/rs6000/rs6000.c (save_reg_p): New function.
1647 (first_reg_to_save, first_fp_reg_to_save): Use it here.
1648 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
1649 (emit_frame_save): Use gen_frame_store.
1650 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
1651 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
1652 vrsave and toc.
1653 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
1654 vrsave, toc, gp and fp restores.
1655
1656 2012-05-22 Alan Modra <amodra@gmail.com>
1657
1658 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
1659 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
1660 Move function pointer variables after forward declarations.
1661 (rs6000_builtin_support_vector_misalignment): Make static.
1662 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
1663 (rs6000_function_value, rs6000_can_eliminate): Likewise.
1664
1665 2012-05-21 Bernd Schmidt <bernds@codesourcery.com>
1666
1667 PR rtl-optimization/53373
1668 * caller-save.c (save_call_clobbered_regs): Look into a possible
1669 PARALLEL manually rather than using single_set on a call insn.
1670
1671 2012-05-21 Jakub Jelinek <jakub@redhat.com>
1672
1673 PR tree-optimization/53436
1674 * omp-low.c (omp_build_component_ref): New function.
1675 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
1676
1677 2012-05-21 Uros Bizjak <ubizjak@gmail.com>
1678
1679 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
1680 arguments to bool.
1681 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
1682 Do not print '.' here. Output operand lossage error for unhandled
1683 sizes. Move.
1684 <case '*'>: Move.
1685 <case '&'>: Ditto.
1686 <case 'Y'>: Ditto.
1687 <case 'z'>: Hardcode "code" argument into error strings.
1688 <case 'Z'>: Ditto.
1689 <case 'D'>: Merge AVX and non-AVX codes.
1690 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
1691 Update call to put_condition_code.
1692
1693 2012-05-21 Andreas Schwab <schwab@linux-m68k.org>
1694
1695 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
1696 CC_STATUS_INIT.
1697 (clzsi2): New expander.
1698 (*clzsi2_68k): New insn.
1699 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
1700
1701 2012-05-21 Aldy Hernandez <aldyh@redhat.com>
1702
1703 * gimple.h (gimple_set_in_transaction): Remove.
1704 (gimple_in_transaction): Look in BB instead.
1705 (gimple_statement_base): Remove in_transaction field.
1706 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
1707 * trans-mem.c (compute_transaction_bits): Place transaction bit
1708 information into basic blocks.
1709
1710 2012-05-21 Andreas Schwab <schwab@linux-m68k.org>
1711
1712 * expr.c (get_def_for_expr_class): Define only if
1713 HAVE_conditional_move.
1714 (convert_tree_comp_to_rtx): Likewise.
1715
1716 2012-05-21 Uros Bizjak <ubizjak@gmail.com>
1717
1718 PR target/53399
1719 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
1720 for TARGET_BMI.
1721 (ffssi2_no_cmove): Ditto.
1722 (*ffs<mode>_1): Remove insn pattern.
1723 (*tzcnt<mode>_1): New insn pattern.
1724 (*bsf<mode>1): Ditto.
1725
1726 2012-05-21 Richard Guenther <rguenther@suse.de>
1727
1728 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
1729 more referenced vars.
1730 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
1731 flag on variables that have a var-annotation.
1732
1733 2012-05-21 Joseph Myers <joseph@codesourcery.com>
1734
1735 PR c/53418
1736 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
1737 from folded operands before wrapping another around the
1738 conditional expression.
1739
1740 2012-05-21 Jakub Jelinek <jakub@redhat.com>
1741
1742 PR tree-optimization/53366
1743 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
1744 tests if complex_numbers == 2, but there are non-complex number loads
1745 too.
1746
1747 PR tree-optimization/53409
1748 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
1749 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
1750
1751 PR tree-optimization/53410
1752 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
1753 instead of build_int_cst (type, 0) where vector types might be
1754 involved. Instead of build_int_cst (type, 1) convert the original
1755 integer_onep argument to the desired type.
1756
1757 2012-05-21 Michael Matz <matz@suse.de>
1758
1759 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
1760 (simplify_test_exp): Handle one more case of distributive law,
1761 decrease cost threshold.
1762 (tests_attr_p, get_attr_order): New functions.
1763 (optimize_attrs): Use topological order, inline only cheap values.
1764 (write_attr_set): Reset our_known_true after some time.
1765
1766 2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
1767
1768 PR target/53425
1769 * config/i386/i386.c (type_natural_mode): Warn passing SSE
1770 vector argument without SSE enabled changes the ABI.
1771
1772 2012-05-21 Richard Guenther <rguenther@suse.de>
1773
1774 PR tree-optimization/53408
1775 * tree-vect-loop.c (vectorizable_induction): Properly check
1776 the restriction that we cannot handle induction results from
1777 the inner loop outside of the outer loop.
1778
1779 2012-05-21 H.J. Lu <hongjiu.lu@intel.com>
1780
1781 PR target/53416
1782 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
1783 (UNSPECV_RDRAND): This.
1784 (rdrand<mode>_1): Updated.
1785
1786 2012-05-21 Richard Guenther <rguenther@suse.de>
1787
1788 * tree-loop-distribution.c (can_generate_builtin): Reject
1789 volatile stmts.
1790
1791 2012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
1792
1793 * Makefile.in (options.c): Add options.h to included header
1794 files, before tm.h.
1795
1796 2012-05-21 Razya Ladelsky <razya@il.ibm.com>
1797
1798 * tree-parloops.c : Add myself to contributors, update
1799 TODO list, add link to wiki.
1800
1801 2012-05-21 Alan Modra <amodra@gmail.com>
1802
1803 * config/rs6000/predicates.md (input_operand): Don't match
1804 constant pool addresses. Remove label_ref, high and plus from
1805 match_code list. Remove redundant CONSTANT_P test.
1806 (splat_input_operand): Similarly update match_code list.
1807 (small_toc_ref): New predicate.
1808 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
1809 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
1810 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
1811 register checks to..
1812 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
1813 generated by create_TOC_reference.
1814 (rs6000_legitimize_address): Update cerate_TOC_reference call.
1815 (rs6000_delegitimize_address): Handle new rtl for toc refs.
1816 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
1817 (use_toc_relative_ref): New function, split out from..
1818 (rs6000_emit_move): ..here. Remove redundant tests. Update
1819 create_TOC_reference calls.
1820 (rs6000_legitimize_reload_address): Formatting. Handle splitting
1821 of medium/large model toc addresses. Use use_toc_relative_ref.
1822 (print_operand): Formatting, style. Adjust for toc changes.
1823 (print_operand_address): Likewise.
1824 (rs6000_output_addr_const_extra): Likewise.
1825 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
1826 than a PLUS. Use this formulation for both high and low part
1827 of -mcmodel=medium/large toc reference too. Before reload,
1828 always use the small model formulation.
1829 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
1830 a PLUS in high part of addresses here.
1831 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
1832 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
1833 (largetoc_high, largetoc_low): Move earlier. Cope when no
1834 base reg available.
1835 (largetoc_high_plus): New insn.
1836 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
1837 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
1838 (tocref): ..instead do so here, new insn and split.
1839
1840 2012-05-20 H.J. Lu <hongjiu.lu@intel.com>
1841
1842 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1843 RDRND, F16C and FSGSBASE.
1844
1845 2012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1846
1847 PR rtl-optimzation/53373
1848 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
1849 call pattern. Update split patterns.
1850 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1851 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1852
1853 2012-05-20 Razya Ladelsky <razya@il.ibm.com>
1854
1855 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
1856 for outer loops.
1857
1858 2012-05-18 Jan Hubicka <jh@suse.cz>
1859
1860 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
1861 (cgraph_process_new_functions): Process also aliases.
1862 * lto-streamer-out.c (struct sets): Remove.
1863 (trivally_defined_alias): Remove.
1864 (output_alias_pair_p): Remove.
1865 (output_unreferenced_globals): Remove.
1866 (produce_symtab); Do not handle alias pairs.
1867 (produce_asm_for_decls): Likewise.
1868 * lto-streamer-in.c (input_alias_pairs): Remove.
1869 (lto_read_body): Do not input alias pairs.
1870 (lto_input_constructors_and_inits): Remove.
1871
1872 2012-05-18 Jan Hubicka <jh@suse.cz>
1873
1874 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
1875 aliases.
1876
1877 2012-05-18 Jan Hubicka <jh@suse.cz>
1878
1879 * cgraphbuild.c (record_reference): Update.
1880 * lto-cgraph.c (lto_output_varpool_node): External vars
1881 are not in other partition even if they are not output
1882 in current partition.
1883 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
1884 argument; fix.
1885 (canonicalize_constructor_val): Take FROM_DECL argument.
1886 (fold_ctor_reference, fold_string_cst_ctor_reference,
1887 fold_array_ctor_reference, fold_nonarray_ctor_reference,
1888 fold_ctor_reference): Likewise.
1889 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
1890 * gimple.h (gimple_fold_builtin): Likewise.
1891
1892 2012-05-18 Olivier Hainque <hainque@adacore.com>
1893
1894 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
1895 $(libsubdir) as libexecsubdir.
1896
1897 2012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1898
1899 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
1900 relied on signed overflow behavior.
1901
1902 2012-05-18 Richard Guenther <rguenther@suse.de>
1903
1904 PR tree-optimization/53346
1905 * tree-loop-distribution.c (ldist_gen): Make sure to apply
1906 builtin transform even when only a single partition with
1907 all reads/writes exists.
1908
1909 2012-05-18 Richard Guenther <rguenther@suse.de>
1910
1911 PR tree-optimization/53390
1912 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
1913 strided loads.
1914
1915 2012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1916
1917 * tree-ssa-reassoc.c (bip_map): Remove decl.
1918 (completely_remove_stmt): Remove function.
1919 (remove_def_if_absorbed_call): Remove function.
1920 (remove_visited_stmt_chain): Remove __builtin_powi handling.
1921 (possibly_move_powi): Remove function.
1922 (rewrite_expr_tree): Remove calls to possibly_move_powi.
1923 (rewrite_expr_tree_parallel): Likewise.
1924 (attempt_builtin_powi): Build multiplies explicitly rather than
1925 relying on the ops vector and rank system.
1926 (transform_stmt_to_copy): New function.
1927 (transform_stmt_to_multiply): Likewise.
1928 (reassociate_bb): Handle leftover operations after __builtin_powi
1929 optimization; build a final multiply if necessary.
1930
1931 2012-05-18 Jan Hubicka <jh@suse.cz>
1932
1933 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
1934 (mark_functions_to_output): Fix sanity check.
1935 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
1936
1937 2012-05-18 Richard Guenther <rguenther@suse.de>
1938
1939 * tree-flow.h (mark_symbols_for_renaming): Remove.
1940 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
1941 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
1942 (copy_debug_stmt): Likewise.
1943 (expand_call_inline): Likewise.
1944 (declare_return_variable): Mark the return variable for renaming
1945 if necessary.
1946
1947 2012-05-18 Andrew Stubbs <ams@codesourcery.com>
1948
1949 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
1950 prototype.
1951 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
1952 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
1953 (ashrdi3,lshrdi3): Likewise.
1954 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
1955
1956 2012-05-18 Meador Inge <meadori@codesourcery.com>
1957
1958 PR rtl-optimization/53352
1959 * cse.c (equiv_constant): Ignore paradoxical subregs.
1960
1961 2012-05-17 Steven Bosscher <steven@gcc.gnu.org>
1962
1963 PR rtl-optimization/53125
1964 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
1965 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
1966 die in the basic block. Correctly top off REG_FREQ and
1967 REG_FREQ_CALLS_CROSSED.
1968 Remove do_not_gen.
1969 (regstat_compute_ri): Allocate and free local_live_last_luid.
1970 Remove do_not_gen.
1971 (regstat_bb_compute_calls_crossed): Correctly top off
1972 REG_FREQ_CALLS_CROSSED.
1973
1974 2012-05-17 Jan Hubicka <jh@suse.cz>
1975
1976 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
1977 constructor over decl without.
1978 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
1979 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
1980 * cgraphunit.c (process_function_and_variable_attributes): Finalize
1981 extrnal decls.
1982 (mark_functions_to_output): Also accept bodies for functions with
1983 clones.
1984 (output_in_order): Skip external vars.
1985 * lto-cgraph.c (lto_output_node): External functions are never in other
1986 partition.
1987 (lto_output_varpool_node): Likewise.
1988 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
1989 forgotten initializers.
1990 * ipa.c (process_references): Handle external vars.
1991 (symtab_remove_unreachable_nodes): Update to handle external vars.
1992 (varpool_externally_visible_p): External vars are externally visible.
1993 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
1994 * varpool.c (varpool_remove_node): Remove constructor.
1995 (decide_is_variable_needed): Handle externals.
1996 (varpool_remove_unreferenced_decls): Likewise.
1997
1998 2012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1999
2000 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
2001 (enable_warning_as_error): Do not special case Wuninitialized.
2002 * optc-gen.awk: Add sanity checks.
2003
2004 2012-05-17 Jan Hubicka <jh@suse.cz>
2005
2006 * ipa-reference.c (is_proper_for_analysis): Do not check flags
2007 that might change as result of global optimization.
2008 (analyze_function): Do not check analyzed and externally_visible
2009 flags; be happy about address dereferences.
2010 (propagate): Prune all_module_statics so it really contains just
2011 statics; prune all the local summaries.
2012 (ipa_reference_write_optimization_summary): Simplify.
2013
2014 2012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
2015
2016 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
2017 * config/m68k/m68k-tables.opt: Regenerated.
2018 * doc/invoke.texi (M680x0 Options): Document.
2019
2020 2012-05-16 Dave Boutcher <daveboutcher@gmail.com>
2021 Patrick Marlier <patrick.marlier@gmail.com>
2022
2023 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
2024 indirect calls.
2025
2026 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
2027
2028 * configure: Regenerated.
2029
2030 2012-05-16 Andrew Pinski <apinski@cavium.com>
2031
2032 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
2033 GIMPLE_ASSIGN.
2034
2035 2012-05-16 David S. Miller <davem@davemloft.net>
2036
2037 * jump.c (delete_related_insns): If we remove a CALL, make sure
2038 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
2039
2040 2012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2041
2042 PR tree-optimization/53217
2043 * tree-ssa-reassoc.c (bip_map): New static variable.
2044 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
2045 (attempt_builtin_powi): Save feeding multiplies on a stack.
2046 (reassociate_bb): Create and destroy bip_map.
2047
2048 2012-05-16 Olivier Hainque <hainque@adacore.com>
2049
2050 * Makefile.in (install-no-fixedincludes): New target, former toplevel
2051 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
2052 Add comments and improve stamp preservation across the whole sequence.
2053 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
2054
2055 2012-05-16 Richard Guenther <rguenther@suse.de>
2056
2057 * tree-inline.c (insert_init_stmt): Do not call
2058 mark_symbols_for_renaming.
2059 (setup_one_parameter): Avoid initializing unused parameters.
2060 (declare_return_variable): Properly handle DECL_BY_REFERENCE
2061 return vars in SSA form.
2062
2063 2012-05-16 Richard Guenther <rguenther@suse.de>
2064
2065 * tree-flow.h (get_virtual_var): Remove.
2066 * tree-dfa.c (get_virtual_var): Likewise.
2067
2068 2012-05-16 Richard Guenther <rguenther@suse.de>
2069
2070 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
2071 Remove set-only bitmap of new names.
2072 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
2073 CFG hooks.
2074 * tree-flow.h (ssa_names_to_replace): Remove.
2075 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
2076
2077 2012-05-16 Richard Guenther <rguenther@suse.de>
2078
2079 PR tree-optimization/53364
2080 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
2081 detect a view-conversion of the decl.
2082
2083 2012-05-16 Dodji Seketeli <dodji@redhat.com>
2084
2085 PR preprocessor/7263
2086 * c-tree.h (enum c_declspec_word): Declare new enum.
2087 (struct c_declspecs::locations): New member.
2088 (declspecs_add_qual, declspecs_add_scspec)
2089 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
2090 location parameter.
2091 * c-decl.c (build_null_declspecs): Initialize the new struct
2092 c_declspecs::locations member.
2093 (declspecs_add_addrspace): Take a location parameter for the
2094 address space. Store it onto declaration specifiers.
2095 (declspecs_add_qual): Likewise, take a location parameter for the
2096 qualifier.
2097 (declspecs_add_type): Likewise, take a location parameter for the
2098 type specifier.
2099 (declspecs_add_scspec): Likewise, take a location parameter for
2100 the storage class specifier.
2101 (declspecs_add_attrs): Likewise, take a location parameter for the
2102 first attribute.
2103 (declspecs_add_alignas): Likewise, take a location parameter for
2104 the alignas token.
2105 (finish_declspecs): For diagnostics, use the location of the
2106 relevant declspec, instead of the global input_location.
2107 * c-parser.c (c_parser_parameter_declaration): Pass the precise
2108 virtual location of the declspec to the declspecs-setters.
2109 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
2110 repeatedly.
2111
2112 2012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
2113
2114 * configure.ac: Stack protector enabling for Android targets.
2115 * configure: Regenerate.
2116
2117 2012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
2118
2119 * ira.c (pseudo_move_insn): Delete.
2120 (find_moveable_pseudos): Don't set it.
2121 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
2122 the definitions of the original pseudo. Delete all of them.
2123
2124 2012-05-16 Olivier Hainque <hainque@adacore.com>
2125
2126 * config/rs6000/rs6000-opts.h (enum processor_type): Add
2127 PROCESSOR_PPC8548.
2128 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
2129 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
2130 * config/rs6000/8540.md: indicate that the units/patterns apply to
2131 ppc8548 as well.
2132
2133 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
2134 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
2135 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
2136 related flags, check that what is queried is supported by the selected
2137 configuration. Rework the single/double_float and MASK_STRING resets to
2138 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
2139 costs for PROCESSOR_PPC8548 as well.
2140 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
2141 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
2142 statement instead of a sequence of ifs.
2143
2144 * config/rs6000/rs6000.h (TARGET_E500): Remove.
2145 (TARGET_NO_LWSYNC): Adjust accordingly.
2146 * config/rs6000/e500.h (TARGET_E500): Remove.
2147 (CHECK_E500_OPTIONS): Adjust accordingly.
2148 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
2149 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
2150 * config/rs6000/linuxspe.h: Likewise.
2151 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
2152 superfluous comments.
2153 * config/rs6000/e500-double.h: Remove.
2154
2155 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
2156 default to with_cpu=8548 if --enable-e500-double, and to 8540
2157 otherwise.
2158 (set misc flags section): For powerpc*|rs6000*, remove inclusion
2159 of e500-double.h for --enable-e500-double.
2160
2161 2012-05-16 Olivier Hainque <hainque@adacore.com>
2162
2163 * Makefile.in (s-header-vars): Resort to -n instead of trailing
2164 -e d in sed invocation.
2165
2166 2012-05-16 Hans-Peter Nilsson <hp@axis.com>
2167
2168 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
2169 source-code.
2170 * doc/tm.texi: Regenerate.
2171
2172 2012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
2173
2174 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
2175
2176 2012-05-15 Jakub Jelinek <jakub@redhat.com>
2177
2178 PR target/53358
2179 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
2180 that operands[2] is either immediate, or q_regs_operand.
2181
2182 2012-05-15 Richard Guenther <rguenther@suse.de>
2183
2184 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
2185 (assemble_thunk): Likewise. Manually rename and register
2186 function arguments.
2187
2188 2012-05-15 Richard Guenther <rguenther@suse.de>
2189
2190 PR tree-optimization/53355
2191 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
2192 by constants.
2193
2194 2012-05-15 Tristan Gingold <gingold@adacore.com>
2195
2196 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
2197
2198 2012-05-15 Richard Guenther <rguenther@suse.de>
2199
2200 * gimple.c (gimple_set_modified): Move ...
2201 * gimple.h (gimple_set_modified): ... here.
2202
2203 2012-05-15 Tristan Gingold <gingold@adacore.com>
2204
2205 * ira-color.c (move_spill_restore): Add a guard.
2206
2207 2012-05-15 Tristan Gingold <gingold@adacore.com>
2208
2209 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
2210 plus_constant.
2211
2212 2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
2213
2214 * gimplify.c (gimplify_init_constructor): Do a block move for very
2215 small objects as well.
2216
2217 2012-05-15 Bernd Schmidt <bernds@codesourcery.com>
2218
2219 * ira.c (find_moveable_pseudos): Skip registers whose
2220 DF_REG_EQ_USE_COUNT is nonzero.
2221
2222 2012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
2223
2224 * doc/md.texi (fma): Define to only be applicable for single rounding.
2225
2226 2012-05-14 Uros Bizjak <ubizjak@gmail.com>
2227
2228 PR target/46098
2229 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
2230 generate target register for "load" class builtins.
2231
2232 Revert:
2233 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
2234
2235 PR target/46098
2236 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
2237 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
2238 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
2239 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
2240 (<sse>_movu<ssemodesuffix>): New expander.
2241 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
2242 (avx_movdqu<avxmodesuffix>): New expander.
2243 (*sse2_movdqu): Rename from sse2_movdqu.
2244 (sse2_movdqu): New expander.
2245
2246 2012-05-14 Marc Glisse <marc.glisse@inria.fr>
2247
2248 PR target/52607
2249 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
2250 (canonicalize_perm): ... new function.
2251 (expand_vec_perm_2vperm2f128_vshuf): New function.
2252 (ix86_expand_vec_perm_const_1): Call it.
2253
2254 2012-05-14 Andrew Pinski <apinski@cavium.com>
2255 H.J. Lu <hongjiu.lu@intel.com>
2256 Jakub Jelinek <jakub@redhat.com>
2257
2258 PR target/53315
2259 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
2260 (xbegin): Updated.
2261
2262 2012-05-14 Jakub Jelinek <jakub@redhat.com>
2263
2264 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
2265 lineno 1 the same as lineno 0 before first start file directive.
2266 (optimize_macinfo_range): Likewise.
2267
2268 * dwarf2out.c (have_macinfo): Define.
2269 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
2270 attribute, don't force empty compilation unit and don't emit any
2271 .debug_macinfo/.debug_macro section if macinfo_table is empty.
2272
2273 2012-05-14 Georg-Johann Lay <avr@gjlay.de>
2274
2275 PR target/53344
2276 * config/avr/avr.c (avr_const_address_lo16): Remove.
2277 (avr_assemble_integer): Print ".byte lo8(x)",
2278 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
2279 .warning if 3-byte address is assembled.
2280 * doc/extend.texi (AVR Named Address Spaces): Document that
2281 binutils 2.23 is needed to assemble 3-byte addresses.
2282
2283 2012-05-14 Richard Guenther <rguenther@suse.de>
2284
2285 * tree-vect-data-refs.c (vect_setup_realignment): Remove
2286 call to mark_symbols_for_renaming.
2287 (vect_permute_load_chain): Likewise.
2288 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
2289 instead of calling mark_symbols_for_renaming.
2290 * tree-vect-stmts.c (read_vector_array): Remove call to
2291 mark_symbols_for_renaming.
2292 (write_vector_array): Likewise.
2293 (vectorizable_call): Likewise.
2294 (vectorizable_store): Likewise.
2295 (vectorizable_load): Likewise.
2296 * matrix-reorg.c (transform_allocation_sites): Likewise.
2297 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2298 (create_expression_by_pieces): Likewise.
2299
2300 2012-05-14 Richard Guenther <rguenther@suse.de>
2301
2302 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
2303 of statements for renaming.
2304 (force_gimple_operand_1): Likewise, consistently for both
2305 calls to force_gimple_operand and force_gimple_operand_gsi.
2306
2307 2012-05-14 Richard Guenther <rguenther@suse.de>
2308
2309 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
2310 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
2311 to update_ssa.
2312 (expand_omp_for): Likewise.
2313 (expand_omp_for_generic): Adjust conditional add to referenced vars.
2314 Use make_rename_temp for temporaries that should be rewritten into
2315 SSA form.
2316 (expand_omp_for_static_nochunk): Likewise.
2317 (expand_omp_atomic_pipeline): Likewise.
2318
2319 2012-05-14 Richard Guenther <rguenther@suse.de>
2320
2321 PR tree-optimization/53331
2322 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
2323 strided loads.
2324 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
2325
2326 2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
2327
2328 PR 53063
2329 * doc/options.texi: (LangEnabledBy): Document it.
2330 * optc-gen.awk: Handle LangEnabledBy.
2331 * opth-gen.awk: Generate declaration for lang-specific functions.
2332 * opt-read.awk: Record lang numbers.
2333 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
2334 (lang_sanitized_name): New.
2335
2336 2012-05-14 Bernd Schmidt <bernds@codesourcery.com>
2337
2338 * attribs.c (decl_attributes): Avoid emitting a warning if
2339 ATTR_FLAG_BUILT_IN.
2340 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
2341 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
2342 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
2343 define a string "1".
2344 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
2345 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
2346 BUILT_IN_STRCPY): Use it for these functions.
2347 * postreload.c (reload_combine): Deal with SETs inside
2348 CALL_INSN_FUNCTION_USAGE.
2349 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
2350 Look for REG_RETURNED notes and use a cheap restore if possible.
2351 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
2352 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
2353 * ira-build.c (ira_create_allocno, create_cap_allocno,
2354 propagate_allocno_info, propagate_some_info_from_allocno,
2355 copy_info_to_removed_store_destination, ira_flattening): Handle it.
2356 * ira-lives.c (pseudo_regno_single_word_and_live_p,
2357 find_call_crossed_cheap_reg): New static functions.
2358 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
2359 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
2360 a REG_RETURNED note in that case.
2361 * ira.c (setup_reg_renumber): Change assert to allow cases where
2362 allocnos only cross calls for which they are cheap to restore.
2363 * ira-costs.c (ira_tune_allocno_costs): Compare
2364 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
2365 than 0.
2366 * reg-notes.def (REG_RETURNED): New note.
2367 * cse.c (cse_insn): Likewise.
2368 * sched-deps.c (sched_analyze_insn): Likewise.
2369 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
2370 * calls.c (decl_return_flags): New static function.
2371 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
2372 functions that return one of their arguments.
2373 * regcprop.c (struct kill_set_value_data): New.
2374 (kill_set_value): Interpret data as a pointer to such a struct.
2375 Do nothing if the caller wants the register to be ignored.
2376 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
2377
2378 2012-05-14 Richard Guenther <rguenther@suse.de>
2379
2380 PR tree-optimization/53340
2381 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
2382
2383 2012-05-14 Richard Guenther <rguenther@suse.de>
2384
2385 * gimplify.c (gimplify_expr): Remove odd code.
2386
2387 2012-05-14 Eric Botcazou <ebotcazou@adacore.com>
2388
2389 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
2390 into a PLUS_EXPR byte offset.
2391
2392 * tree-ssa-pre.c (can_value_number_call): Delete.
2393 (compute_avail): Skip all statements with side effects.
2394 <GIMPLE_CALL>: Skip calls to internal functions.
2395
2396 2012-05-13 Steven Bosscher <steven@gcc.gnu.org>
2397
2398 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
2399
2400 2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
2401
2402 * common.opt (Wtype-limits): Use EnabledBy.
2403
2404 2012-05-13 Uros Bizjak <ubizjak@gmail.com>
2405
2406 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
2407 (pushtf splitter): Ditto.
2408 (movtf): Ditto.
2409 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
2410 (<code>tf2): Enable for TARGET_SSE.
2411 (*absnegtf2_sse): Ditto.
2412 (copysign<mode>3): Enable TFmode for TARGET_SSE.
2413 (copysign<mode>3_const): Ditto.
2414 (copysign<mode>3_var): Ditto.
2415 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
2416 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
2417 (*<code>tf3): Ditto.
2418 * config/i386/i386.c (struct builtin_description bdesc_args)
2419 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
2420 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
2421 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
2422 Emit a normal call if SSE isn't available.
2423
2424 2012-05-13 Uros Bizjak <ubizjak@gmail.com>
2425
2426 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
2427 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
2428 (<code><mode>3): Ditto.
2429 (*andnot<mode>3): Ditto.
2430 (*andnottf3): Ditto.
2431 (*<code><mode>3): Ditto.
2432 (<code>tf3): Ditto.
2433
2434 2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
2435
2436 * optc-gen.awk: Error instead of warning for conflicting help.
2437
2438 2012-05-12 Jason Merrill <jason@redhat.com>
2439
2440 PR debug/53235
2441 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
2442 comdat types.
2443
2444 2012-05-12 Eric Botcazou <ebotcazou@adacore.com>
2445
2446 * function.c (requires_stack_frame_p): If the function can throw
2447 non-call exceptions, return true if the insn can throw internally.
2448
2449 2012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
2450
2451 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
2452
2453 2012-05-12 Uros Bizjak <ubizjak@gmail.com>
2454
2455 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
2456 ORDERED and UNORDERED conditions.
2457
2458 2012-05-11 Richard Guenther <rguenther@suse.de>
2459
2460 * tree-flow.h (referenced_var_check_and_insert): Remove.
2461 (find_new_referenced_vars): Likewise.
2462 * tree-dfa.c (referenced_var_check_and_insert): Make static.
2463 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
2464 * tree-inline.c (copy_bb): Use find_referenced_vars_in
2465 instead of find_new_referenced_vars.
2466 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
2467
2468 2012-05-11 Richard Guenther <rguenther@suse.de>
2469
2470 * tree-pass.h (pass_rest_of_compilation,
2471 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
2472 Remove.
2473 * passes.c (pass_all_optimizations, pass_postreload,
2474 pass_all_early_optimizations): Make static.
2475 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
2476 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
2477 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
2478 (delete_tree_ssa): Do not call fini_phinodes.
2479 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
2480
2481 2012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
2482
2483 PR 53063
2484 * doc/options.texi (EnabledBy): Document
2485 * opts.c: Include opts.h and options.h before tm.h.
2486 (finish_options): Do not handle some sub-options here...
2487 (common_handle_option): ... instead call common_handle_option_auto
2488 here.
2489 * optc-gen.awk: Handle EnabledBy.
2490 * opth-gen.awk: Declare common_handle_option_auto.
2491 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
2492 (Wmaybe-uninitialized): Likewise.
2493 (Wunused-but-set-variable): Likewise.
2494 (Wunused-function): Likewise.
2495 (Wunused-label): Likewise.
2496 (Wunused-value): Likewise.
2497 (Wunused-variable): Likewise.
2498 * opt-read.awk: Create opt_numbers array.
2499
2500 2012-05-11 Richard Guenther <rguenther@suse.de>
2501
2502 PR tree-optimization/53295
2503 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
2504 strides.
2505 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
2506 strides when analyzing data-references in a loop context.
2507 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
2508 non-constant strides for now.
2509 (vect_enhance_data_refs_alignment): Ignore data references
2510 that are strided loads.
2511 (vect_analyze_data_ref_access): Handle non-constant strides.
2512 (vect_check_strided_load): Verify the data-reference is a load.
2513 (vect_analyze_data_refs): Restructure to make strided load
2514 support not dependent on gather support.
2515 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
2516 when doing strided or gather loads.
2517 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
2518 integer_zerop to compare stride with zero.
2519
2520 2012-05-11 H.J. Lu <hongjiu.lu@intel.com>
2521
2522 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
2523
2524 2012-05-11 Jan Hubicka <jh@suse.cz>
2525
2526 PR bootstrap/53300
2527 * varpool.c (varpool_assemble_decl): Also output constat pool entries
2528 that output_constant_pool missed.
2529
2530 2012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
2531
2532 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
2533 MULTILIB_EXTRA_OPTS.
2534
2535 2012-05-11 Uros Bizjak <ubizjak@gmail.com>
2536
2537 PR target/53291
2538 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
2539
2540 2012-05-11 Uros Bizjak <ubizjak@gmail.com>
2541
2542 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
2543 optimization for TARGET_AVX.
2544 (*movti_internal_sse): Ditto.
2545 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
2546 (*movdi_internal): Ditto.
2547 (*movsi_internal): Ditto.
2548 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
2549 (*movdf_internal_rex64): Ditto.
2550 (*movfd_internal): Ditto.
2551 (*movsf_internal): Ditto.
2552 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
2553
2554 2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
2555
2556 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
2557 reference as size attribute.
2558
2559 2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
2560 Tristan Gingold <gingold@adacore.com>
2561
2562 * doc/md.texi (Standard Names): Document probe_stack_address.
2563 * explow.c (emit_stack_probe): Handle probe_stack_address.
2564 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
2565 (UNSPECV_PROBE_STACK_RANGE): Likewise.
2566 (probe_stack_address): New insn.
2567 (probe_stack_range): Likewise.
2568 * config/ia64/ia64.c: Include common/common-target.h.
2569 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
2570 checking is enabled.
2571 (ia64_emit_probe_stack_range): New function.
2572 (output_probe_stack_range): Likewise.
2573 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
2574 builtin stack checking is enabled.
2575 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
2576 and UNSPECV_PROBE_STACK_ADDRESS.
2577 (unknown_for_bundling_p): New predicate.
2578 (group_barrier_needed): Use important_for_bundling_p.
2579 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
2580 (issue_nops_and_insn): Likewise.
2581 (bundling): Likewise.
2582 (final_emit_insn_group_barriers): Likewise.
2583 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
2584 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
2585 (STACK_CHECK_PROTECT): Likewise.
2586 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2587
2588 2012-05-10 Jan Hubicka <jh@suse.cz>
2589
2590 * ipa-inline.c (update_all_callee_keys): Remove.
2591 (inline_small_functions): Simplify priority updating.
2592
2593 2012-05-10 Jan Hubicka <jh@suse.cz>
2594
2595 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
2596
2597 2012-05-10 Jan Hubicka <jh@suse.cz>
2598
2599 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
2600 (symtab_remove_unreachable_nodes): ... this one.
2601 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
2602 * cgraphunit.c (ipa_passes): Update.
2603 * cgraphclones.c (cgraph_materialize_all_clones): Update.
2604 * cgraph.c (cgraph_release_function_body): Only turn initial
2605 into error mark when initial was previously set.
2606 * ipa-inline.c (ipa_inline): Update.
2607 * ipa.c: Include ipa-inline.h
2608 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
2609 (enqueue_node): New function.
2610 (process_references): Update.
2611 (symtab_remove_unreachable_nodes): Cleanup.
2612 * passes.c (execute_todo, execute_one_pass): Update.
2613
2614 2012-05-10 Vladimir Makarov <vmakarov@redhat.com>
2615
2616 PR rtl-optimization/53125
2617 * ira.c (ira): Call find_moveable_pseudos and
2618 move_unallocated_pseudos if only ira_conflicts_p is true.
2619
2620 2012-05-10 Uros Bizjak <ubizjak@gmail.com>
2621
2622 * config/i386/i386.md (*movoi_internal_avx): Handle
2623 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
2624 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
2625 (*movti_internal_sse): Ditto.
2626 (*movtf_internal): Ditto.
2627 * config/i386/sse.md (ssePSmode): New mode attribute.
2628 (*move<mode>_internal): Use ssePSmode.
2629 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
2630 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
2631 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
2632 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
2633
2634 2012-05-10 Eric Botcazou <ebotcazou@adacore.com>
2635
2636 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
2637 DECL_ORIGINAL_TYPE if it is present.
2638
2639 2012-05-10 Nick Clifton <nickc@redhat.com>
2640
2641 PR target/53120
2642 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
2643 a "0" constraint to being a (match_dup 0).
2644
2645 2012-05-10 Richard Guenther <rguenther@suse.de>
2646
2647 * stor-layout.c (byte_from_pos): Amend comment.
2648
2649 2012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2650
2651 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
2652 Document requirement to call in constructors.
2653
2654 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
2655
2656 2012-05-10 Richard Guenther <rguenther@suse.de>
2657
2658 * tree.h (TYPE_IS_SIZETYPE): Remove.
2659 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
2660 (extract_muldiv_1): Likewise.
2661 * gimple.c (gtc_visit): Likewise.
2662 (gimple_types_compatible_p): Likewise.
2663 (iterative_hash_canonical_type): Likewise.
2664 (gimple_canonical_types_compatible_p): Likewise.
2665 * gimplify.c (gimplify_one_sizepos): Likewise.
2666 * print-tree.c (print_node): Likewise.
2667 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
2668
2669 2012-05-09 Uros Bizjak <ubizjak@gmail.com>
2670
2671 PR target/52908
2672 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
2673 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
2674 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
2675 instead of xop_mulv2div2di3_low.
2676 (xop_p<macs>dql): Fix vec_select selector.
2677 (xop_p<macs>dqh): Ditto.
2678 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
2679 (xop_mulv2div2di3_high): Ditto.
2680
2681 2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
2682
2683 PR c++/53289
2684 * diagnostic.h (diagnostic_context): Add last_location.
2685 * diagnostic.c (diagnostic_initialize): Initialize it.
2686 (diagnostic_show_locus): Use it.
2687
2688 2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
2689
2690 * doc/extend.texi (Function Attributes): Point xref to section
2691 about Pragmas.
2692
2693 2012-05-09 Uros Bizjak <ubizjak@gmail.com>
2694
2695 * config/i386/i386.c (*movdf_internal_rex64): Remove
2696 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
2697 Calculate "mode" attribute according to
2698 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
2699 (*movdf_internal): Ditto.
2700
2701 2012-05-09 Uros Bizjak <ubizjak@gmail.com>
2702
2703 PR target/44141
2704 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
2705 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
2706 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2707 or when optimizing for size.
2708 * config/i386/sse.md (*mov<mode>_internal): Remove
2709 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
2710 Calculate "mode" attribute according to optimize_function_for_size_p
2711 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
2712 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
2713 depending on the mode of the instruction. Calculate "mode" attribute
2714 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
2715 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
2716 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
2717
2718 2012-05-09 Georg-Johann Lay <avr@gjlay.de>
2719
2720 PR target/53256
2721 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
2722 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
2723 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
2724 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
2725 (expand_prologue): Move initialization of cfun->machine->is_naked,
2726 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
2727 (avr_set_current_function): ...this new static function.
2728 (TARGET_SET_CURRENT_FUNCTION): New define.
2729 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
2730 checking attributes of current_function_decl.
2731 (avr_regs_to_save): Ditto.
2732 (signal_function_p): Rename to avr_signal_function_p.
2733 (interrupt_function_p): Rename to avr_interrupt_function_p.
2734
2735 * doc/extend.texi (Function Attributes): Better explanation of
2736 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
2737 alphabetical order.
2738
2739 2012-05-09 Michael Matz <matz@suse.de>
2740
2741 PR tree-optimization/53185
2742 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
2743 peeling when we see strided loads.
2744
2745 2012-05-09 Matthias Klose <doko@ubuntu.com>
2746
2747 * gcc-ar.c (main): Don't check for execute bits for the plugin.
2748
2749 2012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2750
2751 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
2752 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
2753 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
2754 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
2755 (USE_LOAD_POST_INCREMENT): Define.
2756 (USE_LOAD_PRE_INCREMENT): Define.
2757 (USE_LOAD_POST_DECREMENT): Define.
2758 (USE_LOAD_PRE_DECREMENT): Define.
2759 (USE_STORE_PRE_DECREMENT): Define.
2760 (USE_STORE_PRE_INCREMENT): Define.
2761 (USE_STORE_POST_DECREMENT): Define.
2762 (USE_STORE_POST_INCREMENT): Define.
2763 (arm_auto_incmodes): Add enumeration.
2764 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
2765 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
2766
2767 2012-05-09 Jakub Jelinek <jakub@redhat.com>
2768
2769 PR tree-optimization/53226
2770 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
2771 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
2772 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
2773 doesn't need to be revisited, look for earliest stmt with
2774 !gimple_plf (stmt, GF_PLF_1) if something changed.
2775
2776 2012-05-09 Terry Guo <terry.guo@arm.com>
2777
2778 * genmultilib: Update copyright dates.
2779 * doc/fragments.texi: Ditto.
2780
2781 2012-05-09 Terry Guo <terry.guo@arm.com>
2782
2783 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
2784 * genmultilib (MULTILIB_REQUIRED): New.
2785 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
2786
2787 2012-05-09 Richard Guenther <rguenther@suse.de>
2788
2789 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
2790 (vect_do_peeling_for_loop_bound): Likewise.
2791 (vect_do_peeling_for_alignment): Likewise.
2792 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
2793 (vect_do_peeling_for_loop_bound): Get check_profitability and
2794 threshold as parameters.
2795 (vect_do_peeling_for_alignment): Likewise.
2796 (vect_loop_versioning): Likewise.
2797 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
2798 and threshold here. Control where to put the check here.
2799
2800 2012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
2801
2802 PR middle-end/53249
2803 * dwarf2out.h (get_address_mode): Move declaration to...
2804 * rtl.h: ...here.
2805 * dwarf2out.c (get_address_mode): Move definition to...
2806 * rtlanal.c: ...here.
2807 * var-tracking.c (get_address_mode): Delete.
2808 * combine.c (find_split_point): Use get_address_mode instead of
2809 targetm.addr_space.address_mode.
2810 * cselib.c (cselib_record_sets): Likewise.
2811 * dse.c (canon_address, record_store): Likewise.
2812 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
2813 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
2814 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
2815 (expand_expr_real_1): Likewise.
2816 * ifcvt.c (noce_try_cmove_arith): Likewise.
2817 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
2818 * reload.c (find_reloads): Likewise.
2819 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
2820 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
2821
2822 2012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
2823
2824 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
2825 information from the instruction produced.
2826
2827 2012-05-09 Richard Guenther <rguenther@suse.de>
2828
2829 * stor-layout.c (bit_from_pos): Document.
2830 (byte_from_pos): Likewise. Optimize.
2831 (pos_from_bit): Likewise.
2832 (normalize_offset): Use pos_from_bit instead of replicating it.
2833
2834 2012-05-09 Alan Modra <amodra@gmail.com>
2835
2836 PR target/53271
2837 * config/rs6000/rs6000.c (gen_frame_set): New function.
2838 (gen_frame_load, gen_frame_store): New functions.
2839 (rs6000_savres_rtx): Use the above.
2840 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
2841 Correct mode used for CR2 in save/restore_world patterns.
2842 Don't emit instructions for eh_return frame unwind reg info.
2843
2844 2012-05-08 Jan Hubicka <jh@suse.cz>
2845
2846 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
2847 with VALUE_EXPR.
2848 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
2849 are removable.
2850 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
2851 need to wrapup.
2852 (compile_file): Do not output variables.
2853 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
2854 output it.
2855 * langhooks.c: Include timevar.h
2856 (write_global_declarations): Finalize compilation unit after wrapup;
2857 set timevars correctly.
2858 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
2859 not to be added to varpool.
2860 * varpool.c (varpool_assemble_decl): Sanity check that we are called
2861 only on cases where it makes sense; skip constant pool and value expr
2862 vars.
2863
2864 2012-05-08 David S. Miller <davem@davemloft.net>
2865
2866 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
2867 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
2868 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
2869
2870 2012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
2871
2872 PR rtl-optimization/53278
2873 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
2874 speed_p code from earlier patch.
2875
2876 2012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2877
2878 PR target/51244
2879 * config/sh/sh.md (*branch_true, *branch_false): New insns.
2880
2881 2012-05-08 Teresa Johnson <tejohnson@google.com>
2882
2883 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
2884 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
2885
2886 2012-05-08 Jan Hubicka <jh@suse.cz>
2887
2888 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
2889 (cgraph_create_node_1): Rename to ...
2890 (cgraph_create_empty_node): ... this one; export.
2891 (cgraph_create_node): Update.
2892 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
2893 (cgraph_create_edge_including_clones): Likewise.
2894 (cgraph_find_replacement_node): Likewise.
2895 (cgraph_clone_edge): Likewise.
2896 (cgraph_clone_node): Likewise.
2897 (clone_function_name): Likewise.
2898 (cgraph_create_virtual_clone): Likewise.
2899 (cgraph_remove_node_and_inline_clones): Likewise.
2900 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
2901 * cgraph.h: Reorder declarations so they match file of origin.
2902 (cgraph_create_empty_node): Declare.
2903 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
2904 (cgraph_copy_node_for_versioning): Likewise.
2905 (cgraph_function_versioning): Likewise.
2906 (cgraph_materialize_clone): Likewise.
2907 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
2908 (cgraph_materialize_all_clones): Likewise.
2909 * cgraphclones.c: New file.
2910 * Makefile.in: Update for cgraphclones.
2911
2912 2012-05-08 Uros Bizjak <ubizjak@gmail.com>
2913
2914 PR target/53176
2915 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
2916 (ix86_rtx_costs): Handle SET.
2917
2918 2012-05-08 Michael Matz <matz@suse.de>
2919
2920 * basic-block.h (struct rtl_bb_info): Remove visited member and
2921 move head_ member to ...
2922 (struct basic_block_def.basic_block_il_dependent): ... the new
2923 member x, replacing but containing old member rtl.
2924 (enum bb_flags): New BB_VISITED flag.
2925 (BB_HEADER, BB_FOOTER): New macros.
2926
2927 * jump.c (mark_all_labels): Adjust.
2928 * cfgcleanup.c (try_optimize_cfg): Adjust.
2929 * cfglayout.c (record_effective_endpoints): Adjust.
2930 (relink_block_chain): Ditto (and don't fiddle with visited).
2931 (fixup_reorder_chain): Adjust.
2932 (fixup_fallthru_exit_predecessor): Ditto.
2933 (cfg_layout_duplicate_bb): Ditto.
2934 * combine.c (update_cfg_for_uncondjump): Adjust.
2935 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
2936 (bb_visited_trace): New accessor.
2937 (mark_bb_visited): Move in front.
2938 (rotate_loop): Use bb_visited_trace.
2939 (find_traces_1_round): Ditto.
2940 (emit_barrier_after): Ditto.
2941 (copy_bb): Ditto, and initialize visited on resize.
2942 (reorder_basic_blocks): Initize visited member.
2943 (duplicate_computed_gotos): Clear bb flags at start, use
2944 BB_VISITED flags.
2945
2946 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
2947 (rtl_verify_flow_info_1): Ditto.
2948 (cfg_layout_split_block): Ditto.
2949 (cfg_layout_delete_block): Ditto.
2950 (cfg_layout_merge_blocks): Ditto.
2951 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
2952
2953 2012-05-08 Hans-Peter Nilsson <hp@axis.com>
2954
2955 PR target/53272
2956 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
2957 when a constant source operand matches an "I" constraint, the "no
2958 CC0 change" applies to a register-destination only, not a
2959 strict_low_part-destination.
2960
2961 2012-05-08 Richard Guenther <rguenther@suse.de>
2962
2963 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
2964 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
2965
2966 2012-05-08 Georg-Johann Lay <avr@gjlay.de>
2967
2968 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
2969
2970 * doc/avr-mmcu.texi: New auto-generated file.
2971 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
2972 to document all valid -mmcu= arguments.
2973
2974 * config/avr/avr.h (arch_info_s): New struct definition.
2975 * config/avr/avr-devices.c (avr_texinfo): New variable.
2976 * config/avr/gen-avr-mmcu-texi.c: New file.
2977 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
2978
2979 2012-05-08 Dehao Chen <dehao@google.com>
2980
2981 * predict.c (find_qualified_ssa_name): New.
2982 (find_ssa_name_in_expr): New.
2983 (find_ssa_name_in_assign_stmt): New.
2984 (is_comparison_with_loop_invariant_p): New.
2985 (is_bound_expr_similar): New.
2986 (predict_iv_comparison): New.
2987 (predict_loops): Add heuristic for loop-nested branches that compare an
2988 induction variable to a loop bound variable.
2989 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
2990
2991 2012-05-08 Uros Bizjak <ubizjak@gmail.com>
2992
2993 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
2994 TARGET_BDVER2 defines where appropriate.
2995
2996 2012-05-07 Eric Botcazou <ebotcazou@adacore.com>
2997
2998 * configure.ac (PLUGIN_LD): Rename into...
2999 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
3000 * config.in: Regenerate.
3001 * configure: Likewise.
3002 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
3003
3004 2012-05-07 Eric Botcazou <ebotcazou@adacore.com>
3005
3006 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
3007 computation using the precision of the index type.
3008 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
3009 (fold_array_ctor_reference): Do index computations in the index type.
3010
3011 2012-05-07 Georg-Johann Lay <avr@gjlay.de>
3012
3013 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
3014 down to plus_constant.
3015 (expand_epilogue): Ditto.
3016
3017 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
3018
3019 * postreload.c (reload_cse_regs): Make static.
3020 * reload.h (reload_cse_regs): Remove prototype.
3021
3022 2012-05-07 Richard Henderson <rth@redhat.com>
3023
3024 * config/alpha/alpha.md (clear_cache): New pattern.
3025
3026 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
3027
3028 PR middle-end/53245
3029 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
3030 is folded to a type boundary value, verify that the resulting case
3031 label is still a care range.
3032
3033 2012-05-07 Uros Bizjak <ubizjak@gmail.com>
3034
3035 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
3036 only for TARGET_GENERIC, when not optimizing for size.
3037 (*ffs<mode>_1): Ditto.
3038
3039 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
3040
3041 * tree-cfg.c (verify_gimple_switch): Tighten checks.
3042
3043 2012-05-07 Jakub Jelinek <jakub@redhat.com>
3044
3045 PR tree-optimization/53239
3046 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
3047 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
3048
3049 2012-05-07 Richard Guenther <rguenther@suse.de>
3050
3051 PR tree-optimization/53195
3052 * tree-inline.c (setup_one_parameter): Properly add referenced
3053 vars from the parameters new known value.
3054
3055 2012-05-07 Steven Bosscher <steven@gcc.gnu.org>
3056
3057 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
3058 (sched_branch_type): Remove.
3059 (m68k_sched_md_init_global): Don't allocate it.
3060 (m68k_sched_md_finish_global): Don't free it.
3061 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
3062 * config/m68k/m68k.md: Set the type of insns using
3063 m68k_sched_branch_type to bcc directly.
3064
3065 2012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3066
3067 * config/sol2.c (solaris_override_options): New function.
3068 * config/sol2-protos.h (solaris_override_options): Declare.
3069 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
3070
3071 2012-05-07 Richard Guenther <rguenther@suse.de>
3072
3073 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
3074 whether we failed to compute data dependences.
3075 (loop_prefetch_arrays): Fail if we failed.
3076
3077 2012-05-07 Uros Bizjak <ubizjak@gmail.com>
3078 Paolo Bonzini <bonzini@gnu.org>
3079
3080 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
3081 Emit bsf when optimizing for size.
3082 (*ffs<mode>_1): Ditto.
3083
3084 2012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
3085
3086 PR target/53250
3087 * config/sh/sh.c (sh_rtx_costs): Handle SET.
3088
3089 2012-05-06 Uros Bizjak <ubizjak@gmail.com>
3090
3091 PR target/53227
3092 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
3093 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
3094 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
3095 (bswapsi2): Ditto.
3096 (*bswapdi2_doubleword): New insn pattern.
3097 (*bswap<mode>2): Rename from *bswap<mode>2_1.
3098
3099 2012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
3100
3101 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
3102 (mips_set_reg_reg_cost): Likewise.
3103 (mips_rtx_costs): Handle SET.
3104
3105 2012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
3106
3107 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
3108 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
3109 to compute the cost of moves. Set the mode of the target register.
3110
3111 2012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
3112
3113 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
3114 plus_constant function.
3115 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
3116 that the mode is sensible.
3117 (use_anchored_address, round_push, allocate_dynamic_stack_space)
3118 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
3119 plus_constant.
3120
3121 * alias.c (canon_rtx): Likewise.
3122 (init_alias_analysis): Likewise.
3123 * builtins.c (expand_builtin_return_addr)
3124 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
3125 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
3126 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
3127 (expand_builtin_stpcpy): Likewise.
3128 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
3129 (compute_argument_addresses, internal_arg_pointer_based_exp)
3130 (expand_call, emit_library_call_value_1): Likewise.
3131 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
3132 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
3133 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
3134 * cse.c (insert_const_anchor, find_reg_offset_for_const)
3135 (use_related_value, fold_rtx): Likewise.
3136 * cselib.c (cselib_subst_to_values): Likewise.
3137 * dse.c (record_store, check_mem_read_rtx): Likewise.
3138 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
3139 * emit-rtl.c (adjust_address_1): Likewise.
3140 * except.c (sjlj_emit_function_enter)
3141 (expand_builtin_extract_return_addr)
3142 (expand_builtin_frob_return_addr): Likewise.
3143 * expmed.c (expand_divmod): Likewise.
3144 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
3145 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
3146 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
3147 * function.c (assign_stack_local_1)
3148 (instantiate_virtual_regs_in_rtx): Likewise.
3149 * optabs.c (prepare_cmp_insn): Likewise.
3150 * recog.c (offsettable_address_addr_space_p): Likewise.
3151 * reload.c (find_reloads_address, form_sum)
3152 (find_reloads_subreg_address): Likewise.
3153 * reload1.c (init_reload, eliminate_regs_1)
3154 (eliminate_regs_in_insn): Likewise.
3155 * simplify-rtx.c (simplify_unary_operation_1)
3156 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
3157 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
3158 (vt_add_function_parameter): Likewise.
3159
3160 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
3161 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
3162 * config/alpha/alpha.c (alpha_legitimize_address_1)
3163 (get_unaligned_address, alpha_expand_unaligned_load)
3164 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
3165 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
3166 (alpha_expand_builtin_establish_vms_condition_handler)
3167 (alpha_setup_incoming_varargs, emit_frame_store_1)
3168 (alpha_expand_prologue, alpha_expand_epilogue)
3169 (alpha_use_linkage): Likewise.
3170 * config/alpha/alpha.md: Likewise.
3171
3172 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
3173 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
3174 (thumb_legitimize_address, arm_gen_load_multiple_1)
3175 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
3176 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
3177 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
3178 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
3179 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
3180 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
3181 (thumb_expand_movmemqi, arm_set_return_address)
3182 (thumb_set_return_address): Likewise.
3183 * config/arm/arm.md: Likewise.
3184
3185 * config/avr/avr.c (avr_incoming_return_addr_rtx)
3186 (avr_prologue_setup_frame, expand_epilogue)
3187 (avr_const_address_lo16): Likewise.
3188
3189 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
3190 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
3191 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
3192 (bfin_output_mi_thunk): Likewise.
3193
3194 * config/c6x/c6x.c (c6x_initialize_trampoline)
3195 (c6x_output_mi_thunk): Likewise.
3196
3197 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
3198 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
3199
3200 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
3201 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
3202 (cris_emit_movem_store, cris_trampoline_init): Likewise.
3203 * config/cris/cris.md: Likewise.
3204
3205 * config/darwin.c (machopic_indirect_data_reference)
3206 (machopic_legitimize_pic_address): Likewise.
3207
3208 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
3209 (epiphany_expand_prologue, epiphany_expand_epilogue)
3210 (epiphany_trampoline_init): Likewise.
3211 * config/epiphany/epiphany.md: Likewise.
3212
3213 * config/fr30/fr30.c (fr30_move_double): Likewise.
3214
3215 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
3216 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
3217 (frv_index_memory, unspec_got_name, frv_find_base_term)
3218 (frv_output_dwarf_dtprel): Likewise.
3219
3220 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
3221 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
3222
3223 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
3224 * config/i386/i386.c (setup_incoming_varargs_64)
3225 (setup_incoming_varargs_ms_64, choose_baseaddr)
3226 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
3227 (ix86_emit_probe_stack_range, ix86_expand_prologue)
3228 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
3229 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
3230 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
3231 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
3232 (x86_output_mi_thunk): Likewise.
3233 * config/i386/i386.md: Likewise.
3234
3235 * config/ia64/ia64.c (ia64_expand_load_address)
3236 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
3237 (do_spill, ia64_trampoline_init): Likewise.
3238
3239 * config/iq2000/iq2000.c (iq2000_va_start)
3240 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
3241 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
3242 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
3243
3244 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
3245
3246 * config/m32c/m32c.c (m32c_return_addr_rtx)
3247 (m32c_expand_insv): Likewise.
3248
3249 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
3250 (m32r_legitimize_pic_address, m32r_print_operand)
3251 (m32r_print_operand_address): Likewise.
3252
3253 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
3254 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
3255 (EH_RETURN_HANDLER_RTX): Likewise.
3256 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
3257 (m68k_expand_epilogue, legitimize_pic_address)
3258 (m68k_output_mi_thunk): Likewise.
3259 * config/m68k/m68k.md: Likewise.
3260
3261 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3262 (mcore_expand_epilog): Likewise.
3263 * config/mcore/mcore.md: Likewise.
3264
3265 * config/mep/mep.c (mep_allocate_initial_value)
3266 (mep_expand_prologue, mep_expand_epilogue): Likewise.
3267
3268 * config/microblaze/microblaze.c (double_memory_operand)
3269 (microblaze_block_move_loop): Likewise.
3270
3271 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
3272 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
3273 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
3274 (mips_expand_prologue, mips_epilogue_set_cfa)
3275 (mips_expand_epilogue): Likewise.
3276 * config/mips/mips.md: Likewise.
3277
3278 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
3279 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
3280
3281 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
3282 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
3283
3284 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3285 (EH_RETURN_HANDLER_RTX): Likewise.
3286 * config/moxie/moxie.c (moxie_static_chain): Likewise.
3287
3288 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
3289 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
3290 (pa_return_addr_rtx, hppa_builtin_saveregs)
3291 (pa_trampoline_init): Likewise.
3292 * config/pa/pa.md: Likewise.
3293
3294 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
3295
3296 * config/picochip/picochip.c (picochip_static_chain): Likewise.
3297
3298 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
3299 * config/rs6000/rs6000.c (rs6000_legitimize_address)
3300 (setup_incoming_varargs, print_operand, rs6000_return_addr)
3301 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
3302 (rs6000_emit_epilogue)
3303 (rs6000_machopic_legitimize_pic_address): Likewise.
3304
3305 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
3306
3307 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
3308 (DYNAMIC_CHAIN_ADDRESS): Likewise.
3309 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
3310 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
3311 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
3312 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
3313 (s390_emit_epilogue, s390_function_profiler): Likewise.
3314 * config/s390/s390.md: Likewise.
3315
3316 * config/score/score.c (score_add_offset, score_prologue): Likewise.
3317
3318 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
3319 (sh_output_mi_thunk): Likewise.
3320 * config/sh/sh.md: Likewise.
3321
3322 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
3323 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
3324 * config/sparc/sparc.c (sparc_legitimize_pic_address)
3325 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
3326 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
3327 (emit_and_preserve): Likewise.
3328 * config/sparc/sparc.md: Likewise.
3329
3330 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
3331 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
3332 (spu_setup_incoming_varargs, ea_load_store_inline)
3333 (spu_expand_load): Likewise.
3334
3335 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
3336 (combine_bnp): Likewise.
3337
3338 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
3339 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
3340 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
3341
3342 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
3343 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
3344 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
3345
3346 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
3347 * config/v850/v850.md: Likewise.
3348
3349 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
3350 (EH_RETURN_HANDLER_RTX): Likewise.
3351 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
3352 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
3353 (print_operand_address, vax_trampoline_init): Likewise.
3354
3355 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
3356 (xtensa_function_value_regno_p): Likewise.
3357
3358 2012-05-04 Andrew Pinski <apinski@cavium.com>
3359
3360 * expr.c (get_def_for_expr_class): New function.
3361 (convert_tree_comp_to_rtx): New function.
3362 (expand_cond_expr_using_cmove): New function.
3363 (expand_expr_real_2 <case COND_EXPR>): Call
3364 expand_cond_expr_using_cmove first and return if it succeeds.
3365 Remove the check for HAVE_conditional_move since we should have
3366 already converted it to a conditional move.
3367 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
3368 modes of DImode for 32bits and TImode.
3369
3370 2012-05-04 Steven Bosscher <steven@gcc.gnu.org>
3371
3372 PR other/29442
3373 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
3374 (print_md_ptr_loc, print_c_condition): Use them.
3375 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
3376 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
3377 attr_file, dfa_file, latency_file): New global variables.
3378 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
3379 write_upcase, write_indent, write_length_unit_log, write_test_expr,
3380 write_attr_get, write_insn_cases, write_eligible_delay,
3381 write_const_num_delay_slots): Accept FILE pointer and toss it around.
3382 Update all callers.
3383 (write_header, open_outfile, handle_arg): New funcions.
3384 (make_automaton_attrs): Write prototypes as extern to the output
3385 files.
3386 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
3387 names from the command line. Open the output files and write out
3388 internal functions for DFA functions to dfa_file_name, insn latency
3389 functions to latency_file_name, and everything else to attr_file.
3390 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
3391 (BACKEND): Build libbackend first.
3392 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
3393 (.PRECIOUS): Likewise.
3394 (insn-dfatab.o): New rule.
3395 (insn-latencytab.o): New rule.
3396 (simple_rtl_generated_c): Do not include insn-attrtab.c.
3397 (s-attrtab): New rule.
3398
3399 2012-05-04 Steven Bosscher <steven@gcc.gnu.org>
3400
3401 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
3402 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
3403 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
3404 * reorg.c (get_jump_flags): Do not set the removed flags.
3405
3406 * doc/md.texi (attr_flag): Update for abovementioned changes.
3407
3408 2012-05-04 Uros Bizjak <ubizjak@gmail.com>
3409
3410 PR target/53228
3411 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
3412 (TARGET_CMOV): Rename from TARGET_CMOVE.
3413 (TARGET_CMOVE): New define.
3414 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
3415 Do not set TARGET_CMOVE here.
3416
3417 2012-05-04 Dodji Seketeli <dodji@redhat.com>
3418
3419 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
3420 * opts.c (finish_options): Activate -Wunused-local-typedefs if
3421 -Wunused is activated.
3422 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
3423
3424 2012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3425
3426 * config/s390/s390.md (*movmem_short, *clrmem_short)
3427 (*cmpmem_short): Move the mode check from the insn condition to
3428 the match_scratch.
3429
3430 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
3431
3432 PR tree-optimization/52633
3433 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
3434 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
3435 (vect_recog_over_widening_pattern): Remove handling of code that was
3436 already detected as over-widening pattern. Remove special handling
3437 of "unsigned" cases. Instead, support general case of conversion
3438 of the shift result to another type.
3439
3440 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
3441
3442 * tree-vect-patterns.c (vect_single_imm_use): New function.
3443 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
3444 (vect_recog_over_widening_pattern): Likewise.
3445 (vect_recog_widen_shift_pattern): Likewise.
3446
3447 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
3448
3449 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
3450 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
3451 (vect_recog_widen_mult_pattern): Likewise.
3452 (vect_operation_fits_smaller_type): Likewise.
3453 (vect_recog_over_widening_pattern): Likewise.
3454 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
3455
3456 2012-05-04 Richard Guenther <rguenther@suse.de>
3457
3458 PR lto/50602
3459 * lto-wrapper.c (merge_and_complain): Complain about mismatches
3460 of -freg-struct-return and -fpcc-struct-return.
3461 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
3462 from the input file options and ignore those from the link
3463 command line.
3464
3465 2012-05-04 Richard Guenther <rguenther@suse.de>
3466
3467 PR tree-optimization/53168
3468 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
3469 memory reads when the result is a constant we can pun.
3470
3471 2012-05-04 Richard Guenther <rguenther@suse.de>
3472
3473 * common.opt (flto-report): Do not mark as Optimization.
3474
3475 2012-05-04 Eric Botcazou <ebotcazou@adacore.com>
3476
3477 PR target/48496
3478 * recog.c (constrain_operands): If extra constraints are present, also
3479 accept pseudo-registers with equivalent memory locations during reload.
3480
3481 2012-05-04 Olivier Hainque <hainque@adacore.com>
3482
3483 * collect2.c (may_unlink_output_file): New global.
3484 (maybe_unlink): Honor it.
3485 * collect2.h: Add extern for it.
3486 * tlink.c (do_tlink): Set it to true if the link succeeded.
3487
3488 2012-05-04 Olivier Hainque <hainque@adacore.com>
3489
3490 * gcc.c (eval_spec_function): Finalize/restore the current string
3491 obstack state as part of the context push/pop operations.
3492
3493 2012-05-04 Bin Cheng <bin.cheng@arm.com>
3494
3495 PR rtl-optimization/52804
3496 * reload1.c (reload_reg_reaches_end_p): Check whether successor
3497 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
3498 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
3499 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
3500 RELOAD_FOR_OUTADDR_ADDRESS.
3501
3502 2012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
3503
3504 PR c++/24985
3505 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
3506 for macro expansion.
3507
3508 2012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3509
3510 * flags.h (flag_permissive): Do not declare.
3511 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
3512 option specially.
3513 * toplev.c (flag_permissive): Do not define.
3514 * c-tree.h (system_header_p): Delete unused.
3515
3516 2012-05-03 David S. Miller <davem@davemloft.net>
3517
3518 PR target/52684
3519 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
3520 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
3521 (sparc_emit_float_lib_cmp): Likewise.
3522
3523 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3524
3525 PR target/53199
3526 * config/rs6000/rs6000.md (bswapdi splitters): If
3527 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
3528 default) is used, generate an alternate sequence that does not
3529 depend on using indexed addressing.
3530
3531 2012-05-03 Jason Merrill <jason@redhat.com>
3532
3533 * gengtype.c (write_types): Fix warning message.
3534 (write_local): Likewise.
3535
3536 2012-05-02 Jason Merrill <jason@redhat.com>
3537
3538 * dwarf2out.c (struct external_ref, build_local_stub): New.
3539 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
3540 (optimize_external_refs, optimize_external_refs_1): New.
3541 (change_AT_die_ref): New.
3542 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
3543 (build_abbrev_table): Take the external refs hashtable.
3544 (output_comp_unit): Get it from optimize_external_refs and pass it in.
3545
3546 2012-05-03 Jan Hubicka <jh@suse.cz>
3547
3548 PR middle-end/53093
3549 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
3550
3551 2012-05-03 Jan Hubicka <jh@suse.cz>
3552
3553 PR middle-end/53106
3554 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
3555
3556 2012-05-03 Jason Merrill <jason@redhat.com>
3557
3558 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
3559 use_debug_types to discriminate the die_id union.
3560 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
3561 (build_abbrev_table, output_die): Likewise.
3562 (prune_unused_types_walk_attribs): Likewise.
3563 (generate_type_signature, copy_declaration_context): Set it.
3564 (remove_child_or_replace_with_skeleton): Set it.
3565 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
3566 check use_debug_types.
3567 (dwarf2out_finish): Do break_out_includes after .debug_types.
3568
3569 2012-05-03 Jason Merrill <jason@redhat.com>
3570
3571 * dwarf2out.c (modified_type_die): Use scope_die_for.
3572 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
3573 (uses_local_type_r, uses_local_type): New.
3574 (scope_die_for): Keep a type that uses a local type in local scope.
3575 Use get_context_die for namespace and type scope.
3576
3577 2012-05-03 Jason Merrill <jason@redhat.com>
3578
3579 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
3580 pc thunk.
3581 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
3582 (dwarf2out_finish): Likewise.
3583
3584 2012-05-03 Martin Jambor <mjambor@suse.cz>
3585
3586 * builtins.c (get_object_alignment_1): Return whether we can determine
3587 the alignment or conservatively assume byte alignment. Return the
3588 alignment by reference. Use get_pointer_alignment_1 for dereference
3589 alignment.
3590 (get_pointer_alignment_1): Return whether we can determine the
3591 alignment or conservatively assume byte alignment. Return the
3592 alignment by reference. Use get_ptr_info_alignment to get SSA name
3593 alignment.
3594 (get_object_alignment): Update call to get_object_alignment_1.
3595 (get_object_or_type_alignment): Likewise, fall back to type alignment
3596 only when it returned false.
3597 (get_pointer_alignment): Update call to get_pointer_alignment_1.
3598 * fold-const.c (get_pointer_modulus_and_residue): Update call to
3599 get_object_alignment_1.
3600 * ipa-prop.c (ipa_modify_call_arguments): Update call to
3601 get_pointer_alignment_1.
3602 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
3603 of MEM_REF or TARGET_MEM_REF only when it returns false.
3604 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
3605 get_object_alignment_1.
3606 (ccp_finalize): Use set_ptr_info_alignment.
3607 * tree.h (get_object_alignment_1): Update declaration.
3608 (get_pointer_alignment_1): Likewise.
3609 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
3610 (dump_gimple_stmt): Likewise.
3611 * tree-flow.h (ptr_info_def): Updated comments of fields align and
3612 misalign.
3613 (get_ptr_info_alignment): Declared.
3614 (mark_ptr_info_alignment_unknown): Likewise.
3615 (set_ptr_info_alignment): Likewise.
3616 (adjust_ptr_info_misalignment): Likewise.
3617 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
3618 and set alignment of SSA names.
3619 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
3620 mark_ptr_info_alignment_unknown.
3621 * tree-ssanames.c (get_ptr_info_alignment): New function.
3622 (mark_ptr_info_alignment_unknown): Likewise.
3623 (set_ptr_info_alignment): Likewise.
3624 (adjust_ptr_info_misalignment): Likewise.
3625 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
3626 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3627 Likewise.
3628 (bump_vector_ptr): Likewise.
3629 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
3630 (vectorizable_store): Likewise.
3631 (vectorizable_load): Likewise.
3632
3633 2012-05-03 Michael Matz <matz@suse.de>
3634
3635 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
3636 in front of basic_block_def.
3637 (struct basic_block_def): Make il.gimple the full struct, not a
3638 pointer.
3639 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
3640
3641 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
3642 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
3643 NULL il.gimple, which can't happen anymore.
3644 * gimple.h (bb_seq): il.gimple can't be NULL.
3645 (bb_seq_add): Ditto.
3646 (set_bb_seq): Adjust.
3647 (gsi_start_bb, gsi_last_bb): Tidy.
3648 * lto-streamer-in.c (make_new_block): Don't zero members that
3649 are zeroed already, don't allocate a gimple_bb_info.
3650 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
3651 (remove_bb): Clear all il.gimple members.
3652 (gimple_verify_flow_info): Adjust for flat il.gimple.
3653 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
3654
3655 * coretypes.h (const_gimple_seq): Remove typedef.
3656 * gimple.h (gimple_seq_first): Take gimple_seq.
3657 (gimple_seq_first_stmt): Ditto.
3658 (gimple_seq_last): Ditto.
3659 (gimple_seq_last_stmt): Ditto.
3660 (gimple_seq_empty_p): Ditto.
3661
3662 2012-05-03 Richard Guenther <rguenther@suse.de>
3663
3664 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
3665 operations.
3666 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
3667 (compute_avail): Do not add possibly trapping operations to
3668 EXP_GEN if they might not be executed in the block.
3669
3670 2012-05-03 Uros Bizjak <ubizjak@gmail.com>
3671
3672 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
3673
3674 2012-05-03 Steven Bosscher <steven@gcc.gnu.org>
3675
3676 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
3677 information as early as possible. Update dominance info instead of
3678 discarding it.
3679
3680 2012-05-03 Richard Guenther <rguenther@suse.de>
3681
3682 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
3683 (union_contains_value): Remove.
3684 (vro_valid_in_sets): Likewise.
3685 (op_valid_in_sets): New function.
3686 (valid_in_sets): Use op_valid_in_sets.
3687 (insert_into_preds_of_block): Move dumping ...
3688 (do_regular_insertion): ... here.
3689 (do_partial_partial_insertion): ... and here. Dump that
3690 we've found a partial partial redundancy.
3691 (insert): Dump the current insert iteration.
3692
3693 2012-05-03 Jakub Jelinek <jakub@redhat.com>
3694
3695 PR plugins/53126
3696 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
3697 append program name to it and pass that as first argument
3698 to make_relative_prefix. Always pass standard_libexec_prefix
3699 as last argument to make_relative_prefix. If
3700 make_relative_prefix returns NULL, fall back to
3701 standard_libexec_prefix.
3702
3703 PR debug/53174
3704 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
3705 removed.
3706
3707 PR target/53187
3708 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
3709 mode, return that mode.
3710
3711 PR target/53194
3712 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
3713 define __ATOMIC_HLE_* macros here.
3714 (ix86_target_macros): But here, using cpp_define_formatted.
3715
3716 2012-05-03 Richard Guenther <rguenther@suse.de>
3717
3718 PR tree-optimization/53144
3719 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
3720 Rename to ...
3721 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
3722 with SSA name values.
3723 (vn_reference_lookup_3): Adjust callers.
3724
3725 2012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3726
3727 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
3728 has_fma4 for AMD processors with both fma3 and fma4 support.
3729
3730 2012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
3731
3732 PR target/53201
3733 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
3734 "-mno-hle".
3735
3736 2012-05-03 Michael Matz <matz@suse.de>
3737
3738 PR bootstrap/53197
3739 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
3740 (dse_enter_block): Properly iterate the whole sequence even
3741 if the last statement was removed.
3742
3743 2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
3744
3745 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
3746 unset flag_jump_tables.
3747 * stmt.c (expand_case): Remove special flag_pic case conditional
3748 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
3749
3750 2012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
3751
3752 * common/config/s390/s390-common.c (s390_option_optimization_table):
3753 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
3754 default when optimizing.
3755
3756 2012-05-02 Martin Jambor <mjambor@suse.cz>
3757
3758 PR lto/52605
3759 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
3760 of a variable when the contect is a function.
3761
3762 2012-05-02 Michael Matz <matz@suse.de>
3763
3764 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
3765 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
3766 (const_gimple_seq_node): Remove.
3767 (gimple_seq_node): Typedef as gimple.
3768 (struct gimple_statement_base): Add next and prev members,
3769 adjust all WORD markers in using structs.
3770 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
3771 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
3772 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
3773 gimple are the same.
3774 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
3775 gimple_seq, adjust.
3776 (gimple_init_singleton): New function.
3777 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
3778 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
3779 (gsi_stmt): Adjust.
3780 (gsi_stmt_ptr): Remove.
3781 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
3782
3783 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
3784 again, adjust for above changes.
3785 (update_call_edge_frequencies): Adjust for above changes.
3786 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
3787 (gsi_insert_seq_nodes_after): Ditto.
3788 (gsi_split_seq_after): Ditto.
3789 (gsi_set_stmt): Ditto.
3790 (gsi_split_seq_before): Ditto.
3791 (gsi_remove): Ditto.
3792 (gsi_insert_seq_before_without_update): Don't free sequence.
3793 (gsi_insert_seq_after_without_update): Ditto.
3794 (gsi_replace): Assert some more invariants.
3795 (gsi_insert_before_without_update, gsi_insert_after_without_update):
3796 Tidy.
3797 (gsi_for_stmt): Don't search for stmt.
3798 (gsi_insert_on_edge_immediate): Tidy.
3799
3800 * gimple.c (gimple_alloc_k): Remove "sequences".
3801 (gimple_seq_cache): Remove.
3802 (gimple_alloc_stat): Make stmt a singleton sequence.
3803 (gimple_seq_alloc, gimple_seq_free): Remove.
3804 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
3805 (gimple_copy): Ditto.
3806 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
3807 create iterator from correct sequence.
3808 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
3809
3810 2012-05-02 Michael Matz <matz@suse.de>
3811
3812 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
3813 gimple_seq.
3814 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
3815 sequence, lazily allocate it.
3816 (bb_seq_addr): New function.
3817 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
3818 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
3819 (gsi_none): New function.
3820 (gsi_start_bb): Adjust.
3821 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
3822 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
3823 (gsi_last_bb): Adjust.
3824 (gsi_seq): Adjust.
3825 * tree-flow-inline.h (phi_nodes_ptr): New function.
3826
3827 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
3828 datastructure and interface change.
3829 (gsi_insert_seq_before_without_update): Ditto.
3830 (gsi_insert_seq_nodes_after): Ditto.
3831 (gsi_insert_seq_after_without_update): Ditto.
3832 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
3833 (gsi_split_seq_before): Ditto.
3834 (gsi_start_phis): Adjust.
3835 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
3836 (vect_transform_loop): Ditto.
3837 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
3838 gimple_seq_copy): Don't use gimple_seq_alloc.
3839 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
3840 (gimplify_seq_add_seq): Ditto.
3841 * lto-streamer-in.c (make_new_block): Ditto.
3842 * tree-cfg.c (create_bb): Ditto.
3843 * tree-sra.c (initialize_parameter_reductions): Ditto.
3844
3845 2012-05-02 Michael Matz <matz@suse.de>
3846
3847 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
3848 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
3849 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
3850 set_bb_seq): Move down to after gimple_statement_d definition.
3851
3852 2012-05-02 Michael Matz <matz@suse.de>
3853
3854 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3855 gsi_replace_with_seq, instead of inserting itself.
3856 * gimple-iterator.c (gsi_replace_with_seq): New function.
3857 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
3858 iterator instead of statement, advance it.
3859 (ssa_forward_propagate_and_combine): Adjust call to above.
3860
3861 2012-05-02 Michael Matz <matz@suse.de>
3862
3863 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
3864 gimple_seq_alloc.
3865 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
3866 * tree-nested.c (walk_gimple_omp_for): Ditto.
3867 * trans-mem.c (lower_transaction): Ditto.
3868 * tree-eh.c (do_return_redirection): Ditto.
3869 (do_goto_redirection): Ditto.
3870 (lower_try_finally_switch): Ditto.
3871 * gimplify.c (gimplify_stmt): Ditto.
3872 (gimplify_scan_omp_clauses): Ditto.
3873 (gimplify_omp_for): Ditto.
3874 (gimplify_function_tree): Ditto.
3875 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
3876 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
3877 (mf_build_check_statement_for): Ditto.
3878 (mx_register_decls): Ditto.
3879 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
3880 and don't use itertors to append.
3881 (insert_stmts): Ditto.
3882 (insert_out_of_ssa_copy): Ditto.
3883 (insert_out_of_ssa_copy_on_edge): Ditto.
3884
3885 2012-05-02 Michael Matz <matz@suse.de>
3886
3887 * gimple.h (gimple_bind_body_ptr): New function.
3888 (gimple_bind_body): Use it.
3889 (gimple_catch_handler): Use gimple_catch_handler_ptr.
3890 (gimple_eh_filter_failure_ptr): New function.
3891 (gimple_eh_filter_failure): Use it.
3892 (gimple_eh_else_n_body_ptr): New function.
3893 (gimple_eh_else_n_body): Use it.
3894 (gimple_eh_else_e_body_ptr): New function.
3895 (gimple_eh_else_e_body): Use it.
3896 (gimple_try_eval_ptr): New function.
3897 (gimple_try_eval): Use it.
3898 (gimple_try_cleanup_ptr): New function.
3899 (gimple_try_cleanup): Use it.
3900 (gimple_wce_cleanup_ptr): New function.
3901 (gimple_wce_cleanup): Use it.
3902 (gimple_omp_body_ptr): New function.
3903 (gimple_omp_body): Use it.
3904 (gimple_omp_for_pre_body_ptr): New function.
3905 (gimple_omp_for_pre_body): Use it.
3906 (gimple_transaction_body_ptr): New function.
3907 (gimple_transaction_body): Use it.
3908 (gsi_split_seq_before): Adjust to return nothing and take pointer
3909 to sequence.
3910 (gsi_set_stmt): Declare.
3911 (gsi_replace_with_seq): Declare.
3912 (walk_gimple_seq_mod): Declare.
3913 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
3914
3915 * gimple-iterator.c (gsi_set_stmt): New function.
3916 (gsi_split_seq_before): Return new sequence via pointer argument.
3917 (gsi_replace): Use gsi_set_stmt.
3918
3919 * tree-ssa-loop-im.c (move_computations_stmt): First remove
3920 then insert stmt.
3921 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
3922 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
3923 return new stmt.
3924 (reserve_phi_args_for_new_edge): Change call to above,
3925 use gsi_set_stmt.
3926
3927 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
3928 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
3929 iterators. Adjust call to lower_omp.
3930 (lower_lastprivate_clauses): Adjust call to lower_omp.
3931 (lower_reduction_clauses): Ditto.
3932 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
3933 (lower_omp_sections): Don't explicitely count sequence length,
3934 nullify lowered bodies earlier, ensure stmts are part of only
3935 one sequence, adjust call to lower_omp.
3936 (lower_omp_single): Ensure stmts are part of only one sequence,
3937 adjust call to lower_omp.
3938 (lower_omp_master): Ditto.
3939 (lower_omp_ordered): Ditto.
3940 (lower_omp_critical): Ditto.
3941 (lower_omp_for): Ditto.
3942 (lower_omp_taskreg): Ditto, tidy.
3943 (lower_omp_1): Adjust calls to lower_omp.
3944 (execute_lower_omp): Ditto.
3945 (lower_omp): Adjust to take pointer to sequence.
3946 (diagnose_sb_2): Use walk_gimple_seq_mod.
3947 (diagnose_omp_structured_block_errors): Ditto and set possibly
3948 changed function body.
3949 * gimple-low.c (lower_function_body): Set function body after
3950 it stabilizes.
3951 (lower_sequence): Adjust to take pointer to sequence.
3952 (lower_omp_directive): Ensure stmt isn't put twice into the
3953 sequence, adjust call to lower_sequence.
3954 (lower_stmt): Adjust calls to lower_sequence.
3955 (lower_gimple_bind): Ditto.
3956 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
3957 * tree-nested.c (walk_body): Take pointer to sequence, use
3958 walk_gimple_seq_mod.
3959 (walk_function): Adjust call to walk_body, set possibly changed body.
3960 (walk_gimple_omp_for): Adjust calls to walk_body.
3961 (convert_nonlocal_omp_clauses): Ditto.
3962 (convert_nonlocal_reference_stmt): Ditto.
3963 (convert_local_omp_clauses): Ditto.
3964 (convert_local_reference_stmt): Ditto.
3965 (convert_tramp_reference_stmt): Ditto.
3966 (convert_gimple_call): Ditto.
3967 (convert_nl_goto_reference): Use local iterator copy.
3968 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
3969 but taking pointer to sequence, ensure gsi_start is called with
3970 callers lvalue.
3971 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
3972 asserting that the sequence head didn't change.
3973 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
3974 walk_gimple_seq_mod.
3975 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
3976 (execute_lower_tm): Ditto, and set possibly changed body.
3977 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
3978 call gsi_start with that lvalue.
3979 (replace_goto_queue_stmt_list): Ditto.
3980 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
3981 (replace_goto_queue): Ditto.
3982 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
3983 (lower_try_finally_onedest): Ditto.
3984 (lower_try_finally_copy): Ditto.
3985 (lower_try_finally_switch): Ditto.
3986 (lower_try_finally): Ditto.
3987 (lower_eh_filter): Ditto.
3988 (lower_eh_must_not_throw): Ditto.
3989 (lower_cleanup): Ditto.
3990 (lower_eh_constructs_2): Ditto.
3991 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
3992 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
3993 set possibly changed body.
3994 (optimize_double_finally): Call gsi_start with lvalue.
3995
3996 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
3997 (gimple_split_block): Ditto.
3998 (gimple_merge_blocks): Use gsi_start_phis.
3999 (move_stmt_r): Use walk_gimple_seq_mod.
4000 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
4001 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
4002 (rebuild_cgraph_edges): Ditto.
4003 (cgraph_rebuild_references): Ditto.
4004 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
4005 * tree-inline.c (copy_phis_for_bb): Ditto.
4006 * tree-ssa-dce.c: Ditto.
4007
4008 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
4009
4010 2012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
4011 Andi Kleen <ak@linux.intel.com>
4012
4013 * coretypes.h (MEMMODEL_MASK): New.
4014 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
4015 and return new variable.
4016 (expand_builtin_atomic_exchange): Mask memmodel values.
4017 (expand_builtin_atomic_compare_exchange): Ditto.
4018 (expand_builtin_atomic_load): Ditto.
4019 (expand_builtin_atomic_store): Ditto.
4020 (expand_builtin_atomic_clear): Ditto.
4021 * doc/extend.texi: Mention port-dependent memory model flags.
4022 * config/i386/cpuid.h (bit_HLE): New.
4023 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4024 HLE support.
4025 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
4026 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
4027 (ix86_target_string)<-mhle>: New.
4028 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
4029 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
4030 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
4031 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
4032 enabled for generic, generic64 and core-avx2.
4033 (ix86_print_operand): Generate HLE lock prefixes.
4034 (ix86_memmodel_check): New.
4035 (TARGET_MEMMODEL_CHECK): Ditto.
4036 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
4037 (IX86_HLE_ACQUIRE): Ditto.
4038 (IX86_HLE_RELEASE): Ditto.
4039 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
4040 * config/i386/i386.opt (mhle): Ditto.
4041 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
4042 success model to instruction emitter.
4043 (atomic_fetch_add<mode>): Ditto.
4044 (atomic_exchange<mode>): Ditto.
4045 (atomic_add<mode>): Ditto.
4046 (atomic_sub<mode>): Ditto.
4047 (atomic_<code><mode>): Ditto.
4048 (*atomic_compare_and_swap_doubledi_pic): Ditto.
4049 (atomic_compare_and_swap_single<mode>): Define and use argument
4050 for success model.
4051 (atomic_compare_and_swap_double<mode>): Ditto.
4052 * configure.ac: Check if assembler support HLE prefixes.
4053 * configure: Regenerate.
4054 * config.in: Ditto.
4055
4056 2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
4057
4058 PR middle-end/53153
4059 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
4060 split out from ...
4061 (gimplify_switch_expr): ... here.
4062 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
4063 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
4064 to clean up case labels with values outside the index type range.
4065 (simplify_gimple_switch): Call it if something changed.
4066 Remove strange and unnecessary assert.
4067
4068 2012-05-02 Richard Guenther <rguenther@suse.de>
4069
4070 * fold-const.c (div_if_zero_remainder): sizetypes no longer
4071 sign-extend.
4072 (int_const_binop_1): New worker for int_const_binop with
4073 overflowable parameter. Pass it through to force_fit_type_double.
4074 (int_const_binop): Wrap around int_const_binop_1 with overflowable
4075 equal to one.
4076 (size_binop_loc): Call int_const_binop_1 with overflowable equal
4077 to minus one, forcing overflow detection for even unsigned types.
4078 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
4079 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
4080 * stor-layout.c (initialize_sizetypes): sizetypes no longer
4081 sign-extend.
4082 (layout_type): For zero-sized arrays ignore overflow on the
4083 size calculations.
4084 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
4085 (bit_value_binop_1): Likewise.
4086 * tree.c (double_int_to_tree): Likewise.
4087 (double_int_fits_to_tree_p): Likewise.
4088 (force_fit_type_double): Likewise.
4089 (host_integerp): Likewise.
4090 (int_fits_type_p): Likewise.
4091 * varasm.c (output_constructor_regular_field): Sign-extend the
4092 field-offset to cater for negative offsets produced by the Ada
4093 frontend.
4094 * omp-low.c (extract_omp_for_data): Convert the loop step to
4095 signed for pointer adjustments.
4096
4097 2012-05-02 Richard Guenther <rguenther@suse.de>
4098
4099 * tree.c (valid_constant_size_p): New function.
4100 * tree.h (valid_constant_size_p): Declare.
4101 * cfgexpand.c (expand_one_var): Adjust check for too large
4102 variables by using valid_constant_size_p.
4103 * varasm.c (assemble_variable): Likewise.
4104
4105 * c-decl.c (grokdeclarator): Properly check for sizes that
4106 cover more than half of the address-space.
4107
4108 2012-05-02 Jakub Jelinek <jakub@redhat.com>
4109
4110 PR tree-optimization/53163
4111 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
4112 return value from compute_all_dependences.
4113
4114 PR rtl-optimization/53160
4115 * ree.c (combine_reaching_defs): Handle the case where cand->insn
4116 has been modified by ree pass already.
4117
4118 2012-05-01 Ian Lance Taylor <iant@google.com>
4119
4120 PR c/37303
4121 * c-decl.c (build_compound_literal): Make the decl readonly if it
4122 an array of a readonly type.
4123 * gimplify.c (gimplify_compound_literal_expr): Add fallback
4124 parameter. Change all callers. If the decl is not addressable
4125 and is not an l-value, make it readonly.
4126
4127 2012-05-01 Bernd Schmidt <bernds@codesourcery.com>
4128
4129 * ira.c (allocated_reg_info_size): New static variable.
4130 (expand_reg_info): Manage it. Call
4131 setup_preferred_alternate_classes_for_new_pseudos.
4132 (ira): Don't do it here. Remove local allocated_reg_info_size,
4133 set the global before calling find_moveable_pseudos.
4134 (find_moveable_pseudos): Call expand_reg_info rather than
4135 resize_reg_info.
4136
4137 2012-05-01 Richard Henderson <rth@redhat.com>
4138
4139 * common.opt (fsync-libcalls): New.
4140 * doc/invoke.texi: Document it.
4141 * optabs.c (init_sync_libfuncs): Honor it.
4142
4143 2012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4144 Richard Sandiford <r.sandiford@uk.ibm.com>
4145
4146 PR rtl-optimization/52543
4147 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
4148 lower-subreg.h.
4149 * lower-subreg.h: New file.
4150 * target-globals.h (this_target_lower_subreg): Declare.
4151 (target_globals): Add lower_subreg;
4152 (restore_target_globals): Restore this_target_lower_subreg.
4153 * target-globals.c: Include it.
4154 (default_target_globals): Add default_target_lower_subreg.
4155 (save_target_globals): Initialize target_lower_subreg.
4156 * rtl.h (init_lower_subreg): Added declaration.
4157 * toplev.c (backend_init_target): Call initializer for lower-subreg
4158 pass.
4159 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
4160 (default_target_lower_subreg): New variable.
4161 (this_target_lower_subreg): Likewise.
4162 (twice_word_mode, choices): New macros.
4163 (shift_cost, compute_splitting_shift, compute_costs)
4164 (init_lower_subreg): New functions.
4165 (resolve_simple_move): Add speed_p argument. Check choices.
4166 (find_pseudo_copy): Don't check the mode size here.
4167 (resolve_simple_move): Assert the mode size.
4168 (find_decomposable_shift_zext): Add speed_p argument and return
4169 a bool. Check choices.
4170 (resolve_shift_zext): Add comment.
4171 (dump_shift_choices, dump_choices): New functions.
4172 (decompose_multiword_subregs): Dump list of profitable
4173 transformations. Add code to skip non profitable transformations.
4174 Update calls to simple_move and find_decomposable_shift_zext.
4175
4176 2012-05-01 Ian Bolton <ian.bolton@arm.com>
4177 Sameera Deshpande <sameera.deshpande@arm.com>
4178 Greta Yorsh <greta.yorsh@arm.com>
4179
4180 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
4181 (thumb1_unexpanded_epilogue): ...this.
4182 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
4183 (thumb1_unexpanded_epilogue): ...this.
4184 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
4185 (thumb1_unexpanded_epilogue): ...this.
4186
4187 2012-05-01 Richard Earnshaw <rearnsha@arm.com>
4188
4189 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
4190 comparing enumeration values. Update comments.
4191
4192 2012-05-01 Alan Modra <amodra@gmail.com>
4193
4194 PR target/53038
4195 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
4196 load_cr_save, add_crlr_cfa_restore): New functions.
4197 (rs6000_restore_saved_cr): Rename to..
4198 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
4199 (rs6000_emit_epilogue): Use new functions. Adjust condition
4200 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
4201 regs when using out-of-line restore only when shrink wrapping.
4202
4203 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
4204
4205 PR middle-end/53136
4206 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
4207 calls to cgraph_node_name in xstrdup.
4208 (ipa_make_edge_direct_to_target): Ditto.
4209 * cgraph.c (dump_cgraph_node): Ditto.
4210 * tree-sra.c (convert_callers_for_node): Ditto.
4211 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
4212 * ipa-cp.c (perhaps_add_new_callers): Ditto.
4213 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
4214 (cgraph_materialize_all_clones): Ditto.
4215 * ipa-inline.c (report_inline_failed_reason): Ditto.
4216 (want_early_inline_function_p): Ditto.
4217 (edge_badness): Ditto.
4218 (update_edge_key): Ditto.
4219 (flatten_function): Ditto.
4220 (ipa_inline): Ditto.
4221 (inline_always_inline_functions): Ditto.
4222 (early_inline_small_functions): Ditto.
4223
4224 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
4225
4226 PR target/53141
4227 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
4228 constraints 0 and 1.
4229
4230 012-04-30 Jan Hubicka <jh@suse.cz>
4231
4232 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
4233 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
4234 (cgraph_add_to_same_comdat_group): Remove.
4235 (cgraph_add_asm_node): Move to cgraphunit.c.
4236 (cgraph_make_decl_local): Move to symtab.c
4237 (cgraph_make_node_local_1): Update.
4238 (cgraph_can_remove_if_no_direct_calls_and): Update.
4239 (used_from_object_file_p): Update.
4240 (resolution_used_from_other_file_p): Move to symtab.c
4241 (cgraph_used_from_object_file_p): move to symtab.c
4242 (verify_cgraph_node): Verify same comdat groups.
4243 * cgraph.h (cgraph_asm_node): Rename to ...
4244 (asm_node): ... this one.
4245 (cgraph_asm_nodes): Rename to ...
4246 (asm_nodes): ... this one.
4247 (symtab_add_to_same_comdat_group): New function.
4248 (symtab_dissolve_same_comdat_group_list): New function.
4249 (symtab_used_from_object_file_p): Declare.
4250 (symtab_make_decl_local): Declare.
4251 (cgraph_add_to_same_comdat_group): Remove.
4252 (cgraph_add_asm_node): Remove.
4253 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
4254 Remove.
4255 (cgraph_finalize_compilation_unit): Rename to ...
4256 (finalize_compilation_unit): ... this one.
4257 (cgraph_optimize): Rename to ....
4258 (compile): ... this one.
4259 (add_asm_node): Declare.
4260 (fixup_same_cpp_alias_visibility): Declare.
4261 (cgraph_make_decl_local): Remove.
4262 (varpool_assemble_pending_decls): Rename to ...
4263 (varpool_output_variables): ... this one.
4264 (varpool_remove_unreferenced_decls): Remove.
4265 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
4266 (preserve_function_body_p): Make static.
4267 * toplev.c (compile_file): Update comments; update.
4268 * cgraphunit.c: Update comments.
4269 (cgraph_expand_all_functions): Rename to ...
4270 (expand_all_functions): ... this one; update.
4271 (cgraph_mark_functions_to_output): Rename to ...
4272 (mark_functions_to_output): ... this one; cleanup.
4273 (cgraph_output_pending_asms): Remove prototype.
4274 (asm_nodes, asm_last_node): New static vars.
4275 (cgraph_process_new_functions): Update.
4276 (cgraph_reset_node): Cleanup; add comment.
4277 (cgraph_add_new_function): Update.
4278 (cgraph_output_pending_asms): Rename to ...
4279 (output_asm_statements): ... this one.
4280 (add_asm_node): New function.
4281 (fixup_same_cpp_alias_visibility): New function based on code
4282 in cgraph_analyze_function.
4283 (cgraph_analyze_function): Use it.
4284 (cgraph_order_sort): Update.
4285 (cgraph_output_in_order): Update.
4286 (cgraph_function_versioning): Update.
4287 (cgraph_optimize): Rename to ...
4288 (compile): ... this one; initialize streamer hooks here.
4289 (cgraph_finalize_compilation_unit): Rename to ...
4290 (finalize_compilation_unit): ... this one; do not initialize streamer
4291 hook here.
4292 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
4293 * dwarf2out.c: Update ocmment.
4294 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
4295 * method.c (use_thunk): Likewise.
4296 * semantics.c (maybe_add_lambda_conv_op): Likewise.
4297 * decl2.c (maybe_emit_vtables): Likewise.
4298 (cp_write_global_declarations): Use finalize_compilation_unit.
4299 * parser.c (cp_parser_asm_definition): Use add_asm_node.
4300 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
4301 * c-decl.c (c_write_global_declarations): Use
4302 finalize_compilation_unit.
4303 * langhooks.c (write_global_declarations): Update.
4304 * ipa.c (cgraph_externally_visible_p): Update.
4305 (dissolve_same_comdat_group_list): Remove.
4306 (function_and_variable_visibility): Update.
4307 * symtab.c: Inlcude lto-streamer.h and rtl.h
4308 (ld_plugin_symbol_resolution_names): New.
4309 (symtab_add_to_same_comdat_group): New.
4310 (symtab_dissolve_same_comdat_group_list): New.
4311 (resolution_used_from_other_file_p): Move here from cgraph.c
4312 (symtab_used_from_object_file_p): New.
4313 (symtab_make_decl_local): New.
4314 * passes.c (register_pass): Update comments.
4315 * c-parser.c (c_parser_asm_definition): Update.
4316 * varpool.c (varpool_analyze_node): Use
4317 fixup_same_cpp_alias_visibility.
4318 (varpool_remove_unreferenced_decls): Make static.
4319 (varpool_assemble_pending_decls): Rename to ...
4320 (varpool_output_variables): ... this one; call
4321 varpool_remove_unreferenced_decls.
4322 (varpool_used_from_object_file_p): Remove.
4323
4324 2012-04-30 Marc Glisse <marc.glisse@inria.fr>
4325
4326 PR c++/51033
4327 * c-typeck.c (build_array_ref): Call
4328 convert_vector_to_pointer_for_subscript.
4329 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
4330
4331 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
4332
4333 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
4334 to compile-time "mode == <MODE>mode" checks.
4335 (and splitter): Ditto.
4336
4337 2012-04-30 Richard Henderson <rth@redhat.com>
4338
4339 * config/arm/arm.md (UNSPEC_LL): New.
4340 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
4341 (arm_load_exclusivedi): Use %H0.
4342
4343 2012-04-30 Jason Merrill <jason@redhat.com>
4344
4345 * dwarf2out.c (comdat_symbol_id): Add const.
4346 (union die_symbol_or_type_node): Add const to die_symbol.
4347 (output_die_symbol, output_die, output_comp_unit): Adjust.
4348
4349 2012-04-30 Andrew Stubbs <ams@codesourcery.com>
4350
4351 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
4352 * config/arm/neon.md (negdi2_neon): New insn.
4353 Also add splitters for core and NEON registers.
4354
4355 2012-04-30 Andrew Stubbs <ams@codesourcery.com>
4356
4357 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
4358 (arm_print_operand): Add 'x' format.
4359 * config/arm/constraints.md (Dn): Allow const_int.
4360 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
4361 Use 'x' format to print constants.
4362 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
4363 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
4364 is enabled.
4365 (movdi_vfp_cortexa8): Likewise.
4366
4367 2012-04-30 Ian Bolton <ian.bolton@arm.com>
4368 Sameera Deshpande <sameera.deshpande@arm.com>
4369 Greta Yorsh <greta.yorsh@arm.com>
4370
4371 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
4372 * config/arm/arm.c (ldm_stm_operation_p): New function.
4373 * config/arm/predicates.md (load_multiple_operation): Update predicate.
4374 (store_multiple_operation): Likewise.
4375
4376 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
4377 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
4378 * config/arm/predicates.md (load_multiple_operation): Add arguments.
4379 (store_multiple_operation): Likewise.
4380
4381 2012-04-30 Uros Bizjak <ubizjak@gmail.com>
4382
4383 * config/i386/i386.md (and<mode>3): Expand masking operations with
4384 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
4385 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
4386
4387 2012-04-30 Dodji Seketeli <dodji@redhat.com>
4388
4389 Add -Wvarargs option
4390 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
4391 argument for the various warning_at calls.
4392 * docs/invoke.texi: Update the documentation.
4393
4394 2012-04-30 Dodji Seketeli <dodji@redhat.com>
4395
4396 Switch -ftrack-macro-expansion=2 on by default.
4397 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
4398 by default.
4399
4400 Fix va_start related location
4401 * builtins.c (fold_builtin_next_arg): Unwinds to the first
4402 location in real source code.
4403
4404 Make conversion warnings work on NULL with -ftrack-macro-expansion
4405 * input.h (expansion_point_location_if_in_system_header): Declare
4406 new function.
4407 * input.c (expansion_point_location_if_in_system_header): Define it.
4408
4409 Fix -Wuninitialized for -ftrack-macro-expansion
4410 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
4411 declaration. Use linemap_location_before_p for source locations.
4412
4413 Strip "<built-in>" loc from displayed expansion context
4414 * input.c (expand_location_1): When expanding to spelling location
4415 in a context of a macro expansion, skip reserved system header
4416 locations. Update comments. * tree-diagnostic.c
4417 (maybe_unwind_expanded_macro_loc): Likewise.
4418
4419 Make expand_location resolve to locus in main source file
4420 * input.c (expand_location_1): New. Takes a parameter to choose
4421 whether to resolve the location to spelling or expansion point.
4422 Was factorized from ...
4423 (expand_location): ... here.
4424 (expand_location_to_spelling_point): New. Implemented in terms of
4425 expand_location_1.
4426 * diagnostic.c (diagnostic_build_prefix): Use the new
4427 expand_location_to_spelling_point instead of expand_location.
4428
4429 Fix PCH crash on GTYed pointer-to-scalar field of a struct
4430 * gengtype.c (write_types_process_field): Force second argument of
4431 the call to the PCH object hierarchy walker to be 'x'.
4432
4433 2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
4434
4435 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
4436 predicate to discriminate types.
4437
4438 2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
4439
4440 * doc/invoke.texi (Wmissing-format-attribute): Document as an
4441 alias of Wsuggest-attribute=format.
4442 * c-typeck.c (convert_for_assignment): Replace
4443 Wmissing-format-attribute with Wsuggest-attribute=format.
4444 (digest_init): Likewise.
4445
4446 2012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
4447
4448 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
4449 * common.opt (Wmissing-noreturn): Alias of
4450 -Wsuggest-attribute=noreturn.
4451
4452 2012-04-29 Hans-Peter Nilsson <hp@axis.com>
4453
4454 PR target/53156
4455 * config/cris/cris.md (andqu): New peephole2.
4456 (andu): Tweak head comment.
4457
4458 2012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4459 Steven Bosscher <steven@gcc.gnu.org>
4460 Maxim Kuvyrkov <maxim@codesourcery.com>
4461
4462 PR tree-optimization/38785
4463 * common.opt (ftree-partial-pre): New option.
4464 * doc/invoke.texi: Document it.
4465 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
4466 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
4467 benefit speed path.
4468 (execute_pre): Use flag_tree_partial_pre.
4469
4470 2012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4471
4472 PR target/52999
4473 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
4474 in constant pool.
4475
4476 2012-04-27 Ollie Wild <aaw@google.com>
4477
4478 * doc/invoke.texi (Wliteral-suffix): Document new option.
4479
4480 2012-04-27 Tom Tromey <tromey@redhat.com>
4481
4482 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
4483 (dwarf_tag_name): Use get_DW_TAG_name.
4484 (dwarf_attr_name): Use get_DW_AT_name.
4485 (dwarf_form_name): Use get_DW_FORM_name.
4486 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
4487
4488 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
4489
4490 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
4491 arguments are -1 and 0, by negating the result of the conditional.
4492
4493 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
4494
4495 PR target/53138
4496 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
4497
4498 2012-04-27 Richard Guenther <rguenther@suse.de>
4499
4500 * tree-flow.h (is_hidden_global_store): Remove.
4501 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
4502 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
4503 (stmt_may_clobber_global_p): Likewise.
4504 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
4505 (stmt_may_clobber_global_p): Likewise.
4506 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
4507 stmt_may_clobber_global_p.
4508 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
4509
4510 2012-04-27 Steven Bosscher <steven@gcc.gnu.org>
4511
4512 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
4513 place.
4514
4515 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
4516 reorganize some fields and update comments. Rename bit_test_uniq
4517 and bit_test_count to uniq resp. count. Remove bit_test_bb.
4518 (collect_switch_conv_info): New function, collects info about a
4519 GIMPLE_SWITCH into a struct switch_conv_info.
4520 (check_range): Simplify to use pre-recorded info. Fix think-o in
4521 range-branch ratio check.
4522 (check_process_case): Remove function.
4523 (check_all_empty_except_final): New function, verifies that all
4524 non-final basic blocks are empty.
4525 (process_switch): Simplify to use pre-recorded info. Call
4526 collect_switch_conv_info to do that. Assert that degenerate switch
4527 statements have been cleaned up.
4528
4529 2012-04-27 Marc Glisse <marc.glisse@inria.fr>
4530
4531 PR middle-end/27139
4532 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
4533
4534 2012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
4535
4536 PR c/53130
4537 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
4538
4539 2012-04-27 Tom de Vries <tom@codesourcery.com>
4540
4541 PR tree-optimization/51879
4542 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
4543 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
4544 of ...
4545 (defs_to_varying): ... here. Don't set use_processed.
4546 (visit_reference_op_call): Handle gimple_vdef.
4547 Handle case that lhs is NULL_TREE.
4548 (visit_use): Use mark_use_processed. Handle calls with side-effect
4549 using visit_reference_op_call.
4550
4551 2012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
4552
4553 * sched-deps.c (fixup_sched_groups): Rename to...
4554 (chain_to_prev_insn): ...this.
4555 (chain_to_prev_insn_p): New function.
4556 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
4557
4558 2012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
4559
4560 * sched-int.h (_haifa_insn_data): Move priority_status.
4561 Add model_index.
4562 (INSN_MODEL_INDEX): New macro.
4563 * haifa-sched.c (insn_delay): New function.
4564 (sched_regno_pressure_class): Update commentary.
4565 (mark_regno_birth_or_death): Pass the liveness bitmap and
4566 pressure array as arguments, instead of using curr_reg_live and
4567 curr_reg_pressure. Only update the pressure if the bit in the
4568 liveness set has changed.
4569 (initiate_reg_pressure_info): Always trust the live-in set for
4570 SCHED_PRESSURE_MODEL.
4571 (initiate_bb_reg_pressure_info): Update call to
4572 mark_regno_birth_or_death.
4573 (dep_list_size): Take the list as argument.
4574 (calculate_reg_deaths): New function, extracted from...
4575 (setup_insn_reg_pressure_info): ...here.
4576 (MODEL_BAR): New macro.
4577 (model_pressure_data, model_insn_info, model_pressure_limit)
4578 (model_pressure_group): New structures.
4579 (model_schedule, model_worklist, model_insns, model_num_insns)
4580 (model_curr_point, model_before_pressure, model_next_priority):
4581 New variables.
4582 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
4583 (MODEL_INSN_INFO, MODEL_INSN): New macros.
4584 (model_index, model_update_limit_points_in_group): New functions.
4585 (model_update_limit_points, model_last_use_except): Likewise.
4586 (model_start_update_pressure, model_update_pressure): Likewise.
4587 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
4588 (model_excess_cost, model_dump_pressure_points): Likewise.
4589 (model_set_excess_costs): Likewise.
4590 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
4591 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
4592 schedule as an alternative tie-breaker. Update the call to
4593 dep_list_size.
4594 (ready_sort): Call model_set_excess_costs.
4595 (update_register_pressure): Update call to mark_regno_birth_or_death.
4596 Rely on that function to check liveness rather than doing it here.
4597 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
4598 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
4599 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
4600 (model_record_pressure, model_record_pressures): New functions.
4601 (model_record_final_pressures, model_add_successors_to_worklist)
4602 (model_promote_predecessors, model_choose_insn): Likewise.
4603 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
4604 (model_start_schedule, model_finalize_pressure_group): Likewise.
4605 (model_end_schedule): Likewise.
4606 (schedule_insn): Say when we're scheduling the next instruction
4607 in the model schedule.
4608 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
4609 (queue_to_ready): Do not add instructions that are
4610 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
4611 Always allow the next instruction in the model schedule to be added.
4612 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
4613 and delay for SCHED_PRESSURE_MODEL too.
4614 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
4615 SCHED_PRIORITY_MODEL, but also take the DFA into account.
4616 (schedule_block): Call model_start_schedule and model_end_schedule.
4617 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
4618 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
4619 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
4620 region_ref_regs.
4621 (sched_finish): Update accordingly.
4622 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
4623 to SCHED_PRESSURE_MODEL.
4624 (add_jump_dependencies): Update call to dep_list_size.
4625 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
4626 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
4627 to SCHED_PRESSURE_MODEL.
4628 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
4629 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
4630 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
4631 handling to SCHED_PRESSURE_MODEL.
4632
4633 2012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
4634
4635 * common.opt (fsched-pressure-algorithm=): New option.
4636 * flag-types.h (sched_pressure_algorithm): New enum.
4637 * sched-int.h (sched_pressure_p): Replace with...
4638 (sched_pressure): ...this new variable.
4639 * haifa-sched.c (sched_pressure_p): Replace with...
4640 (sched_pressure): ...this new variable.
4641 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
4642 (update_reg_and_insn_max_reg_pressure, schedule_insn)
4643 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
4644 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
4645 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
4646 (sched_analyze_insn): Likewise.
4647 * sched-rgn.c (schedule_region): Likewise.
4648 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
4649
4650 2012-04-26 Bernd Schmidt <bernds@codesourcery.com>
4651
4652 * PR middle-end/52997
4653 * ira.c (find_moveable_pseudos): Call resize_reg_info.
4654
4655 PR middle-end/52940
4656 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
4657 * expr.c (convert_move): Honor unsignedp when extending partial int
4658 modes.
4659 * genmodes.c (complete_mode): Don't clear component field of partial
4660 int modes.
4661 (emit_mode_inner): Don't emit it however.
4662 (calc_wider_mode): Partial int modes widen to their component.
4663
4664 2012-04-26 David S. Miller <davem@davemloft.net>
4665
4666 * config/sparc/niagara4.md: New file.
4667 * config/sparc/sparc.md: Include it.
4668 * config/sparc/sparc.c (niagara4_costs): New processor costs.
4669 (sparc_option_override): Use it.
4670 (sparc_use_sched_lookahead): Return 2 for niagara4.
4671 (sparc_issue_rate): Likewise.
4672
4673 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
4674 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
4675 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
4676 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
4677 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
4678 alignaddrldi_vis): Set type to gsr.
4679 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
4680 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
4681 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
4682 v<vis3_shift_patname><mode>3, fmean16_vis,
4683 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
4684 fucmp<code>8<P:mode>_vis): Set type to fga.
4685 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
4686 * config/sparc/niagara.md: Likewise.
4687 * config/sparc/niagara2.md: Likewise.
4688 * config/sparc/ultra3.md: Likewise, and fix type matching for
4689 us3_ialuX reservation.
4690
4691 2012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4692
4693 * reload.c (find_reloads): Change the loop nesting when trying an
4694 alternative with swapped operands.
4695
4696 2012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
4697
4698 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
4699 comment. Delete unused parameter first_exp_point_map.
4700 (virt_loc_aware_diagnostic_finalizer): Update call.
4701
4702 2012-04-26 Michael Hope <michael.hope@linaro.org>
4703 Richard Earnshaw <rearnsha@arm.com>
4704
4705 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
4706 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
4707 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
4708 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
4709
4710 2012-04-25 Sriraman Tallam <tmsriram@google.com>
4711
4712 * doc/extend.texi: Document avx2 support.
4713 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
4714
4715 2012-04-26 Hans-Peter Nilsson <hp@axis.com>
4716
4717 PR target/53120
4718 * config/cris/cris.md ("*andhi_lowpart_v32")
4719 ("*andqi_lowpart_v32"): Change first input-only operand from
4720 a (match_operand ...) to (match_dup 0). Drop alternatives with
4721 const_int-matching constraints for redundancy.
4722 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
4723 three-operand alternative.
4724
4725 2012-04-25 Jakub Jelinek <jakub@redhat.com>
4726
4727 PR target/53110
4728 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
4729 instead expand it as zero extension.
4730
4731 2012-04-25 H.J. Lu <hongjiu.lu@intel.com>
4732
4733 PR debug/52857
4734 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
4735
4736 2012-04-25 Jakub Jelinek <jakub@redhat.com>
4737
4738 * common.opt (flag_debug_types_section): Default to 0.
4739 (dwarf_version): Default to 4.
4740 (dwarf_record_gcc_switches): Default to 1.
4741 (dwarf_strict): Default to 0.
4742 * toplev.c (process_options): Don't handle dwarf_strict
4743 or dwarf_version here.
4744 * config/vxworks.c (vxworks_override_options): Don't
4745 test whether dwarf_strict or dwarf_version are negative,
4746 instead test !global_options_set.x_dwarf_*.
4747 * config/darwin.c (darwin_override_options): Default to
4748 dwarf_version 2.
4749 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
4750 and -fno-debug-types-section are now the default.
4751
4752 2012-04-25 Jan Hubicka <jh@suse.cz>
4753
4754 * cgraphunit.c: Update toplevel comment.
4755 (tree_rest_of_compilation): Merge into cgraph_expand_function.
4756 (cgraph_analyze_function): Make static.
4757 (cgraph_decide_is_function_needed): Make static.
4758 (cgraph_add_new_function): Use expand_function instead of
4759 rest_of_compilation.
4760 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
4761 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
4762 Move to cgraph.c
4763 (cgraph_inline_p): Remove.
4764 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
4765 (init_cgraph): Add comment.
4766 * cgraphbuild.c (record_reference, mark_address, mark_load,
4767 mark_store): Do not call analyze_expr hook.
4768 * cgraph.c: Update toplevel comment.
4769 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
4770 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
4771 Move fere from cgraphunit.c
4772 (cgraph_mark_force_output_node): Move to cgraph.h
4773 * cgraph.h: Reorder so the comments match the function placement.
4774 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
4775 (cgraph_mark_force_output_node): Move here from cgraph.c
4776 * tree.c (free_lang_data): Do not clear analyze_expr hook.
4777 * ipa-inline-transform.c (preserve_function_body_p): New function.
4778 (inline_transform): Update.
4779 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
4780 * langhooks.h (lang_hooks_for_callgraph): Remove.
4781 (lang_hooks): Remove callgraph.
4782 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
4783 * varpool.c: Remove out of date comment.
4784 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
4785 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
4786
4787 2012-04-25 Jan Hubicka <jh@suse.cz>
4788
4789 PR middle-end/53089
4790 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
4791 forward declaration.
4792 (cgraph_finalize_function): Finalize them here.
4793 * symtab.c (dump_symtab): Dump ctors and dtors.
4794
4795 2012-04-25 Jakub Jelinek <jakub@redhat.com>
4796
4797 PR middle-end/52979
4798 * stor-layout.c (get_best_mode): Don't return mode with bitsize
4799 larger than maxbits. Don't compute maxbits modulo align.
4800 Also check that unit bytes long store at bitpos / unit * unit
4801 doesn't affect bits beyond bitregion_end.
4802 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
4803 would not fit into bitregion_start ... bitregion_end + 1 bit region.
4804 (store_split_bit_field): Decrease unit close to end of bitregion_end
4805 if access is restricted in order to avoid mutual recursion.
4806
4807 PR tree-optimization/53058
4808 * double-int.h (double_int_max_value, double_int_min_value): New
4809 prototypes.
4810 * double-int.c (double_int_max_value, double_int_min_value): New
4811 functions.
4812 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
4813 or GT_EXPR with double_int_max_value instead of double_int_mask.
4814
4815 2012-04-25 Richard Guenther <rguenther@suse.de>
4816
4817 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
4818 * tree-vect-loop.c (vect_transform_loop): Adjust.
4819 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
4820 the maximum number of iterations for the epilogue loop.
4821 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
4822
4823 2012-04-25 Jakub Jelinek <jakub@redhat.com>
4824
4825 PR c/52880
4826 * c-typeck.c (set_nonincremental_init,
4827 set_nonincremental_init_from_string): Pass true instead of false
4828 as IMPLICIT to add_pending_init.
4829
4830 2012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
4831
4832 * c-typeck.c (pop_init_level): Improve diagnostics.
4833
4834 2012-04-25 Uros Bizjak <ubizjak@gmail.com>
4835
4836 * compare-elim.c (try_eliminate_compare): Also handle operands with
4837 implicit extensions.
4838
4839 2012-04-25 Alan Modra <amodra@gmail.com>
4840
4841 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
4842 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
4843 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
4844 (no_global_regs_above): Delete.
4845 (no_global_regs): New function.
4846 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
4847 value for load multiple test.
4848 (savres_routine_syms): Increase size.
4849 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
4850 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
4851 rather than a number of boolean flags. Update all callers.
4852 (rs6000_savres_routine_name): Generate vector save/restore names.
4853 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
4854 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
4855 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
4856 and using_store_multiple. Expand uses. Don't always use r11 as
4857 frame reg when needed for out-of-line saves. Set up initial offset
4858 for out-of-line vector saves when buying stack frame. Handle pointer
4859 reg setup for out-of-line fp save. Emit call to out-of-line vector
4860 save function. Choose r11 or r12 for vrsave reg when available for
4861 better scheduling.
4862 (rs6000_output_function_prologue): Don't emit .extern for ELF.
4863 (rs6000_emit_epilogue): Choose a better frame reg when restoring
4864 from back-chain to suit out-of-line vector restore functions. Emit
4865 call to out-of-line vector restore function. Adjust register used
4866 for cr restore. Tweak pointer register setup for gpr restore.
4867 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
4868 FIXED_R13.
4869 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
4870 (V_SAVE_INLINE): Define.
4871 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
4872
4873 2012-04-25 Alan Modra <amodra@gmail.com>
4874
4875 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
4876 out-of-line save/restore for large frames. Don't disable
4877 out-of-line saves on ABI_AIX when using static chain reg.
4878 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
4879 clobber static chain reg, and tweak for out-of-line gpr saves
4880 that use r1.
4881
4882 2012-04-25 Alan Modra <amodra@gmail.com>
4883
4884 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
4885 (rs6000_emit_prologue): Use the above to catch register overlap.
4886
4887 2012-04-25 Alan Modra <amodra@gmail.com>
4888
4889 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
4890 decl. Move logic selecting update reg to callers. Update all callers.
4891 (rs6000_emit_allocate_stack): Add copy_off param.
4892 (emit_frame_save): Don't handle reg+reg addressing.
4893 (ptr_regno_for_savres): New function, extracted from..
4894 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
4895 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
4896 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
4897 frame offset adjustment for out-of-line save with copy from sp.
4898 Simplify condition controlling whether cr is saved early or
4899 late. Use ptr_regno_for_savres to verify correct reg is set
4900 up for out-of-line saves. Pass the actual pointer reg used to
4901 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
4902 function. Rearrange spe vars so code is similar to that
4903 elsewhere in this function. Don't update frame_off when spe
4904 save code will restore r11. Use emit_frame_save for spe and
4905 gpr saves. Consolidate darwin out-of-line gpr setup with that
4906 for other abis. Don't assume frame_offset is zero and frame
4907 reg is sp when setting up altivec reg saves, and calculate
4908 exact offset requirement.
4909 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
4910 spe restore code. Consolidate darwin out-of-line gpr setup
4911 with that for other abis.
4912
4913 2012-04-25 Alan Modra <amodra@gmail.com>
4914
4915 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
4916 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
4917 the replacement.
4918 (emit_frame_save): Delete frame_ptr param. Rename total_size to
4919 frame_reg_to_sp.
4920 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
4921 and emit_frame_save calls. Cope with possibly missing note.
4922
4923 2012-04-24 Sriraman Tallam <tmsriram@google.com>
4924
4925 * config/i386/i386.c (build_processor_model_struct): New function.
4926 (make_var_decl): New function.
4927 (fold_builtin_cpu): New function.
4928 (ix86_fold_builtin): New function.
4929 (make_cpu_type_builtin): New function.
4930 (ix86_init_platform_type_builtins): New function.
4931 (ix86_expand_builtin): Expand new builtins by folding them.
4932 (ix86_init_builtins): Make new builtins to detect CPU type.
4933 (TARGET_FOLD_BUILTIN): New macro.
4934 (IX86_BUILTIN_CPU_INIT): New enum value.
4935 (IX86_BUILTIN_CPU_IS): New enum value.
4936 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
4937 * config/i386/i386-builtin-types.def: New function type.
4938 * testsuite/gcc.target/builtin_target.c: New testcase.
4939 * doc/extend.texi: Document builtins.
4940
4941 2012-04-24 Olivier Hainque <hainque@adacore.com>
4942
4943 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
4944 * toplev.c (process_options): Default to dwarf_version 2.
4945 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
4946 and dwarf_version 2.
4947
4948 2012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
4949
4950 * tree-pretty-print.h (default_tree_printer): Do not declare.
4951 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
4952 intl.h.
4953 (default_tree_diagnostic_starter): Make static.
4954 (default_tree_printer): Move to here. Make static.
4955 (tree_diagnostics_defaults): New.
4956 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
4957 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
4958 * toplev.c: Do not include tree-pass.h.
4959 (default_tree_printer): Move from here.
4960 (general_init): Use tree_diagnostics_defaults.
4961
4962 2012-04-24 Chao-ying Fu <fu@mips.com>
4963
4964 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
4965 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
4966 * config/mips/gnu-user.h
4967 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
4968 (GNU_USER_TARGET_LINK_SPEC): New define.
4969 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
4970 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
4971 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
4972 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
4973 GNU_USER_TARGET_ENDFILE_SPEC.
4974 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
4975 (GNU_USER_TARGET_LINK_SPEC): New define.
4976 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
4977 * config/mips/linux-common.h: New file.
4978
4979 2012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4980
4981 PR target/47197
4982 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
4983 (altivec_build_resolved_builtin): Call fully_fold_convert.
4984
4985 2012-04-24 Georg-Johann Lay <avr@gjlay.de>
4986
4987 PR target/53065
4988 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
4989
4990 2012-04-24 Richard Guenther <rguenther@suse.de>
4991
4992 PR tree-optimization/53085
4993 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
4994 stores.
4995
4996 2012-04-24 Richard Guenther <rguenther@suse.de>
4997
4998 * tree-if-conv.c (main_tree_if_conversion): Move bb under
4999 ENABLE_CHECKING.
5000
5001 2012-04-24 Jim Meyering <meyering@redhat.com>
5002
5003 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
5004 absence of an define_enum call.
5005
5006 2012-04-24 Richard Guenther <rguenther@suse.de>
5007
5008 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
5009 the epilogue loop is not re-used as unvectorized version
5010 record the its maximum number of iterations.
5011
5012 2012-04-24 Andrew Pinski <apinski@cavium.com>
5013
5014 * tree-ssa-forwprop.c (simplify_bitwise_binary):
5015 Don't directly use def1/def2.
5016
5017 2012-04-24 Richard Guenther <rguenther@suse.de>
5018
5019 PR tree-optimization/53098
5020 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
5021 comparison sign.
5022
5023 2012-04-24 Andrew Pinski <apinski@cavium.com>
5024
5025 PR tree-opt/33512
5026 * tree-ssa-forwprop.c (defcodefor_name): New function.
5027 (simplify_bitwise_binary): Use defcodefor_name instead of manually
5028 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
5029 Simplify "(~X | Y) & X" to "X & Y" and
5030 "(~X & Y) | X" to "X | Y".
5031
5032 2012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5033
5034 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
5035 validate_change to add clobbers if IN_GROUP is nonzero.
5036 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
5037 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
5038 prototype.
5039 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
5040 set to false.
5041 * config/s390/s390.c (insn_invalid_p): Likewise.
5042
5043 2012-04-24 Jakub Jelinek <jakub@redhat.com>
5044
5045 PR middle-end/53084
5046 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
5047 (output_addressed_constants): Likewise.
5048
5049 PR middle-end/52999
5050 * varasm.c (get_section): Don't ICE for section conflicts with
5051 built-in section kinds.
5052
5053 2012-04-23 DJ Delorie <dj@redhat.com>
5054
5055 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
5056 (LIBSTDCXX): Change to CPP2.
5057
5058 2012-04-23 H.J. Lu <hongjiu.lu@intel.com>
5059
5060 PR bootstrap/52878
5061 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
5062 extra_masks.
5063
5064 2012-04-23 Uros Bizjak <ubizjak@gmail.com>
5065
5066 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
5067 (*addsi_2_zext): Ditto.
5068 (*add<mode>_3): Ditto.
5069 (*addsi_3_zext): Ditto.
5070 (*add<mode>_5): Ditto.
5071
5072 2012-04-23 Andrew Pinski <apinski@cavium.com>
5073
5074 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
5075 (C & B) to (A OP0) & B.
5076
5077 2012-04-23 Martin Jambor <mjambor@suse.cz>
5078
5079 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
5080 temporaries created for a bitfield (reverting revision 122014).
5081
5082 2012-04-23 Richard Guenther <rguenther@suse.de>
5083
5084 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
5085 the condition using is_gimple_condexpr and avoid the not necessary
5086 boolification.
5087 (set_prologue_iterations): Likewise.
5088 (vect_loop_versioning): Likewise.
5089
5090 2012-04-23 Richard Guenther <rguenther@suse.de>
5091
5092 PR tree-optimization/53070
5093 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
5094 (main_tree_if_conversion): Verify we succeeded in that.
5095
5096 2012-04-23 Jan Hubicka <jh@suse.cz>
5097
5098 * lto-symtab.c (lto_cgraph_replace_node): Do not call
5099 mark_reahcable_node.
5100 * cgraph.c (cgraph_remove_node): Do not clear reachable.
5101 (cgraph_mark_reachable_node): Remove.
5102 (cgraph_mark_force_output_node): Do not set reachable.
5103 (dump_cgraph_node): Do not dump reachable.
5104 (cgraph_create_virtual_clone): Do not set reachable.
5105 * cgraph.h (cgraph_node): Remove reachable flag.
5106 (varpool_node): Remove reachable flag.
5107 (cgraph_mark_if_needed): Remove.
5108 (cgraph_mark_reachable_node): Remove.
5109 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
5110 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
5111 reachable.
5112 (cgraph_add_new_function): Likewise.
5113 (cgraph_mark_if_needed): Remove.
5114 (cgraph_analyze_function): Do not set target as reachable.
5115 (process_function_and_variable_attributes): Do not care about
5116 dllexport.
5117 (cgraph_analyze_functions): Do not set reachable flags.
5118 (cgraph_mark_functions_to_output): Do not check reachability.
5119 (cgraph_copy_node_for_versioning): Do not set reachable flag.
5120 (dbxout_expand_expr): Update.
5121 * c-decl.c (merge_decls): Do not track changed externs.
5122 * ipa.c: Include pointer-set.h
5123 (enqueue_cgraph_node): Use reachable pointer set.
5124 (process_references): Likewise.
5125 (cgraph_remove_unreachable_nodes): Likewise.
5126 (whole_program_function_and_variable_visibility): Do not recompute
5127 reachable.
5128 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
5129
5130 2012-04-23 Georg-Johann Lay <avr@gjlay.de>
5131
5132 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
5133
5134 2012-04-23 Richard Guenther <rguenther@suse.de>
5135
5136 PR c/53060
5137 * c-typeck.c (build_binary_op): Fix typo.
5138
5139 2012-04-23 Jakub Jelinek <jakub@redhat.com>
5140
5141 PR tree-optimizations/52891
5142 * tree-vect-patterns.c (adjust_bool_pattern): Use
5143 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
5144 but with non-standard precision.
5145
5146 2012-04-22 Jan Hubicka <jh@suse.cz>
5147
5148 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
5149 tree refs.
5150
5151 2012-04-22 Jan Hubicka <jh@suse.cz>
5152
5153 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
5154 * cgraphbuild.c (record_reference, record_type_list, mark_address,
5155 mark_load, mark_store): Do not mark varpool nodes as needed.
5156 * cgraph.c (cgraph_new_nodes): Remove.
5157 (cgraph_create_function_alias): Do not mark nodes as reachable.
5158 (cgraph_add_thunk): Likewise.
5159 (cgraph_mark_reachable_node): Do not manage the queue.
5160 * cgraph.h (cgraph_node): Remove next_needed.
5161 (varpool_nodes_queue): Remove next_needed and prev_needed.
5162 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
5163 (cgraph_new_nodes): Declare.
5164 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
5165 (varpool_analyze_pending_decls): Remove.
5166 (varpool_analyze_node): New.
5167 (varpool_mark_needed_node): Remove.
5168 (varpool_first_variable, varpool_next_variable): New inlines.
5169 (varpool_first_static_initializer, varpool_next_static_initializer):
5170 Update.
5171 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
5172 (varpool_first_defined_variable): New inline.
5173 (varpool_next_defined_variable): New inline
5174 (FOR_EACH_VARIABLE): Reimplement.
5175 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
5176 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
5177 needed flag.
5178 * cgraphunit.c (cgraph_new_nodes): Declare here.
5179 (enqueue_node): New function.
5180 (cgraph_process_new_functions): update for new
5181 node set; when constructing cgraph enqueue node for processing.
5182 (cgraph_add_new_function): Use new node set.
5183 (process_function_and_variable_attributes): Do not set varpool needed
5184 flags.
5185 (referred_to_p): New function.
5186 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
5187 when varpool is in construction.
5188 (cgraph_analyze_functions): Rewrite.
5189 (cgraph_expand_all_functions): Update.
5190 (cgraph_output_in_order): Do not analyze pending decls; do not set
5191 needed flags.
5192 (cgraph_optimize): Do not analyze pending decls.
5193 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
5194 in other partition; do not mark node as needed.
5195 * dwarf2out.c (reference_to_unused): Use analyzed flag.
5196 (premark_types_used_by_global_vars_helper): Likewise.
5197 * ipa.c (process_references): Do not call varpool_mark_needed_node.
5198 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
5199 cgrpah queues.
5200 (function_and_variable_visibility): Do not mark node as needed.
5201 (whole_program_function_and_variable_visibility): Likewise.
5202 * Makefile.in (gt-varpool.h): No longer needed.
5203 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
5204 (ipa_write_summaries): Do not use needed flag.
5205 * varpool.c: Do not include gt-varpool.h
5206 (x_varpool_nodes_queue, x_varpool_last_needed_node,
5207 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
5208 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
5209 Remove.
5210 (varpool_remove_node): Do not update the lists.
5211 (dump_varpool_node): Do not dump needed flag.
5212 (varpool_enqueue_needed_node): Remove.
5213 (varpool_mark_needed_node): Remove.
5214 (varpool_reset_queue): Remove.
5215 (varpool_finalize_decl): Move to cgraphunit.c
5216 (varpool_analyze_node): New functions based on former
5217 varpool_analyze_pending_decls.
5218 (varpool_analyze_pending_decls): Remove.
5219 (varpool_assemble_decl): Do not update the lists.
5220 (enqueue_node): New function.
5221 (varpool_remove_unreferenced_decls): Rewrite.
5222 (varpool_empty_needed_queue): Remove.
5223 (add_new_static_var): Do not mark node as needed.
5224 (varpool_create_variable_alias): Handle expansion state
5225 creation.
5226 * except.c (output_ttype): Do not mark node as needed.
5227 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
5228 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
5229 Likewise.
5230 * tree-switch-conversion.c (build_one_array): Likewise.
5231
5232 2012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
5233
5234 PR c/44774
5235 * doc/invoke.texi (pedantic): Rename to Wpedantic.
5236 * common.opt (Wpedantic): New.
5237 (pedantic): Alias Wpedantic.
5238 * diagnostic.c (warning_at): Likewise.
5239 * c-decl.c (diagnose_mismatched_decls): Likewise.
5240 (build_array_declarator): Likewise.
5241 (mark_forward_parm_decls):
5242 (check_bitfield_type_and_width): Likewise.
5243 (grokdeclarator): Likewise.
5244 (grokfield): Likewise.
5245 (finish_struct): Likewise.
5246 (build_enumerator): Likewise.
5247 (store_parm_decls_oldstyle): Likewise.
5248 (declspecs_add_qual): Likewise.
5249 (declspecs_add_type): Likewise.
5250 (finish_declspecs): Likewise.
5251 * c-typeck.c (composite_type): Likewise.
5252 (comp_target_types): Likewise.
5253 (build_array_ref): Likewise.
5254 (pointer_diff): Likewise.
5255 (build_unary_op): Likewise.
5256 (build_conditional_expr): Likewise.
5257 (build_c_cast): Likewise.
5258 (convert_for_assignment): Likewise.
5259 (maybe_warn_string_init): Likewise.
5260 (digest_init): Likewise.
5261 (pop_init_level): Likewise.
5262 (set_init_index): Likewise.
5263 (c_finish_goto_label): Likewise.
5264 (c_finish_return): Likewise.
5265 (do_case): Likewise.
5266 (build_binary_op): Likewise.
5267 * c-parser.c (static): Likewise.
5268 (c_parser_external_declaration): Likewise.
5269 (c_parser_declaration_or_fndef): Likewise.
5270 (c_parser_static_assert_declaration_no_se): Likewise.
5271 (c_parser_enum_specifier): Likewise.
5272 (c_parser_struct_or_union_specifier): Likewise.
5273 (c_parser_struct_declaration): Likewise.
5274 (c_parser_alignas_specifier): Likewise.
5275 (c_parser_braced_init): Likewise.
5276 (c_parser_initelt): Likewise.
5277 (c_parser_compound_statement_nostart): Likewise.
5278 (c_parser_conditional_expression): Likewise.
5279 (c_parser_alignof_expression): Likewise.
5280 (c_parser_postfix_expression): Likewise.
5281 (c_parser_postfix_expression_after_paren_): Likewise.
5282 (c_parser_objc_class_instance_variables): Likewise.
5283 (c_parser_objc_method_definition): Likewise.
5284 (c_parser_objc_methodprotolist): Likewise.
5285
5286 2012-04-22 Ian Lance Taylor <iant@google.com>
5287
5288 * godump.c (go_output_typedef): Dump size of structs.
5289
5290 2012-04-22 Razya Ladelsky <razya@il.ibm.com>
5291
5292 Correcting transform_to_exit_first_loop + fix to PR46886
5293 * tree-parloops.c (transform_to_exit_first_loop): Remove
5294 setting of number of iterations according to the loop pattern.
5295 Duplicate from entry to exit->src instead of loop->latch.
5296 (pallelize_loops): Remove the condition preventing do-while loops.
5297 * tree-cfg.c (bool bb_in_region_p): New.
5298 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
5299 Adjust redirection of the duplicated iteration.
5300
5301 2012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
5302
5303 PR bootstrap/53021
5304 * rtl.def (ADDRESS): Use "i" rather than "w".
5305 * rtl.h (find_base_term): Delete.
5306 (may_be_sp_based_p): Declare.
5307 * rtl.c (rtx_code_size): Remove ADDRESS special case.
5308 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
5309 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
5310 * alias.c: ...here.
5311 (find_base_term): Make static.
5312 (may_be_sp_based_p): New function.
5313 * dse.c (record_store): Use it.
5314 * store-motion.c (store_killed_in_insn): Likewise.
5315
5316 2012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
5317
5318 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
5319
5320 2012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5321
5322 PR 35441
5323 * c-typeck.c (inform_declaration): New.
5324 (build_function_call_vec): Do not pretty-print
5325 expressions when caret is enabled.
5326 (convert_arguments): Use inform_declaration.
5327
5328 2012-04-20 Jim Meyering <meyering@redhat.com>
5329
5330 * genmodes.c (make_complex_modes): Don't truncate a mode name of
5331 length 7 or more when prepending a "C". Suggested by Richard Guenther.
5332
5333 2012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5334
5335 PR rtl-optimization/44214
5336 * fold-const.c (exact_inverse): New function.
5337 (fold_binary_loc): Fold vector and complex division by constant into
5338 multiply by recripocal with flag_reciprocal_math; fold vector division
5339 by constant into multiply by reciprocal with exact inverse.
5340
5341 2012-04-20 Jan Hubicka <jh@suse.cz>
5342
5343 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
5344 force flags.
5345 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
5346 (cgraph_remove_node): Update.
5347 (cgraph_mark_needed_node): Remove.
5348 (cgraph_mark_force_output_node): New.
5349 (dump_cgraph_node): Do not dump needed flag.
5350 (cgraph_node_cannot_be_local_p_1): Update.
5351 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
5352 * cgraph.h (symtab_node_base): Add force_output flag.
5353 (cgraph_node): Remove needed flag.
5354 (varpool_node): Remove force_output flag.
5355 (cgraph_mark_needed_node): Remove.
5356 (cgraph_mark_force_output_node): New.
5357 (cgraph_only_called_directly_or_aliased_p,
5358 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
5359 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
5360 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
5361 (cgraph_add_new_function): Update.
5362 (cgraph_mark_if_needed): Update.
5363 (verify_cgraph_node): Update.
5364 (cgraph_analyze_function): Alias target is reachable.
5365 (process_function_and_variable_attributes): Update: externally_visible
5366 flag makes function reachable.
5367 (cgraph_analyze_functions): Update dumping.
5368 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
5369 input_overwrite_node, input_varpool_node): Update streaming.
5370 * lto-streamer-out.c (produce_symtab): Use force_output.
5371 * ipa.c (process_references): Weakrefs must be processed.
5372 (cgraph_remove_unreachable_nodes): Likewise; update for new
5373 force_output flag.
5374 (varpool_externally_visible_p): Weakrefs are externally visible
5375 even if they are not.
5376 (function_and_variable_visibility): Update; when processing alias
5377 pair force the targets to be output.
5378 (whole_program_function_and_variable_visility): Use
5379 mark_reachable_node.
5380 * trans-mem.c (ipa_tm_mark_needed_node): Remove
5381 (ipa_tm_mark_force_output_node): New function.
5382 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
5383 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
5384 aliases.
5385 * varasm.c (mark_decl_referenced): Update.
5386 (find_decl_and_mark_needed): Remove.
5387 (find_decl): New function.
5388 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
5389 alias targets as needed.
5390 (dump_tm_clone_pairs): Update.
5391 * tree-inline.c (copy_bb): Update check.
5392 * symtab.c (dump_symtab_base): Dump force_output.
5393 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
5394 * passes.c (execute_todo): Fix dumping.
5395 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
5396 (varpool_analyze_pending_decls): Alias target is reachable.
5397 (varpool_create_variable_alias): Finalize weakrefs.
5398
5399 2012-04-20 Jakub Jelinek <jakub@redhat.com>
5400
5401 PR bootstrap/53021
5402 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
5403 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
5404 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
5405 macros instead of constants.
5406 * dse.c (record_store): Check for SP ADDRESS by comparing
5407 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
5408 XEXP to be stack_pointer_rtx.
5409
5410 2012-04-20 Richard Guenther <rguenther@suse.de>
5411
5412 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
5413 update_call_from_tree when propagating into a call.
5414
5415 2012-04-20 Alan Modra <amodra@gmail.com>
5416
5417 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
5418 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
5419 sp_offset to frame_off. Move world save code earlier.
5420
5421 2012-04-20 Richard Guenther <rguenther@suse.de>
5422
5423 PR tree-optimization/53050
5424 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
5425 Do only one transform on COND_EXPRs at the same time.
5426
5427 2012-04-19 Jan Hubicka <jh@suse.cz>
5428
5429 * symtab.c (dump_symtab_base): Revert accidental checkin.
5430
5431 2012-04-20 Alan Modra <amodra@gmail.com>
5432
5433 PR target/53040
5434 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
5435 static chain, set REST_INLINE_FPRS too.
5436
5437 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
5438
5439 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
5440 nodes.
5441
5442 2012-04-20 Richard Guenther <rguenther@suse.de>
5443
5444 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
5445 loops that can never run more often than the vectorization factor.
5446
5447 2012-04-19 Jan Hubicka <jh@suse.cz>
5448
5449 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
5450
5451 2012-04-19 David Edelsohn <dje.gcc@gmail.com>
5452
5453 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
5454
5455 2012-04-19 Jim Meyering <meyering@redhat.com>
5456
5457 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
5458 We verified above that the string(including trailing NUL) fits in buf,
5459 so just use memcpy.
5460
5461 2012-04-19 Richard Guenther <rguenther@suse.de>
5462
5463 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
5464 for dumping DECL_SECTION_NAME.
5465
5466 2012-04-19 Michael Matz <matz@suse.de>
5467
5468 PR middle-end/52977
5469 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
5470 (struct tree_vector): Adjust GTY length.
5471 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
5472
5473 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
5474 members.
5475 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
5476 caller emitted the length calulation already.
5477 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
5478 before handling any of the fields for structs.
5479
5480 2012-04-19 Richard Guenther <rguenther@suse.de>
5481
5482 PR tree-optimization/53031
5483 * tree-vrp.c (adjust_range_with_scev): Revert back to
5484 using max_loop_iterations.
5485
5486 2012-04-19 Michael Matz <matz@suse.de>
5487
5488 * diagnostic.c (emit_diagnostic): Move va_end call after user
5489 of the va_list.
5490 (warning, warning_at, pedwarn, permerror): Ditto.
5491
5492 2012-04-19 Richard Guenther <rguenther@suse.de>
5493
5494 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
5495 array access.
5496
5497 2012-04-19 Georg-Johann Lay <avr@gjlay.de>
5498
5499 PR target/53033
5500 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
5501 the case *(X+const).
5502
5503 2012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5504
5505 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
5506
5507 2012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
5508
5509 PR c/52283/37985
5510 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
5511 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
5512
5513 2012-04-19 Richard Guenther <rguenther@suse.de>
5514
5515 PR rtl-optimization/44688
5516 * loop-iv.c (determine_max_iter): Only return max_iter.
5517 (iv_number_of_iterations): Also use the recorded loop bound
5518 on the maximum number of iterations.
5519 * loop-unroll.c (decide_unroll_runtime_iterations): Use
5520 max_iter to avoid unrolling loops that do not roll.
5521 (decide_unroll_stupid): Likewise.
5522
5523 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
5524
5525 * targhooks.c (default_case_values_threshold): Fix code style nit.
5526
5527 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
5528 case range and type folding from here...
5529 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
5530 type, as documented in tree.def.
5531
5532 2012-04-18 Jan Hubicka <jh@suse.cz>
5533
5534 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
5535 Declare.
5536 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
5537 cgraph hash and same comdat groups.
5538 (cgraph_optimize): Verify symbol table.
5539 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
5540 (dissolve_same_comdat_group_list): Work on symtab nodes.
5541 (function_and_variable_visibility): Dissolve variable same comdat group
5542 lists, too.
5543 * symtab.c: Include timevar.h
5544 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
5545
5546 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
5547
5548 * tree-switch-conversion.c (info): Remove global pass info.
5549 (check_range, check_process_case, check_final_bb, create_temp_arrays,
5550 free_temp_arrays, gather_default_values, build_constructors,
5551 array_value_type, build_one_array, build_arrays, gen_def_assigns,
5552 fix_phi_nodes, gen_inbound_check): Pass info around from ...
5553 (process_switch): ... here. Unify message format. Return a const
5554 char pointer to the failure reason message.
5555 (do_switchconv): Unify message format. Update process_switch usage.
5556
5557 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
5558 * tree-cfg.c (edge_to_cases): Fix documentation.
5559
5560 2012-04-18 Uros Bizjak <ubizjak@gmail.com>
5561
5562 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
5563
5564 2012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5565
5566 PR tree-optimization/52976
5567 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
5568 (possibly_move_powi): New function.
5569 (rewrite_expr_tree): Call possibly_move_powi.
5570 (rewrite_expr_tree_parallel): Likewise.
5571 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
5572 call add_to_ops_vec instead.
5573
5574 2012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5575
5576 PR tree-optimization/52976
5577 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
5578 (decrement_power): Likewise.
5579 (propagate_op_to_single_use): Likewise.
5580 (zero_one_operation): Handle __builtin_pow* calls in linearized
5581 expression trees; factor logic into propagate_op_to_single_use.
5582 (undistribute_ops_list): Allow operands with repeat counts > 1.
5583
5584 2012-04-18 Richard Guenther <rguenther@suse.de>
5585
5586 PR tree-optimization/44688
5587 * cfgloop.h (record_niter_bound): Declare.
5588 * tree-ssa-loop-niter.c (record_niter_bound): Export.
5589 Update the estimation with the upper bound here...
5590 (estimate_numbers_of_iterations_loop): ... instead of here.
5591 Do not forcefully reset a recorded upper bound.
5592 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
5593 Record the maximum number of loop iterations of the prologue loop.
5594
5595 2012-04-18 Jan Hubicka <jh@suse.cz>
5596
5597 * lto-symtab.c (lto_cgraph_replace_node): Update.
5598 * cgraphbuild.c (record_reference, record_type_list,
5599 record_eh_tables, mark_address, mark_load, mark_store): Update.
5600 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
5601 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
5602 Update.
5603 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
5604 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
5605 * reload.c: Fix typo in comment.
5606 * rtlanal.c: Likewise.
5607 * tree-emultls.c (gen_emutls_addr): Update.
5608 * ipa-reference.c (analyze_function): Update.
5609 * cgraphunit.c (cgraph_analyze_function,
5610 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
5611 Update.
5612 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
5613 (ipa_remove_reference): Likewise.
5614 (ipa_remove_all_refering): Rename to ...
5615 (ipa_remove_all_referring): ... this one; update.
5616 (ipa_dump_references): Update.
5617 (ipa_dump_referring): Update.
5618 (ipa_clone_references): Update.
5619 (ipa_clone_refering): Rename to ...
5620 (ipa_clone_referring): ... this one; update.
5621 (ipa_ref_cannot_lead_to_return): Update.
5622 (ipa_ref_has_aliases_p): Update.
5623 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
5624 forward typedefs.
5625 (ipa_ref_type): Remove.
5626 (ipa_ref_ptr_u): Remove.
5627 (ipa_ref): Remove referencing, refered, refered_index, refering_type
5628 and refered_type; add referring, referred and referred_index.
5629 (ipa_ref_list): Rename refering to referring.
5630 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
5631 ipa_clone_references, ipa_clone_referring): Update prototypes.
5632 * lto-cgraph.c (referenced_from_other_partition_p): Update.
5633 (lto_output_ref): Update.
5634 (add_references): Update.
5635 (input_varpool_node): Update.
5636 (input_refs): Update.
5637 * ipa-ref-inline.h (ipa_ref_node): Update.
5638 (ipa_ref_varpool_node): Update.
5639 (ipa_ref_referring_node): Update.
5640 (ipa_ref_referring_varpool_node): Update.
5641 (ipa_ref_referring_ref_list): Update.
5642 (ipa_ref_referred_ref_list): Update.
5643 (ipa_ref_list_first_referring): Update.
5644 (ipa_empty_ref_list): Update.
5645 (ipa_ref_list_refering_iterate): Rename to ...
5646 (ipa_ref_list_referring_iterate): ... this one.
5647 * cse.c: Update comment.
5648 * ipa-utils.c (ipa_reverse_postorder): Update.
5649 * tree-ssa-alias.c: Update.
5650 * ipa-inline.c (reset_edge_caches): Update.
5651 (update_caller_keys): Update.
5652 * ipa-inline.h: Update comments.
5653 * jump.c: Update comment.
5654 * alias.c: Likewise.
5655 * ipa.c (process_references): Update.
5656 (cgraph_remove_unreachable_nodes): Likewise.
5657 (ipa_discover_readonly_nonaddressable_var): Likewise.
5658 (cgraph_address_taken_from_non_vtable_p): Likewise.
5659 * trans-mem.c (ipa_tm_execute): Update.
5660 * simplify-rtx.c: Fix comment.
5661 * rtl.c: Fix comment.
5662 * symtab.c (symtab_unregister_node): Update.
5663 * varpool.c (dump_varpool_node): Update.
5664 (varpool_analyze_pending_decls): Update.
5665 (assemble_aliases): Update.
5666 (varpool_for_node_and_aliases): Update.
5667
5668 2012-04-18 Richard Guenther <rguenther@suse.de>
5669
5670 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
5671 use_undefined_p parameter.
5672 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
5673 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
5674 Likewise.
5675 (estimate_numbers_of_iterations): Likewise.
5676 (estimated_loop_iterations): Adjust.
5677 (max_loop_iterations): Likewise.
5678 (scev_probably_wraps_p): Likewise.
5679 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
5680 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
5681 not max_loop_iterations.
5682 (execute_vrp): Remove explicit number of iterations estimation.
5683
5684 2012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
5685
5686 * config/i386/linux-common.h: New.
5687
5688 * config.gcc: Add i386/linux-common.h before
5689 all i386/linux.h and i386/linux64.h usages.
5690
5691 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
5692 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
5693 * config/i386/gnu-user64.h: Likewise.
5694
5695 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
5696 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
5697 (GNU_USER_TARGET_MATHFILE_SPEC): New.
5698 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
5699
5700 2012-04-18 Jan Hubicka <jh@suse.cz>
5701
5702 * cgraph.c (cgraph_node_name): Remove.
5703 (dump_cgraph_node): Use dump_symtab_base; reformat.
5704 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
5705 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
5706 Declare.
5707 (cgraph_node_name, varpool_node_name): Remove.
5708 (cgraph_node_asm_name, varpool_node_asm_name,
5709 cgraph_node_name, varpool_node_name): New.
5710 * tree-pass.h (TODO_dump_cgraph): Rename to ...
5711 (TODO_dump_symtab): ... this one.
5712 * ipa-cp (pass_ipa_cp): Update.
5713 * ia-reference.c (generate_summary, read_write_all_from_decl,
5714 propagate, ipa_reference_read_optimization_summary): Update.
5715 * cgraphunit.c (cgraph_analyze_functions): Update.
5716 (cgraph_optimize): Update.
5717 * ipa-ref.c (ipa_dump_references): Update.
5718 (ipa_dump_refering): Update.
5719 * ipa-inline.c (pass_ipa_inline): Update.
5720 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
5721 * ipa.c (pass_ipa_function_visibility,
5722 pass_ipa_whole_program_visibility): Update.
5723 * tree-sra.c (pass_early_ipa_sra): Update.
5724 * symtab.c: Include langhooks.h
5725 (symtab_node_asm_name): New.
5726 (symtab_node_name): New.
5727 (symtab_type_names): New static var.
5728 (dump_symtab_base): New.
5729 (dump_symtab_node, dump_symtab): New.
5730 (debug_symtab_node, debug_symtab): New.
5731 * tree-ssa-structalias.c: Dump symbol table.
5732 * pases.c (execute_todo): Handle TODO_dump_symtab instead
5733 of TODO_dump_cgraph.
5734 * varpoo.c (varpool_node_name): Remove.
5735 (dump_varpool_node): Use dump_symtab_base; reformat.
5736
5737 2012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5738
5739 * doc/invoke.texi (Language Independent Options): @item should be
5740 before @opindex.
5741
5742 2012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
5743
5744 PR bootstrap/53021
5745 * rtl.c (rtx_code_size): Handle ADDRESS.
5746
5747 2012-04-17 Tom de Vries <tom@codesourcery.com>
5748
5749 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
5750 is not a STMT_LIST.
5751
5752 2012-04-17 Uros Bizjak <ubizjak@gmail.com>
5753
5754 PR target/53020
5755 * config/i386/sync.md (atomic_<code><mode>): Rename to
5756 atomic_<logic><mode>.
5757
5758 2012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
5759
5760 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
5761 * alias.c (reg_base_value): Expand and update comment.
5762 (arg_base_value): New variable.
5763 (unique_id): Move up file.
5764 (unique_base_value, unique_base_value_p, known_base_value_p): New.
5765 (find_base_value): Use arg_base_value and known_base_value_p.
5766 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
5767 (find_base_term): Use known_base_value_p.
5768 (base_alias_check): Use unique_base_value_p.
5769 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
5770 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
5771
5772 2012-04-17 Pat Haugen <pthaugen@us.ibm.com>
5773
5774 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
5775
5776 2012-04-17 Michael Matz <matz@suse.de>
5777
5778 PR tree-optimization/18437
5779 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
5780 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
5781 (vect_check_strided_load): Declare.
5782 * tree-vect-data-refs.c (vect_check_strided_load): New function.
5783 (vect_analyze_data_refs): Use it to accept strided loads.
5784 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
5785
5786 2012-04-17 Richard Guenther <rguenther@suse.de>
5787
5788 PR middle-end/53011
5789 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
5790 loops when redirecting an entry or latch edge.
5791
5792 2012-04-17 Bernd Schmidt <bernds@codesourcery.com>
5793
5794 * sel-sched.c (sel_global_init): Revert previous change.
5795
5796 2012-04-17 Richard Guenther <rguenther@suse.de>
5797
5798 * tree-flow.h (array_at_struct_end_p): Move declaration ...
5799 * tree.h (array_at_struct_end_p): ... here.
5800 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
5801 * expr.c (array_at_struct_end_p): ... here. Rewrite.
5802
5803 2012-04-17 Steven Bosscher <steven@gcc.gnu.org>
5804
5805 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
5806 COST_TABLE): Remove.
5807 (estimate_case_costs): Remove.
5808 (expand_case): Do not call estimate_case_costs
5809 to set use_cost_table.
5810 (balance_case_nodes): Do not use use_cost_table.
5811
5812 2012-04-16 Jan Hubicka <jh@suse.cz>
5813
5814 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
5815 (hash_node, eq_node): Remove.
5816 (cgraph_create_node): Do not handle hashtable.
5817 (cgraph_get_node): Remove.
5818 (cgraph_insert_node_to_hashtable): Remove.
5819 (hash_node_by_assembler_name): Remove.
5820 (eq_assembler_name): Remove.
5821 (cgraph_node_for_asm): Rewrite.
5822 (cgraph_find_replacement_node): Break out from ...
5823 (cgraph_remove_node): ... here; do not maintain hashtables.
5824 (change_decl_assembler_name): Remove.
5825 (cgraph_clone_node): Do not maintain hashtables.
5826 * cgraph.h (const_symtab_node): New typedef.
5827 (cgraph_insert_node_to_hashtable): Remove.
5828 (symtab_get_node, symtab_node_for_asm,
5829 symtab_insert_node_to_hashtable): Declare.
5830 (cgraph_find_replacement_node): Declare.
5831 (cgraph_get_node, varpool_get_node): Turn into inlines.
5832 (cgraph, varpool): Work sanely on NULL pointers.
5833 (FOR_EACH_SYMBOL): New walker.
5834 * ipa-inline-transform.c (save_inline_function_body): Use
5835 symtab_insert_node_to_hashtable.
5836 * symtab.c: Include ggc.h and diagnostics.h
5837 (symtab_hash, assembler_name_hash): New static vars;
5838 (hash_node, eq_node, hash_node_by_assembler_name,
5839 eq_assembler_name, insert_to_assembler_name_hash,
5840 unlink_from_assembler_name_hash): New.
5841 (symtab_register_node): Update hashtables.
5842 (symtab_insert_node_to_hashtable): New.
5843 (symtab_unregister_node): Update hashtables.
5844 (symtab_get_node): New.
5845 (symtab_node_for_asm): New.
5846 (change_decl_assembler_name): New.
5847 * Makefile.in (symtab.o): Needs GTY.
5848 * varpool.c (varpool_hash): Remove.
5849 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
5850 (varpool_node): Rewrite using varpool_get_node.
5851 (varpool_remove_node): DO not maintain hashtables.
5852 (varpool_node_for_asm): Rewrite.
5853
5854 2012-04-16 Sandra Loosemore <sandra@codesourcery.com>
5855
5856 * doc/invoke.texi: Copy-edit to put verbs in the present tense
5857 when describing the current behavior of GCC.
5858
5859 2012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
5860
5861 * genemit.c (gen_exp): Remove ADDRESS handling.
5862 * genoutput.c (scan_operands): Likewise.
5863 * genpeep.c (match_rtx): Likewise.
5864 * genrecog.c (add_to_sequence): Likewise.
5865
5866 2012-04-16 David Edelsohn <dje.gcc@gmail.com>
5867
5868 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
5869
5870 2012-04-16 Martin Jambor <mjambor@suse.cz>
5871
5872 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
5873 bit-fields.
5874
5875 2012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
5876
5877 PR target/51819
5878 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
5879 hints for 'A' operand types.
5880
5881 2012-04-16 Jan Hubicka <jh@suse.cz>
5882
5883 * cgraph.h (symtab_node_base): Add next and previous pointers.
5884 (cgraph_node): Remove next and preivous pointers.
5885 (varpool_node): Likewise; remove next/previous GTY marker;
5886 it is not type safe.
5887 (symtab_node_def): Update GTY marker
5888 (x_cgraph_nodes, cgraph_nodes): Remove.
5889 (symtab_nodes): New function.
5890 (cgraph_order): Rename to ...
5891 (symtab_order): ... this one.
5892 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
5893 Declare.
5894 (x_varpool_nodes, varpool_nodes): Remove.
5895 (FOR_EACH_STATIC_VARIABLE): Update.
5896 (symtab_function_p, symtab_variable_p): New function.
5897 (FOR_EACH_VARIABLE): Update.
5898 (varpool_first_variable, varpool_next_variable): New functions.
5899 (FOR_EACH_VARIABLE): Update.
5900 (cgraph_first_defined_function): Update.
5901 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
5902 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
5903 (cgraph_first_function, cgraph_next_function): New.
5904 (FOR_EACH_FUNCTION): Update.
5905 (cgraph_first_function_with_gimple_body,
5906 cgraph_next_function_with_gimple_body): Update.
5907 * symtab.c: New file.
5908 * cgraph.c: Update copyright dates.
5909 (x_cgraph_nodes, cgraph_order): Remove.
5910 (NEXT_FREE_NODE): Update.
5911 (SET_NEXT_FREE_NODE): New.
5912 (cgraph_create_node_1): Remove common code.
5913 (cgraph_create_node): Remove common code; call symtab_register_node.
5914 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
5915 (cgraph_add_asm_node): Update.
5916 (cgraph_clone_node): Register new node.
5917 * cgraphunit.c (process_function_and_variable_attributes): Update.
5918 (cgraph_analyze_functions): Update.
5919 (cgraph_analyze_functions): Update.
5920 (cgraph_output_in_order): Update.
5921 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
5922 Update.
5923 * ipa-inline.c (recursive_inlining): Update.
5924 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
5925 * ipa.c (cgraph_remove_unreachable_nodes): Update.
5926 * Makefile.in: Add symtab.o
5927 * varpool.c (x_varpool_nodes): Remove
5928 (varpool_node): Remove common code; call symtab_register_node.
5929 (varpool_remove_node): Remove common code; call symtab_unregister_node.
5930
5931 2012-04-16 Richard Guenther <rguenther@suse.de>
5932
5933 PR middle-end/52977
5934 * tree.h (VECTOR_CST_NELTS): Adjust.
5935 (struct tree_vector): Add explicit length field.
5936 (make_vector_stat): Declare.
5937 (make_vector): Define.
5938 * tree.c (make_vector_stat): New function.
5939 (build_vector_stat): Use it.
5940 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
5941
5942 2012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5943
5944 PR tree-optimization/52976
5945 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
5946 (undistribute_ops_list): Ops with repeat counts aren't eligible for
5947 undistribution.
5948 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
5949
5950 2012-04-16 Jan Hubicka <jh@suse.cz>
5951
5952 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
5953 New macros.
5954 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
5955 walkers to walk cgraph and varpool.
5956 * cgraph.c (cgraph_node_for_asm): Likewise.
5957 (dump_cgraph): Likewise.
5958 * value-prof.c (init_node_map): Likewise.
5959 * tree.c (free_lang_data_in_cgraph): Likewise.
5960 * tree-emutls.c: (ipa_lower_emutls): Likewise.
5961 * ipa-reference.c (generate_summary, propagate): Likewise.
5962 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
5963 cgraph_mark_functions_to_output, cgraph_output_in_order,
5964 output_weakrefs, cgraph_materialize_all_clones,
5965 cgraph_optimize): Likewise.
5966 * lto-cgraph.c (merge_profile_summaries): Likewise.
5967 (input_cgraph): Likewise.
5968 * ipa-pure-const.c (generate_summary): Likewise.
5969 (propagate): Likwise.
5970 * ipa-utils.c (ipa_reduced_postorder): Likewise.
5971 (ipa_free_postorder_info): Likewise.
5972 (ipa_reverse_postorder): Likewise.
5973 * ipa-inline.c (ipa_inline): Likewise.
5974 * matrix-reorg.c (find_matrices_decl): Likewise.
5975 (matrix_reorg): Likewise.
5976 * tree-vectorizer.c (increase_alignment): Likewise.
5977 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5978 (function_and_variable_visibility): Likewise.
5979 (whole_program_function_and_variable_visibility): Likewise.
5980 (ipa_cdtor_merge): Likewise.
5981 * trans-mem.c (ipa_tm_execute): Likewise.
5982 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
5983 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
5984 (ipa_print_all_params): Likewise.
5985 (ipa_update_after_lto_read): Likewise.
5986 * tree-profie.c (tree_profiling): Likewise.
5987 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
5988 * passes.c (dump_passes): Likewise.
5989 (do_per_function): Likewise.
5990 (ipa_write_summaries): Likewise.
5991 * varpool.c (dump_varpool): Likewise.
5992 (varpool_node_for_asm): Likewise.
5993 (varpool_assemble_pending_decls): Likewise.
5994
5995 2012-04-16 Richard Guenther <rguenther@suse.de>
5996
5997 PR tree-optimization/52975
5998 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
5999 condition but always mark it with TRUTH_NOT_EXPR.
6000
6001 2012-04-16 Richard Guenther <rguenther@suse.de>
6002
6003 PR tree-optimization/52975
6004 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
6005 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
6006 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
6007 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
6008
6009 2012-04-14 Uros Bizjak <ubizjak@gmail.com>
6010
6011 * config/i386/sse.md (ssse3_plusminus): New code iterator.
6012 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
6013 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
6014 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
6015 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
6016 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
6017 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
6018
6019 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
6020 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
6021 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
6022 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
6023 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
6024 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
6025
6026 (xop_plus): New code iterator.
6027 (macs): New code attribute.
6028 (macds): Ditto.
6029 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
6030 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
6031 iterator.
6032 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
6033 xop_plus code iterator.
6034 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
6035 xop_plus code iterator.
6036 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
6037 xop_plus code iterator.
6038 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
6039 xop_plus code iterator.
6040
6041 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
6042 any_extend code iterator.
6043 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
6044 any_extend code iterator.
6045 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
6046 any_extend code iterator.
6047 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
6048 any_extend code iterator.
6049 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
6050 any_extend code iterator.
6051 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
6052 any_extend code iterator.
6053
6054 2012-04-14 Tom de Vries <tom@codesourcery.com>
6055
6056 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
6057 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
6058 DELETED_LABEL note, and move it to ...
6059 * cfgrtl.c (delete_insn): ... here. Change return type to void.
6060 (delete_insn_and_edges): Likewise.
6061 (delete_insn_chain): Handle new return type of delete_insn. Delete
6062 chain backwards rather than forwards.
6063 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
6064 void.
6065 * cfglayout.c (fixup_reorder_chain): Delete unused label.
6066
6067 2012-04-14 Jan Hubicka <jh@suse.cz>
6068
6069 * cgraph.h: Update copyrights;
6070 (symtab_node): Turn to union typedef.
6071 (symtab_node_base): New structure.
6072 (symtab_type): Add SYMTAB_SYMBOL tag.
6073 (cgraph_node): Annotate some pinters with nested_ptr.
6074 (varpool_node): Likewise.
6075 (cgraph_local_info): Remove lto_file_data
6076 and externally_visible.
6077 (cgraph_node): Remove decl; same_comdat_group list;
6078 aux; ref_list; order; address_taken; reachable_from_other_parittion,
6079 in_other_partition; resolution.
6080 (varpool_node): Remove decl; same_comdat_group;
6081 ref_list; lto_file_data; aux; order; resolution; externally_visible;
6082 used_from_other_partition; in_other_partition.
6083 (symtab_node_def): New union.
6084 (cgraph, varpool): Update.
6085 (varpool_first_static_initializer, varpool_next_static_initializer,
6086 cgraph_only_called_directly_or_aliased_p,
6087 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
6088 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
6089 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
6090 field references.
6091 * cgraph.c: Likewise.
6092 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
6093 * cgraphbuild.c: Likewise.
6094 * lto-symtab.c: Likewise.
6095 * c-gimplify.c: Likewise.
6096 * value-prof.c: Likewise.
6097 * tree.c: Likewise.
6098 * ipa-cp.c: Likewise.
6099 * tree-emutls.c: Likewise.
6100 * ipa-inline-transform.c: Likwise.
6101 * ipa-reference.c: Likewise.
6102 * cgraphunit.c: Likewise.
6103 * ipa-ref.c: Likewise.
6104 * lto-cgraph.c: Likewise.
6105 * ipa-ref-inline.h: Likewise.
6106 * ipa-pure-const.c: Likewise.
6107 * lto-streamer-out.c: Likewise.
6108 * ipa-utils.c: Likewise.
6109 * ipa-inline.c: Likewise.
6110 * matrix-reorg.c: Likewise.
6111 * tree-eh.c: Likewise.
6112 * tree-vectorizer.c: Likewise.
6113 * ipa-split.c: Likewise.
6114 * ipa.c: Likewise.
6115 * trans-mem.c: Likewise.
6116 * ipa-inline-analysis.c: Likewise.
6117 * gimplify.c: Likewise.
6118 * cfgexpand.c: Likewise.
6119 * tree-sra.c: Likewise.
6120 * ipa-prop.c: Likewise.
6121 * varasm.c: Likewise.
6122 * tree-nested.c: Likewise.
6123 * tree-inline.c: Likewise.
6124 * tree-profile.c: Likewise.
6125 * tree-ssa-structalias.c: Likewise.
6126 * passes.c: Likewise.
6127 * varpool.c: Likewise.
6128
6129 2012-04-14 Tom de Vries <tom@codesourcery.com>
6130
6131 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
6132 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
6133 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
6134 of find_edge.
6135 (gsi_advance_fw_nondebug_nonlocal): New function.
6136 (local_def): Removed function.
6137 (same_succ_hash): Use stmt_local_def.
6138 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
6139 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
6140
6141 2012-04-13 H.J. Lu <hongjiu.lu@intel.com>
6142
6143 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
6144 and __ILP32__ for x32.
6145
6146 2012-04-13 Martin Jambor <mjambor@suse.cz>
6147
6148 PR middle-end/52939
6149 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
6150 fold_ctor_reference returns a zero constant.
6151
6152 2012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
6153
6154 * config.gcc: Add i386/gnu-user-common.h before all
6155 i386/gnu-user.h and i386/gnu-user64.h usages.
6156
6157 * config/i386/gnu-user-common.h: New.
6158
6159 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
6160 (CC1_SPEC): Likewise.
6161 (ENDFILE_SPEC): Likewise.
6162 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
6163 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
6164 (TARGET_OS_CPP_BUILTINS): Likewise.
6165 (LIBGCC2_HAS_TF_MODE): Likewise.
6166 (LIBGCC2_TF_CEXT): Likewise.
6167 (TF_SIZE): Likewise.
6168 (TARGET_ASM_FILE_END): Likewise.
6169 (STACK_CHECK_MOVING_SP): Likewise.
6170 (STACK_CHECK_STATIC_BUILTIN): Likewise.
6171 * config/i386/gnu-user64.h: Likewise.
6172
6173 2012-04-13 Martin Jambor <mjambor@suse.cz>
6174
6175 * expr.c (expand_expr_real_1): Pass type, not the expression, to
6176 set_mem_attributes for a memory temporary. Do not call the function
6177 for the memory temporary created for a bitfield.
6178
6179 2012-04-13 Alexandre Oliva <aoliva@redhat.com>
6180
6181 PR debug/48866
6182 * df.h (enum debug_temp_where): New.
6183 (dead_debug_init, dead_debug_finish) Declare.
6184 (dead_debug_add, dead_debug_insert_temp): Declare.
6185 (struct dead_debug_use, struct dead_debug): Moved from...
6186 * df-problems.c: ... here.
6187 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
6188 to a debug temp.
6189 (df_create_unused_note): Likewise.
6190 (df_set_dead_notes_for_mw): Move comment where it belongs.
6191 (dead_debug_init): Export.
6192 (dead_debug_reset_uses): New, factored out of...
6193 (dead_debug_finish): ...this. Export.
6194 (dead_debug_reset): Remove.
6195 (dead_debug_add): Export.
6196 (dead_debug_insert_before): Rename to...
6197 (dead_debug_insert_temp): ... this. Add where argument. Export.
6198 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
6199 Return insertion count.
6200 (df_note_bb_compute): Adjust.
6201 * dce.c (word_dce_process_block): Adjust dead debug uses.
6202 (dce_process_block): Likewise.
6203
6204 2012-04-13 Alexandre Oliva <aoliva@redhat.com>
6205
6206 * df-problems.c (df_note_bb_compute): Do not take note of
6207 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
6208
6209 2012-04-13 Alexandre Oliva <aoliva@redhat.com>
6210
6211 PR debug/51570
6212 * var-tracking.c (expand_depth): New type.
6213 (onepart_aux, expand_loc_callback_data): Change depth type to it.
6214 (loc_exp_dep_alloc): Adjust initializer.
6215 (update_depth): Use new type. Add entryvals.
6216 (vt_expand_var_loc_chain): Take note of expansions with
6217 ENTRY_VALUEs, but don't accept them right away. Run an optional
6218 second pass accepting the minimum ENTRY_VALUE count found in the
6219 first pass.
6220 (vt_expand_loc_callback, INIT_ELCD): Adjust.
6221
6222 2012-04-13 Tom de Vries <tom@codesourcery.com>
6223
6224 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
6225 parameters vuse and vuse_escaped.
6226 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
6227 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
6228 vuse1 != vuse2.
6229
6230 2012-04-13 Richard Guenther <rguenther@suse.de>
6231
6232 PR tree-optimization/52969
6233 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
6234 the condition for the COND_EXPR and handle predicate negation
6235 by swapping the COND_EXPR arms.
6236
6237 2012-04-13 Nick Clifton <nickc@redhat.com>
6238
6239 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
6240 TODO_dump_func flag.
6241
6242 2012-04-13 Andrey Belevantsev <abel@ispras.ru>
6243
6244 PR rtl-optimization/52203
6245 PR rtl-optimization/52715
6246
6247 Revert the 2012-03-07 fix for PR 52203.
6248 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
6249 the insn does not modify DFA right before issuing, adjust
6250 issue_rate accordingly.
6251
6252 2012-04-13 Richard Guenther <rguenther@suse.de>
6253
6254 PR c/52549
6255 * c-typeck.c (pointer_diff): Remove bogus assert.
6256
6257 2012-04-13 Richard Guenther <rguenther@suse.de>
6258
6259 PR c/52862
6260 * convert.c (convert_to_pointer): Remove special-casing of zero.
6261
6262 2012-04-13 Joey Ye <joey.ye@arm.com>
6263
6264 * config/arm/constraints.md (Pe): New constraint.
6265 * config/arm/arm.md: New split for imm 256-510.
6266
6267 2012-04-13 Terry Guo <terry.guo@arm.com>
6268
6269 * config/arm/arm-cores.def: Added core cortex-m0plus.
6270 * config/arm/arm-tune.md: Regenerated.
6271 * config/arm/arm-tables.opt: Regenerated.
6272 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
6273
6274 2012-04-13 Alan Modra <amodra@gmail.com>
6275
6276 PR target/52828
6277 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
6278 tie regs on destination of sets. Delete forward declaration.
6279 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
6280 (rs6000_emit_prologue): Likewise.
6281 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
6282 and gen_stack_tie.
6283 (is_mem_ref): Use tie_operand to recognise stack ties.
6284 * config/rs6000/predicates.md (tie_operand): New.
6285 * config/rs6000/rs6000.md (restore_stack_block): Generate new
6286 stack tie rtl.
6287 (restore_stack_nonlocal): Likewise.
6288 (stack_tie): Update.
6289 (frame_tie): Delete.
6290
6291 2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6292
6293 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
6294 HOST_WIDE_INT_PRINT_DEC in format strings.
6295
6296 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
6297
6298 PR target/52932
6299 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
6300 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
6301 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
6302 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
6303 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
6304 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
6305 avx2_permvarv8si using VI4F_256 mode iterator.
6306 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
6307 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
6308 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
6309 gen_avx2_permvarv8sf.
6310 (expand_vec_perm_pshufb): Ditto.
6311
6312 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6313
6314 PR target/52775
6315 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
6316 the list of options to enable the FCFID instruction.
6317 (TARGET_EXTRA_BUILTINS): Adjust comment.
6318
6319 2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6320
6321 PR tree-optimization/18589
6322 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
6323 (operand_entry): Add count field.
6324 (add_repeat_to_ops_vec): New function.
6325 (completely_remove_stmt): Likewise.
6326 (remove_def_if_absorbed_call): Likewise.
6327 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
6328 (acceptable_pow_call): New function.
6329 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
6330 entries with repeat counts when found.
6331 (repeat_factor_d): New struct and associated typedefs.
6332 (repeat_factor_vec): New static vector variable.
6333 (compare_repeat_factors): New function.
6334 (get_reassoc_pow_ssa_name): Likewise.
6335 (attempt_builtin_powi): Likewise.
6336 (reassociate_bb): Call attempt_builtin_powi.
6337 (fini_reassoc): Two new calls to statistics_counter_event.
6338
6339 2012-04-12 Richard Guenther <rguenther@suse.de>
6340
6341 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
6342 * cgraph.h (tree_rest_of_compilation): Remove.
6343 * cgraph.c (cgraph_add_new_function): Move ...
6344 * cgraphunit.c (cgraph_add_new_function): ... here.
6345 (tree_rest_of_compilation): Make static.
6346 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
6347 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
6348 gate_all_early_local_passes, execute_all_early_local_passes,
6349 pass_early_local_passes, gate_all_early_optimizations,
6350 pass_all_early_optimizations): Move ...
6351 * passes.c (gate_all_optimizations, pass_all_optimizations,
6352 gate_all_early_local_passes, execute_all_early_local_passes,
6353 pass_early_local_passes, gate_all_early_optimizations,
6354 pass_all_early_optimizations): ... here.
6355 * tree-optimize.c (execute_free_datastructures): Remove.
6356 * tree-flow.h (execute_free_datastructures): Remove.
6357 * tree-optimize.c (execute_init_datastructures,
6358 pass_init_datastructures): Move ...
6359 * tree-ssa.c (execute_init_datastructures,
6360 pass_init_datastructures): ... here.
6361 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
6362 execute_free_datastructures.
6363
6364 2012-04-12 Bernd Schmidt <bernds@codesourcery.com>
6365
6366 * dbgcnt.def (ira_move): New counter.
6367 * ira-int.h (ira_create_new_reg): Declare function.
6368 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
6369 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
6370 no longer static. All callers changed.
6371 * ira.c: Include "dbgcnt.h".
6372 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
6373 move_unallocated_pseudos): New static functions.
6374 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
6375 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
6376 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
6377 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
6378 to the pseudos generated in find_moveable_pseudos.
6379 * Makefile.in (ira.o): Add $(DBGCNT_H).
6380
6381 2012-04-12 Richard Guenther <rguenther@suse.de>
6382
6383 PR tree-optimization/52943
6384 * tree-chrec.h (chrec_is_positive): Remove.
6385 * tree-scalar-evolution.c (chrec_is_positive): Move ...
6386 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
6387 Return false for a constant zero instead of negative.
6388 (analyze_siv_subscript_cst_affine): Handle zero difference
6389 in the initial condition explicitely.
6390
6391 2012-04-12 Richard Guenther <rguenther@suse.de>
6392
6393 * tree-parloops.c (parallelize_loops): Also consult the upper
6394 bound for the number of iterations.
6395 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6396 (loop_prefetch_arrays): Likewise.
6397
6398 2012-04-12 Richard Guenther <rguenther@suse.de>
6399
6400 * cfgloop.h (estimated_loop_iterations_int): Ditch
6401 'conservative' parameter.
6402 (max_stmt_executions_int): Likewise.
6403 (estimated_loop_iterations): Likewise.
6404 (max_stmt_executions): Likewise.
6405 (max_loop_iterations): Declare.
6406 (max_loop_iterations_int): Likewise.
6407 (estimated_stmt_executions): Likewise.
6408 (estimated_stmt_executions_int): Likewise.
6409 * tree-ssa-loop-niter.c (estimated_loop_iterations):
6410 Split parts to ...
6411 (max_loop_iterations): ... this.
6412 (estimated_loop_iterations_int): Split parts to ...
6413 (max_loop_iterations_int): ... this.
6414 (max_stmt_executions_int): Split parts to ...
6415 (estimated_stmt_executions_int): ... this.
6416 (max_stmt_executions): Split parts to ...
6417 (estimated_stmt_executions): ... this.
6418 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
6419 * predict.c (predict_loops): Likewise.
6420 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
6421 (analyze_siv_subscript_cst_affine): Likewise.
6422 (compute_overlap_steps_for_affine_1_2): Likewise.
6423 (analyze_subscript_affine_affine): Likewise.
6424 (init_omega_for_ddr_1): Likewise.
6425 * tree-parloops.c (parallelize_loops): Likewise.
6426 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6427 (may_eliminate_iv): Likewise.
6428 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6429 (loop_prefetch_arrays): Likewise.
6430 * tree-vrp.c (adjust_range_with_scev): Likewise.
6431
6432 2012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
6433
6434 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
6435 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
6436 Fix line width.
6437 (dump_table): Use bool type for need_align and have_df variables.
6438 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
6439 (regs_used): Remove register modifier.
6440 (barrier_align): Move variables slot, credit, jump_to_next
6441 into if block above for loop. Use bool type for jump_to_next.
6442 (sh_function_arg): Use NULL_RTX instead of 0.
6443
6444 2012-04-11 Andreas Schwab <schwab@linux-m68k.org>
6445
6446 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
6447 (bswapsi2): New expander.
6448
6449 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
6450
6451 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
6452 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
6453
6454 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
6455
6456 PR rtl-optimization/52876
6457 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
6458 Don't call mark_reg_pointer for incompatible pointer sign extension.
6459
6460 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
6461 directly.
6462
6463 2012-04-11 Bernd Schmidt <bernds@codesourcery.com>
6464
6465 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
6466 comparisons against TYPE_PRECISION.
6467 * tree-ssa-forwprop.c (combine_conversions): Likewise.
6468
6469 2012-04-11 Xinliang David Li <davidxl@google.com>
6470
6471 * tree-passes.h: Remove TODO_dump_func.
6472 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
6473 * trans-mem.c: Remove TODO_dump_func.
6474 * ira.c: Remove TODO_dump_func.
6475
6476 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
6477
6478 * config/i386/i386.c (ix86_option_override_internal): Check
6479 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
6480 after TARGET_64BIT is updated.
6481
6482 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
6483
6484 * config/sh/sh.h: Remove old secondary reload code.
6485
6486 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
6487
6488 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
6489 (ready_reorder): ... this function.
6490
6491 2012-04-11 Bernd Schmidt <bernds@codesourcery.com>
6492
6493 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
6494 sched_init calls.
6495
6496 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
6497 insns so that no other insn is queued for a time before them.
6498
6499 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
6500 unknown.
6501
6502 2012-04-11 Richard Guenther <rguenther@suse.de>
6503
6504 PR middle-end/52621
6505 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
6506 consider loop nesting.
6507 (evolution_function_is_univariate_p): Properly check the remainder
6508 for chrecs.
6509
6510 2012-04-11 Richard Guenther <rguenther@suse.de>
6511
6512 PR middle-end/52918
6513 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
6514
6515 2012-04-11 Nick Clifton <nickc@redhat.com>
6516
6517 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
6518 information, if requested.
6519
6520 * config/rx/rx.c (rx_expand_prologue): Likewise.
6521
6522 2012-04-11 Peter Bergner <bergner@vnet.ibm.com>
6523 Michael Matz <matz@suse.de>
6524
6525 PR target/16458
6526 * rtlanal.c (unsigned_reg_p): New function.
6527 Update copyright notice dates.
6528 * rtl.h (unsigned_reg_p): Prototype it.
6529 Update copyright notice dates.
6530 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
6531 Update comment.
6532 * expr.c (expand_expr_real_1): Set register attributes.
6533 * stmt.c (expand_case): Likewise.
6534
6535 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
6536
6537 PR target/50751
6538 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
6539 consider_sh2a and allow_zero.
6540 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
6541 (disp_addr_displacement): New function.
6542 (sh_address_cost): Use disp_addr_displacement function instead
6543 of DISP_ADDR_OFFSET.
6544 (sh_legitimate_address_p): Adapt to changed
6545 sh_legitimate_index_p declaration.
6546 (sh_find_mov_disp_adjust): Remove HImode check.
6547 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
6548 disp_addr_displacement and max_mov_insn_displacement.
6549 (max_mov_insn_displacement): Remove HImode check.
6550 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
6551 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
6552 * config/sh/constraints.md (K05, K13): New constraints.
6553 (K12): Correct comment.
6554 (Sdd): Do not use DISP_ADDR_P macro.
6555 (Snd, Sbw): Use satisfies_constraint_Sdd.
6556 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
6557 (*extendhisi2_compact, movhi_i): Remove.
6558 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
6559 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
6560 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
6561 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
6562 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
6563 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
6564 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
6565 CONST_OK_FOR_Kxx.
6566 Add new peepholes for HImode displacement addressing.
6567
6568 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
6569
6570 * config/sh/sh.h (SIDI_OFF): Remove.
6571 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
6572 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
6573 or operand_subword.
6574
6575 2012-04-11 Eric Botcazou <ebotcazou@adacore.com>
6576
6577 PR target/52624
6578 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
6579 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
6580 * doc/md.texi (Standard Names): Add bswap.
6581 * builtin-types.def (BT_UINT16): New primitive type.
6582 (BT_FN_UINT16_UINT16): New function type.
6583 * builtins.def (BUILT_IN_BSWAP16): New.
6584 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
6585 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
6586 expand_builtin_bswap.
6587 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
6588 (fold_builtin_1): Likewise.
6589 (is_inexpensive_builtin): Likewise.
6590 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
6591 missing bits for bswap to libcall code.
6592 * tree.c (build_common_tree_nodes): Build uint16_type_node.
6593 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
6594 (uint16_type_node): New define.
6595 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
6596 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
6597 above builtin.
6598 (rs6000_init_builtins): Likewise.
6599 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
6600
6601 2012-04-11 Tristan Gingold <gingold@adacore.com>
6602
6603 * doc/extend.texi (Type Attributes): Move paragraph.
6604
6605 2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
6606
6607 PR 24985
6608 * diagnostic.h (show_caret): Declare.
6609 (caret_max_width): Declare.
6610 (diagnostic_show_locus): Declare.
6611 * diagnostic.c (diagnostic_initialize): Initialize to false.
6612 (diagnostic_show_locus): New.
6613 (diagnostic_report_diagnostic): Call it.
6614 (getenv_columns): New.
6615 (adjust_line): New.
6616 (diagnostic_set_caret_max_width): New.
6617 * input.c (read_line): New.
6618 (location_get_source_line): New.
6619 * input.h (location_get_source_line): Declare.
6620 * toplev.c (general_init): Initialize show_caret from options.
6621 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
6622 * opts.c (common_handle_option): Likewise.
6623 * pretty-print.h (pp_get_prefix): New.
6624 (pp_base_get_prefix): New.
6625 * common.opt (fdiagnostics-show-caret): New option.
6626 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
6627
6628 2012-04-11 Richard Guenther <rguenther@suse.de>
6629
6630 PR rtl-optimization/52881
6631 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
6632
6633 2012-04-11 Richard Guenther <rguenther@suse.de>
6634
6635 PR tree-optimization/52912
6636 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
6637 manipulation code we are threading through a loop header
6638 to an exit destination.
6639
6640 2012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
6641
6642 * tree.h (warn_if_unused_value): Move declaration from here.
6643 * stmt.c (warn_if_unused_value): Move definition from here.
6644
6645 2010-04-10 Michael Matz <matz@suse.de>
6646
6647 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
6648 grouped_stores.
6649 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
6650 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
6651 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
6652 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
6653 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
6654 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
6655 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
6656 (vect_record_strided_load_vectors): Rename to
6657 vect_record_grouped_load_vectors.
6658 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6659 Rename use of above macros.
6660 (vect_verify_datarefs_alignment): Ditto.
6661 (vector_alignment_reachable_p): Ditto.
6662 (vect_peeling_hash_get_lowest_cost): Ditto.
6663 (vect_enhance_data_refs_alignment): Ditto.
6664 (vect_analyze_group_access): Ditto and rename stride to groupsize.
6665 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
6666 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
6667 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
6668 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
6669 (vect_record_strided_load_vectors): Rename to
6670 vect_record_grouped_load_vectors.
6671 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
6672 (destroy_loop_vec_info): Ditto.
6673 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
6674 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
6675 (vect_analyze_slp): Ditto.
6676 (new_bb_vec_info): Ditto.
6677 (destroy_bb_vec_info): Ditto.
6678 (vect_schedule_slp_instance): Ditto and rename strided_store to
6679 grouped_store.
6680 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
6681 vect_cost_group_size.
6682 (vect_model_store_cost): Rename use of above macros and call
6683 to vect_cost_strided_group_size.
6684 (vect_model_load_cost): Ditto.
6685 (vectorizable_store): Ditto, rename strided_store to grouped_store
6686 and calls to renamed tree-vectorizer.h functions.
6687 (vectorizable_load): Ditto.
6688 (vect_transform_stmt): Rename use of above macros and strided_store
6689 to grouped_store.
6690
6691 2012-04-10 Jan Hubicka <jh@suse.cz>
6692
6693 * cgraph.h: Remove misledaing comment on ipa-ref.h.
6694 (symtab_type): New enum.
6695 (symtab_node): New structure.
6696 (cgraph_node, varpool_node): Add symbol base type.
6697 (cgraph, varpool): New accestor functions.
6698 * cgraph.c (cgraph_create_node_1): Set symbol type.
6699 * varpool.c (varpool_node): Set symbol type.
6700
6701 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
6702 Richard Sandiford <rdsandiford@googlemail.com>
6703
6704 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
6705
6706 2012-04-10 Richard Guenther <rguenther@suse.de>
6707
6708 PR middle-end/52888
6709 * gimple-low.c (gimple_check_call_args): Properly account for
6710 compatible aggregate types.
6711
6712 2012-04-10 Richard Guenther <rguenther@suse.de>
6713
6714 * toplev.h (tree_rest_of_compilation): Remove.
6715 * tree-optimize.c (tree_rest_of_compilation): Likewise.
6716 * cgraph.h (tree_rest_of_compilation): Declare.
6717 * tree-optimize.c (tree_rest_of_compilation): Move ...
6718 * cgraphunit.c (tree_rest_of_compilation): ... here.
6719 * cgraph.c (cgraph_add_new_function): Adjust.
6720 * Makefile.in (tree-optimize.o): Adjust.
6721 (cgraphunit.o): Likewise.
6722
6723 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
6724
6725 PR tree-optimization/52870
6726 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
6727 presumed pattern statement is within the same loop or basic block.
6728
6729 2012-04-10 Tristan Gingold <gingold@adacore.com>
6730
6731 * gengtype.c (main): Make uintptr_t a known type.
6732
6733 2012-04-10 Richard Guenther <rguenther@suse.de>
6734
6735 * tree-pass.h (tree_lowering_passes): Remove.
6736 * tree-optimize.c (tree_lowering_passes): Remove.
6737 * cgraph.c (cgraph_add_new_function): Inline relevant parts
6738 of tree_lowering_passes, avoid redundant call of early local passes.
6739 * cgraphunit.c (cgraph_lower_function): Fold into ...
6740 (cgraph_analyze_function): ... its single caller. Inline
6741 relevant parts of tree_lowering_passes.
6742
6743 2012-04-09 H.J. Lu <hongjiu.lu@intel.com>
6744
6745 PR other/52777
6746 * config/pa/pa.opt: Remove SIO and GNU_LD.
6747
6748 2012-04-09 Jan Hubicka <jh@suse.cz>
6749
6750 PR lto/52722
6751 PR lto/51765
6752 PR lto/52634
6753 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
6754 boundary, add its target too.
6755 * lto.c (add_references_to_partition): Add also aliased nodes.
6756 (add_cgraph_node_to_partition,
6757 add_varpool_node_to_partition): Work on nodes, not functions/variables;
6758 when adding alias, add also the aliased object.
6759
6760 2012-04-09 Uros Bizjak <ubizjak@gmail.com>
6761
6762 PR target/52883
6763 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
6764 VOIDmode immediate operands.
6765 * config/i386/constraints.md (Wz): New constraint.
6766 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
6767
6768 2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
6769
6770 PR target/52717
6771 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
6772 the DECL generated for the special GOT helper.
6773
6774 2012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
6775
6776 * config/sh/constraints.md: Update list of constraints in
6777 comment block.
6778 (Sr0): Remove unused memory constraint.
6779
6780 2012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
6781
6782 * tree-pretty-print.h: Update comment.
6783
6784 2012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
6785
6786 * config/sh/sh.md: Use braced string notation where applicable.
6787 (*prefetch_i4, prefetch_m2a): Merge into ...
6788 (*prefetch): ... this new insn.
6789
6790 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
6791
6792 * config/sh/sh.h (high_life_started): Remove
6793 * config/sh/predicates.md (general_movdst_operand): Use
6794 'reload_in_progress' instead of 'high_life_started'.
6795 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
6796 divsi_inv_fp): Likewise.
6797
6798 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
6799
6800 * config/sh/sh-protos.h (prepare_move_operands): Return void
6801 instead of int.
6802 * config/sh/sh.c (prepare_move_operands): Likewise.
6803 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
6804
6805 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
6806
6807 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
6808 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
6809 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
6810 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
6811 commutative_float_operator, noncommutative_float_operator,
6812 sh_handle_pragma): Remove.
6813
6814 2012-04-06 Sandra Loosemore <sandra@codesourcery.com>
6815
6816 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
6817 Use @option markup on command-line options. Use @samp markup on
6818 literal keywords to options. Use @code markup on code fragments.
6819 Use other markup in preference to quotation marks in the text.
6820 Add markup to some passages without any.
6821
6822 2012-04-06 Mike Stump <mikestump@comcast.net>
6823
6824 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
6825
6826 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
6827
6828 * config/sh/sh.c (hi_const): Remove.
6829 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
6830 of hi_const.
6831
6832 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
6833
6834 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
6835 to bool.
6836 * config/sh/sh.c (sh_expand_t_scc): Likewise.
6837 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
6838 calling sh_expand_t_scc.
6839
6840 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
6841
6842 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
6843 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
6844 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
6845 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
6846 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
6847 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
6848 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
6849 sh2a_is_function_vector_call): Use bool as return type.
6850 (sh_pass_in_reg_p): Remove.
6851 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
6852 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
6853 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
6854 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
6855 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
6856 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
6857 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
6858 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
6859 sh_loads_bankedreg_p): Use bool as return type.
6860 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
6861 'register' modifier.
6862
6863 2012-04-06 Matt Turner <mattst88@gmail.com>
6864
6865 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
6866
6867 2012-04-06 Eric Botcazou <ebotcazou@adacore.com>
6868
6869 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
6870 of the destination isn't also a FP_REGS register.
6871
6872 2012-04-05 Teresa Johnson <tejohnson@google.com>
6873 H.J. Lu <hongjiu.lu@intel.com>
6874
6875 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
6876 * config/i386/i386.md (move immediate to memory peephole2):
6877 Add cases for HImode move when LCP stall avoidance is needed.
6878 * config/i386/i386.c (initial_ix86_tune_features): Initialize
6879 X86_TUNE_LCP_STALL entry.
6880
6881 2012-04-05 Uros Bizjak <ubizjak@gmail.com>
6882
6883 PR target/52882
6884 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
6885 CONST_INT operands, zero-extended with AND.
6886
6887 2012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
6888
6889 PR target/50751
6890 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
6891 first argument instead of mode size. Move displacement calculations
6892 to ...
6893 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
6894 ... these new functions.
6895 (disp_adjust): Remove max_mov_disp field.
6896 (sh_legitimate_index_p): Use max_mov_insn_displacement and
6897 mov_insn_alignment_mask.
6898 (sh_address_cost): Use max_mov_insn_displacement.
6899
6900 2012-04-05 Andrew Stubbs <ams@codesourcery.com>
6901
6902 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
6903 (arch_enabled): Handle new arch types.
6904 (one_cmpldi2): Add NEON support.
6905
6906 2012-04-05 Richard Guenther <rguenther@suse.de>
6907
6908 * gimple.c (walk_gimple_op): Compute val_only for the LHS
6909 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
6910 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
6911 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
6912 ... here and make static.
6913 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
6914 Remove.
6915
6916 2012-04-05 Richard Guenther <rguenther@suse.de>
6917
6918 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
6919 basic-block before removing it.
6920
6921 2012-04-05 Richard Guenther <rguenther@suse.de>
6922
6923 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
6924 version namespace as we release the freelist.
6925
6926 2012-04-05 Richard Guenther <rguenther@suse.de>
6927
6928 * tree-nrv.c (tree_nrv): Release VDEFs.
6929 * tree-sra.c (sra_modify_constructor_assign): Likewise.
6930 (sra_modify_assign): Likewise.
6931 * tree-vect-stmts.c (vect_remove_stores): Likewise.
6932 * tree-vect-loop.c (vect_transform_loop): Likewise.
6933 * tree-ssa-dom.c (optimize_stmt): Likewise.
6934 * tree-vect-slp.c (vect_schedule_slp): Likewise.
6935 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
6936
6937 2012-04-05 Richard Guenther <rguenther@suse.de>
6938
6939 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
6940 cleanup.
6941 * gimple.h (gsi_remove): Adjust.
6942 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
6943 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
6944 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
6945 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
6946 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
6947 * tree-ssa-pre.c (eliminate): Likewise.
6948
6949 2012-04-04 Mike Stump <mikestump@comcast.net>
6950
6951 * doc/rtl.texi (const_double): Document as sign-extending.
6952 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
6953 * emit-rtl.c (immed_double_int_const): Refine to state the
6954 value is signed.
6955 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
6956 CONST_DOUBLE integers.
6957 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
6958 negative values are converted. Fix conversions bigger than
6959 HOST_BITS_PER_WIDE_INT.
6960 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
6961 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
6962 * explow.c (plus_constant_mode): Add.
6963 (plus_constant): Implement with plus_constant_mode.
6964 * rtl.h (plus_constant_mode): Add.
6965
6966 2012-04-04 Richard Guenther <rguenther@suse.de>
6967
6968 PR tree-optimization/52808
6969 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
6970 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
6971
6972 2012-04-04 Tristan Gingold <gingold@adacore.com>
6973
6974 * expr.c (expand_expr_real_2): Handle larger sizetype in
6975 POINTER_PLUS_EXPR.
6976
6977 2012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
6978
6979 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
6980 to m2a-single instead of m2e.
6981
6982 2012-04-03 Eric Botcazou <ebotcazou@adacore.com>
6983
6984 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
6985 Change type of BITOFFSET to signed. Make sure the lower bound of
6986 the computed range is non-negative by adjusting OFFSET and BITPOS.
6987 (expand_assignment): Adjust call to get_bit_range.
6988
6989 2012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
6990
6991 * h8300/h8300.c (h8300_current_function_monitor_function_p):
6992 New function. Added to check monitor functions.
6993 (h8300_option_override): Modified to generate error/warning
6994 messages for invalid combinations of different command line
6995 options.
6996 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
6997 save EXR on stack for monitor function in case of H8S target
6998 when "-mno-exr" is passed.
6999 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
7000 Add prototype.
7001 * doc/invoke.texi: Document H8S options.
7002
7003 2012-04-03 Tristan Gingold <gingold@adacore.com>
7004
7005 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
7006 of gcc_AC_FUNC_MMAP_BLACKLIST.
7007 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
7008 * Makefile.in (aclocal_deps): Add mmap.m4.
7009 * configure: Regenerate.
7010 * aclocal.m4: Regenerate.
7011
7012 2012-04-03 Richard Guenther <rguenther@suse.de>
7013
7014 PR tree-optimization/52808
7015 * tracer.c (tail_duplicate): Return whether we have duplicated
7016 any block.
7017 (tracer): If we have duplicated any block, cleanup the CFG.
7018 * cfghooks.c (duplicate_block): If we duplicated a loop
7019 header but not its loop, destroy the loop because it now has
7020 multiple entries.
7021 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
7022 the cfg manipulation routines we are not creating a multiple
7023 entry loop.
7024
7025 2012-04-03 Tristan Gingold <gingold@adacore.com>
7026
7027 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
7028 'byte' alignment.
7029 (vms_c_common_override_options): Allow parameterless variadic
7030 functions.
7031
7032 2012-04-03 Jakub Jelinek <jakub@redhat.com>
7033
7034 PR tree-optimization/52835
7035 * tree-data-ref.c (build_rdg): Return NULL if
7036 compute_data_dependences_for_loop failed.
7037
7038 2012-04-03 Eric Botcazou <ebotcazou@adacore.com>
7039
7040 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
7041 for REAL_CST as well.
7042 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
7043 In the bitfield case, if the value is a REAL_CST, convert it first to
7044 an INTEGER_CST.
7045
7046 2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
7047
7048 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
7049 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
7050 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
7051
7052 * config/i386/biarchx32.h: New.
7053
7054 2012-04-02 Anatoly Sokolov <aesok@post.ru>
7055
7056 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
7057 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7058 (arm_preferred_reload_class): New function.
7059
7060 2012-04-02 Richard Guenther <rguenther@suse.de>
7061
7062 PR tree-optimization/52756
7063 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
7064 (thread_through_loop_header): After threading through the loop latch
7065 remove the split part from the loop and clear further threading
7066 opportunities that would create a multiple entry loop.
7067
7068 2012-04-02 Richard Guenther <rguenther@suse.de>
7069
7070 PR rtl-optimization/52800
7071 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
7072 CLEANUP_CFG_CHANGED.
7073
7074 2012-04-02 Richard Guenther <rguenther@suse.de>
7075
7076 PR middle-end/52803
7077 * loop-init.c (gate_handle_loop2): Destroy loops here if
7078 we don't enter RTL loop optimizers.
7079
7080 2012-04-02 Uros Bizjak <ubizjak@gmail.com>
7081
7082 Partially revert:
7083 2012-03-29 Richard Guenther <rguenther@suse.de>
7084
7085 * rtl.h (extended_count): Remove.
7086 * combine.c (extended_count): Remove.
7087
7088 2012-04-02 Dodji Seketeli <dodji@redhat.com>
7089
7090 PR c++/40942
7091 * pt.c (more_specialized_fn): Don't apply decay conversion to
7092 types of function parameters.
7093
7094 2012-04-02 Tristan Gingold <gingold@adacore.com>
7095
7096 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
7097 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
7098 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
7099 (ggc_pch_this_base): Use uintptr_t instead of size_t.
7100
7101 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
7102
7103 PR bootstrap/52784
7104 * config/i386/i386.c (ix86_option_override_internal): Don't
7105 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
7106
7107 2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
7108
7109 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
7110 (stmt_can_make_abnormal_goto): Use it.
7111 (is_ctrl_altering_stmt): Likewise.
7112
7113 2012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
7114 Kaz Kojima <kkojima@gcc.gnu.org>
7115
7116 * config/sh/sh.c (push_regs): Skip banked registers when
7117 resbank attribute is specified.
7118 (sh_expand_epilogue): Likewise.
7119
7120 2012-03-30 Richard Henderson <rth@redhat.com>
7121
7122 PR debug/52727
7123 * combine-stack-adj.c (prev_active_insn_bb): New.
7124 (next_active_insn_bb): New.
7125 (force_move_args_size_note): New.
7126 (combine_stack_adjustments_for_block): Use it.
7127
7128 2012-03-30 Richard Henderson <rth@redhat.com>
7129
7130 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
7131 (ix86_expand_vector_init_duplicate): Initialize it.
7132 (expand_vec_perm_palignr): Likewise.
7133 (ix86_expand_vec_perm_const): Likewise.
7134 (ix86_vectorize_vec_perm_const_ok): Likewise.
7135 (expand_vec_perm_blend): Use it.
7136 (expand_vec_perm_vpermil): Likewise.
7137 (expand_vec_perm_pshufb): Likewise.
7138 (expand_vec_perm_1): Likewise.
7139 (expand_vec_perm_pshuflw_pshufhw): Likewise.
7140 (expand_vec_perm_interleave2): Likewise.
7141 (expand_vec_perm_vpermq_perm_1): Likewise.
7142 (expand_vec_perm_vperm2f128): Likewise.
7143 (expand_vec_perm_interleave3): Likewise.
7144 (expand_vec_perm_vperm2f128_vblend): Likewise.
7145 (expand_vec_perm_vpshufb2_vpermq): Likewise.
7146 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
7147 (expand_vec_perm_broadcast): Likewise.
7148 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
7149
7150 2012-03-30 Richard Henderson <rth@redhat.com>
7151
7152 * dwarf2out.c (gen_variable_die): Initialize off.
7153
7154 2012-03-30 Tristan Gingold <gingold@adacore.com>
7155
7156 * config/vms/vms-f.c: New file.
7157 * config/vms/t-vms (vms-f.o): New rule.
7158 * config.gcc (*-*-*vms*): Define fortran_target_objs.
7159
7160 2012-03-30 Richard Guenther <rguenther@suse.de>
7161
7162 PR tree-optimization/52754
7163 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
7164 propagate arbitrary addresses into really plain dereferences.
7165
7166 2012-03-30 Richard Guenther <rguenther@suse.de>
7167
7168 PR middle-end/52772
7169 * except.c (emit_to_new_bb_before): Move loop updating ...
7170 (dw2_build_landing_pads): ... here. Use a proper block for
7171 querying the loop father.
7172
7173 2012-03-30 Tristan Gingold <gingold@adacore.com>
7174
7175 * config/ia64/ia64.c (ia64_section_type_flags): Remove
7176 common_object attribute handling.
7177 (SECTION_VMS_OVERLAY): Remove
7178 (ia64_vms_common_object_attribute): Replace abort with an assert.
7179 Do not set DECL_SECTION_NAME.
7180 (ia64_vms_output_aligned_decl_common): Handle common_object
7181 attribute.
7182 (ia64_vms_elf_asm_named_section): Remove.
7183 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
7184
7185 2012-03-30 Richard Guenther <rguenther@suse.de>
7186
7187 PR middle-end/52786
7188 * double-int.c (rshift_double): Remove not needed cast.
7189
7190 2012-03-30 Richard Guenther <rguenther@suse.de>
7191
7192 * tree-affine.h (print_aff): Remove.
7193 * tree-affine.c (print_aff): Make static.
7194 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
7195 (get_references_in_stmt): Likewise.
7196 (print_direction_vector): Likewise.
7197 (print_dir_vectors): Likewise.
7198 (print_dist_vectors): Likewise.
7199 (dump_subscript): Likewise.
7200 (dump_ddrs): Likewise.
7201 (dump_dist_dir_vectors): Likewise.
7202 (dump_data_references): Likewise.
7203 (dump_data_dependence_relation): Likewise.
7204 (dump_data_dependence_direction): Likewise.
7205 (dump_rdg_vertex): Likewise.
7206 (dump_rdg_component): Likewise.
7207 (debug_ddrs): Declare.
7208 (struct data_ref_loc_d): Move ...
7209 * tree-data-ref.c (struct data_ref_loc_d): ... here.
7210 (get_references_in_stmt): Make static.
7211 (dump_data_references): Likewise.
7212 (dump_subscript): Likewise.
7213 (print_direction_vector): Likewise.
7214 (print_dir_vectors): Likewise.
7215 (print_dist_vectors): Likewise.
7216 (dump_data_dependence_relation): Likewise.
7217 (dump_dist_dir_vectors): Likewise.
7218 (dump_ddrs): Likewise.
7219 (dump_rdg_vertex): Likewise.
7220 (dump_rdg_component): Likewise.
7221 (debug_ddrs): New function.
7222 (access_matrix_get_index_for_parameter): Remove.
7223
7224 2012-03-30 Tristan Gingold <gingold@adacore.com>
7225
7226 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
7227 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
7228 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
7229 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
7230 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
7231 (vms_patch_builtins): Handle new flags
7232 * config/vms/vms-crtlmap.map: Completed using nm on
7233 c and math system libraries.
7234 * config/vms/make-crtlmap.awk: Handle any number of flags.
7235
7236 2012-03-30 Martin Jambor <mjambor@suse.cz>
7237
7238 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
7239 is a builtin_stack_save in a dominating BB.
7240
7241 2012-03-29 Uros Bizjak <ubizjak@gmail.com>
7242
7243 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
7244 crossing 128bit lane boundary.
7245
7246 2012-03-29 Vladimir Makarov <vmakarov@redhat.com>
7247
7248 * ira-color.c (setup_left_conflict_sizes_p): Process all
7249 conflicting objects.
7250
7251 2012-03-29 Jakub Jelinek <jakub@redhat.com>
7252
7253 PR tree-optimization/52760
7254 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
7255 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
7256
7257 2012-03-29 Richard Guenther <rguenther@suse.de>
7258
7259 * cgraph.h (cgraph_materialize_all_clones): Remove.
7260 (reset_inline_failed): Likewise.
7261 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
7262 * cgraphbuild.c (reset_inline_failed): Remove.
7263 * rtl.h (cse_main): Remove.
7264 (extended_count): Likewise.
7265 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
7266 (cse_main): Make static.
7267 * combine.c (extended_count): Remove.
7268 (dump_combine_stats): Mark as DEBUG_FUNCTION.
7269 * basic-block.h (reorder_basic_blocks): Remove.
7270 * bb-reorder.c (reorder_basic_blocks): Make static.
7271 * Makefile.in (dse.o): Remove dse.h dependency.
7272 * dse.h: Remove.
7273 * dse.c (gate_dse): Remove.
7274 (clear_alias_mode_eq): Likewise.
7275 (clear_alias_mode_hash): Likewise.
7276 (dse_record_singleton_alias_set): Likewise.
7277 (dse_invalidate_singleton_alias_set): Likewise.
7278
7279 2012-03-29 H.J. Lu <hongjiu.lu@intel.com>
7280
7281 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
7282 crtbegin_so%O%s for -shared.
7283 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
7284
7285 2012-03-29 Richard Guenther <rguenther@suse.de>
7286
7287 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
7288 (add_to_value): Remove.
7289 (print_value_expressions): Likewise.
7290 * tree-ssa-pre.c (add_to_value): Make static.
7291 (print_value_expressions): Likewise.
7292 * gimple.h (gimple_adjust_this_by_delta): Remove.
7293 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
7294
7295 2012-03-29 Richard Guenther <rguenther@suse.de>
7296
7297 PR middle-end/50708
7298 * double-int.h (rshift_double): Remove.
7299 * double-int.c (lshift_double): Use absu_hwi to make count positive.
7300 (rshift_double): Make static, take unsigned count argument,
7301 remove handling of negative count argument.
7302 (double_int_rshift): Dispatch to lshift_double.
7303
7304 2012-03-28 H.J. Lu <hongjiu.lu@intel.com>
7305
7306 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
7307 OPTION_MASK_ABI_64.
7308
7309 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
7310 (SPEC_X32): Likewise.
7311 (MULTILIB_DEFAULTS): Likewise.
7312
7313 * config/i386/i386.c (isa_opts): Remove -m64.
7314 (ix86_target_string): Properly handle -m32/-m64/-mx32.
7315 (ix86_option_override_internal): Properly
7316 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
7317 handle -m32, -m64 and -mx32.
7318
7319 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
7320 with OPTION_ABI_X32. Moved after TARGET_LP64.
7321 (TARGET_LP64): Changed to OPTION_ABI_64.
7322
7323 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
7324 (mx32): Replace ISA_X32 with ABI_X32.
7325
7326 2012-03-28 Eric Botcazou <ebotcazou@adacore.com>
7327
7328 * tree.c (tree_size) <VECTOR_CST>: New case.
7329
7330 2012-03-28 Uros Bizjak <ubizjak@gmail.com>
7331
7332 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
7333 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
7334
7335 2012-03-28 Jakub Jelinek <jakub@redhat.com>
7336
7337 PR middle-end/52691
7338 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
7339 __builtin_va_start to __builtin_next_arg if the latter is
7340 builtin_decl_explicit_p rather than when it is not.
7341
7342 PR middle-end/52750
7343 * tree-vect-generic.c (vector_element): Perform multiplication
7344 for pos in bitsizetype type instead of idx type.
7345
7346 2012-03-28 Richard Guenther <rguenther@suse.de>
7347
7348 * loop-init.c (loop_optimizer_init): If loops are preserved
7349 perform incremental initialization of required loop features.
7350 (loop_optimizer_finalize): If loops are to be preserved only
7351 clean up optional loop features.
7352 (rtl_loop_done): Forcefully free loops here.
7353 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
7354 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
7355 to existing loops.
7356 (construct_init_block): Likewise.
7357 (construct_exit_block): Likewise.
7358 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
7359 the CFG after expanding.
7360 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
7361 If we needed to calculate them, free them afterwards.
7362 * tree-pass.h (PROP_loops): New define.
7363 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
7364 * basic-block.h (CLEANUP_CFG_CHANGED): New.
7365 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
7366 (cleanup_cfg): If we did something and have loops around, fix them up.
7367 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
7368 with CLEANUP_CFG_CHANGED.
7369 * cfghooks.c (merge_blocks): If we merge a loop header into
7370 its predecessor, update the loop structure.
7371 (duplicate_block): If we copy a loop latch, adjust loop state
7372 to note we may have multiple latches.
7373 (delete_basic_block): Mark loops for fixup if we remove a loop.
7374 * cfganal.c (forwarder_block_p): Protect loop latches, headers
7375 and preheaders.
7376 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
7377 (cfg_layout_can_merge_blocks_p): Likewise.
7378 * cprop.c (bypass_block): If we create a loop with multiple
7379 entries, mark it for removal.
7380 * except.c (emit_to_new_bb_before): Add the new basic-block
7381 to existing loops.
7382 * tree-eh.c (lower_resx): Likewise.
7383 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
7384 (expand_omp_taskreg): Likewise.
7385 * tree-inline.c (initialize_cfun): Likewise.
7386 * tree-mudflap.c (add_bb_to_loop): Prototype.
7387 (mf_build_check_statement_for): Properly add new basic-blocks
7388 to existing loops.
7389 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
7390 if we remove a loop.
7391 (thread_through_loop_header): Likewise.
7392 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
7393 new basic-blocks to existing loops.
7394 (expand_transaction): Likewise.
7395 * Makefile.in (except.o): Add $(CFGLOOP_H).
7396 (expr.o): Likewise.
7397 (cgraph.o): Likewise.
7398 (cprop.o): Likewise.
7399 (cfgexpand.o): Likewise.
7400 (cfganal.o): Likewise.
7401 (trans-mem.o): Likewise.
7402 (tree-eh.o): Likewise.
7403
7404 2012-03-28 Georg-Johann Lay <avr@gjlay.de>
7405
7406 PR target/52692
7407 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
7408 (avr_builtin_decl): New static function.
7409 (struct avr_builtin_description, avr_bdesc): Move up.
7410 Add GTY marker. Add field fndecl. Remove redundant field id.
7411 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
7412 (avr_expand_builtin): Code cleanup because .id is removed.
7413
7414 2012-03-28 Georg-Johann Lay <avr@gjlay.de>
7415
7416 PR target/52737
7417 * config.gcc (tm_file): Remove avr/multilib.h.
7418
7419 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
7420
7421 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
7422 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
7423 * config/avr/t-avr: Remove generation of multilib.h.
7424 * config/avr/t-multilib: Regenerate.
7425 * config/avr/multilib.h: Remove.
7426 * config/avr/avr.opt (-msp8): New option.
7427 (avr_sp8): New variable.
7428 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
7429 * config/avr/avr.h (AVR_HAVE_SPH): New define.
7430 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
7431 (avr_device_to_sp8): New prototype.
7432 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
7433 (DRIVER_SELF_SPECS): New define.
7434 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
7435 __AVR_SP8__, __AVR_HAVE_SPH__.
7436 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
7437 AVR_HAVE_8BIT_SP to decide if SP_H is present.
7438 (avr_file_start): Ditto.
7439
7440 2012-03-28 Jakub Jelinek <jakub@redhat.com>
7441
7442 PR target/52736
7443 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
7444 instead of 8 in adjust_address.
7445
7446 2012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
7447
7448 PR middle-end/51893
7449 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
7450 targets.
7451
7452 2012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
7453
7454 PR target/50751
7455 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
7456 Rearrange conditional logic. Move displacement address calculations
7457 to ...
7458 (sh_find_mov_disp_adjust): ... this new function.
7459
7460 2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
7461
7462 * config/arm/arm.opt (mapcs): Remove MaskExists.
7463 * config/cris/linux.opt (mno-gotplt): Likewise.
7464 * config/i386/i386.opt (mhard-float): Likewise.
7465 (msse4): Likewise.
7466 (mno-sse4): Likewise.
7467 * config/m68k/m68k.opt (mhard-float): Likewise.
7468 * config/mep/mep.op (mcop32): Likewise.
7469 * config/pa/pa-hpux.opt (msio): Likewise.
7470 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
7471 * config/picochip/picochip.opt (mlittle): Likewise.
7472 * config/sh/sh.opt (mrenesas): Likewise.
7473 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
7474 * config/sparc/sparc.opt (mhard-float): Likewise.
7475 * config/v850/v850.opt (mv850es): Likewise.
7476 * config/vax/vax.opt (mg-float): Likewise.
7477
7478 2012-03-27 Martin Jambor <mjambor@suse.cz>
7479
7480 PR middle-end/52693
7481 * tree-sra.c (sra_modify_assign): Do not call
7482 load_assign_lhs_subreplacements when working with an unscalarizable
7483 region.
7484
7485 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
7486
7487 PR target/52698
7488 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
7489 New prototype.
7490 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
7491 * config/i386/i386.c: Include reload.h.
7492 (ix86_legitimize_reload_address): New function.
7493
7494 2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
7495
7496 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
7497 hasn't been allocated. Define a target macro for Mask and
7498 InverseMask if it hasn't been defined. Remove MaskExists handling.
7499
7500 * doc/options.texi: Remove MaskExists.
7501
7502 2012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
7503
7504 PR target/52667
7505 * config/sh/sh.c (find_barrier): Add equality check of last_got
7506 to avoid going above orig insn. Update comments.
7507
7508 2012-03-27 Richard Guenther <rguenther@suse.de>
7509
7510 PR middle-end/52720
7511 * fold-const.c (try_move_mult_to_index): Handle &x.array more
7512 explicitely.
7513
7514 2012-03-27 Eric Botcazou <ebotcazou@adacore.com>
7515
7516 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
7517 of a unit before computing the offset in units.
7518 * expr.c (get_bit_range): Return the null range if the enclosing record
7519 is part of a larger bit field.
7520
7521 2012-03-27 Tristan Gingold <gingold@adacore.com>
7522
7523 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
7524 * config/ia64/ia64.md: Remove mode in template.
7525 Sign extend operand in expand_simple_binop.
7526 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
7527 CASE_VECTOR_MODE instead of TARGET_ILP32.
7528 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
7529
7530 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
7531
7532 * varasm.c (assemble_external): #if 0 out the new assert from the
7533 previous commit, it breaks the Java and Go front ends.
7534
7535 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
7536
7537 * toplev.c (check_global_declaration_1): Do not call assemble_external.
7538 * expr.c (emit_block_move_libcall_fn): Likewise.
7539 (clear_storage_libcall_fn): Likewise.
7540 (expand_expr_addr_expr_1): Likewise.
7541 (expand_expr_real_1): Likewise.
7542 * calls.c (rtx_for_function_call): Likewise.
7543
7544 * varasm.c (assemble_external): Assert this function is only called
7545 during or after expanding to RTL.
7546
7547 2012-03-26 Martin Jambor <mjambor@suse.cz>
7548
7549 PR tree-optimization/50052
7550 * tree-sra.c (tree_non_aligned_mem_p): Removed.
7551 (tree_non_aligned_mem_for_access_p): Likewise.
7552 (build_accesses_from_assign): Removed strict alignment requirements
7553 checks.
7554 (access_precludes_ipa_sra_p): Likewise.
7555
7556 2012-03-26 Richard Guenther <rguenther@suse.de>
7557
7558 PR tree-optimization/52701
7559 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
7560 compute and set the evolution part of PHI nodes.
7561
7562 2012-03-26 Richard Guenther <rguenther@suse.de>
7563
7564 PR tree-optimization/52721
7565 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
7566
7567 2012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
7568
7569 PR tree-optimization/52686
7570 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
7571 WIDEN_LSHIFT_EXPR.
7572
7573 2012-03-26 Tristan Gingold <gingold@adacore.com>
7574
7575 * config/alpha/vms.h (LINK_SPEC): Simplify.
7576 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
7577 (NAME__MAIN, SYMBOL__MAIN): Remove.
7578 (VMS_DEBUG_MAIN_POINTER): Remove.
7579 * config/ia64/vms.h: Likewise.
7580 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
7581 code to vms.c. Call vms_start_function.
7582 * config/ia64/ia64.c (ia64_start_function): Likewise.
7583 * config/vms/vms-protos.h (vms_start_function): Declare.
7584 * config/vms/vms.c (vms_start_function): New function.
7585 * config/vms/vms.h (MATH_LIBRARY): Define.
7586 (VMS_DEBUG_MAIN_POINTER): Define.
7587
7588 2012-03-26 Eric Botcazou <ebotcazou@adacore.com>
7589
7590 PR rtl-optimization/52629
7591 * reload1.c (count_pseudo): Short-circuit common case.
7592 (count_spilled_pseudo): Return early for pseudos without hard regs.
7593 Assert that the pseudo has got a hard reg before manipulating it.
7594
7595 2012-03-24 Jan Hubicka <jh@suse.cz>
7596
7597 PR lto/51663
7598 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
7599 (decide_is_variable_needed): Do not handle toplevel reorder here.
7600 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
7601 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
7602 even at -O0.
7603
7604 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
7605
7606 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
7607 and str_bitsize instead of more convoluted expressions.
7608
7609 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
7610
7611 PR target/52610
7612 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
7613
7614 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
7615
7616 PR target/52656
7617 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
7618
7619 2012-03-23 Martin Jambor <mjambor@suse.cz>
7620
7621 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
7622
7623 2012-03-23 Richard Guenther <rguenther@suse.de>
7624
7625 PR tree-optimization/52678
7626 * tree-vectorizer.h (struct _stmt_vec_info): Add
7627 loop_phi_evolution_part member.
7628 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
7629 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
7630 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
7631 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7632 Use the cached evolution part and the PHI nodes value from
7633 the loop preheader edge instead of re-analyzing the evolution.
7634
7635 2012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
7636
7637 * config/mips/mips-tables.opt: Update.
7638 * config/mips/mips.md (processor): Add xlp.
7639 * config/mips/mips-cpus.def: Add xlp.
7640 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
7641 5KF for now.
7642 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
7643 * doc/invoke.texi: Mention XLP.
7644
7645 2012-03-22 Jakub Jelinek <jakub@redhat.com>
7646
7647 PR middle-end/52547
7648 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
7649 on any new_local_var_chain vars declared during recursing on
7650 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
7651
7652 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
7653
7654 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
7655 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
7656 (ASM_OUTPUT_LOCAL): Ditto.
7657 (ASM_OUTPUT_COMMON): Remove.
7658 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
7659 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
7660
7661 2012-03-22 Jan Hubicka <jh@suse.cz>
7662
7663 PR middle-end/51737
7664 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
7665 parameter.
7666 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
7667 * ipa-inline-transform.c (save_inline_function_body): Remove
7668 copied clone if needed.
7669 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
7670
7671 2012-03-22 Richard Guenther <rguenther@suse.de>
7672
7673 PR middle-end/52666
7674 * fold-const.c (fold_ternary_loc): Fix typo.
7675
7676 2012-03-22 Georg-Johann Lay <avr@gjlay.de>
7677
7678 PR target/52496
7679 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
7680 (unspecv): Add UNSPECV_MEMORY_BARRIER.
7681 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
7682 (delay_cycles_1, delay_cycles_2): Ditto.
7683 (delay_cycles_3, delay_cycles_4): Ditto.
7684 (nopv, *nopv): Ditto.
7685 (sleep, *sleep): Ditto.
7686 (wdr, *wdr): Ditto.
7687
7688 2012-03-22 Richard Guenther <rguenther@suse.de>
7689
7690 PR tree-optimization/52548
7691 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
7692 because of clobbers.
7693 (prune_clobbered_mems): New function.
7694 (compute_antic_aux): Use it to prune ANTIC_OUT.
7695 (compute_partial_antic_aux): Use it to prune PA_IN.
7696 (compute_avail): Only insert expressions into EXP_GEN that are not
7697 invalidated when translated up to the beginning of the block.
7698
7699 2012-03-22 Richard Guenther <rguenther@suse.de>
7700
7701 PR tree-optimization/52638
7702 * tree-vect-stmts.c (vect_init_vector_1): New function, split
7703 out from ...
7704 (vect_init_vector): ... here. Handle scalar vector inits.
7705 (vect_get_vec_def_for_operand): Adjust.
7706 (vectorizable_load): Likewise.
7707
7708 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
7709
7710 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
7711 (alpha*-*-freebsd*): Ditto.
7712 (alpha*-*-netbsd*): Ditto.
7713 (alpha*-*-openbsd*): Ditto.
7714 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
7715 (DWARF2_DEBUGGING_INFO): Remove.
7716 (PREFERRED_DEBUGGING_TYPE): Remove.
7717 (ASM_FINAL_SPEC): Remove.
7718 (IDENT_ASM_OP): Remove.
7719 (ASM_OUTPUT_IDENT): Remove.
7720 (SKIP_ASM_OP): Remove.
7721 (ASM_OUTPUT_SKIP): Remove.
7722 (ALIGN_ASM_OP): Remove.
7723 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
7724 (ASM_OUTPUT_CASE_LABEL): Remove.
7725 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
7726 (COMMON_ASM_OP): Remove.
7727 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
7728 (ASCII_DATA_ASM_OP): Remove.
7729 (READONLY_DATA_SECTION_ASM_OP): Remove.
7730 (INIT_SECTION_ASM_OP): Remove.
7731 (FINI_SECTION_ASM_OP): Remove.
7732 (ASM_SECTION_START_OP): Remove.
7733 (ASM_OUTPUT_SECTION_START_FILE): Remove.
7734 (TARGET_ASM_NAMED_SECTION): Remove.
7735 (TARGET_ASM_SELECT_SECTION): Remove.
7736 (MAKE_DECL_ONE_ONLY): Remove.
7737 (TYPE_ASM_OP): Remove.
7738 (SIZE_ASM_OP): Remove.
7739 (ASM_WEAKEN_LABEL): Remove.
7740 (TYPE_OPERAND_FMT): Remove.
7741 (ASM_DECLARE_RESULT): Remove.
7742 (ASM_DECLARE_OBJECT_NAME): Remove.
7743 (ASM_FINISH_DECLARE_OBJECT): Remove.
7744 (ELF_ASCII_ESCAPES): Remove.
7745 (ELF_STRING_LIMIT): Remove.
7746 (STRING_ASM_OP): Remove.
7747 (ASM_OUTPUT_EXTERNAL): Remove.
7748 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
7749 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
7750 before define.
7751 (ASM_DECLARE_FUNCTION_NAME): Ditto.
7752 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
7753 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
7754 (ASM_OUTPUT_SKIP): Ditto.
7755 (READONLY_DATA_SECTION_ASM_OP): Remove.
7756 (USER_LABEL_PREFIX): Remove.
7757 (ASM_OUTPUT_ASCII): Remove.
7758 (ASM_OUTPUT_CASE_LABEL): Remove.
7759 (NO_DOLLAR_IN_LABEL): Undefine.
7760
7761 2012-03-22 Richard Guenther <rguenther@suse.de>
7762
7763 PR tree-optimization/52459
7764 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
7765 PHI insertion for calls.
7766
7767 2012-03-21 Steven Bosscher <steven@gcc.gnu.org>
7768
7769 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
7770 find_sets_in_insn, canonicalize_insn): Split out from ...
7771 (cse_insn): ... here.
7772 (invalidate_from_clobbers): Take an insn instead of the pattern.
7773
7774 2012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
7775
7776 PR target/52479
7777 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
7778 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
7779 * config/sh/sh.md (sindf2, cosdf2): Remove.
7780
7781 2012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
7782
7783 PR target/52642
7784 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
7785 prologue for unwinder and profiler.
7786
7787 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
7788
7789 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
7790 Introduce emul_name to select the right linker emulation for
7791 powerpc64-*-freebsd*.
7792 * configure: Regenerate.
7793 * config.gcc: Add bits to support powerpc64-*-freebsd*.
7794 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
7795 * config/rs6000/freebsd64.h: New file.
7796 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
7797 POWERPC_FREEBSD.
7798 (rs6000_savres_strategy): Likewise.
7799 (rs6000_savres_routine_name): Likewise.
7800 (rs6000_elf_file_end): Likewise.
7801 * config/rs6000/t-freebsd64: New file.
7802 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
7803 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
7804
7805 * config/rs6000/freebsd64.h: Remove duplicated entries from last
7806 commit.
7807 * config/rs6000/t-freebsd64: Likewise.
7808
7809 2012-03-21 Georg-Johann Lay <avr@gjlay.de>
7810
7811 PR rtl-optimization/52543
7812 PR target/52461
7813 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
7814 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
7815 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
7816 (avr_load_libgcc_p): Restrict to __flash loads.
7817 (avr_out_lpm): Only handle 1-byte loads from __flash.
7818 (avr_load_lpm): New function.
7819 (avr_find_unused_d_reg): Remove.
7820 (avr_out_lpm_no_lpmx): Remove.
7821 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
7822 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
7823 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
7824 (load_<mode>, load_<mode>_clobber): New insns.
7825 (mov<mode>): For multi-byte move from non-generic
7826 16-bit address spaces: Expand to load_<mode> resp.
7827 load_<mode>_clobber.
7828 (load<mode>_libgcc): Remove expander.
7829 (split-lpmx): Remove split.
7830
7831 2012-03-21 Richard Earnshaw <rearnsha@arm.com>
7832
7833 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
7834 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
7835 All callers changed.
7836 (Fixed_core_reg): New feature.
7837 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
7838 disassembly.
7839 * neon-testgen.ml: Handle Fixed_core_reg.
7840
7841 2012-03-21 Andrew Stubbs <ams@codesourcery.com>
7842
7843 * config/arm/arm.c (thumb2_reorg): Add complete support
7844 for 16-bit instructions.
7845 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
7846
7847 2012-03-21 Richard Guenther <rguenther@suse.de>
7848
7849 PR tree-optimizer/52636
7850 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
7851 to the appropriate type.
7852
7853 2012-03-21 Richard Guenther <rguenther@suse.de>
7854
7855 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
7856 dependencies.
7857 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
7858 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
7859 * passes.c (init_optimization_passes): Remove pass_init_function,
7860 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
7861 * tree-pass.h (pass_init_function): Remove.
7862 (pass_jump): Remove.
7863 (pass_initial_value_sets): Remove.
7864 (pass_unshare_all_rtl): Remove.
7865 * integrate.c (pass_initial_value_sets): Remove.
7866 * emit-rtl.c (pass_unshare_all_rtl): Remove.
7867 * tree.h (init_function_for_compilation): Remove.
7868 * function.c (init_function_for_compilation): Remove.
7869 (pass_init_function): Remove.
7870 * cfgcleanup.c (rest_of_handle_jump): Remove.
7871 (pass_jump): Remove.
7872
7873 2012-03-20 Jason Merrill <jason@redhat.com>
7874
7875 * tree-streamer-in.c (streamer_alloc_tree): Call
7876 ggc_alloc_zone_cleared_tree_node instead of
7877 ggc_alloc_zone_cleared_tree_node_stat.
7878
7879 2012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
7880
7881 * doc/extend.texi (Template Instantiation): Remove anachronisms.
7882
7883 2012-03-20 Jakub Jelinek <jakub@redhat.com>
7884
7885 PR target/52607
7886 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
7887 (ix86_expand_vec_perm_const_1): Call it.
7888
7889 * config/i386/i386.c (vselect_insn): New variable.
7890 (init_vselect_insn): New function.
7891 (expand_vselect, expand_vselect_insn): Add testing_p argument.
7892 Call init_vselect_insn if vselect_insn is NULL. Adjust
7893 PATTERN (vselect_insn), instead of creating a new insn each time,
7894 only emit a copy of it if not testing and recog has been successful.
7895 (expand_vec_perm_pshufb, expand_vec_perm_1,
7896 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
7897 callers.
7898
7899 PR target/52607
7900 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
7901 ("enabled" attribute): Handle avx2 and noavx2 isas.
7902 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
7903 New insns.
7904 (vec_dup<mode>): Add avx2 =x,x alternative.
7905 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
7906 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
7907 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
7908 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
7909 for V8SFmode.
7910 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
7911 if possible, handle also V8SFmode.
7912
7913 2012-03-20 Richard Earnshaw <rearnsha@arm.com>
7914
7915 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
7916 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
7917 reg_or_zero_operand predicate.
7918 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
7919
7920 2012-03-20 Jakub Jelinek <jakub@redhat.com>
7921
7922 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
7923 If operand isn't UNSPEC, return 0.
7924
7925 2012-03-20 Richard Guenther <rguenther@suse.de>
7926
7927 * tree-pass.h (pass_rtl_eh): Remove.
7928 * except.c (gate_handle_eh): Likewise.
7929 (rest_of_handle_eh): Likewise.
7930 (pass_rtl_eh): Likewise.
7931 (finish_eh_generation): Export.
7932 * except.h (finish_eh_generation): Declare.
7933 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
7934 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
7935 after expanding stack alignment. Instead of compacting blocks
7936 call cleanup_cfg.
7937
7938 2012-03-20 Richard Guenther <rguenther@suse.de>
7939
7940 * stor-layout.c (finish_bitfield_representative): Fallback
7941 to conservative maximum size if the padding up to the next
7942 field cannot be computed as a constant.
7943 (finish_bitfield_layout): If we cannot compute the distance
7944 between the start of the bitfield representative and the
7945 bitfield member start a new representative.
7946 * expr.c (get_bit_range): The distance between the start of
7947 the bitfield representative and the bitfield member is zero
7948 if the field offsets are not constants.
7949
7950 2012-03-20 Tristan Gingold <gingold@adacore.com>
7951
7952 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
7953 convert in lowercase.
7954 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
7955 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
7956 * stor-layout.c (sizetype_tab): Adjust.
7957 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
7958 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
7959 instead of type_kind_last.
7960 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
7961 instead of size_int_kind.
7962 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
7963 * doc/tm.texi: Regenerate.
7964 * defaults.h (SIZETYPE): Provide a default value.
7965 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
7966 (SIZETYPE): Define.
7967
7968 2012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
7969
7970 * config/sh/sh.md: Use braced string notation where applicable.
7971
7972 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
7973
7974 * config/i386/i386.md (allocate_stack): Simplify.
7975
7976 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
7977
7978 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
7979 copy_to_mode_reg (Pmode, ...).
7980 (expand_builtin_frame_address): Ditto.
7981 * expr.c (emit_block_move_via_libcall): Ditto.
7982 (set_storage_via_libcall): Ditto.
7983
7984 * config/i386/i386.c (ix86_expand_movmem): Ditto.
7985 (ix86_expand_setmem): Ditto.
7986 (ix86_trampoline_init): DItto.
7987 * config/i386/i386.md (cmpstrnsi): Ditto.
7988
7989 2012-03-19 Sandra Loosemore <sandra@codesourcery.com>
7990
7991 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
7992 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
7993 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
7994 (SH Options): Likewise.
7995
7996 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
7997
7998 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
7999 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
8000 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
8001 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
8002 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
8003
8004 Revert:
8005 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8006
8007 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
8008 * config/i386/i386.c (ix86_decompose_address): Use
8009 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
8010 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
8011 thread pointer to a register.
8012
8013 Revert:
8014 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
8015
8016 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
8017 if Pmode != word_mode.
8018 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
8019 Pmode == SImode for TARGET_X32.
8020
8021 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
8022 (tls_initial_exec_x32): Likewise.
8023
8024 2012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
8025
8026 PR target/50751
8027 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
8028 DISP_ADDR_OFFSET): New macros.
8029 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
8030 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
8031 (sh_legitimize_address): Add QImode displacement handling.
8032 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
8033 vector subregs.
8034 (sh_secondary_reload): Add QImode displacement handling.
8035 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
8036 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
8037 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
8038 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
8039 to register operands only.
8040 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
8041 (extendqihi2): Change insn to expander.
8042 (*extendqihi2_compact_reg): New insn.
8043 (movqi_i, movqi): Replace with ...
8044 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
8045 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
8046 Add new peepholes for QImode displacement addressing.
8047
8048 2012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
8049
8050 PR c++/14710
8051 * doc/invoke.texi: Document -Wuseless-cast.
8052
8053 2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
8054
8055 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
8056 * tree.h (handled_component_p): Reorder cases.
8057 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
8058 not initialize unsignedp.
8059 (loc_list_from_tree): Likewise.
8060 (fortran_common): Likewise.
8061 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
8062
8063 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
8064
8065 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
8066 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
8067 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
8068 (ix86_split_long_move): Ditto.
8069 (legitimize_tls_address): Use ix86_gen_sub3.
8070 (construct_plt_address): Assert that Pmode == DImode.
8071
8072 2012-03-18 Uros Bizjak <ubizjak@gmail.com>
8073
8074 * config/i386/i386.md: Remove empty predicates and/or constraints.
8075 * config/i386/sync.md: Ditto.
8076 * config/i386/sse.md: Ditto.
8077 * config/i386/mmx.md: Ditto.
8078 * config/i386/pentium.md: Ditto.
8079 * config/i386/athlon.md: Ditto.
8080
8081 2012-03-16 Richard Guenther <rguenther@suse.de>
8082
8083 PR tree-optimization/52603
8084 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
8085 comment.
8086
8087 Revert
8088 2012-03-14 Richard Guenther <rguenther@suse.de>
8089
8090 PR tree-optimization/52571
8091 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
8092 flag_section_anchors check ...
8093 (vect_can_force_dr_alignment_p): ... here.
8094
8095 2012-03-16 Martin Jambor <mjambor@suse.cz>
8096
8097 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
8098 memory through MEM_REFs by calling extract_bit_field.
8099
8100 2012-03-16 Richard Guenther <rguenther@suse.de>
8101
8102 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
8103 and REFERENCE_TYPE interpretations.
8104 (can_native_interpret_type_p): New function.
8105 (fold_ternary_loc): Use native encode/interpret to fold
8106 BIT_FIELD_REFs of constants.
8107
8108 2012-03-16 Richard Guenther <rguenther@suse.de>
8109
8110 PR middle-end/52584
8111 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
8112 of vector constants and constructors.
8113
8114 2012-03-16 Richard Guenther <rguenther@suse.de>
8115
8116 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
8117 VIEW_CONVERT_EXPR to convert constants.
8118 (vect_is_simple_use): Treat all constants as vec_constant_def.
8119
8120 2012-03-16 Richard Guenther <rguenther@suse.de>
8121 Kai Tietz <ktietz@redhat.com>
8122
8123 PR middle-end/48814
8124 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
8125 side-effects completely in the pre-queue and use a temporary
8126 for the result.
8127
8128 2012-03-16 Richard Guenther <rguenther@suse.de>
8129
8130 * stor-layout.c (finish_bitfield_representative): Fall back
8131 to the conservative maximum size if we cannot compute the
8132 size of the tail padding.
8133
8134 2012-03-16 Tristan Gingold <gingold@adacore.com>
8135
8136 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
8137 __CRTL_VER and __VMS_VER.
8138 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
8139 and vms_c_get_vms_ver.
8140 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
8141 functions.
8142 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
8143 (VMS_DEFAULT_VMS_VER): Define.
8144 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
8145 (VMS_DEFAULT_VMS_VER): Define.
8146
8147 2012-03-16 Richard Guenther <rguenther@suse.de>
8148
8149 * tree-vect-loop.c (get_initial_def_for_induction): Use
8150 build_constructor directly.
8151 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
8152 build_vector_from_val.
8153 * tree.c (build_vector_from_val): Avoid creating a constructor
8154 first when we want a constant vector.
8155
8156 2012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8157
8158 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
8159
8160 2012-03-16 Richard Guenther <rguenther@suse.de>
8161
8162 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
8163 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
8164 (struct tree_vector): Remove elements member, add variable size
8165 elts array member.
8166 (build_vector_stat): Declare.
8167 (build_vector): Define in terms of build_vector_stat.
8168 * tree.c (build_vector): Rename to ...
8169 (build_vector_stat): ... this. Take array of trees as parameter.
8170 (build_vector_from_ctor): Adjust.
8171 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
8172 initializer_zerop): Adjust.
8173 * cfgexpand.c (expand_debug_expr): Likewise.
8174 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
8175 const_vector_from_tree): Likewise.
8176 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
8177 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
8178 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
8179 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
8180 (lto_input_ts_vector_tree_pointers): Adjust.
8181 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
8182 (write_ts_vector_tree_pointers): Adjust.
8183 * varasm.c (const_hash_1, compare_constant, copy_constant,
8184 output_constant): Adjust.
8185 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
8186 * print-tree.c (print_node): Adjust.
8187 * tree-pretty-print.c (dump_generic_node): Adjust.
8188 * tree-vect-generic.c (uniform_vector_p, vector_element,
8189 lower_vec_perm): Adjust.
8190 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
8191 * tree-vect-slp.c (vect_get_constant_vectors,
8192 vect_transform_slp_perm_load): Adjust.
8193 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
8194 * expmed.c (make_tree): Adjust.
8195 * config/i386/i386.c (ix86_expand_builtin): Adjust.
8196 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
8197 and implementation.
8198 (sparc_fold_builtin): Adjust.
8199
8200 2012-03-16 Tristan Gingold <gingold@adacore.com>
8201
8202 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
8203 * config/vms/vms-stdint.h: New file.
8204
8205 2012-03-16 Tristan Gingold <gingold@adacore.com>
8206
8207 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
8208 (ia64-hp-*vms*): Replaced by ...
8209 (*-*-*vms*): ... This new entry.
8210
8211 2012-03-15 Jakub Jelinek <jakub@redhat.com>
8212
8213 PR target/52568
8214 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
8215 (ix86_expand_vec_perm_const_1): Use it.
8216
8217 PR target/52568
8218 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
8219 (avx2_permv4df): Remove.
8220 (avx2_permv4di): Macroize into...
8221 (avx2_perm<mode>): ... this using VI8F_256 iterator.
8222 (avx2_permv4di_1): Macroize into...
8223 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
8224
8225 2012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
8226
8227 * combine.c (apply_distributive_law): Do not distribute SUBREG.
8228
8229 2012-03-15 Ira Rosen <irar@il.ibm.com>
8230 Ulrich Weigand <ulrich.weigand@linaro.org>
8231
8232 * tree-vect-patterns.c (widened_name_p): Rename to ...
8233 (type_conversion_p): ... this. Add new argument to determine
8234 if it's a promotion or demotion operation. Check for
8235 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
8236 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
8237 widened_name_p.
8238 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
8239 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
8240 Likewise.
8241 (vect_recog_mixed_size_cond_pattern): Likewise and allow
8242 non-constant then and else clauses.
8243
8244 2012-03-15 Ira Rosen <irar@il.ibm.com>
8245 Ulrich Weigand <ulrich.weigand@linaro.org>
8246
8247 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
8248 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
8249 vect_pattern_recog.
8250 * tree-vect-patterns.c (widened_name_p): Pass basic block
8251 info to vect_is_simple_use.
8252 (vect_recog_dot_prod_pattern): Fail for basic blocks.
8253 (vect_recog_widen_sum_pattern): Likewise.
8254 (vect_handle_widen_op_by_const): Support basic blocks.
8255 (vect_operation_fits_smaller_type,
8256 vect_recog_over_widening_pattern): Likewise.
8257 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
8258 Update call to vect_is_simple_use.
8259 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
8260 Add printing.
8261 (check_bool_pattern): Add an argument, update call to
8262 vect_is_simple_use and the recursive calls.
8263 (vect_recog_bool_pattern): Update relevant function calls.
8264 Add printing.
8265 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
8266 (vect_pattern_recog_1): Check for reduction only in loops.
8267 (vect_pattern_recog): Add new argument. Support basic blocks.
8268 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
8269 info to vect_is_simple_use_1.
8270 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
8271 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
8272
8273 2012-03-15 Jakub Jelinek <jakub@redhat.com>
8274 Andrew Pinski <apinski@cavium.com>
8275
8276 PR middle-end/52592
8277 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
8278 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
8279 calls instead of __builtin_ir{int,ound}*.
8280
8281 2012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
8282
8283 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
8284 documentation.
8285
8286 2012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8287
8288 * config.gcc (target_type_format_char): New. Document it. Set it for
8289 arm*-*-* .
8290 * configure.ac (gnu_unique_option): Use target_type_format_char
8291 in test. Comment rationale.
8292 * configure: Regenerate .
8293
8294 2012-03-15 Jakub Jelinek <jakub@redhat.com>
8295
8296 PR tree-optimization/52267
8297 * tree-vrp.c (masked_increment): New function.
8298 (register_edge_assert_for_2): Derive ASSERT_EXPRs
8299 from (X & CST1) cmp CST2 tests.
8300
8301 2012-03-15 Richard Guenther <rguenther@suse.de>
8302
8303 PR middle-end/52580
8304 * tree-data-ref.c (subscript_dependence_tester_1): Check
8305 all dimensions for non-conflicting access functions.
8306
8307 2012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
8308
8309 PR c++/44783
8310 * doc/invoke.texi [C++ Language Options]: Document
8311 -ftemplate-backtrace-limit.
8312
8313 2012-03-15 Tristan Gingold <gingold@adacore.com>
8314
8315 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
8316 before a parameter.
8317
8318 2012-03-15 Tristan Gingold <gingold@adacore.com>
8319
8320 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
8321 use DW_OP_call_frame_cfa.
8322
8323 2012-03-14 H.J. Lu <hongjiu.lu@intel.com>
8324
8325 PR target/50797
8326 * config/i386/i386-opts.h (pmode): New.
8327
8328 * config/i386/i386.c (ix86_option_override_internal): Properly
8329 check and set ix86_pmode.
8330
8331 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
8332
8333 * config/i386/i386.opt (maddress-mode=): New.
8334
8335 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
8336
8337 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8338
8339 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
8340 (dwarf2out_do_cfi_asm): Likewise.
8341 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
8342 handling.
8343 (add_data_member_location_attribute): Likewise.
8344 (gen_array_type_die): Likewise.
8345 (gen_subprogram_die): Likewise.
8346 (gen_producer_string): Likewise.
8347 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
8348 Remove MIPS_DEBUGGING_INFO handling.
8349 (sdb_debug_hooks): Likewise.
8350 (sdbout_begin_block): Likewise.
8351 (sdbout_end_block): Likewise.
8352 (sdbout_begin_prologue): Likewise.
8353 (sdbout_start_source_file): Likewise.
8354 (sdbout_end_source_file): Likewise.
8355 (sdbout_init): Likewise.
8356 * system.h (MIPS_DEBUGGING_INFO): Poison.
8357
8358 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8359
8360 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
8361 (alpha_file_start) [MS_STAMP]: Remove.
8362
8363 * config/alpha/elf.h (TARGET_GAS): Remove.
8364 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
8365 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
8366 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
8367 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
8368 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
8369 (alpha*-*-freebsd*): Likewise.
8370 (alpha*-*-netbsd*): Likewise.
8371 (alpha*-*-openbsd*): Likewise.
8372 (alpha*-*-*): Remove target_cpu_default2.
8373 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
8374 handling.
8375 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
8376 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
8377 * config/alpha/alpha.c (print_operand): Always assume
8378 TARGET_AS_SLASH_BEFORE_SUFFIX.
8379 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
8380 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
8381 ("*builtin_setjmp_receiver_er_1"): Remove.
8382 * config/alpha/alpha.opt (malpha-as): Remove.
8383 (mgas): Ignore.
8384 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
8385 -malpha-as, -mgas.
8386 Remove DEC Unix reference.
8387
8388 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
8389 (EXTENDED_COFF): Remove.
8390 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
8391 (EXTENDED_COFF): Don't undef.
8392 * config/alpha/alpha.c (alpha_file_start): Always assume
8393 OBJECT_FORMAT_ELF.
8394 Don't set targetm.asm_file_start_file_directive.
8395 [!OBJECT_FORMAT_ELF]: Remove.
8396 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
8397
8398 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
8399 (DBX_DEBUGGING_INFO): Remove.
8400 (MIPS_DEBUGGING_INFO): Remove.
8401 (PREFERRED_DEBUGGING_TYPE): Remove.
8402 (DBX_OUTPUT_SOURCE_LINE): Remove.
8403 (SDB_OUTPUT_SOURCE_LINE): Remove.
8404 (DBX_CONTIN_LENGTH): Remove.
8405 (NO_DBX_FUNCTION_END): Remove.
8406 (ASM_STABS_OP): Remove.
8407 (ASM_STABN_OP): Remove.
8408 (ASM_STABD_OP): Remove.
8409 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
8410 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
8411 (PUT_SDB_DEF): Remove.
8412 (PUT_SDB_PLAIN_DEF): Remove.
8413 (PUT_SDB_TYPE): Remove.
8414 (sdb_label_count): Remove.
8415 (PUT_SDB_BLOCK_START): Remove.
8416 (PUT_SDB_BLOCK_END): Remove.
8417 (PUT_SDB_FUNCTION_START): Remove.
8418 (PUT_SDB_FUNCTION_END): Remove.
8419 (PUT_SDB_EPILOGUE_END): Remove.
8420 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
8421 (MIPS_DEBUGGING_INFO): Don't undef.
8422 (DBX_DEBUGGING_INFO): Don't undef.
8423 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
8424 (MIPS_DEBUGGING_INFO): Don't undef.
8425 (DBX_DEBUGGING_INFO): Don't undef.
8426 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
8427 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
8428 handling.
8429 (alpha_start_function): Likewise.
8430 (sdb_label_count): Remove.
8431 (alpha_output_filename): Remove DBX_DEBUG handling.
8432 (alpha_file_start): Likewise.
8433
8434 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8435
8436 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
8437 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
8438 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
8439 Solaris 8 support.
8440 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
8441 (ld_tls_support): Remove Solaris 8 references.
8442 (lwp_dir, lwp_spec): Remove support for alternate thread library.
8443 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
8444 * configure: Regenerate.
8445 * config.in: Regenerate.
8446
8447 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
8448 * config/i386/sol2.h: Remove Solaris 8 references.
8449
8450 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
8451 (i?86-*-solaris2.9): ... this.
8452 Remove Solaris 8 references.
8453 (Specific, *-*-solaris2*): Document Solaris 8 removal.
8454 Remove Solaris 8 references.
8455
8456 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8457
8458 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
8459 (mips-sgi-irix6.5*): Remove.
8460 * config.host (mips-sgi-irix*): Remove.
8461 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
8462 (set_have_as_tls): Remove *-*-irix6*.
8463 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
8464 * configure: Regenerate.
8465
8466 * config/mips/iris6.h: Remove.
8467 * config/mips/iris6.opt: Remove.
8468 * config/mips/t-irix6: Remove.
8469
8470 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
8471 (TARGET_IRIX6): Remove.
8472 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
8473 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
8474 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
8475 handling.
8476 (mips_file_start): Likewise.
8477 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
8478
8479 * config/mips/driver-native.c [__sgi__]: Remove.
8480 (host_detect_local_cpu) [__sgi__]: Remove.
8481
8482 * config/mips/gnu-user.h: Remove iris5.h reference.
8483
8484 * config/mips/mips-modes.def: Remove IRIX 6 reference.
8485 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
8486 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
8487 Remove.
8488
8489 * gcc.c (main): Move asm_debug initialization ...
8490 (asm_debug): ... here.
8491
8492 * ginclude/stddef.h (__STDDEF_H__): Don't define.
8493
8494 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
8495 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
8496 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
8497 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
8498 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
8499 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
8500 Remove.
8501 * doc/tm.texi: Regenerate.
8502
8503 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
8504 IRIX 6 reference.
8505 (MIPS Options, -march): Remove IRIX reference.
8506 * doc/install.texi (Binaries, SGI IRIX): Remove.
8507 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
8508 of section.
8509 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
8510
8511 2012-03-14 Martin Jambor <mjambor@suse.cz>
8512
8513 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
8514 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
8515 (expand_expr_real_1): Do not handle misalignment if modifier is
8516 EXPAND_WRITE.
8517
8518 2012-03-14 Richard Guenther <rguenther@suse.de>
8519
8520 PR middle-end/52584
8521 * tree-vect-generic.c (type_for_widest_vector_mode): Take
8522 element type instead of mode, use build_vector_type_for_mode
8523 instead of the langhook, build a vector of proper signedness.
8524 (expand_vector_operations_1): Adjust.
8525
8526 2012-03-14 Richard Guenther <rguenther@suse.de>
8527
8528 PR middle-end/52582
8529 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
8530 a cgraph node for a FUNCTION_DECL that comes from a constructor.
8531 (gimple_get_virt_method_for_binfo): Likewise.
8532
8533 2012-03-14 Richard Guenther <rguenther@suse.de>
8534
8535 PR tree-optimization/52571
8536 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
8537 flag_section_anchors check ...
8538 (vect_can_force_dr_alignment_p): ... here. Do not re-align
8539 DECL_COMMON variables.
8540
8541 2012-03-14 Richard Guenther <rguenther@suse.de>
8542
8543 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
8544 * stor-layout.c (start_bitfield_representative): New function.
8545 (finish_bitfield_representative): Likewise.
8546 (finish_bitfield_layout): Likewise.
8547 (finish_record_layout): Call finish_bitfield_layout.
8548 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
8549 for QUAL_UNION_TYPE fields.
8550 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
8551 Stream DECL_BIT_FIELD_REPRESENTATIVE.
8552 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
8553
8554 PR middle-end/52080
8555 PR middle-end/52097
8556 PR middle-end/48124
8557 * expr.c (get_bit_range): Unconditionally extract bitrange
8558 from DECL_BIT_FIELD_REPRESENTATIVE.
8559 (expand_assignment): Adjust call to get_bit_range.
8560
8561 2012-03-14 Richard Guenther <rguenther@suse.de>
8562
8563 PR middle-end/52578
8564 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
8565 the outermost conversion is a sign-change only.
8566 (fold_binary_loc): Disregard widening and sign-changing
8567 conversions when we determine if two variables are equal
8568 for reassociation.
8569 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
8570 (T1)x if the outermost conversion is a sign-change only.
8571
8572 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
8573
8574 Revert:
8575 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
8576
8577 * config/i386/predicates.md (constant_call_address_operand): Declare
8578 as special predicate. Update all uses.
8579
8580 2012-03-13 Jakub Jelinek <jakub@redhat.com>
8581
8582 PR c/52577
8583 * c-parser.c (c_parser_postfix_expression)
8584 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
8585
8586 * config/i386/smmintrin.h: Avoid /* within a comment.
8587 * config/i386/nmmintrin.h: Likewise.
8588
8589 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8590
8591 * config/i386/i386.md (xbegin): Remove constraint from expander.
8592
8593 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8594
8595 * config/i386/predicates.md (constant_call_address_operand): Declare
8596 as special predicate. Update all uses.
8597 * config/i386/i386.md: Remove mode from constant_call_address_operand
8598 predicates.
8599 * config/i386/i386.c (ix86_output_call_insn): Call
8600 constant_call_address_operand with VOIDmode.
8601
8602 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8603
8604 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
8605 AND zero extended address correctly.
8606
8607 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8608
8609 * config/i386/predicates.md (tls_symbolic_operand): Declare as
8610 special predicate.
8611 (tls_modbase_operand): Ditto.
8612 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
8613 tls_modbase_operand predicates.
8614
8615 2012-03-13 Martin Jambor <mjambor@suse.cz>
8616
8617 * expr.c (expand_assignment): Handle misaligned scalar writes to
8618 memory through top-level MEM_REFs by calling store_bit_field.
8619
8620 2012-03-13 Richard Guenther <rguenther@suse.de>
8621
8622 PR middle-end/52134
8623 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
8624 if Y is a constant multiple of 1 << CST.
8625
8626 2012-03-13 Georg-Johann Lay <avr@gjlay.de>
8627
8628 PR target/52488
8629 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
8630 offset (size) to a value the insns can deal with.
8631 (expand_epilogue): Ditto.
8632
8633 2012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
8634
8635 * config/arm/neon.ml (ops): Fixup expected instructions for
8636 unsigned vector compares.
8637
8638 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8639
8640 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
8641 addresses only when %reg is not in word mode.
8642
8643 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8644
8645 * config/microblaze/microblaze.md: Fix typo.
8646 * tree-if-conv.c: Likewise.
8647 * tree-vect-patterns.c: Likewise.
8648
8649 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8650
8651 * config.gcc (extra_passes): Remove.
8652 * configure.ac (extra_passes): Don't substitute.
8653 * configure: Regenerate.
8654 * Makefile.in (EXTRA_PASSES): Remove.
8655 (GCC_PASSES): Remove $(EXTRA_PASSES).
8656 (MOSTLYCLEANFILES): Likewise.
8657 (native): Likewise.
8658 (install-common): Likewise.
8659
8660 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
8661
8662 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
8663 * config/i386/i386.c (ix86_decompose_address): Use
8664 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
8665 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
8666 thread pointer to a register.
8667
8668 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
8669
8670 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
8671 on tls_symbolic_operand.
8672 (tls_global_dynamic_64_<mode>): Likewise.
8673
8674 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
8675
8676 PR other/52545
8677 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
8678 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
8679
8680 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
8681
8682 PR target/52499
8683 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
8684 type from reg_class_t to enum reg_class.
8685 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
8686
8687 2012-03-12 Andrew Pinski <apinski@cavium.com>
8688
8689 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
8690 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
8691 (value_replacement): Likewise.
8692 (empty_block_p): Check also if the PHIs for the block are empty.
8693
8694 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
8695
8696 PR target/52148
8697 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
8698 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
8699 r184615 from 2012-02-28.
8700
8701 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
8702
8703 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
8704 (ix86_gen_tls_local_dynamic_base_64): Likewise.
8705 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
8706 and ix86_gen_tls_local_dynamic_base_64.
8707 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
8708 ix86_gen_tls_local_dynamic_base_64.
8709
8710 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
8711 (*tls_global_dynamic_64_<mode>): This.
8712 (tls_global_dynamic_64): Renamed to ...
8713 (tls_global_dynamic_64_<mode>): This.
8714 (*tls_local_dynamic_base_64): Renamed to ...
8715 (*tls_local_dynamic_base_64_<mode>): This.
8716 (tls_local_dynamic_base_64): Renamed to ...
8717 (tls_local_dynamic_base_64_<mode>): This.
8718
8719 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
8720
8721 * config/i386/i386.c (ix86_option_override_internal): Properly
8722 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
8723 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
8724 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
8725 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
8726
8727 * config/i386/sse.md (sse3_monitor64): Renamed to ...
8728 (sse3_monitor64_<mode>): This.
8729
8730 2012-03-12 Tristan Gingold <gingold@adacore.com>
8731
8732 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
8733 (ia64_function_arg_advance): Ditto.
8734
8735 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8736
8737 * config.gcc (mips*-*-openbsd*): Remove.
8738 * config/mips/openbsd.h: Remove.
8739 * config/mips/sdb.h: Remove.
8740
8741 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
8742 * config/mips/mips.c (sdb_label_count): Remove.
8743 (mips_debugger_offset): Remove #if 0 code.
8744 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
8745 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
8746
8747 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8748
8749 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
8750 binutils reference.
8751 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
8752 Update binutils references.
8753 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
8754 Update binutils reference.
8755 Update Sun as/GNU ld caveat.
8756 Document binutils largefile requirement for LTO plugin.
8757 Remove reference to alternate libpthread.
8758
8759 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8760
8761 * config.gcc (alpha*-dec-osf5.1*): Remove.
8762 * config.host (alpha*-dec-osf*): Remove.
8763 * configure.ac (*-*-osf*): Remove.
8764 (alpha*-dec-osf*): Remove.
8765 * configure: Regenerate.
8766
8767 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
8768 config/alpha/va_list.h, config/alpha/x-osf: Remove.
8769
8770 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
8771 * config/alpha/alpha.c (struct machine_function): Update comment.
8772 (alpha_start_function): Remove Tru64 UNIX as handling for
8773 max_frame_size.
8774 * config/alpha/alpha.md ("exception_receiver"): Remove
8775 TARGET_LD_BUGGY_LDGP.
8776 ("*exception_receiver_2"): Likewise.
8777 * except.c (finish_eh_generation): Remove Tru64 reference.
8778 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
8779 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
8780 * target.def (handle_pragma_extern_prefix): Remove.
8781
8782 * Makefile.in (mips-tfile.o-warn): Remove.
8783 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
8784 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
8785 * mips-tdump.c, mips-tfile.c: Remove.
8786
8787 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
8788 extern_prefix.
8789 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
8790 (Specific, alpha*-dec-osf5.1): Note removal.
8791 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
8792 Remove.
8793 * doc/tm.texi: Regenerate.
8794 * doc/trouble.texi (Cross-Compiler Problems): Remove.
8795
8796 2012-03-12 Richard Guenther <rguenther@suse.de>
8797
8798 * config/arm/arm.c (neon_dereference_pointer): Do not call
8799 covert during RTL expansion.
8800
8801 2012-03-12 Tristan Gingold <gingold@adacore.com>
8802
8803 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
8804 Options. Mention -mpointer-size.
8805
8806 2012-03-12 Richard Guenther <rguenther@suse.de>
8807
8808 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
8809 build_nonstandard_integer_type.
8810
8811 2012-03-12 Richard Guenther <rguenther@suse.de>
8812
8813 * tree.c (signed_or_unsigned_type_for): Use
8814 build_nonstandard_integer_type.
8815 (signed_type_for): Adjust documentation.
8816 (unsigned_type_for): Likewise.
8817 * tree-pretty-print.c (dump_generic_node): Use standard names
8818 for non-standard integer types if available.
8819
8820 2012-03-12 Tristan Gingold <gingold@adacore.com>
8821
8822 * config/vms/vms.opt: Add vms-opts.h header.
8823 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
8824 target mask.
8825 (-mvms-return-codes): Document.
8826 (-mpointer-size): New option.
8827 (vms_pointer_size): Add enumeration.
8828 * config/vms/vms-opts.h: New file.
8829 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
8830 __INITIAL_POINTER_SIZE.
8831 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
8832 (C_COMMON_OVERRIDE_OPTIONS): Define.
8833 (DWARF2_ADDR_SIZE): Define.
8834 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
8835 * config/vms/vms-protos.h (vms_c_common_override_options):
8836 New prototype.
8837 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
8838 if -mno-pointer-size.
8839 (vms_c_common_override_options): New function.
8840 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
8841 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
8842 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
8843 and flag_vms_pointer_size.
8844 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
8845 * config.gcc (*-*-*vms*): Define xm_file.
8846 (alpha*-dec-*vms*): Do not define xm_file.
8847 (alpha64-dec-*vms*): Remove.
8848 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
8849 and tmake_file.
8850
8851 2012-03-12 Jakub Jelinek <jakub@redhat.com>
8852
8853 PR tree-optimization/51721
8854 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
8855 if (int) unsvar cmp CST.
8856
8857 2012-03-12 Richard Guenther <rguenther@suse.de>
8858
8859 * tree-sra.c (create_access_replacement): Only rename the replacement
8860 if we can rewrite it into SSA form. Properly mark register typed
8861 replacements that we cannot rewrite with TREE_ADDRESSABLE.
8862 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
8863 for aggregate or BLKmode results.
8864
8865 2012-03-12 Jakub Jelinek <jakub@redhat.com>
8866
8867 PR tree-optimization/52533
8868 * tree-vrp.c (register_edge_assert_for_2): Use double_int
8869 type for mask, only handle shifts by non-zero in-range
8870 shift count, for LE_EXPR and GT_EXPR if new_val is
8871 maximum, don't add the assertion.
8872
8873 2012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
8874
8875 * doc/invoke.texi: Document -mrtm option.
8876 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
8877 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
8878 (ix86_handle_option): Handle OPT_mrtm.
8879 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
8880 xtestintrin.h.
8881 (x86_64-*-*): Ditto.
8882 * i386-builtin-types.def (INT_FTYPE_VOID): New.
8883 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8884 __RTM__ if needed.
8885 (ix86_target_string): Define -mrtm option.
8886 (PTA_RTM): New.
8887 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
8888 Handle new option.
8889 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
8890 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
8891 IX86_BUILTIN_XTEST.
8892 (bdesc_special_args): Ditto.
8893 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
8894 (ix86_expand_special_args_builtin): Handle new built-in type.
8895 (ix86_expand_builtin): Handle XABORT instruction.
8896 * config/i386/i386.h (TARGET_RTM): New.
8897 * config/i386/i386.md (UNSPECV_XBEGIN): New.
8898 (UNSPECV_XEND): Ditto.
8899 (UNSPECV_XABORT): Ditto.
8900 (UNSPECV_XTEST): Ditto.
8901 (xbegin): Ditto.
8902 (xbegin_1): Ditto.
8903 (xend): Ditto.
8904 (xabort): Ditto
8905 (xtest): Ditto.
8906 (xtest_1): Ditto.
8907 * config/i386/i386.opt (mrtm): New.
8908 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
8909 * config/i386/rtmintrin.h: New header.
8910 * config/i386/xtestintrin.h: Ditto.
8911
8912 2012-03-12 Tristan Gingold <gingold@adacore.com>
8913
8914 * ginclude/stddef.h: Adjust previous patch.
8915 Use __VMS__ instead of VMS.
8916
8917 2012-03-12 Uros Bizjak <ubizjak@gmail.com>
8918
8919 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
8920 Also convert sequences with CC setting arithmetic instruction.
8921
8922 2012-03-11 Sandra Loosemore <sandra@codesourcery.com>
8923
8924 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
8925 from C Language Options to Preprocessor Options.
8926 (C Dialect Options): Move -no-integrated-cpp documentation
8927 from here...
8928 (Preprocessor Options): ...to here. Rewrite the description
8929 so it makes more sense, and remove discussion of merging front ends.
8930
8931 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8932
8933 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
8934 needed for loop.
8935 (ix86_expand_setmem): Likewise.
8936
8937 2012-03-11 Uros Bizjak <ubizjak@gmail.com>
8938
8939 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
8940 convert_to_mode.
8941
8942 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8943
8944 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
8945 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
8946
8947 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8948
8949 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
8950
8951 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8952
8953 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
8954 TARGET_64BIT.
8955
8956 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8957 Uros Bizjak <ubizjak@gmail.com>
8958
8959 * config/i386/predicates.md (call_insn_operand): Allow
8960 constant_call_address_operand in Pmode only.
8961 (sibcall_insn_operand): Ditto.
8962 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
8963 (*call_vzeroupper): Ditto.
8964 (*sibcall): Ditto.
8965 (*sibcall_vzeroupper): Ditto.
8966 (*call_value): Ditto.
8967 (*call_value_vzeroupper): Ditto.
8968 (*sibcall_value): Ditto.
8969 (*sibcall_value_vzeroupper): Ditto.
8970 (*indirect_jump): Ditto.
8971 (*tablejump_1): Ditto.
8972 (indirect_jump): Convert memory address to word mode for TARGET_X32.
8973 (tablejump): Ditto.
8974 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
8975 to word mode.
8976
8977 2012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
8978
8979 PR target/51244
8980 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
8981 Use movrt_negc instead of negc pattern for non-SH2A.
8982 (*movnegt): Remove.
8983 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
8984
8985 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
8986
8987 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
8988 if Pmode != word_mode.
8989 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
8990 Pmode == SImode for TARGET_X32.
8991
8992 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
8993 (tls_initial_exec_x32): Likewise.
8994
8995 2012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
8996
8997 PR rtl-optimization/52528
8998 * combine.c (can_combine_p): Add setting of subst_low_luid
8999 before call to expand_field_assignment().
9000
9001 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
9002
9003 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
9004 and related program names.
9005
9006 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
9007
9008 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
9009
9010 2012-03-09 Uros Bizjak <ubizjak@gmail.com>
9011
9012 PR target/52530
9013 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
9014 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
9015 to set code to 'q'.
9016 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
9017 (*movdi_internal_rex64): Use %E operand modifier for lea.
9018 (*movsi_internal): Ditto.
9019 (*lea_1): Ditto.
9020 (*lea<mode>_2): Ditto.
9021 (*lea_{3,4,5,6}_zext): Ditto.
9022 (*tls_global_dynamic_32_gnu): Ditto.
9023 (*tls_global_dynamic_64): Ditto.
9024 (*tls_dynamic_gnu2_lea_32): Ditto.
9025 (*tls_dynamic_gnu2_lea_64): Ditto.
9026 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
9027
9028 2012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9029
9030 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
9031 redefine to be NULL if the current bit-size is different from the
9032 configured bit-size.
9033
9034 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
9035 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
9036 set the default tuning. Add asserts to make sure the cpu and tune
9037 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
9038 test whether the index is set, instead of > 0.
9039 (rs6000_file_start): Do not reset the default cpu if the current
9040 bit-size is different from the configured bit-size.
9041
9042 2012-03-09 Tristan Gingold <gingold@adacore.com>
9043
9044 * config/vms/vms-crtlmap.map: Add comments.
9045 Add entries needed to build Ada RTS.
9046
9047 2012-03-09 Tristan Gingold <gingold@adacore.com>
9048
9049 * ginclude/stddef.h: Do not define __size_t on VMS.
9050
9051 2012-03-09 Tristan Gingold <gingold@adacore.com>
9052
9053 * c-tree.h (c_default_pointer_mode): New variable.
9054 * c-decl.c (c_default_pointer_mode): New variable.
9055 (c_build_pointer_type): New function.
9056 (grokdeclarator): Call c_build_pointer_type instead
9057 of build_pointer_type.
9058
9059 * config/vms/vms-c.c: Include c-tree.h
9060 (saved_pointer_mode): New variable.
9061 (handle_pragma_pointer_size): New function.
9062 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
9063 (vms_c_register_pragma): Register __pointer_size and
9064 __required_pointer_size pragmas.
9065
9066 2012-03-09 Tristan Gingold <gingold@adacore.com>
9067
9068 * config/vms/vms-c.c (vms_construct_include_filename): New function.
9069 (vms_c_register_includes): Reference it.
9070
9071 2012-03-09 Andrew Pinski <apinski@cavium.com>
9072
9073 PR middle-end/51988
9074 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
9075 print_generic_expr.
9076 (tree_ssa_phiopt_worker): Go through all the PHIs for
9077 value_replacement instead of just the singleton one.
9078 (value_replacement): Change return type to int. Return 0 instead of
9079 false.
9080 Allow the middle basic block to contain more than just the defining
9081 statement.
9082 Handle non empty middle basic blocks.
9083 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
9084
9085 2012-03-09 Jiangning Liu <jiangning.liu@arm.com>
9086
9087 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
9088 array reference and component reference.
9089 (analyze_scalar_evolution_for_address_of): New.
9090
9091 2012-03-08 Jie Zhang <jzhang918@gmail.com>
9092
9093 PR target/49862
9094 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
9095 (hwloop_pattern_reg): Fix set but not used warning.
9096 (bfin_reorg_loops): Remove unused parameter.
9097 (bfin_reorg): Update use of bfin_reorg_loops.
9098
9099 2012-03-08 H.J. Lu <hongjiu.lu@intel.com>
9100
9101 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
9102 with integer parameters in registers.
9103 (gen_push): Push register in word_mode instead of Pmode.
9104 (ix86_emit_save_regs): Likewise.
9105 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
9106 (gen_pop): Pop register in word_mode instead of Pmode.
9107 (ix86_emit_restore_regs_using_pop): Likewise.
9108 (ix86_expand_prologue): Replace Pmode with word_mode for push
9109 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
9110 restore RAX and R10 in word_mode.
9111 (ix86_emit_restore_regs_using_mov): Restore integer registers
9112 in word_mode.
9113 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
9114 word_mode.
9115 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
9116 (ix86_split_long_move): Likewise.
9117
9118 * config/i386/i386.md (W): New.
9119 (*push<mode>2_prologue): Replace :P with :W.
9120 (*pop<mode>1): Likewise.
9121 (*pop<mode>1_epilogue): Likewise.
9122 (push/pop peephole2): Use word_mode scratch registers.
9123
9124 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
9125
9126 * config/i386/predicates.md (indirect_branch_operand): Simplify.
9127
9128 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
9129
9130 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
9131 for constants in [-63,63].
9132
9133 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
9134
9135 PR target/52530
9136 Revert:
9137 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
9138
9139 * config/i386/i386.c (ix86_print_operand_address): Only handle
9140 zero-extended DImode addresses.
9141
9142 2012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9143
9144 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
9145 * configure: Regenerate.
9146
9147 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
9148
9149 PR target/52496
9150 * config/avr/avr.c (avr_mem_clobber): New static function.
9151 (avr_expand_delay_cycles): Add memory clobber operand to
9152 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
9153 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
9154 (enable_interrupt, disable_interrupt): New expander.
9155 (nopv, sleep, wdr): New expanders.
9156 (delay_cycles_1): Add memory clobber.
9157 (delay_cycles_2): Add memory clobber.
9158 (delay_cycles_3): Add memory clobber.
9159 (delay_cycles_4): Add memory clobber.
9160 (cli_sei): New insn from former "enable_interrupt",
9161 "disable_interrupt" with memory clobber.
9162 (*wdt): New insn from former "wdt" with memory clobber.
9163 (*nopv): Similar, but for "nopv".
9164 (*sleep): Similar, but for "sleep".
9165
9166 2012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
9167 Kaz Kojima <kkojima@gcc.gnu.org>
9168
9169 PR target/52503
9170 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
9171 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
9172 (SUBTARGET_OVERRIDE_OPTIONS): Define.
9173
9174 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
9175
9176 * config/i386/predicates.md (x86_64_zext_general_operand): New.
9177 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
9178 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
9179
9180 2012-03-07 Walter Lee <walt@tilera.com>
9181
9182 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
9183 REG_CFA_* notes for the stack pointer.
9184 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
9185 EH_RETURN_STACKADJ_RTX.
9186 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
9187 generate REG_CFA_* notes for the stack pointer.
9188 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
9189 by EH_RETURN_STACKADJ_RTX.
9190
9191 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
9192
9193 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
9194 when __AVR_3_BYTE_PC__ is defined.
9195
9196 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
9197
9198 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
9199 (ix86_print_operand): Handle '^'.
9200 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
9201 using P mode iterator. Add %^ to asm template to conditionally emit
9202 addr32 prefix.
9203 (*rep_movdi_rex64): Ditto.
9204 (*strsetdi_rex_1): Ditto.
9205 (*rep_stosdi_rex64): Ditto.
9206 (*strmov{si,hi,qi}_1): Add %^ to asm template to
9207 conditionally emit addr32 prefix.
9208 (*rep_mov{si,qi}): Ditto.
9209 (*strset{si,hi,qi}): Ditto.
9210 (*rep_stos{si,qi}): Ditto.
9211 (*cmpstrnqi_nz_1): Ditto.
9212 (*cmpstrnqi_1): Ditto.
9213 (*strlenqi_1): Ditto.
9214
9215 2012-03-07 H.J. Lu <hongjiu.lu@intel.com>
9216
9217 * config/i386/i386.c (function_value_64): Return pointers in
9218 word_mode instead of Pmode.
9219 (ix86_promote_function_mode): Likewise.
9220
9221 2012-03-07 Richard Guenther <rguenther@suse.de>
9222
9223 * coverage.c (get_gcov_type): Use type_for_mode.
9224 (get_gcov_unsigned_t): Likewise.
9225 * expr.c (store_constructor): Use type_for_mode.
9226 (try_casesi): Likewise.
9227 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
9228 (add_standard_iv_candidates): Use standard type trees.
9229 * dojump.c (do_jump): Remove dead code.
9230
9231 2012-03-07 Richard Guenther <rguenther@suse.de>
9232
9233 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
9234
9235 2012-03-07 Richard Guenther <rguenther@suse.de>
9236
9237 * convert.c (strip_float_extensions): Move ...
9238 * tree.c (strip_float_extensions): ... here.
9239
9240 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
9241
9242 PR target/52484
9243 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
9244
9245 2012-03-07 Richard Guenther <rguenther@suse.de>
9246
9247 * omp-low.c (extract_omp_for_data): Use signed_type_for.
9248 (expand_omp_for_generic): Likewise.
9249 (expand_omp_for_static_nochunk): Likewise.
9250 (expand_omp_for_static_chunk): Likewise.
9251 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
9252 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
9253 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
9254 Use unsigned_type_for.
9255 (vect_create_cond_for_align_checks): Use signed_type_for.
9256
9257 2012-03-07 Andrey Belevantsev <abel@ispras.ru>
9258
9259 PR rtl-optimization/52203
9260 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
9261 all callers to pass NULL except ...
9262 (reset_sched_cycles_in_current_ebb): ... here, save the value
9263 in new variable 'empty'. Increase issue_rate only for
9264 non-empty insns.
9265
9266 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
9267
9268 PR target/51417
9269 * Makefile.in: Let install-gcc-ar depend on installdirs,
9270 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
9271 Don't double canonicalize if cross-compiling.
9272
9273 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
9274
9275 PR target/52506
9276 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
9277 to: RAMPZ, RAMPY, RAMPX, RAMPD.
9278 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
9279
9280 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
9281
9282 PR target/52505
9283 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
9284 from RAM.
9285 * config/avr/avr.md (xload_8): Adjust insn length.
9286
9287 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
9288
9289 PR target/52461
9290 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
9291 if RAMPZ affects reading from RAM.
9292
9293 2012-03-07 Richard Guenther <rguenther@suse.de>
9294
9295 PR pch/52518
9296 PR pch/38987
9297 * doc/invoke.texi (Precompiled Headers): Remove sentence that
9298 suggests you can include PCHs from inside another header.
9299
9300 2012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
9301
9302 PR middle-end/52515
9303 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
9304
9305 2012-03-07 Kai Tietz <ktietz@redhat.com>
9306
9307 * doc/invoke.texi (fwritable-relocated-rdata): Document
9308 new Cygwin/MinGW target option.
9309 * config/i386/winnt.c (i386_pe_unique_section): Ignore
9310 reloc if flag -fwritable-relocated-rdata is not set.
9311 (i386_pe_section_type_flags): Likewise.
9312 * config/i386/cygming.opt (fwritable-relocated-rdata):
9313 Add new flag variable flag_writable_rel_rdata.
9314
9315 2012-03-07 Richard Guenther <rguenther@suse.de>
9316
9317 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
9318 precision against gimple constraints.
9319
9320 2012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
9321
9322 PR middle-end/52372
9323 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
9324 variables.
9325 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
9326 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
9327 variables.
9328 (init_emit_regs): Move associated initialization to...
9329 (init_emit_once): ...here.
9330
9331 2012-03-06 Richard Henderson <rth@redhat.com>
9332
9333 * config/m68k/m68k.h (ISA_HAS_TAS): New.
9334 * config/m68k/sync.md (atomic_test_and_set): Use it.
9335 (atomic_test_and_set_1): Likewise.
9336
9337 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
9338
9339 PR target/50310
9340 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
9341 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
9342 (vector_ltgt<mode>): Likewise.
9343 (vector_ordered<mode>): Likewise.
9344 (vector_unordered<mode>): Likewise.
9345 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
9346
9347 2012-03-06 Aldy Hernandez <aldyh@redhat.com>
9348
9349 * trans-mem.c: New typedef for tm_region_p.
9350 Define vector types for tm_region_p.
9351 (tm_region_init): Replace region_worklist to a vector called
9352 bb_regions.
9353
9354 2012-03-06 Richard Guenther <rguenther@suse.de>
9355
9356 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
9357 MEM_REF with constant pointer operand.
9358
9359 2012-03-06 Richard Guenther <rguenther@suse.de>
9360
9361 PR middle-end/52493
9362 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
9363
9364 2012-03-06 Tristan Gingold <gingold@adacore.com>
9365
9366 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
9367 (external_model_kind): Improve documentation.
9368 (vms_pragma_extern_model): Handle relaxed_redef.
9369 (vms_c_register_pragma): Allow expansion for nomember_alignment.
9370
9371 2012-03-06 Georg-Johann Lay <avr@gjlay.de>
9372
9373 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
9374 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
9375 Some more notes on EIND usage and reorder EIND subsection.
9376
9377 2012-03-06 Tristan Gingold <gingold@adacore.com>
9378
9379 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
9380 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
9381
9382 2012-03-06 Tristan Gingold <gingold@adacore.com>
9383
9384 * config/vms/t-vmsnative (version): Define.
9385 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
9386
9387 2012-03-06 Andrey Belevantsev <abel@ispras.ru>
9388
9389 PR rtl-optimization/52250
9390 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
9391 to put note list into. Unconditionally call move_bb_info.
9392 (move_bb_info): Do not assert the blocks being in the same region,
9393 just drop the note list if they are not.
9394
9395 2012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
9396
9397 PR target/51244
9398 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
9399 and use unified expansion logic.
9400 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
9401 closer to the existing movt insn.
9402 (negc): Rename insn to *negc. Add new expander.
9403 (movnegt): Use xor pattern for T bit negation. Reserve helper
9404 constant for negc pattern.
9405 (*movnegt): New insn and splitter.
9406
9407 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
9408
9409 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
9410 PLUS_EXPR.
9411
9412 2012-03-05 Richard Henderson <rth@redhat.com>
9413
9414 * genemit.c (main): Include "target.h" in insn-emit.c.
9415 * Makefile.in (insn-emit.o): Depend on TARGET_H.
9416 * config/sh/sync.md (atomic_test_and_set): Reference
9417 targetm.atomic_test_and_set_trueval instead of
9418 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
9419
9420 2012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
9421
9422 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
9423 Make static.
9424
9425 2012-03-05 Steven Bosscher <steven@gcc.gnu.org>
9426
9427 * langhooks.c (add_builtin_type): New function.
9428 * langhooks.h (add_builtin_type): Export it.
9429 * config/mep/mep.c (mep_init_builtins): Use it.
9430 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
9431
9432 2012-03-05 Jakub Jelinek <jakub@redhat.com>
9433
9434 PR debug/51902
9435 * tree.h (BLOCK_SAME_RANGE): Define.
9436 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
9437 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
9438 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
9439 isn't equal to supercontext fragment's fragment chain.
9440 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
9441 fragment origin.
9442 (blocks_nreverse_all): Likewise.
9443 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
9444 BLOCK_SUPERCONTEXT to supercontext fragment instead of
9445 supercontext fragment's fragment origin.
9446 * dwarf2out.c (add_high_low_attributes): If stmt has the same
9447 range as its parent (or parents thereof etc.), use the parent's
9448 DW_AT_ranges value instead of creating a new .debug_ranges range.
9449
9450 2012-03-05 Richard Henderson <rth@redhat.com>
9451
9452 PR tree-opt/52242
9453 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
9454 * omp-low.c (expand_omp_atomic): Assume anything aligned to
9455 BIGGEST_ALIGNMENT is aligned.
9456
9457 2012-03-05 Richard Henderson <rth@redhat.com>
9458
9459 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
9460 * config/sh/sh.c: ... here.
9461
9462 2012-03-05 Richard Henderson <rth@redhat.com>
9463
9464 PR target/52481
9465 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
9466 instead of calling negqi2 directly.
9467
9468 2012-03-05 Aldy Hernandez <aldyh@redhat.com>
9469
9470 PR middle-end/52463
9471 * trans-mem.c (tm_region_init): Use last_basic_block.
9472
9473 2012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
9474
9475 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
9476 * config/sh/sync.md (atomic_test_and_set): New expander.
9477 (tasb, atomic_test_and_set_soft): New insns.
9478 * config/sh/sh.opt (menable-tas): New option.
9479 * doc/invoke.texi (SH Options): Document it.
9480
9481 2012-03-05 Richard Guenther <rguenther@suse.de>
9482
9483 * cfgloop.c (verify_loop_structure): Verify dominators before
9484 using them.
9485 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
9486 dominators from here.
9487 * graphite-scop-detection.c (create_sese_edges): Likewise.
9488 * loop-doloop.c (doloop_optimize_loops): Likewise.
9489 * loop-init.c (loop_optimizer_init): Likewise.
9490 * loop-unroll.c (unroll_and_peel_loops): Likewise.
9491 * loop-unswitch.c (unswitch_loops): Likewise.
9492 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
9493 * tree-parloops.c (parallelize_loops): Likewise. Verify
9494 only when checking is enabled.
9495 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
9496
9497 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
9498
9499 * genautomata.c (parse_automata_opt): New static function.
9500 (initiate_automaton_gen): Remove all option handling code. Remove
9501 argc argument. All callers changed.
9502 (main): Call init_rtx_reader_args_cb with the new function as argument.
9503
9504 2012-03-05 Richard Guenther <rguenther@suse.de>
9505
9506 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
9507 * tree-if-conv.c (combine_blocks): Free post-dominator info
9508 after breaking it.
9509 * tree-parloops.c (create_parallel_loop): Free and re-compute
9510 dominator info after breaking it.
9511
9512 2012-03-05 Richard Guenther <rguenther@suse.de>
9513
9514 PR middle-end/52353
9515 * optabs.h (trapv_unoptab_p): New function.
9516 (trapv_binoptab_p): Likewise.
9517 * optabs.c (expand_binop): Use emit_libcall_block_1 with
9518 a proper equiv_may_trap argument.
9519 (expand_unop): Likewise.
9520 (emit_libcall_block_1): Take extra argument whether the
9521 instruction may trap. Renamed from ...
9522 (emit_libcall_block): ... this. New wrapper.
9523
9524 2012-03-05 Jakub Jelinek <jakub@redhat.com>
9525
9526 PR tree-optimization/51721
9527 * tree-vrp.c (register_edge_assert_for_2): If comparing
9528 lhs of right shift by constant with an integer constant,
9529 add ASSERT_EXPRs for the rhs1 of the right shift.
9530
9531 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
9532
9533 2012-03-05 Richard Guenther <rguenther@suse.de>
9534
9535 * tree.c (integer_zerop): Handle VECTOR_CSTs.
9536 (integer_onep): Likewise.
9537 (integer_all_onesp): Likewise.
9538
9539 2012-03-05 Georg-Johann Lay <avr@gjlay.de>
9540
9541 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
9542
9543 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
9544
9545 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
9546 instead of TARGET_64BIT.
9547
9548 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
9549
9550 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
9551 adjust_stack_insn.
9552
9553 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
9554
9555 * config/i386/i386.c (ix86_print_operand_address): Only handle
9556 zero-extended DImode addresses.
9557
9558 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
9559
9560 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
9561 taken and cputaken as bool.
9562
9563 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
9564
9565 * config/i386/constraints.md (Ya): New internal constraint.
9566 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
9567 (*zero_extendsidi2_rex64): Add x,x alternative.
9568 (*zero_extendsidi2): Ditto. Add o,0 alternative.
9569 Remove flags reg clobber. Adjust corresponding splits.
9570 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
9571 zero_extendqisi2 expanders using SWI12 mode iterator.
9572 (zero_extend<mode>si2_and): Macroize insn from
9573 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
9574 splitters.
9575 (*zero_extend<mode>si2): Macroize insn from
9576 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
9577 (*zero_extend*2_movzbl_and): Remove insn patterns.
9578 (zero_extendqihi2_and): Merge corresponding splitter.
9579 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
9580 (*zero_extend*2_movzbl_and): Remove insn patterns.
9581 (*anddi_1): Split TYPE_IMOVX instructions.
9582 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
9583 (*andhi_1): Ditto.
9584 (and->zext splitter): Add splitter pattern.
9585 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
9586
9587 2012-03-04 Sandra Loosemore <sandra@codesourcery.com>
9588
9589 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
9590 x86-specific text.
9591 (Debugging Options): Likewise.
9592 (Optimize Options): Likewise.
9593 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
9594 with other architectures. Use official processor names with correct
9595 spelling/capitalization. Fix formatting and grammar issues.
9596 (i386 and x86-64 Windows Options): Similar cleanup here.
9597
9598 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
9599
9600 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
9601
9602 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
9603
9604 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
9605 DBX_REGISTER_NUMBER.
9606
9607 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
9608
9609 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
9610 operand is CONST_INT. Take COSTS_N_INSNS into account.
9611 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
9612 of shiftcosts.
9613
9614 2012-03-02 Richard Henderson <rth@redhat.com>
9615
9616 * optabs.c (expand_atomic_test_and_set): Honor
9617 atomic_test_and_set_trueval even when atomic_test_and_set
9618 optab is not in use.
9619
9620 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
9621
9622 PR target/48596
9623 PR target/48806
9624 * config/sh/sh.c (sh_register_move_cost): Increase cost between
9625 GENERAL_REGS and FP_REGS for SImode.
9626
9627 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
9628
9629 PR target/49486
9630 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
9631 (absdi2): New expander.
9632 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
9633
9634 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
9635
9636 * config/sh/sync.md (atomic_exchange<mode>): New expander.
9637 (atomic_exchange<mode>_soft): New insn.
9638
9639 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
9640
9641 * config/sh/sync.md: Update copyright notice dates.
9642 (atomic_compare_and_swap<mode>): Use SImode for return value instead
9643 of QImode.
9644 (atomic_compare_and_swap<mode>_soft): Likewise.
9645
9646 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
9647
9648 PR target/31640
9649 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
9650 * config/sh/sh.c: Update copyright notice dates.
9651 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
9652 alignment for TARGET_HARD_SH4.
9653 (sh_option_override): Reduce default function alignment. Set
9654 loop alignment to 4 bytes when not optimizing for size.
9655
9656 2012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
9657
9658 PR middle-end/50335
9659 * doc/invoke.texi (floop-flatten): Remove.
9660 * toplev.c (process_options): Remove references to flag_loop_flatten.
9661 * tree-ssa-loop.c (gate_graphite_transform): Same.
9662 * common.opt (floop-flatten): Obsolete.
9663 * graphite-poly.c (apply_poly_transforms): Remove reference to
9664 flag_loop_flatten.
9665 * Makefile.in (graphite-flattening.o): Remove.
9666 * graphite-flattening.c: Remove.
9667
9668 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
9669
9670 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
9671 having mode compatible with the mode of previous compare. Substitute
9672 compare mode of previous compare with the mode, compatible
9673 with eliminated and previous compare.
9674
9675 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
9676
9677 * config/rs6000/dfp.md (floatdidd2): New define_insn.
9678
9679 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
9680
9681 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
9682 compatible with CCGOCmode and CCGCmode.
9683
9684 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
9685
9686 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
9687
9688 2012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
9689
9690 * config/arm/arm.c (arm_sat_operator_match): New function.
9691 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
9692 * config/arm/arm.md ("insn" attribute): Add "sat" value.
9693 ("SAT", "SATrev"): New code iterators.
9694 ("SATlo", "SAThi"): New code iterator attributes.
9695 ("*satsi_<SAT:code>"): New pattern.
9696 ("*satsi_<SAT:code>_shift"): Likewise.
9697 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
9698 and "shift" attributes.
9699 ("arm_usatsihi"): Add "insn" attribute.
9700 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
9701 by powers of two. Do not allow shift by 32.
9702
9703 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
9704
9705 PR target/46716
9706 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
9707 to pass the argument in the register of "natural" mode.
9708
9709 2012-03-02 Richard Guenther <rguenther@suse.de>
9710
9711 PR tree-optimization/52406
9712 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
9713 (struct indices): Add unconstrained_base member.
9714 (struct dr_alias): Remove unused vops member.
9715 (DR_UNCONSTRAINED_BASE): New define.
9716 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
9717 add indices to allow their disambiguation. Make DR_BASE_OBJECT
9718 be an artificial access that covers the whole indexed object,
9719 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
9720 plain decl base-objects to their MEM_REF variant.
9721 (dr_may_alias_p): When the base-object of either data reference
9722 has unknown size use only points-to information.
9723 (compute_affine_dependence): Make dumps easier to read and
9724 more verbose.
9725 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
9726 DR_REF when looking for packed references.
9727 (vect_supportable_dr_alignment): Likewise.
9728
9729 2012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
9730
9731 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
9732 Improve conditions for peepholes of loads followed by commutative
9733 operators.
9734 * config/arm/ldmstm.md: Regenerated.
9735
9736 2012-03-02 Richard Guenther <rguenther@suse.de>
9737
9738 * BASE-VER: Set to 4.8.0.
9739
9740 2012-03-01 Richard Earnshaw <rearnsha@arm.com>
9741
9742 * config.gcc (obsolete): Add all ARM targets using the FPA.
9743 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
9744 * doc/install.texi: Avoid references to obsolete ARM ports.
9745
9746 2012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
9747
9748 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
9749
9750 2012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
9751 Joern Rennecke <joern.rennecke@embecosm.com>
9752
9753 * doc/extend.texi: Expand and update information on interrupt
9754 attribute for Epiphany.
9755
9756 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
9757
9758 * config/sh/sh-protos.h: Update copyright notice dates.
9759 * config/sh/sh.h: Likewise.
9760 * config/sh/sh.md: Likewise.
9761 * config/sh/constraints.md: Likewise.
9762 * config/sh/predicates.md: Likewise.
9763
9764 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
9765
9766 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
9767 * config/sh/sh.c (tertiary_reload_operand): Likewise.
9768
9769 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
9770
9771 * config/sh/constraints.md: Fix comment typo.
9772
9773 2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9774
9775 PR target/52408
9776 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
9777 unsigned HOST_WIDE_INT.
9778 (zvdep_imm64): Likewise.
9779 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
9780 (vdepi_and): Likewise.
9781 Likewise for unamed 64-bit patterns.
9782 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
9783
9784 2012-03-01 Alexandre Oliva <aoliva@redhat.com>
9785
9786 PR debug/52001
9787 PR rtl-optimization/52417
9788 * cselib.c (cselib_any_perm_equivs): New variable.
9789 (cselib_reset_table): Check that it's not set when not
9790 preserving constants.
9791 (cselib_add_permanent_equiv): Set it.
9792 (cselib_have_permanent_equivalences): New.
9793 (cselib_init, cselib_finish): Reset it.
9794 * cselib.h (cselib_have_permanent_equivalences): Declare.
9795 * alias.c (get_addr): Restore earlier behavior when there
9796 aren't permanent equivalences.
9797
9798 2012-03-01 Steven Bosscher <steven@gcc.gnu.org>
9799
9800 * config/mn10300/mn10300-modes.def: Fix copyright notice.
9801 * config/v850/v850-modes.def: Fix copyright notice.
9802
9803 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
9804
9805 * doc/extend.texi (AVR Built-in Functions): Document
9806 __builtin_avr_flash_segment.
9807
9808 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
9809 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
9810 (*split.flash_segment): New insn-and-split.
9811 * config/avr/avr.c (avr_init_builtins): Add local variables:
9812 const_memx_void_node, const_memx_ptr_type_node,
9813 char_ftype_const_memx_ptr.
9814
9815 2012-03-01 Jakub Jelinek <jakub@redhat.com>
9816
9817 PR tree-optimization/52445
9818 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
9819 add ssa_name_ver, offset and size fields and change store field
9820 to bool.
9821 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
9822 (add_or_mark_expr): Likewise. Only consider previous stores
9823 with the same size and offset.
9824 (nt_init_block): Only look at gimple_assign_single_p stmts,
9825 doesn't look at rhs2.
9826
9827 2012-03-01 Richard Guenther <rguenther@suse.de>
9828
9829 PR middle-end/52443
9830 * tree-cfg.c (verify_gimple_assign_unary): Allow any
9831 conversions from integral types to pointer types.
9832
9833 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
9834
9835 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
9836 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
9837 unintentionally removed in r184616.
9838
9839 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9840
9841 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
9842 3DNow from bdver1.
9843
9844 2012-02-29 Jakub Jelinek <jakub@redhat.com>
9845 Uros Bizjak <ubizjak@gmail.com>
9846
9847 PR target/52437
9848 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
9849 alternatives, add "e" constraint to the new last alternative
9850 and ! to last 3 alternatives.
9851
9852 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
9853
9854 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
9855 DW_AT_artificial attributes at the end of the processing.
9856 (gen_array_type_die): Likewise.
9857 (gen_enumeration_type_die): Likewise.
9858 (gen_struct_or_union_type_die): Likewise.
9859 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
9860 the parent type.
9861
9862 2012-02-29 Jakub Jelinek <jakub@redhat.com>
9863
9864 PR middle-end/52419
9865 * expr.c (expand_assignment): If doing misaligned store that doesn't
9866 cover all mode bits, perform a RMW cycle.
9867
9868 PR tree-optimization/52429
9869 * tree-parloops.c (separate_decls_in_region_debug): Return early
9870 if var is LABEL_DECL.
9871
9872 2012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9873
9874 PR tree-optimization/52424
9875 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
9876 calling dom_thread_across_edge.
9877
9878 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
9879
9880 * config/avr/avr.c: Move definition of TARGET macros to end of file.
9881
9882 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
9883
9884 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
9885 * config/avr/avr.c (avr_output_bld): Remove unused function.
9886 (avr_out_sbxx_branch): Use "%T" to print bit position.
9887
9888 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
9889
9890 * config/avr/avr.md: Untabify.
9891
9892 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
9893
9894 * config/avr/avr.md (eqne): New code iterator.
9895 (*dec-and-branchsi): Use it in text peephole's condition.
9896 (*dec-and-branchhi): Ditto.
9897 (*dec-and-branchqi): Ditto.
9898
9899 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
9900
9901 PR target/49939
9902 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
9903 the device does not have the skip-bug.
9904
9905 2012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
9906
9907 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
9908 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
9909 -mpretend-cmove): New.
9910
9911 2012-02-29 Jakub Jelinek <jakub@redhat.com>
9912
9913 PR bootstrap/52397
9914 * df.h (struct df_d): Adjust comment that hard_regs_live_count
9915 doesn't count DEBUG_INSN refs.
9916 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
9917 for DEBUG_INSN refs.
9918
9919 2012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9920
9921 Partially revert:
9922
9923 2012-02-20 Richard Guenther <rguenther@suse.de>
9924 PR tree-optimization/52298
9925 * tree-vect-stmts.c (vectorizable_load): Properly use
9926 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
9927
9928 2012-02-28 Aldy Hernandez <aldyh@redhat.com>
9929
9930 PR middle-end/51752
9931 * gimple.h (gimple_in_transaction): New.
9932 (gimple_set_in_transaction): New.
9933 (struct gimple_statement_base): Add in_transaction field.
9934 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
9935 transaction loads.
9936 (tree_ssa_lim_initialize): Compute transaction bits.
9937 * tree.h (compute_transaction_bits): Protoize.
9938 * trans-mem.c (tm_region_init): Use the heap to store BB
9939 auxilliary data.
9940 (compute_transaction_bits): New.
9941
9942 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9943
9944 * gcc.c (display_help): Document --help=common and sort entries
9945 alphabetically.
9946
9947 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9948
9949 * doc/install.texi: Document check-$LANG specific shortcuts
9950
9951 2012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
9952
9953 PR target/51534
9954 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
9955 and vcgtu.
9956 * config/arm/arm_neon.h: Regenerate.
9957 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
9958 (neon_vcgeu): New insn.
9959 (neon_vcgtu): Likewise.
9960 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
9961 (ops): Unsigned comparison intrinsics call a different builtin.
9962
9963 2012-02-28 Richard Guenther <rguenther@suse.de>
9964
9965 PR target/52407
9966 * config/i386/i386.c (ix86_expand_vector_set): Fix element
9967 ordering for the VEC_CONCAT for two element vectors for
9968 V2SFmode, V2SImode and V2DImode.
9969
9970 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
9971
9972 PR target/49448
9973 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
9974 detecting big-endian triplets.
9975
9976 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
9977
9978 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
9979 mode if there is no type information available.
9980
9981 2012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
9982
9983 PR tree-optimization/53207
9984 * doc/invoke.texi: Document as experimental and relying on graphite.
9985
9986 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
9987
9988 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
9989 of initializer to changes from r184614.
9990
9991 2012-02-28 Richard Guenther <rguenther@suse.de>
9992
9993 PR tree-optimization/52395
9994 * tree-sra.c (build_ref_for_offset): Also look at the base
9995 TYPE_ALIGN when figuring out the alignment of the replacement.
9996
9997 2012-02-28 Richard Guenther <rguenther@suse.de>
9998
9999 PR tree-optimization/52402
10000 * ipa-prop.c (ipa_modify_call_arguments): Properly use
10001 mis-aligned types when creating the accesses at the call site.
10002
10003 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
10004
10005 * config/avr/builtins.def: New file.
10006 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
10007 * config/avr/avr.c (enum avr_builtin_id): Use it.
10008 (avr_init_builtins): Use it. And use avr_bdesc.
10009 (bdesc_1arg): Remove.
10010 (bdesc_2arg): Remove.
10011 (bdesc_3arg): Remove.
10012 (struct avr_builtin_description): Add field n_args.
10013 (avr_bdesc): New static variable using builtins.def.
10014 (avr_expand_builtin): Use it.
10015 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
10016 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
10017 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
10018
10019 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
10020
10021 PR target/52148
10022 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
10023 match only one single hard register with respective hard reg rtx.
10024 (movmemx_<mode>): Ditto.
10025 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
10026 insn anatomy of movmem[x]_<mode>.
10027 (avr_out_movmem): Same for printing assembler and operand usage.
10028
10029 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
10030
10031 PR target/49868
10032 PR target/52261
10033 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
10034 address spaces located outside of device flash.
10035
10036 * config/avr/avr.h (base_arch_s): Remove field n_segments.
10037 (mcu_type_s): Add field n_flash.
10038 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
10039 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
10040 (AVR_MCU): Add N_FLASH argument.
10041 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
10042 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
10043 macro __FLASH<n> if that address space makes sense for the device.
10044 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
10045 outside of target flash.
10046 (avr_asm_named_section): Ditto.
10047 (avr_asm_select_section): Ditto.
10048 (avr_addr_space_convert): Ditto.
10049 (avr_emit_movmemhi): Ditto.
10050 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
10051 address space is outside of device flash.
10052 (avr_insert_attributes): Ditto.
10053 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
10054 avr_current_arch->n_segments.
10055
10056 2012-02-27 H.J. Lu <hongjiu.lu@intel.com>
10057
10058 PR target/52352
10059 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
10060 (*movabs<mode>_2): Likewise.
10061
10062 2012-02-27 Jakub Jelinek <jakub@redhat.com>
10063
10064 PR target/52375
10065 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
10066 s_register_operand in the test instead of REG_P. Don't call
10067 gen_reg_rtx if it won't be used.
10068
10069 PR tree-optimization/52376
10070 * ipa-split.c (split_function): Ignore CLOBBER stmts.
10071
10072 2012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
10073
10074 * ifcvt.c (noce_get_condition): Check condition variable is not
10075 small_register_classes_for_mode_p before accepting.
10076
10077 2012-02-27 Uros Bizjak <ubizjak@gmail.com>
10078
10079 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
10080
10081 2012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
10082
10083 Revert:
10084 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
10085 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
10086 tuning parameters.
10087 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
10088
10089 2012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
10090
10091 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
10092
10093 2012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
10094
10095 * config/sh/predicates.md: Remove blank lines.
10096 * config/sh/sh.c: Fix typos in comments.
10097 * config/sh/constraints.md: Likewise.
10098 * config/sh/sh.md: Remove blank lines.
10099 Fix typos in comments. Use ;; as comment characters.
10100
10101 2012-02-26 Walter Lee <walt@tilera.com>
10102
10103 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
10104 (replace_mov_pcrel_step2): Ditto.
10105
10106 2012-02-25 Alexandre Oliva <aoliva@redhat.com>
10107
10108 PR debug/52001
10109 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
10110 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
10111 and locs that reference values newer than the non-canonical value
10112 at hand. Return the canonical value as a worst case.
10113 (memrefs_conflict_p): Walk canonical value's locs.
10114
10115 PR debug/52001
10116 * cselib.c (preserve_only_constants): Rename to...
10117 (preserve_constants_and_equivs): ... this. Split out...
10118 (invariant_or_equiv_p): ... this. Preserve plus expressions
10119 of other preserved expressions too.
10120 (cselib_reset_table): Adjust.
10121 * var-tracking.c (reverse_op): Use canonical value to build
10122 reverse operation.
10123
10124 2012-02-23 Kai Tietz <ktietz@redhat.com>
10125
10126 * config/i386/i386.c (ix86_delegitimize_address): Handle
10127 UNSPEC_PCREL plus displacement.
10128
10129 2012-02-24 Georg-Johann Lay <avr@gjlay.de>
10130
10131 PR target/52261
10132 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
10133 to test for unusedness in st X addressing.
10134
10135 2012-02-24 Richard Guenther <rguenther@suse.de>
10136
10137 PR middle-end/52361
10138 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
10139 (is_gimple_reg_type): Move inline ...
10140 * gimple.h (is_gimple_reg_type): ... here.
10141
10142 2012-02-24 Richard Guenther <rguenther@suse.de>
10143
10144 PR middle-end/52361
10145 * passes.c (execute_function_todo): When verifying SSA form
10146 verify gimple form first.
10147 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
10148
10149 2012-02-24 Richard Guenther <rguenther@suse.de>
10150
10151 PR middle-end/52355
10152 * fold-const.c (fold_addr_of_array_ref_difference): New function.
10153 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
10154
10155 2012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10156
10157 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
10158
10159 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10160
10161 * tree-phinodes.c (make_phi_node): Mark static.
10162 * tree-flow.h (make_phi_node): Remove extern decl.
10163 * doc/gimple.texi (make_phi_node): Remove documentation.
10164
10165 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10166
10167 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
10168 * tree-ssa-sccvn.c (print_scc): Ditto.
10169
10170 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10171
10172 * doc/passes.texi (Full redundancy elimination): Fix typo.
10173
10174 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10175
10176 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
10177
10178 2012-02-23 Eric Botcazou <ebotcazou@adacore.com>
10179
10180 PR bootstrap/52287
10181 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
10182
10183 2012-02-23 Uros Bizjak <ubizjak@gmail.com>
10184
10185 PR c/52290
10186 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
10187
10188 2012-02-23 Georg-Johann Lay <avr@gjlay.de>
10189
10190 * config/avr/avr.md (code_stdname): Add ior, xor.
10191 (xior): New code iterator.
10192 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
10193 (*<code_stdname><mode>qi.byte1-3): Ditto.
10194
10195 2012-02-23 Jakub Jelinek <jakub@redhat.com>
10196
10197 PR tree-optimization/52019
10198 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
10199 CLOBBER stmts.
10200
10201 2012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10202
10203 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
10204 HAVE_INITFINI_ARRAY to work around namespace pollution in
10205 certain versions of newlib system headers.
10206 * config.in: Regenerate.
10207 * configure: Regenerate.
10208 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
10209 instead of HAVE_INITFINI_ARRAY.
10210
10211 2012-02-22 Uros Bizjak <ubizjak@gmail.com>
10212
10213 PR target/52330
10214 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
10215 is not offsettable memory reference.
10216
10217 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
10218
10219 PR target/18145
10220 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
10221 setting avr_need_clear_bss_p for __gnu_lto* symbols.
10222
10223 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
10224
10225 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
10226 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
10227
10228 2012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10229
10230 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
10231 library on Solaris 8 even without TLS support.
10232 * configure: Regenerate.
10233
10234 2012-02-22 Richard Guenther <rguenther@suse.de>
10235
10236 PR middle-end/52329
10237 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
10238 for GIMPLE_DEBUG stmts.
10239
10240 2012-02-22 Martin Jambor <mjambor@suse.cz>
10241
10242 PR middle-end/51782
10243 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
10244 according to the base object.
10245
10246 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
10247
10248 PR rtl-optimization/50063
10249 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
10250 and 2 (8-bit SP) in operand 2.
10251 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
10252 setup to use movhi_sp_r instead of vanilla move to write SP.
10253 Adjust REG_CFA notes to superseed unspec.
10254 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
10255 of vanilla move.
10256 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
10257 known to be off) only with TARGET_NO_INTERRUPTS. Never use
10258 irq_state 1 (IRQ known to be on) here.
10259
10260 2012-02-21 Bernd Schmidt <bernds@codesourcery.com>
10261
10262 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
10263 WORDS_BIG_ENDIAN.
10264 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
10265 assign_hard_reg): Likewise.
10266
10267 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
10268
10269 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
10270
10271 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
10272
10273 * config/avr/avr.md
10274 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
10275 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
10276
10277 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
10278
10279 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
10280 prototype from here to...
10281 * config/avr/avr.h: ...here.
10282
10283 2012-02-21 Richard Earnshaw <rearnsha@arm.com>
10284
10285 PR target/52294
10286 * thumb2.md (thumb2_shiftsi3_short): Split register and
10287 immediate shifts. For register shifts tie operands 0 and 1.
10288 (peephole2 for above): Check that register-controlled shifts
10289 have suitably tied operands.
10290
10291 2012-02-21 Quentin Neill <quentin.neill@amd.com>
10292
10293 PR target/52137
10294 * config/i386/bdver1.md (bdver1_call, bdver1_push,
10295 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
10296 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
10297 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
10298 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
10299 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
10300 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
10301 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
10302 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
10303 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
10304 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
10305 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
10306 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
10307 bdver1_ssevector_avx256_unaligned_load,
10308 bdver1_ssevector_sse128_unaligned_load,
10309 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
10310 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
10311 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
10312 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
10313 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
10314 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
10315 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
10316 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
10317 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
10318 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
10319 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
10320 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
10321 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
10322 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
10323 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
10324 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
10325 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
10326 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
10327 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
10328 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
10329 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
10330 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
10331 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
10332 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
10333 bdver1_ssediv_double_load, bdver1_ssediv_double,
10334 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
10335 Add "bdver2" attribute.
10336
10337 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10338
10339 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
10340 default if possible and not specified otherwise.
10341
10342 2012-02-21 Richard Guenther <rguenther@suse.de>
10343
10344 PR middle-end/52314
10345 * gimplify.c (create_tmp_from_val): Use the main variant type
10346 for the type of the temporary we create.
10347
10348 2012-02-21 Richard Guenther <rguenther@suse.de>
10349
10350 PR tree-optimization/52324
10351 * gimplify.c (gimplify_expr): When re-gimplifying expressions
10352 do not gimplify a MEM_REF address operand if it is already
10353 in suitable form.
10354
10355 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10356
10357 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
10358 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
10359
10360 2012-02-21 Richard Guenther <rguenther@suse.de>
10361
10362 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
10363 nested_in_vect_loop.
10364
10365 2012-02-21 Jakub Jelinek <jakub@redhat.com>
10366
10367 PR tree-optimization/52318
10368 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
10369 vdef also to non-pure/const call stmts in the sequence.
10370
10371 2012-02-21 Tristan Gingold <gingold@adacore.com>
10372
10373 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
10374
10375 2012-02-20 David S. Miller <davem@davemloft.net>
10376
10377 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
10378 don't use the "rd %pc" instruction on v9 for PIC register loads.
10379
10380 2012-02-20 Aldy Hernandez <aldyh@redhat.com>
10381
10382 PR middle-end/52141
10383 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
10384 in a transaction safe function.
10385
10386 2012-02-20 Kai Tietz <ktietz@redhat.com>
10387
10388 PR target/52238
10389 * stor-layout.c (place_field): Handle desired_align for
10390 ms-bitfields, too.
10391
10392 2012-02-20 Richard Guenther <rguenther@suse.de>
10393
10394 PR tree-optimization/52298
10395 * tree-vect-stmts.c (vectorizable_store): Properly use
10396 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
10397 outer loops.
10398 (vectorizable_load): Likewise.
10399 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10400 Access DR_STEP after ensuring it is not NULL.
10401
10402 2012-02-20 Jakub Jelinek <jakub@redhat.com>
10403
10404 PR tree-optimization/52286
10405 * fold-const.c (fold_binary_loc): For (X & C1) | C2
10406 optimization use double_int_to_tree instead of build_int_cst_wide,
10407 rewrite to use double_int vars.
10408
10409 2012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10410
10411 PR target/50166
10412 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
10413 Define _start.
10414 Remove -e 0 from $gcc_cv_ld invocation.
10415 Only use __GLIBC_PREREQ if defined.
10416 Enable on Solaris since Solaris 8 patch.
10417 (gcc_SUN_LD_VERSION): New macro.
10418 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
10419 gcc_SUN_LD_VERSION for version number format.
10420 * configure: Regenerate.
10421 * varasm.c (get_elf_initfini_array_priority_section): Set
10422 SECTION_NOTYPE for non-default priority.
10423 Use get_section instead of get_unnamed_section to emit
10424 .init_array/.fini_array with default priority.
10425
10426 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
10427
10428 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
10429 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
10430 (mips_start_unique_function, mips_output_mips16_rdhwr)
10431 (mips_code_end): New functions.
10432 (TARGET_ASM_CODE_END): Define.
10433
10434 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
10435
10436 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
10437 to stubs with non-sibling calls.
10438
10439 2012-02-18 Sandra Loosemore <sandra@codesourcery.com>
10440
10441 * doc/invoke.texi (-fira-* options): Copy-edit.
10442 (ira-* parameters): Copy-edit.
10443
10444 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
10445
10446 * doc/invoke.texi: Minor copy-edits to bring into conformance with
10447 GCC coding conventions.
10448
10449 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
10450
10451 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
10452 when used as adjectives.
10453
10454 2012-02-16 Sandra Loosemore <sandra@codesourcery.com>
10455
10456 * doc/invoke.texi: Clean up "that"/"which" confusion.
10457
10458 2012-02-17 Steven Bosscher <steven@gcc.gnu.org>
10459
10460 * system.h: Poison SMALL_REGISTER_CLASSES
10461 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
10462 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
10463
10464 2012-02-16 Jakub Jelinek <jakub@redhat.com>
10465
10466 PR tree-optimization/52285
10467 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
10468 when deciding if a call is a tail call or tail recursion.
10469
10470 2012-02-16 Kai Tietz <ktietz@redhat.com>
10471
10472 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
10473 interger-constant displacement for UNSPEC_PCREL.
10474
10475 2012-02-16 Jakub Jelinek <jakub@redhat.com>
10476
10477 PR rtl-optimization/52208
10478 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
10479 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
10480
10481 PR tree-optimization/52255
10482 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
10483 loop->header has virtual PHI, but exit_e->dest doesn't, add
10484 virtual PHI to exit_e->dest and adjust all uses after the loop.
10485
10486 PR debug/52260
10487 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
10488 children with clone_tree_hash, not after it.
10489
10490 2012-02-16 Iain Sandoe <iains@gcc.gnu.org>
10491
10492 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
10493 extended identifiers.
10494
10495 2012-02-16 Jakub Jelinek <jakub@redhat.com>
10496
10497 PR middle-end/51929
10498 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
10499 a same_body_alias, also test whether e->callee isn't a former
10500 or current clone of the decl this is a same body alias of.
10501
10502 PR translation/52264
10503 * cgraphunit.c (verify_cgraph_node): Fix a typo.
10504
10505 2012-02-15 Sandra Loosemore <sandra@codesourcery.com>
10506
10507 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
10508
10509 2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10510
10511 PR target/52199
10512 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
10513 force_reg instead of copy_to_reg for better optimization. Force
10514 non-register or memory operands into a register.
10515
10516 2012-02-15 Andrew MacLeod <amacleod@redhat.com>
10517
10518 * extend.texi: Reserve upper bits of memory model for future use.
10519
10520 2012-01-15 Georg-Johann Lay <avr@gjlay.de>
10521 Anatoly Sokolov <aesok@post.ru>
10522 Eric Weddington <eric.weddington@atmel.com>
10523
10524 PR target/52261
10525 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
10526 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
10527 Rewrite initializers for .macro.
10528 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
10529 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
10530 atxmega32d4, atxmega32x1.
10531 avrxmega4: atxmega64a3, atxmega64d3.
10532 avrxmega5: atxmega64a1, atxmega64a1u.
10533 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
10534 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
10535 avrxmega7: atxmega128a1, atxmega128a1u.
10536 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
10537 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
10538 (struct base_arch_s): Rename reserved to xmega_p.
10539 Rename reserved2 to have_rampd.
10540 (AVR_XMEGA): New define.
10541 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
10542 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
10543 * config/avr/predicates.md (io_address_operand): Take into
10544 account SFR offset.
10545 (low_io_address_operand): Ditto.
10546 (high_io_address_operand): Ditto.
10547 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
10548 (enabled, movhi_sp_r): Use them.
10549 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
10550 cpp_define_formatted to built-in define __AVR_ARCH__.
10551 (__AVR_XMEGA__): New built-in define.
10552 (__AVR_HAVE_RAMPD__): New built-in define.
10553 (__AVR_HAVE_RAMPX__): New built-in define.
10554 (__AVR_HAVE_RAMPY__): New built-in define.
10555 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
10556
10557 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
10558 (avr_option_override): Initialize them.
10559 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
10560 (avr_init_expanders): Initialize them. No more block several calls.
10561 (emit_push_sfr): New static function.
10562 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
10563 Handle AVR_XMEGA.
10564 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
10565 (avr_print_operand): Print addreeses as symbols for
10566 RAMPX, RAMPY, RAMPD, CCP.
10567 (output_movhi): Handle AVR_XMEGA when writing to SP.
10568 (avr_out_movhi_mr_r_xmega): New static function.
10569 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
10570 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
10571 __RAMPD__, __CCP__ as needed.
10572
10573 * config/avr/multilib.h: Regenerate.
10574 * config/avr/t-multilib: Regenerate.
10575 * config/avr/avr-tables.opt: Regenerate.
10576
10577 2012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
10578
10579 PR tree-optimization/50561
10580 * graphite-flattening.c (lst_project_loop): Do not
10581 remove old scattering dimensions after flattening.
10582 (lst_do_flatten): Likewise.
10583
10584 2012-02-15 Georg-Johann Lay <avr@gjlay.de>
10585
10586 * doc/extend.texi (AVR Built-in Functions): Remove doc for
10587 __builtin_avr_map8, __builtin_avr_map16.
10588 Document __builtin_avr_insert_bits.
10589
10590 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
10591 (insert_bits): New insn.
10592 (adjust_len.map_bits): Rename to insert_bits.
10593 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
10594 * avr-protos.h (avr_out_map_bits): Remove.
10595 (avr_out_insert_bits, avr_has_nibble_0xf): New.
10596 * config/avr/constraints.md (Cxf,C0f): New.
10597 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
10598 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
10599 New built-in define __BUILTIN_AVR_INSERT_BITS.
10600 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
10601 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
10602 (avr_move_bits): Rewrite.
10603 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
10604 functions.
10605 (avr_map_op_t): New typedef.
10606 (avr_map_op): New static variable.
10607 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
10608 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
10609 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
10610 (bdesc_3arg, avr_expand_triop_builtin): New.
10611 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
10612 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
10613 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
10614 (avr_map_equal_p, avr_map_sig_p): Remove.
10615 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
10616 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
10617 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
10618 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
10619 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
10620 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
10621
10622 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
10623
10624 * config/c6x/c6x.md (reserve_cycles): New attribute.
10625 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
10626 don't reserve functional units after the branch occurs.
10627
10628 2012-02-14 Aldy Hernandez <aldyh@redhat.com>
10629
10630 PR middle-end/52142
10631 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
10632 functions into non-tm_pure functions.
10633
10634 2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
10635
10636 PR lto/52178
10637 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
10638 (iterative_hash_canonical_type): Likewise.
10639 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
10640 the dead edges.
10641
10642 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
10643
10644 * haifa-sched.c (prune_ready_list): Ensure that if there is a
10645 sched-group insn, it either remains alone or the entire list is pruned.
10646
10647 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
10648
10649 * doc/install.texi (Prerequisites): Fix grammar.
10650 (Configuration): Likewise.
10651
10652 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
10653
10654 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
10655 MPC as part of GCC before describing configuring with --with-gmp etc.
10656 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
10657 sources are present.
10658
10659 2012-02-14 Jakub Jelinek <jakub@redhat.com>
10660
10661 PR debug/51950
10662 * dwarf2out.c (clone_tree_hash): New function.
10663 (copy_decls_walk): Use it instead of clone_tree.
10664
10665 2012-02-14 Richard Guenther <rguenther@suse.de>
10666
10667 PR tree-optimization/52244
10668 PR tree-optimization/51528
10669 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
10670 replacements for integral types.
10671
10672 2012-02-14 Walter Lee <walt@tilera.com>
10673
10674 * config.gcc: Handle tilegx and tilepro.
10675 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
10676 tilegx and tilepro.
10677 Add HAVE_AS_TLS check for tilegx and tilepro.
10678 * configure: Regenerate.
10679 * doc/contrib.texi: Add Mat Hostetter and self.
10680 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
10681 Document instruction intrinsics and network accessing intrinsics.
10682 (TILEPro Built-in Functions): New node. Document instruction
10683 intrinsics and network accessing intrinsics.
10684 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
10685 (Specific, tilepro-*-linux*): Likewise.
10686 * doc/invoke.texi (TILE-Gx Options): New section.
10687 (TILEPro Options): New section.
10688 * doc/md.texi (TILE-Gx): New section.
10689 (TILEPro): New section.
10690 * common/config/tilegx/tilegx-common.c: New file.
10691 * common/config/tilepro/tilepro-common.c: New file.
10692 * config/tilegx/constraints.md: New file.
10693 * config/tilegx/linux.h: New file.
10694 * config/tilegx/mul-tables.c: New file.
10695 * config/tilegx/predicates.md: New file.
10696 * config/tilegx/sync.md: New file.
10697 * config/tilegx/t-tilegx: New file.
10698 * config/tilegx/tilegx-builtins.h: New file.
10699 * config/tilegx/tilegx-c.c: New file.
10700 * config/tilegx/tilegx-generic.md: New file.
10701 * config/tilegx/tilegx-modes.def: New file.
10702 * config/tilegx/tilegx-multiply.h: New file.
10703 * config/tilegx/tilegx-protos.h: New file.
10704 * config/tilegx/tilegx.c: New file.
10705 * config/tilegx/tilegx.h: New file.
10706 * config/tilegx/tilegx.md: New file.
10707 * config/tilegx/tilegx.opt: New file.
10708 * config/tilepro/constraints.md: New file.
10709 * config/tilepro/gen-mul-tables.cc: New file.
10710 * config/tilepro/linux.h: New file.
10711 * config/tilepro/mul-tables.c: New file.
10712 * config/tilepro/predicates.md: New file.
10713 * config/tilepro/t-tilepro: New file.
10714 * config/tilepro/tilepro-builtins.h: New file.
10715 * config/tilepro/tilepro-c.c: New file.
10716 * config/tilepro/tilepro-generic.md: New file.
10717 * config/tilepro/tilepro-modes.def: New file.
10718 * config/tilepro/tilepro-multiply.h: New file.
10719 * config/tilepro/tilepro-protos.h: New file.
10720 * config/tilepro/tilepro.c: New file.
10721 * config/tilepro/tilepro.h: New file.
10722 * config/tilepro/tilepro.md: New file.
10723 * config/tilepro/tilepro.opt: New file.
10724
10725 2012-02-14 Jakub Jelinek <jakub@redhat.com>
10726
10727 PR tree-optimization/52210
10728 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
10729 vect_model_simple_cost with two entry vect_def_type array instead
10730 of an address of dt.
10731
10732 2012-02-14 Richard Guenther <rguenther@suse.de>
10733
10734 PR lto/52178
10735 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
10736 Do not stream DECL_QUALIFIER.
10737 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
10738 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
10739 (find_decls_types_r): Do not walk DECL_QUALIFIER.
10740
10741 2012-02-14 Jakub Jelinek <jakub@redhat.com>
10742
10743 PR c/52181
10744 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
10745 newdecl.
10746
10747 2012-02-13 Jakub Jelinek <jakub@redhat.com>
10748
10749 PR bootstrap/52172
10750 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
10751 * cselib.c (cselib_subst_to_values_from_insn): New function.
10752 * sched-deps.c (add_insn_mem_dependence,
10753 sched_analyze_1, sched_analyze_2): Use it.
10754
10755 2012-02-13 Jan Hubicka <jh@suse.cz>
10756
10757 PR middle-end/52214
10758 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
10759
10760 2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
10761
10762 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
10763 (GTM_SELF_SPECS): Define if not already defined.
10764 (driver_self_specs): Add GTM_SELF_SPECS.
10765 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
10766 (GTM_SELF_SPECS): Define.
10767 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
10768 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
10769
10770 2012-02-13 Jakub Jelinek <jakub@redhat.com>
10771
10772 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
10773 away if seen.
10774
10775 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
10776
10777 PR middle-end/52230
10778 * omp-low.c (expand_omp_for): If a static schedule without chunk size
10779 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
10780
10781 2012-02-13 Andrew MacLeod <amacleod@redhat.com>
10782
10783 PR c/52190
10784 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
10785
10786 2012-02-13 Richard Guenther <rguenther@suse.de>
10787
10788 PR translation/52211
10789 * passes.c (enable_disable_pass): Fix typo.
10790
10791 2012-02-13 Jakub Jelinek <jakub@redhat.com>
10792
10793 PR middle-end/52209
10794 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
10795 XOR for reduce_bit_field if type is unsigned.
10796
10797 2012-02-12 Eric Botcazou <ebotcazou@adacore.com>
10798
10799 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
10800 disallow changes from SFmode to mode with different size in FP regs.
10801
10802 2012-02-12 Robert Millan <rmh@gnu.org>
10803 Gerald Pfeifer <gerald@pfeifer.com>
10804
10805 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
10806 Tweak comment.
10807
10808 2012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
10809
10810 PR rtl-optimization/52175
10811 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
10812 to frame-related instructions.
10813
10814 2012-02-10 Jason Merrill <jason@redhat.com>
10815
10816 PR c++/51910
10817 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
10818 (demangle_new_symbols): Fill it.
10819 (scan_linker_output): Walk it.
10820 (start_tweaking): Split out from scan_linker_output.
10821 (maybe_tweak): Update sym->chosen.
10822 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
10823
10824 2012-02-11 Jakub Jelinek <jakub@redhat.com>
10825
10826 PR debug/52132
10827 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
10828
10829 2012-02-11 Uros Bizjak <ubizjak@gmail.com>
10830
10831 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
10832 having the same mode as previous compare.
10833
10834 2012-02-10 Eric Botcazou <ebotcazou@adacore.com>
10835
10836 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
10837 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
10838 (nonlocal_goto_internal): Likewise.
10839 (nonlocal_goto): Emit a use and an indirect jump directly.
10840
10841 2012-02-10 Andrew MacLeod <amacleod@redhat.com>
10842
10843 PR c/52190
10844 * doc/extend.texi : Update comments for __atomic_compare_exchange and
10845 __atomic_{is,always}_lock_free.
10846
10847 2012-02-10 Uros Bizjak <ubizjak@gmail.com>
10848
10849 PR target/52146
10850 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
10851 negative constant address for TARGET_X32.
10852
10853 2012-02-10 Richard Henderson <rth@redhat.com>
10854
10855 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
10856 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
10857 for GIMPLE_TRANSACTION. Tidy if's into a switch.
10858
10859 2012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10860 Ira Rosen <irar@il.ibm.com>
10861
10862 PR tree-optimization/50031
10863 * targhooks.c (default_builtin_vectorization_cost): Handle
10864 vec_promote_demote.
10865 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
10866 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
10867 all types of reduction and pattern statements.
10868 (vect_estimate_min_profitable_iters): Likewise.
10869 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
10870 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
10871 for explicit realigns.
10872 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
10873 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
10874 vec_promote_demote.
10875 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
10876 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
10877 vec_perm for VSX and handle vec_promote_demote.
10878
10879 2012-02-10 Jakub Jelinek <jakub@redhat.com>
10880
10881 PR middle-end/52177
10882 * builtins.c (fold_builtin_atomic_always_lock_free,
10883 expand_builtin_atomic_always_lock_free,
10884 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
10885 Return and/or test boolean_true_node/boolean_false_node instead of
10886 integer_one_node/integer_zero_node.
10887
10888 2012-02-10 Jan Hubicka <jh@suse.cz>
10889
10890 PR middle-end/48600
10891 * predict.c (predict_paths_for_bb): Prevent looping.
10892 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
10893
10894 2012-02-10 Roman Zhuykov <zhroma@ispras.ru>
10895
10896 * config/arm/arm.c (output_move_double): In one case properly
10897 count number of instructions that will be emitted.
10898
10899 2012-02-10 Richard Guenther <rguenther@suse.de>
10900
10901 PR translation/52193
10902 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
10903
10904 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
10905
10906 PR middle-end/52140
10907 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
10908
10909 2012-02-09 Jakub Jelinek <jakub@redhat.com>
10910
10911 PR debug/52165
10912 * var-tracking.c (emit_note_insn_var_location): If
10913 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
10914 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
10915 non-NOTE_DURING_CALL_P insn.
10916
10917 2012-02-09 Bin Cheng <bin.cheng@arm.com>
10918
10919 PR middle-end/51867
10920 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
10921
10922 2012-02-08 Magnus Granberg <zorry@gentoo.org>
10923
10924 PR driver/48524
10925 * gcc.c (switch_matches) Support switches with separated form,
10926 -D and -U.
10927
10928 2012-02-08 Georg-Johann Lay <avr@gjlay.de>
10929
10930 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
10931 (SP_ADDR): Ditto.
10932 (RAMPZ_ADDR): Ditto.
10933 * config/avr/avr.c (avr_addr_t): New typedef.
10934 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
10935 (avr_init_expanders): Initialize it.
10936 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
10937 SREG_ADDR.
10938 (expand_epilogue): Ditto.
10939 (avr_print_operand): Ditto.
10940 (avr_file_start): Ditto.
10941 (avr_emit_movmemhi): Ditto.
10942
10943 2012-02-08 Richard Guenther <rguenther@suse.de>
10944
10945 PR tree-optimization/46886
10946 * tree-flow.h (do_while_loop_p): Declare.
10947 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
10948 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
10949
10950 2012-02-08 Andrew MacLeod <amacleod@redhat.com>
10951
10952 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
10953 always succeed for integers larger than a native word.
10954
10955 2012-02-08 Richard Guenther <rguenther@suse.de>
10956
10957 PR rtl-optimization/52170
10958 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
10959 properly handle integer vector modes.
10960
10961 2012-02-08 Jakub Jelinek <jakub@redhat.com>
10962
10963 PR gcov-profile/52150
10964 * coverage.c: Include target.h.
10965 (build_var): Call targetm.strip_name_encoding on the assembler name.
10966 Change one _ into . or $ if the target allows it.
10967 * Makefile.in (coverage.o): Depend on $(TARGET_H).
10968
10969 PR rtl-optimization/52139
10970 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
10971 is a BARRIER after emit_insn_after_noloc, move BB_END
10972 to the last non-BARRIER insn before it.
10973
10974 2012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
10975
10976 PR middle-end/24306
10977 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
10978 (mips_gimplify_va_arg_expr): Call it instead of
10979 std_gimplify_va_arg_expr.
10980
10981 2012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10982
10983 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
10984 message for -mno-pointers-to-nested-function.
10985
10986 2012-02-07 Eric Botcazou <ebotcazou@adacore.com>
10987
10988 PR middle-end/51994
10989 * expr.c (get_inner_reference): If there is an offset, add a negative
10990 bit position to it (if any).
10991
10992 2012-02-07 Jakub Jelinek <jakub@redhat.com>
10993
10994 PR rtl-optimization/52060
10995 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
10996 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
10997 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
10998 and/or i0src_copy2 when needed.
10999
11000 2012-02-07 Jakub Jelinek <jakub@redhat.com>
11001
11002 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
11003 or LTOPLUGINSONAME if have_c.
11004
11005 * config/freebsd-spec.h: Add comment about what macros can be defined
11006 in this header.
11007 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
11008 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
11009 here instead.
11010
11011 2012-02-07 Richard Guenther <rguenther@suse.de>
11012
11013 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
11014 newline in -alias dumps.
11015
11016 2012-02-07 Kai Tietz <ktietz@redhat.com>
11017 Dave Korn <dave.korn.cygwin@gmail.com>
11018
11019 PR target/40068
11020 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
11021 Take care that typinfo gets dllexport-attribute.
11022
11023 2012-02-07 Jakub Jelinek <jakub@redhat.com>
11024
11025 PR middle-end/52074
11026 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
11027 if modifier < EXPAND_SUM call force_operand on the result.
11028
11029 2012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
11030
11031 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
11032 adding __forwarder_dst__ prefix if a forwarder_section attribute is
11033 present.
11034 (epiphany_function_type): Replace types for specific interrupts with
11035 EPIPHANY_FUNCTION_INTERRUPT.
11036 (EPIPHANY_INTERRUPT_P): Update.
11037 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
11038 New static function.
11039 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
11040 <disinterrupt>: Affects type identity.
11041 (epiphany_handle_interrupt_attribute): Handle variable number of
11042 arguments.
11043 (epiphany_compute_function_type): Update for new
11044 epiphany_function_type definition.
11045 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
11046 handlers with a longcall forwarder.
11047 (epiphany_start_function): Handle multiple interrupt arguments and/or
11048 forwarder_section attribute.
11049
11050 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
11051 libgloss.
11052
11053 2012-02-07 Alan Modra <amodra@gmail.com>
11054
11055 PR target/52107
11056 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
11057 subregs of TFmode.
11058
11059 2012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11060
11061 PR tree-optimization/50969
11062 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
11063 use vec_perm rather than vector_stmt.
11064 (vect_model_load_cost): Likewise.
11065 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
11066 vec_perm to be the same as other vector statements.
11067 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
11068 cost of vec_perm for TARGET_VSX.
11069
11070 2012-02-06 Richard Guenther <rguenther@suse.de>
11071
11072 PR tree-optimization/52115
11073 * tree-sra.c (access_has_replacements_p): New function.
11074 (sra_modify_assign): Use it to decide whether a use is uninitialized.
11075
11076 2012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
11077
11078 PR middle-end/52047
11079 * trans-mem.c (expand_call_tm): Add an assertion.
11080 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
11081 functions.
11082
11083 2012-02-06 Richard Guenther <rguenther@suse.de>
11084
11085 PR tree-optimization/50955
11086 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
11087 raise cost of expressions that replace an address with an
11088 expression based on a different pointer.
11089
11090 2012-02-06 Jakub Jelinek <jakub@redhat.com>
11091
11092 PR target/52129
11093 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
11094 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
11095
11096 2012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
11097
11098 PR c++/48680
11099 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
11100 -Weffc++ and specify guidelines come from second edition.
11101
11102 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
11103
11104 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
11105 (sibcall_value_multiple_internal, call_split, call_internal_direct)
11106 (call_direct_split, call_value_split, call_value_internal_direct)
11107 (call_value_direct_split, call_value_multiple_split): Use jal and
11108 jal_macro attributes.
11109
11110 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
11111
11112 * reload1.c (reload_regs_reach_end_p): Replace with...
11113 (reload_reg_rtx_reaches_end_p): ...this function.
11114 (new_spill_reg_store): Update commentary.
11115 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
11116 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
11117 before setting new_spill_reg_store.
11118 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
11119 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
11120 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
11121 for non-spill reload registers.
11122
11123 2012-02-05 Ira Rosen <irar@il.ibm.com>
11124
11125 PR tree-optimization/52091
11126 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
11127 (vect_is_simple_use_1): Likewise.
11128 * tree-vect-loop.c (vectorizable_reduction): Update calls
11129 to vect_is_simple_use_1 and vect_is_simple_use.
11130 (vectorizable_live_operation): Likewise.
11131 * tree-vect-patterns.c (widened_name_p,
11132 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
11133 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
11134 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
11135 vectorizable_shift,vectorizable_operation, vectorizable_store,
11136 vectorizable_load): Likewise.
11137 (vect_is_simple_cond): Add an argument, pass it to
11138 vect_is_simple_use_1.
11139 (vectorizable_condition): Update calls to vect_is_simple_cond,
11140 vect_is_simple_use.
11141 (vect_is_simple_use): Add an argument, the statement in which
11142 OPERAND is used. Check that if OPERAND's def stmt is a double
11143 reduction phi node, the use is a phi node too.
11144 (vect_is_simple_use_1): Add an argument, pass it to
11145 vect_is_simple_use.
11146 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
11147 to vect_is_simple_use.
11148
11149 2012-02-04 Jakub Jelinek <jakub@redhat.com>
11150
11151 PR rtl-optimization/52095
11152 * modulo-sched.c (dump_insn_locator): New function.
11153 (loop_canon_p, sms_schedule): Use it.
11154
11155 PR rtl-optimization/52113
11156 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
11157 even for decomposable shift/zext insns.
11158
11159 2012-02-03 Jakub Jelinek <jakub@redhat.com>
11160 Zdenek Dvorak <ook@ucw.cz>
11161
11162 PR rtl-optimization/52092
11163 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
11164 on get_iv_value result.
11165
11166 2012-02-02 Andrew Pinski <apinski@cavium.com>
11167
11168 PR middle-end/47982
11169 PR middle-end/43967
11170 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
11171
11172 2012-02-02 Jakub Jelinek <jakub@redhat.com>
11173
11174 PR middle-end/48071
11175 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
11176
11177 2012-02-02 Vladimir Makarov <vmakarov@redhat.com>
11178
11179 PR rtl-optimization/49800
11180 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
11181 (sched_finish): Call regstat_free_n_sets_and_refs.
11182
11183 2012-02-02 Jia Liu <proljc@gmail.com>
11184
11185 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
11186 than operand 2.
11187
11188 2012-02-02 Jan Hubicka <jh@suse.cz>
11189 Tom de Vries <tom@codesourcery.com>
11190
11191 PR middle-end/51998
11192 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
11193 * varpool.c (varpool_analyze_pending_decls): Likewise.
11194
11195 2012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
11196 Jayant R Sonar <jayant.sonar@kpitcummins.com>
11197
11198 * config.gcc: Add cr16-* support.
11199
11200 * doc/extend.texi: Document cr16 extensions.
11201 * doc/install.texi: Document cr16 install.
11202 * doc/invoke.texi: Document cr16 options.
11203 * doc/md.texi: Document cr16 constraints.
11204
11205 * common/config/cr16/cr16-common.c: New file.
11206 * config/cr16/cr16.c: New file.
11207 * config/cr16/cr16.h: New file.
11208 * config/cr16/cr16.md: New file.
11209 * config/cr16/cr16.opt: New file.
11210 * config/cr16/cr16-protos.h: New file.
11211 * config/cr16/predicates.md: New file.
11212 * config/cr16/constraints.md: New file.
11213 * config/cr16/t-cr16: New file.
11214
11215 2012-02-02 Jakub Jelinek <jakub@redhat.com>
11216
11217 PR target/52086
11218 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
11219 that operands[2] is either immediate, or q_regs_operand.
11220
11221 PR tree-optimization/52073
11222 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
11223 a pattern stmt for pattern uses, ignore uses outside of the loop.
11224
11225 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
11226
11227 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
11228 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
11229 (OUT_AS1, OUT_AS2): Remove.
11230
11231 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
11232
11233 PR rtl-optimization/51374
11234 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
11235 to cross other volatile_refs_p insns.
11236
11237 2012-02-01 Richard Guenther <rguenther@suse.de>
11238
11239 * doc/invoke.texi (fno-inline): Clarify documentation.
11240 (finline-small-functions): Likewise.
11241 (finline-functions): Likewise.
11242 * common.opt (finline): Adjust comment and documentation.
11243 (finline-small-functions): Clarify documentation.
11244 (finline-functions): Likewise.
11245 (finline-functions-called-once): Likewise.
11246
11247 2012-02-01 Tristan Gingold <gingold@adacore.com>
11248
11249 * c-typeck.c (composite_type): Keep mode for pointers.
11250
11251 2012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
11252
11253 * function.h (regno_reg_rtx): Adjust comment.
11254 * reginfo.c (init_reg_modes_target): Only use the previous mode
11255 if it fits within one register. Remove MIPS comment.
11256
11257 2012-01-31 Jakub Jelinek <jakub@redhat.com>
11258
11259 PR bootstrap/52058
11260 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
11261
11262 2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11263
11264 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
11265 to srak instruction.
11266
11267 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
11268
11269 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
11270
11271 2012-01-31 Jakub Jelinek <jakub@redhat.com>
11272
11273 PR bootstrap/52041
11274 PR bootstrap/52039
11275 PR target/51974
11276 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
11277
11278 2012-01-31 Richard Guenther <rguenther@suse.de>
11279
11280 PR tree-optimization/51528
11281 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
11282 assigns.
11283
11284 2012-01-31 Jakub Jelinek <jakub@redhat.com>
11285
11286 PR bootstrap/52041
11287 PR bootstrap/52039
11288 PR target/51974
11289 * ree.c (add_removable_extension): Change def_map argument
11290 to unsigned *, store in def_map 1 + offset into *insn_list vector
11291 instead of pointers into the vector.
11292 (find_removable_extensions): Adjust caller.
11293
11294 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
11295
11296 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
11297 Transform all "* quoted-c-code" to { c-code }.
11298 Remove redundant test for "optimize" in combine patterns.
11299 Move (include "avr-dimode.md") to end of file.
11300
11301 2012-01-30 Bin Cheng <bin.cheng@arm.com>
11302
11303 PR target/51835
11304 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
11305 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
11306
11307 2012-01-30 Richard Guenther <rguenther@suse.de>
11308
11309 PR tree-optimization/52028
11310 * tree-loop-distribution.c (ldist_gen): Properly update
11311 virtual SSA form.
11312
11313 2012-01-30 Jakub Jelinek <jakub@redhat.com>
11314
11315 PR debug/52027
11316 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
11317 set_cur_line_info_table if not emitting debug info.
11318
11319 PR tree-optimization/52046
11320 * tree-vect-patterns.c (check_bool_pattern): Give up if
11321 a comparison could throw.
11322
11323 PR debug/52048
11324 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
11325
11326 2012-01-30 Richard Guenther <rguenther@suse.de>
11327
11328 PR tree-optimization/52045
11329 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
11330 SSA form if cfgcleanup did anything.
11331
11332 2012-01-30 Richard Guenther <rguenther@suse.de>
11333
11334 PR tree-optimization/52045
11335 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
11336 before computing final todo.
11337
11338 2012-01-30 Richard Guenther <rguenther@suse.de>
11339
11340 PR tree-optimization/51528
11341 * tree-sra.c (sra_modify_assign): Re-factor in preparation
11342 for PR51528 fix.
11343
11344 2012-01-30 Paolo Bonzini <bonzini@gnu.org>
11345
11346 * df-problems.c (df_kill_notes): Check that the use refers
11347 to the note under examination.
11348
11349 2012-01-30 Eric Botcazou <ebotcazou@adacore.com>
11350
11351 PR target/51920
11352 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
11353 parameter and use short-lived pseudos.
11354 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
11355 (sparc_expand_vector_init): Const-ify local variables and adjust
11356 calls to above functions.
11357
11358 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
11359
11360 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
11361
11362 2012-01-29 Sandra Loosemore <sandra@codesourcery.com>
11363
11364 * doc/invoke.texi: Make usage of "compile time" and
11365 "run time"/"runtime" consistent throughout the file.
11366
11367 2012-01-29 Uros Bizjak <ubizjak@gmail.com>
11368
11369 * config/alpha/alpha.c (alpha_option_override): Default to
11370 full IEEE compliance mode for Go language.
11371
11372 2011-01-29 Tijl Coosemans <tijl@coosemans.org>
11373
11374 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
11375 (LINK_SSP_SPEC): Define.
11376
11377 2012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11378
11379 PR target/51871
11380 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
11381 stubs.
11382
11383 2012-01-28 Sandra Loosemore <sandra@codesourcery.com>
11384
11385 * doc/invoke.texi: Correct hyphenation of "floating point",
11386 "double precision", and related terminology throughout the file.
11387
11388 2012-01-28 Jakub Jelinek <jakub@redhat.com>
11389
11390 PR target/52006
11391 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
11392 arm_general_register_operand predicate for operand 2 instead of
11393 register_operand.
11394
11395 2012-01-27 Ian Lance Taylor <iant@google.com>
11396
11397 PR go/47656
11398 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
11399 * builtins.c (expand_builtin_init_trampoline): Add onstack
11400 parameter. Change caller.
11401 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
11402 * tree.c (build_common_builtin_nodes): Declare
11403 __builtin_init_heap_trampoline.
11404
11405 2012-01-27 Georg-Johann Lay <avr@gjlay.de>
11406
11407 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
11408 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
11409 * config/avr/avr.c: Ditto.
11410 (avr_regnames): Remove because unused.
11411 * config/avr/avr.md (*cpse.ne): New peephole.
11412 (*cpse.eq): New peephole from former cpse peepholes.
11413
11414 2012-01-27 Michael Eager <eager@eagercon.com>
11415
11416 * config/microblaze.c (microblaze_emit_compare): Correct
11417 test after pcmp instruction.
11418
11419 2012-01-27 Richard Guenther <rguenther@suse.de>
11420
11421 PR tree-optimization/52020
11422 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
11423
11424 2012-01-27 Richard Guenther <rguenther@suse.de>
11425
11426 * ipa-pure-const.c (check_stmt): Clobbers do not make a
11427 function non-const/pure.
11428
11429 2012-01-27 Richard Guenther <rguenther@suse.de>
11430
11431 PR tree-optimization/50444
11432 * tree-sra.c (build_ref_for_offset): Properly adjust the
11433 MEM_REF type for unaligned accesses.
11434
11435 2012-01-27 Richard Guenther <rguenther@suse.de>
11436
11437 PR tree-optimization/50444
11438 * expr.c (mem_ref_refers_to_non_mem_p): New function.
11439 (expand_assignment): Use it. Properly handle misaligned
11440 bases when expanding stores to component references.
11441 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
11442 refactor that case.
11443
11444 2012-01-27 Andrey Belevantsev <abel@ispras.ru>
11445
11446 PR middle-end/51389
11447 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
11448 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
11449 * tree-data-ref.c (find_data_references_in_loop): Make static.
11450 (compute_all_dependences): Change return type to bool. Bail out
11451 for too many datarefs in a loop. Move the hunk resetting the data
11452 dependences vector from ...
11453 (compute_data_dependences_for_loop): ... here. Account for
11454 compute_all_dependences returning false.
11455 (compute_data_dependences_for_bb): Likewise.
11456 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
11457 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
11458
11459 2012-01-27 Richard Guenther <rguenther@suse.de>
11460
11461 PR middle-end/51959
11462 * expr.c (store_field): Use the alias-set of the scratch memory
11463 for storing to it.
11464
11465 2012-01-27 Tom de Vries <tom@codesourcery.com>
11466
11467 PR tree-optimization/51990
11468 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11469 WITH_SIZE_EXPR.
11470 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
11471
11472 2012-01-27 Jakub Jelinek <jakub@redhat.com>
11473
11474 PR debug/52001
11475 * var-tracking.c (reverse_op): Don't add any reverse operation
11476 if V already has any constant locations.
11477
11478 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
11479
11480 * doc/invoke.texi: Correct usage of "command line" (noun)
11481 vs "command-line" (adjective) throughout.
11482
11483 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
11484
11485 * doc/invoke.texi (Language Independent Options): Move
11486 -Wcoverage-mismatch blurb from here....
11487 (Warning Options): ...to here.
11488
11489 2012-01-27 Peter Bergner <bergner@vnet.ibm.com>
11490
11491 * config/rs6000/rs6000.c (rs6000_option_override_internal):
11492 Set rs6000_always_hint to false for 476.
11493
11494 2012-01-27 Matthias Klose <doko@ubuntu.com>
11495
11496 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
11497 system root.
11498 * incpath.c (add_standard_paths): Likewise.
11499
11500 2012-01-27 Richard Henderson <rth@redhat.com>
11501
11502 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
11503 * config/m68k/sync.md (atomic_test_and_set): Rename from
11504 sync_test_and_setqi and adjust the operands.
11505 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
11506 and unconditionally enable.
11507
11508 2012-01-27 Richard Henderson <rth@redhat.com>
11509
11510 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
11511 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
11512 (ldstub): Rename from ldstubqi.
11513 (ldstub<I24MODE>): Remove.
11514
11515 2012-01-27 Richard Henderson <rth@redhat.com>
11516
11517 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
11518 * c-cppbuiltin.c (cpp_atomic_builtins): Define
11519 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
11520 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
11521 * doc/tm.texi: Rebuild.
11522
11523 2012-01-27 Richard Henderson <rth@redhat.com>
11524
11525 * optabs.c (gen_atomic_test_and_set): Remove default.
11526 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
11527
11528 2012-01-26 Jakub Jelinek <jakub@redhat.com>
11529
11530 PR rtl-optimization/51978
11531 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
11532 (combine_reaching_defs): Likewise.
11533 (struct re_info): Remove.
11534 (add_removable_extension): Remove x and data arguments,
11535 add insn, insn_list and def_map. Use the arguments directly
11536 instead of using struct re_info.
11537 (find_removable_extensions): Don't call add_removable_extension
11538 through note_stores, instead just call it with single_set
11539 result if non-NULL.
11540 (find_and_remove_re): Pass curr_cand->expr instead of
11541 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
11542
11543 2012-01-26 Michael Matz <matz@suse.de>
11544
11545 PR tree-optimization/46590
11546 * cfgexpand.c: Revert last change (r183305).
11547 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
11548 regs.
11549 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
11550 checking for emptiness.
11551
11552 2012-01-26 Jakub Jelinek <jakub@redhat.com>
11553
11554 PR middle-end/51895
11555 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
11556 non-addressable non-BLKmode base correctly.
11557
11558 2012-01-26 Michael Matz <matz@suse.de>
11559
11560 PR tree-optimization/48794
11561 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
11562 regions referenced from RESX/EH_DISPATCH.
11563
11564 2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11565
11566 * config/s390/s390.h: Make BRANCH_COST an option.
11567 * config/s390/s390.opt: New option -mbranch-cost.
11568
11569 2012-01-26 Richard Henderson <rth@redhat.com>
11570
11571 Revert 2012-01-24 change:
11572 * trans-mem.c (requires_barrier): Do not instrument thread local
11573 variables and emit save/restore for them.
11574
11575 2012-01-25 Jakub Jelinek <jakub@redhat.com>
11576
11577 PR middle-end/51986
11578 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
11579 for pat == 0.
11580
11581 2012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
11582
11583 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
11584 ASM_OPERANDS.
11585
11586 2012-01-25 Georg-Johann Lay <avr@gjlay.de>
11587
11588 PR target/49868
11589 Rename __pgm to __flash.
11590 Rename __pgm1 to __flash1.
11591 Rename __pgm2 to __flash2.
11592 Rename __pgm3 to __flash3.
11593 Rename __pgm4 to __flash4.
11594 Rename __pgm5 to __flash5.
11595 Rename __pgmx to __memx.
11596 * doc/extend.texi (AVR Named Address Spaces)
11597 Rename address space names as indicated above.
11598 * config/avr/avr.c (avr_addrspace): Ditto.
11599
11600 * config/avr/avr-protos.h
11601 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
11602 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
11603 * config/avr/predicates.md: Ditto.
11604 * config/avr/avr.c Ditto, and
11605 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
11606 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
11607
11608 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
11609 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
11610 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
11611 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
11612 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
11613 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
11614 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
11615 * config/avr/avr.c: Ditto.
11616 * config/avr/avr.md: Ditto.
11617
11618 2012-01-25 Jason Merrill <jason@redhat.com>
11619
11620 PR c++/51992
11621 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
11622
11623 2012-01-25 Jakub Jelinek <jakub@redhat.com>
11624
11625 PR tree-optimization/51987
11626 * tree-data-ref.c (get_references_in_stmt): Handle references in
11627 non-volatile GIMPLE_ASM.
11628
11629 2012-01-25 Richard Guenther <rguenther@suse.de>
11630
11631 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
11632 bases are dereferenced.
11633
11634 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
11635
11636 PR rtl-optimization/48374
11637 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
11638
11639 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
11640
11641 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
11642 compute_data_dependences_for_loop returns false.
11643 * tree-parloops.c (loop_parallel_p): Likewise.
11644
11645 2012-01-25 Richard Guenther <rguenther@suse.de>
11646
11647 * tree.h (get_pointer_alignment_1): Declare.
11648 * builtins.c (get_pointer_alignment_1): New function.
11649 (get_pointer_alignment): Use it.
11650
11651 2012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11652
11653 PR rtl-optimization/48308
11654 * combine.c (enum undo_kind): Add UNDO_LINKS.
11655 (struct undo): Add member l to other_contents and where.
11656 (do_SUBST_LINK): New.
11657 (SUBST_LINK): New.
11658 (try_combine): Handle LOG_LINKS for the dummy i1 case.
11659 (undo_all): Handle UNDO_LINKS.
11660
11661 2012-01-25 Richard Henderson <rth@redhat.com>
11662
11663 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
11664 mem inputs.
11665
11666 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11667
11668 * optabs.c (gen_atomic_test_and_set): Use each argument.
11669
11670 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11671
11672 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
11673 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
11674 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
11675 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
11676 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
11677 TARGET_PAIRED_SINGLE_FLOAT.
11678
11679 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11680
11681 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
11682 (in_struct, return_val): Remove MEM documentation.
11683 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
11684 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
11685 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
11686 and MEM_SCALAR.
11687 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11688 * cfgexpand.c (add_alias_set_conflicts): Likewise.
11689 * expr.c (store_field): Likewise.
11690 * function.c (assign_stack_temp_for_type): Likewise.
11691 * ifcvt.c (noce_try_cmove_arith): Likewise.
11692 * reload1.c (reload): Likewise.
11693 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
11694 (alpha_set_memflags): Likewise.
11695 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
11696
11697 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11698
11699 * rtl.h (true_dependence, canon_true_dependence): Remove varies
11700 parameter.
11701 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
11702 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
11703 (true_dependence_1, true_dependence, canon_true_dependence): Remove
11704 varies parameter.
11705 * cselib.c (cselib_rtx_varies_p): Delete.
11706 (cselib_invalidate_mem): Update call to canon_true_dependence.
11707 * dse.c (record_store, check_mem_read_rtx): Likewise.
11708 (scan_reads_nospill): Likewise.
11709 * cse.c (check_dependence): Likewise.
11710 (cse_rtx_varies_p): Delete.
11711 * expr.c (safe_from_p): Update call to true_dependence.
11712 * ira.c (validate_equiv_mem_from_store): Likewise.
11713 (memref_referenced_p): Likewise.
11714 * postreload-gcse.c (find_mem_conflicts): Likewise.
11715 * sched-deps.c (sched_analyze_2): Likewise.
11716 * store-motion.c (load_kills_store): Likewise.
11717 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
11718 * gcse.c (mems_conflict_for_gcse_p): Likewise.
11719 (compute_transp): Update call to canon_true_dependence.
11720
11721 2012-01-25 Richard Henderson <rth@redhat.com>
11722
11723 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
11724 (maybe_emit_atomic_test_and_set): New.
11725 (expand_sync_lock_test_and_set): Use it.
11726 (expand_atomic_test_and_set): Likewise.
11727 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
11728 the implementation; clarify implementation defined details.
11729 * doc/md.texi (atomic_test_and_set): Document.
11730
11731 2012-01-25 Richard Henderson <rth@redhat.com>
11732
11733 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
11734
11735 2012-01-25 Richard Henderson <rth@redhat.com>
11736
11737 PR target/51968
11738 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
11739 to effect no-op split.
11740
11741 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
11742
11743 PR lto/51698
11744 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
11745 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
11746 (BT_FN_VOID_PTR_INT_SIZE): New.
11747 (BT_FN_UINT_UINT_VAR): Remove.
11748 (BT_FN_UINT32_UINT32_VAR): New.
11749 (BT_FN_DOUBLE_VPTR): Remove.
11750 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
11751
11752 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
11753 (_ITM_changeTransactionMode): Same.
11754 (_ITM_memmoveRtWt): Change return type to void.
11755 (_ITM_memcpyRtWt): Same.
11756 (_ITM_memsetW): Same.
11757 (_ITM_RaRD): Change types to double.
11758 (_ITM_RD): Same.
11759 (_ITM_RaWD): Same.
11760 (_ITM_RfWD): Same.
11761
11762 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
11763
11764 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
11765 Patrick Marlier <patrick.marlier@gmail.com>
11766
11767 * trans-mem.c (requires_barrier): Do not instrument thread local
11768 variables and emit save/restore for them.
11769
11770 2012-01-24 Jason Merrill <jason@redhat.com>
11771
11772 PR c++/51812
11773 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
11774 output static aliases.
11775
11776 2012-01-24 Jakub Jelinek <jakub@redhat.com>
11777
11778 PR driver/47249
11779 * common.opt (-pie, -shared, pie, shared): Change from Common to
11780 Driver.
11781 * gcc.c (display_help): Display help for -pie and -shared.
11782
11783 2012-01-24 Georg-Johann Lay <avr@gjlay.de>
11784
11785 PR target/49868
11786 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
11787 Remove note on size/offset limitation.
11788 (AVR Variable Attributes): Add example how to read data located
11789 with progmem. Refer to named address spaces.
11790 * doc/invoke.texi (AVR Options): Fix typo.
11791
11792 2012-01-24 Richard Guenther <rguenther@suse.de>
11793
11794 Forward-port to trunk
11795 2010-09-21 Jakub Jelinek <jakub@redhat.com>
11796
11797 PR middle-end/45678
11798 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
11799 op0 isn't sufficiently aligned and there is movmisalignM
11800 insn for mode, use it to load op0 into a temporary register.
11801
11802 2012-01-24 Jakub Jelinek <jakub@redhat.com>
11803
11804 PR target/51957
11805 * target.def (const_not_ok_for_debug_p): New hook.
11806 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
11807 documentation.
11808 * doc/tm.texi: Regenerated.
11809 * dwarf2out.c (const_ok_for_output_1): If
11810 targetm.const_not_ok_for_debug_p returns true, fail.
11811 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
11812 function.
11813 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
11814
11815 2012-01-23 Kai Tietz <ktietz@redhat.com>
11816
11817 PR target/51900
11818 * config/i386/predicates.md (symbolic_operand): Allow
11819 UNSPEC_PCREL as PIC expression for lea.
11820 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
11821 * config/i386/i386.c (ix86_delegitimize_address): Handle
11822 UNSPEC_PCREL for none-MEM, too.
11823
11824 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
11825
11826 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
11827 (ipa_tm_create_version_alias): Same.
11828
11829 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
11830
11831 PR libitm/51830
11832 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
11833 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
11834
11835 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
11836 Patrick Marlier <patrick.marlier@gmail.com>
11837 Iain Sandoe <developer@sandoe-acoustics.co.uk>
11838
11839 PR lto/51916
11840 * lto-wrapper.c (run_gcc): Pass the LTO section name to
11841 simple_object_start_read.
11842
11843 2012-01-23 Richard Guenther <rguenther@suse.de>
11844
11845
11846 PR tree-optimization/51895
11847 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
11848 parameter decomposition into BLKmode components.
11849
11850 2012-01-23 Eric Botcazou <ebotcazou@adacore.com>
11851
11852 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
11853 fake variables for restrict-qualified pointers whose pointed-to type
11854 contains a placeholder.
11855
11856 2012-01-23 Richard Guenther <rguenther@suse.de>
11857
11858 PR tree-optimization/51949
11859 * ipa-split.c (execute_split_functions): Do not split malloc functions.
11860
11861 2012-01-23 Jakub Jelinek <jakub@redhat.com>
11862
11863 PR rtl-optimization/51933
11864 * ree.c (transform_ifelse): Return true right away if dstreg is
11865 already wider or equal to cand->mode.
11866 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
11867 (make_defs_and_copies_lists): Remove defs_list and copies_list
11868 arguments, add state argument, just truncate state->work_list
11869 instead of always allocating and freeing the vector. Assert that
11870 get_defs succeeds instead of returning 2. Changed return type to bool.
11871 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
11872 have ext_src_mode, see if it has been modified already with the
11873 right kind of extension and has been extended before from the
11874 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
11875 just return true. Remember the original mode in state->modified array.
11876 (combine_reaching_defs): Add state argument. Don't allocate and
11877 free here def_list, copied_list and vec vectors, instead just
11878 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
11879 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
11880 Add state variable, clear vectors in it, initialize state.modified
11881 if needed. Free all the vectors at the end and state.modified too.
11882 Don't skip a candidate if the extension expression has been modified.
11883
11884 2012-01-22 Douglas B Rupp <rupp@gnat.com>
11885
11886 PR target/47096
11887 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
11888 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
11889 (extra_options) interix.opt -> i386/interix.opt"
11890 (extra_objs):Add winnt-stubs.o
11891 * configure.ac: Add interix to target_os .comm on PE check.
11892 * configure: Regenerate.
11893 * config/interix3.h: Delete and move bits to..
11894 * config/interix.h: Delete and move bits to..
11895 * config/i386/i386-interix3.h: Delete and move bits to..
11896 * config/i386/i386-interix.h: ..here.
11897 (TARGET_CPU_DEFAULT): Remove redefinition.
11898 (TARGET_ASM_CONSTRUCTOR): Undefine.
11899 (SUBTARGET_SWITCHES): Define for ms-bitfields.
11900 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
11901 (PTRDIFF_TYPE): Define.
11902 (LONG_DOUBLE_TYPE_SIZE): Define.
11903 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
11904 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
11905 (TARGET_SECTION_TYPE_FLAGS): Define.
11906 (ASM_DECLARE_FUNCTION_NAME): Define.
11907 (ASM_OUTPUT_EXTERNAL): Define.
11908 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
11909 (ASM_OUTPUT_ALIGNED_BSS): Define.
11910 (PCC_BITFIELD_TYPE_MATTERS): Define.
11911 (USE_CONST_SECTION): Define.
11912 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
11913 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
11914 (SUPPORTS_ONE_ONLY): Remove.
11915 (I386_PE_STRIP_ENCODING): Define.
11916 * config/interix.opt: Delete and move bits to..
11917 * config/i386/interix.opt: ..here. New.
11918 (mpe-aligned-commons): Add.
11919 * config/i386/t-interix: Add copyright header.
11920 (winnt-stubs.o): Add rule.
11921
11922 2012-01-22 Jason Merrill <jason@redhat.com>
11923
11924 PR c++/51832
11925 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
11926 for extra name aliases.
11927
11928 2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
11929
11930 PR rtl-optimization/51924
11931 * ree.c (combine_set_extension): Improve debugging message.
11932 (combine_reaching_defs): Likewise.
11933 (get_defs): Rename confusingly named variable.
11934 (find_and_remove_re): Skip a candidate if the extension expression has
11935 been modified.
11936
11937 2012-01-21 Robert Millan <rmh@gnu.org>
11938 Gerald Pfeifer <gerald@pfeifer.com>
11939
11940 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
11941 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
11942
11943 2012-01-20 Jakub Jelinek <jakub@redhat.com>
11944
11945 PR tree-optimization/51914
11946 * tree-vect-stmts.c (vectorizable_conversion): For
11947 cvt_type && modifier == WIDEN, put temporary with cvt_type
11948 at the beginning of vec_dsts and set vec_dest to temporary
11949 with vectype_out.
11950
11951 2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
11952
11953 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
11954
11955 2011-01-20 Tijl Coosemans <tijl@coosemans.org>
11956
11957 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
11958 * config/rs6000/rs6000.c: Likewise.
11959
11960 2012-01-20 Jakub Jelinek <jakub@redhat.com>
11961
11962 PR target/51915
11963 * config/arm/arm.c (arm_count_output_move_double_insns): Call
11964 output_move_double on a copy of operands array.
11965
11966 2012-01-20 Cary Coutant <ccoutant@google.com>
11967 Dodji Seketeli <dodji@redhat.com>
11968
11969 PR debug/45682
11970 * dwarf2out.c (copy_declaration_context): Return ref to parent
11971 of declaration DIE, if necessary.
11972 (remove_child_or_replace_with_skeleton): Add new parameter; update
11973 caller. Place skeleton DIE under parent DIE of original declaration.
11974 Move call to copy_declaration_context to here ...
11975 (break_out_comdat_types): ... from here.
11976
11977 2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11978
11979 PR rtl-optimization/51856
11980 * reload.c (find_reloads_subreg_address): Set the address_reloaded
11981 flag to reloaded.
11982
11983 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11984
11985 PR target/51819
11986 * config/arm/arm.c (arm_print_operand): Correct output of alignment
11987 hints for neon loads and stores.
11988
11989 2012-01-20 Georg-Johann Lay <avr@gjlay.de>
11990
11991 PR target/49868
11992 PR target/50887
11993 * doc/extend.texi (Named Address Spaces): Split into subsections.
11994 (AVR Named Address Spaces): New subsection.
11995 (M32C Named Address Spaces): New subsection.
11996 (RL78 Named Address Spaces): New subsection.
11997 (SPU Named Address Spaces): New subsection.
11998 (Variable Attributes): New anchor "AVR Variable Attributes".
11999 (AVR Variable Attributes): Rewrite and avoid wording
12000 "address space" in this context.
12001 * doc/invoke.texi (AVR Options): Rewrite and add documentation
12002 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
12003 (AVR Built-in Macros): New subsubsection therein.
12004 * doc/md.texi (AVR constraints): Remove "C04", "R".
12005
12006 2012-01-20 Richard Guenther <rguenther@suse.de>
12007
12008 PR tree-optimization/51903
12009 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
12010 when removing stmts.
12011
12012 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12013
12014 PR target/50313
12015 * config/arm/arm.c (arm_load_pic_register): Use
12016 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
12017 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
12018 (arm_pic_static_addr): Likewise.
12019 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
12020 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
12021 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
12022 (pic_load_addr_unified): New.
12023
12024 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
12025
12026 PR target/51106
12027 * function.c (instantiate_virtual_regs_in_insn): Use
12028 delete_insn_and_edges when removing a wrong asm insn.
12029
12030 2012-01-19 Vladimir Makarov <vmakarov@redhat.com>
12031
12032 PR rtl-optimization/40761
12033 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
12034 Add new member loop_num.
12035 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
12036 (ira_build): Remove the parameter.
12037
12038 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
12039 (ira.c): Do not build CFG loops for one region allocation. Remove
12040 argument from ira_build call.
12041
12042 * ira-build.c (init_loop_tree_node): New function.
12043 (create_loop_tree_nodes): Use it. Separate the case when CFG
12044 loops are not built.
12045 (more_one_region_p): Check current_loops.
12046 (finish_loop_tree_nodes): Separate the case when CFG loops are not
12047 built.
12048 (add_loop_to_tree): Process loop equal to NULL too.
12049 (form_loop_tree): Separate the case when CFG loops are not built.
12050 Use explicitly number for the root.
12051 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
12052 an assertion.
12053 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
12054 instead of loop->num.
12055 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
12056 (mark_all_loops_for_removal): Ditto.
12057 (remove_unnecessary_regions): Separate the case when CFG loops
12058 are not built.
12059 (ira_build): Remove the parameter. Use explicit number of regions
12060 when CFG loops are not built.
12061
12062 * ira-color.c (print_loop_title): Separate the case for the root node.
12063 Use loop_num instead of loop->num.
12064 (move_spill_restore): Use loop_num instead of loop->num.
12065
12066 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
12067 (change_loop): Ditto.
12068 (change_loop): Use loop_num instead of loop->num.
12069
12070 * ira-lives.c (process_bb_node_lives): Ditto.
12071
12072 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
12073
12074 * ira-conflicts.c (print_allocno_conflicts): Ditto.
12075
12076 2012-01-19 Jakub Jelinek <jakub@redhat.com>
12077
12078 PR libmudflap/40778
12079 * tree-mudflap.c (mf_artificial): New function.
12080 (execute_mudflap_function_ops, execute_mudflap_function_decls,
12081 mx_register_decls, mudflap_enqueue_decl): Use it.
12082
12083 PR target/51876
12084 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
12085 numbers in the insn pattern.
12086
12087 2012-01-19 Michael Matz <matz@suse.de>
12088
12089 PR tree-optimization/46590
12090 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
12091 use it in remembering which conflicts we already created.
12092 (add_scope_conflicts): Adjust call to above, (de)allocate helper
12093 bitmap.
12094
12095 2012-01-19 Aldy Hernandez <aldyh@redhat.com>
12096
12097 PR lto/51280
12098 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
12099 (merge_and_complain): Same.
12100
12101 2012-01-19 Jakub Jelinek <jakub@redhat.com>
12102
12103 PR bootstrap/50237
12104 * config/initfini-array.h: Guard content of the header
12105 with #ifdef HAVE_INITFINI_ARRAY.
12106 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
12107 Add initfini-array.h to tm_file here.
12108 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
12109 * config.gcc: Don't add initfini-array.h to tm_file here.
12110 * configure: Regenerated.
12111
12112 2012-01-19 Andrey Belevantsev <abel@ispras.ru>
12113
12114 PR rtl-optimization/51505
12115 * df-problems.c (df_kill_notes): New parameter live. Update comment.
12116 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
12117 (df_note_bb_compute): Update the call to df_kill_notes.
12118
12119 2012-01-18 Aldy Hernandez <aldyh@redhat.com>
12120
12121 * trans-mem.c (requires_barrier): Remove call to is_global_var.
12122
12123 2012-01-18 Richard Guenther <rguenther@suse.de>
12124
12125 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
12126 of conversions to void *.
12127
12128 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12129 Richard Sandiford <rdsandiford@googlemail.com>
12130
12131 PR middle-end/50325
12132 PR middle-end/51192
12133 * optabs.h (simplify_expand_binop): Declare.
12134 * optabs.c (simplify_expand_binop): Make global.
12135 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
12136 endian targets if the source cannot be exactly covered by word
12137 mode chunks.
12138
12139 2012-01-17 Jakub Jelinek <jakub@redhat.com>
12140
12141 PR bootstrap/51872
12142 * hard-reg-set.h (struct hard_reg_set_container): New type.
12143 * target.h (struct hard_reg_set_container): Forward declare.
12144 * target.def (set_up_by_prologue): New target hook.
12145 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
12146 * doc/tm.texi: Regenerated.
12147 * function.c (thread_prologue_and_epilogue_insns): Change
12148 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
12149 Call targetm.set_up_by_prologue on it.
12150 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
12151 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
12152
12153 2012-01-17 Nick Clifton <nickc@redhat.com>
12154
12155 * config/rx/rx.c (rx_can_use_simple_return): New function.
12156 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
12157 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
12158
12159 2012-01-17 Richard Guenther <rguenther@suse.de>
12160
12161 PR middle-end/51782
12162 * expr.c (expand_assignment): Take address-space information
12163 from the address operand of MEM_REF and TARGET_MEM_REF.
12164 (expand_expr_real_1): Likewise.
12165
12166 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12167
12168 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
12169 reload dump is requested.
12170
12171 2012-01-17 Aldy Hernandez <aldyh@redhat.com>
12172
12173 PR other/51165
12174 * trans-mem.c (requires_barrier): Call may_be_aliased.
12175
12176 2012-01-17 Jakub Jelinek <jakub@redhat.com>
12177
12178 PR tree-optimization/51877
12179 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
12180 call arguments and fndecls compare equal, instead return false if they
12181 don't. Return true only if lhs1 and lhs2 are either both NULL, or
12182 both SSA_NAMEs that are valueized the same, or they satisfy
12183 operand_equal_p.
12184
12185 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12186
12187 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
12188 Solaris 11+.
12189 * configure: Regenerate.
12190
12191 2012-01-16 Jan Hubicka <jh@suse.cz>
12192
12193 PR c/12245
12194 PR c++/14179
12195 * convert.c (convert_to_integer): Use fold_convert for
12196 converting an INTEGER_CST to integer type.
12197
12198 2012-01-16 Jason Merrill <jason@redhat.com>
12199
12200 PR c++/14179
12201 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
12202
12203 2012-01-16 Jakub Jelinek <jakub@redhat.com>
12204
12205 PR bootstrap/51860
12206 * config/s390/s390.c (s390_chunkify_start): Don't skip
12207 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
12208 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
12209 If insn is followed by NOTE_INSN_VAR_LOCATION or
12210 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
12211 Don't use location of note insns.
12212
12213 PR tree-optimization/51865
12214 * tree-inline.c (tree_function_versioning): Call remap_decl
12215 on DECL_RESULT whenever it has VOID_TYPE_P type.
12216
12217 2012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
12218
12219 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
12220 for calls to locally-binding MIPS16 functions if only the return
12221 type uses float regs.
12222
12223 2012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
12224 Richard Sandiford <rdsandiford@googlemail.com>
12225
12226 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
12227 (SYMBOL_32_HIGH): Likewise.
12228 (mips_output_tls_reloc_directive): Declare.
12229 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
12230 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
12231 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
12232 (mips_lo_relocs, mips_hi_relocs): Make extern.
12233 (mips16_stub_function): Move up file.
12234 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
12235 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
12236 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
12237 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
12238 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
12239 (mips_get_tp): Add MIPS16 support.
12240 (mips_legitimize_tls_address): Remove MIPS16 sorry().
12241 Generalize DTPREL and TPREL handling.
12242 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
12243 Add MIPS16 TLS support.
12244 (mips_output_tls_reloc_directive): New function.
12245 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
12246 * config/mips/predicates.md (symbolic_operand_with_high)
12247 (tls_reloc_operand): New predicates.
12248 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
12249 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
12250 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
12251 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
12252 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
12253 (*tls_get_tp_mips16_call_<mode>): Likewise.
12254
12255 2012-01-15 Uros Bizjak <ubizjak@gmail.com>
12256
12257 PR rtl-optimization/51821
12258 * recog.c (peep2_find_free_register): Determine clobbered registers
12259 from insn pattern.
12260
12261 2012-01-14 Denis Chertykov <chertykov@gmail.com>
12262
12263 PR target/50925
12264 * config/avr/avr-protos.h: Revert change of 2012-01-09.
12265 * config/avr/avr.c: Likewise.
12266 * config/avr/avr.h: Likewise.
12267
12268 2012-01-13 Ian Lance Taylor <iant@google.com>
12269
12270 PR c++/50012
12271 * tree.h (TYPE_QUALS): Add cast to int.
12272 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
12273
12274 2012-01-13 Ian Lance Taylor <iant@google.com>
12275
12276 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
12277 comparing param_index to VEC_length result.
12278
12279 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
12280
12281 * c-decl.c: Do not include tree-mudflap.h
12282 * tree-optimize.c: Likewise.
12283 * Makefile.in: Update dependencies.
12284
12285 2012-01-13 Richard Guenther <rguenther@suse.de>
12286
12287 PR middle-end/8081
12288 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
12289 variable-sized result always use RSO.
12290
12291 2012-01-12 DJ Delorie <dj@redhat.com>
12292
12293 * cfgexpand.c (convert_debug_memory_address): Allow any valid
12294 pointer type, not just the default pointer type.
12295
12296 2012-01-09 Richard Henderson <rth@redhat.com>
12297 Denis Chertykov <chertykov@gmail.com>
12298
12299 PR target/50925
12300 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
12301 * config/avr/avr.c (avr_can_eliminate): Simplify.
12302 (avr_initial_elimination_offset): Likewise.
12303 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
12304 (expand_epilogue): Likewise.
12305 (avr_legitimize_address): Gut.
12306 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
12307 (avr_hard_regno_nregs): New.
12308 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
12309 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
12310 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
12311 add soft frame pointer.
12312 (CALL_USED_REGISTERS): Likewise.
12313 (REG_CLASS_CONTENTS): Likewise.
12314 (REGISTER_NAMES): Likewise.
12315 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
12316 (HARD_FRAME_POINTER_REGNUM): New.
12317 (FRAME_POINTER_REGNUM): Use soft frame pointer.
12318 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
12319 remove the HARD_FRAME_POINTER self-elimination.
12320
12321 2012-01-12 Georg-Johann Lay <avr@gjlay.de>
12322
12323 PR target/51756
12324 * config/avr/avr.c (avr_encode_section_info): Test for absence of
12325 DECL_EXTERNAL when checking for initializers of progmem variables.
12326
12327 2012-01-12 Ira Rosen <irar@il.ibm.com>
12328
12329 PR tree-optimization/51799
12330 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
12331 that the last operation is a type demotion.
12332
12333 2012-01-12 Uros Bizjak <ubizjak@gmail.com>
12334
12335 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
12336 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
12337
12338 2012-01-11 Jakub Jelinek <jakub@redhat.com>
12339
12340 PR bootstrap/51796
12341 * combine.c (distribute_notes): If i3 is a noreturn call,
12342 allow old_size to be equal to args_size and make sure the
12343 noreturn call gets REG_ARGS_SIZE note.
12344 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
12345 on noreturn calls even when the delta is 0.
12346
12347 2012-01-11 Nathan Sidwell <nathan@acm.org>
12348
12349 * gcov.c (STRING_SIZE): Remove.
12350 (generate_results): Erase annotations for source files with no
12351 coverage information.
12352 (read_line): New.
12353 (output_lines): Use it.
12354
12355 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
12356
12357 * gimple.h (gimplify_body): Remove first argument.
12358 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
12359 pointer set here, instead just pass DATA to walk_tree.
12360 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
12361 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
12362 (unvisit_body): Likewise, but with unmark_visited.
12363 (gimplify_body): Remove BODY_P argument and adjust.
12364 (gimplify_function_tree): Adjust call to gimplify_body.
12365 * omp-low.c (finalize_task_copyfn): Likewise.
12366
12367 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
12368
12369 * tree.h (build_function_decl_skip_args): Add boolean parameter.
12370 (build_function_type_skip_args): Delete.
12371 * tree.c (build_function_type_skip_args): Make static and add
12372 SKIP_RETURN parameter. Fix thinko in the handling of variants.
12373 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
12374 pass it to build_function_type_skip_args.
12375 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
12376 (tree_function_versioning): Likewise.
12377 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
12378 build_function_decl_skip_args.
12379 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
12380 and pass it to build_function_decl_skip_args/tree_function_versioning.
12381 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
12382 * ipa-inline-transform.c (save_inline_function_body): Likewise.
12383 * trans-mem.c (ipa_tm_create_version): Likewise.
12384 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
12385 * tree-inline.c (declare_return_variable): Remove always-true test.
12386 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
12387 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
12388 * ipa-split.c (split_function): Skip the return value for the split
12389 part if it doesn't return.
12390
12391 2012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12392
12393 PR tree-optimization/49642
12394 * ipa-split.c (forbidden_dominators): New variable.
12395 (check_forbidden_calls): New function.
12396 (dominated_by_forbidden): Likewise.
12397 (consider_split): Check for forbidden dominators.
12398 (execute_split_functions): Initialize and free forbidden
12399 dominators info; call check_forbidden_calls.
12400
12401 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
12402
12403 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
12404
12405 2012-01-11 Nick Clifton <nickc@redhat.com>
12406
12407 * config/rx/rx.md (return): Define pattern.
12408
12409 2012-01-11 Richard Guenther <rguenther@suse.de>
12410
12411 * doc/extend.texi (malloc attribute): Adjust according to
12412 implementation.
12413
12414 2012-01-10 Aldy Hernandez <aldyh@redhat.com>
12415 Patrick Marlier <patrick.marlier@gmail.com>
12416
12417 PR middle-end/51516
12418 * trans-mem.c (get_cg_data): Traverse aliases if requested.
12419 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
12420 (ipa_tm_note_irrevocable): Same.
12421 (ipa_tm_scan_irr_block): Same.
12422 (ipa_tm_decrement_clone_counts): Same.
12423 (ipa_tm_scan_irr_function): Same.
12424 (ipa_tm_create_version_alias): Same.
12425 (ipa_tm_create_version): Same.
12426 (ipa_tm_transform_calls_redirect): Same.
12427 (ipa_tm_transform_calls): Same.
12428 (ipa_tm_transform_transaction): Same.
12429 (ipa_tm_execute): Same.
12430
12431 2012-01-10 Richard Guenther <rguenther@suse.de>
12432
12433 PR middle-end/51806
12434 * opts.c (common_handle_option): Handle -Werror.
12435
12436 2012-01-10 Andreas Schwab <schwab@linux-m68k.org>
12437
12438 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
12439 operand number.
12440
12441 2012-01-10 Jason Merrill <jason@redhat.com>
12442
12443 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
12444 information.
12445
12446 2012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12447
12448 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
12449 supports R_386_TLS_GD_PLT reloc.
12450 (gcc_cv_as_ix86_tlsldmplt): Check if linker
12451 supports R_386_TLS_LDM_PLT reloc.
12452 * configure: Regenerate.
12453 * config.in: Regenerate.
12454
12455 2012-01-10 Georg-Johann Lay <avr@gjlay.de>
12456
12457 PR target/49868
12458 Extend __pgmx semantics to linearize memory.
12459 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
12460 determine if code comes inline or from libgcc.
12461 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
12462 (movmem_qi, movmem_qi): Set constraint #2 to "n".
12463 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
12464 (movmemx_qi, movmemx_hi): New insns.
12465 (xload_<mode>_libgcc): Rewrite to new insn condition.
12466 (xload_<mode>): Remove insns.
12467 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
12468 cases that don't satisfy avr_xload_libgcc_p().
12469 (avr_addr_space_convert): Allow converting in any direction.
12470 (avr_addr_space_subset_p): Return always true.
12471 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
12472 (avr_emit_movmemhi): Ditto.
12473 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
12474 (avr_out_movmem): Ditto.
12475 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
12476 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
12477 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
12478 (avr_encode_section_info): Encode 'progmem' in symbol flags.
12479 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
12480
12481 2012-01-10 Richard Guenther <rguenther@suse.de>
12482
12483 PR tree-optimization/50913
12484 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
12485 Require data-refs to be representable by Graphite with respect
12486 to any loop nest.
12487
12488 2012-01-10 Uros Bizjak <ubizjak@gmail.com>
12489
12490 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
12491 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
12492
12493 2012-01-10 Tom de Vries <tom@codesourcery.com>
12494
12495 PR rtl-optimization/51271
12496 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
12497 handling annulled branch.
12498
12499 2012-01-10 Richard Henderson <rth@redhat.com>
12500
12501 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
12502 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
12503 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
12504 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
12505 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
12506 arm_expand_vec_perm_const): New.
12507 * config/arm/arm-protos.h: Update.
12508 * config/arm/neon.md (UNSPEC_VCONCAT): New.
12509 (*neon_vswp<VDQX>): New.
12510 (neon_vcombine<VDX>): Use neon_split_vcombine.
12511 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
12512 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
12513 (vec_perm<VE>): New.
12514
12515 2012-01-10 Richard Henderson <rth@redhat.com>
12516
12517 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
12518 use it if reload_completed.
12519 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
12520 arm_output_asm_insn, arm_process_output_memory_barrier,
12521 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
12522 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
12523 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
12524 arm_process_output_sync_insn, arm_output_sync_insn,
12525 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
12526 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
12527 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
12528 (emit_unlikely_jump): New.
12529 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
12530 (arm_split_atomic_op): New.
12531 * config/arm/arm-protos.h: Update.
12532 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
12533 (struct arm_sync_generator): Remove.
12534 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
12535 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
12536 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
12537 (VUNSPEC_LL, VUNSPEC_SC): New.
12538 (sync_result, sync_memory, sync_required_value, sync_new_value,
12539 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
12540 (attr length): Don't use arm_sync_loop_insns.
12541 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
12542 (movsfcc, movdfcc): Likewise.
12543 * config/arm/constraints.md (Ua): New.
12544 * config/arm/prediates.md (mem_noofs_operand): New.
12545 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
12546 (sync_clobber, sync_t2_reqd): Remove.
12547 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
12548 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
12549 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
12550 (arm_sync_compare_and_swap<SIDI>): Remove.
12551 (arm_sync_compare_and_swap<NARROW>): Remove.
12552 (arm_sync_lock_test_and_set<SIDI>): Remove.
12553 (arm_sync_lock_test_and_set<NARROW>): Remove.
12554 (arm_sync_new_<syncop><SIDI>): Remove.
12555 (arm_sync_new_<syncop><NARROW>): Remove.
12556 (arm_sync_new_nand<SIDI>): Remove.
12557 (arm_sync_new_nand<NARROW>): Remove.
12558 (arm_sync_old_<syncop><SIDI>): Remove.
12559 (arm_sync_old_<syncop><NARROW>): Remove.
12560 (arm_sync_old_nand<SIDI>): Remove.
12561 (arm_sync_old_nand<NARROW>): Remove.
12562 (*memory_barrier): Merge arm_output_memory_barrier.
12563 (atomic_compare_and_swap<QHSD>): New.
12564 (atomic_compare_and_swap<NARROW>_1): New.
12565 (atomic_compare_and_swap<SIDI>_1): New.
12566 (atomic_exchange<QHSD>): New.
12567 (cas_cmp_operand, cas_cmp_str): New.
12568 (atomic_op_operand, atomic_op_str): New.
12569 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
12570 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
12571 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
12572 (arm_load_exclusive<NARROW>): New.
12573 (arm_load_exclusivesi, arm_load_exclusivedi): New.
12574 (arm_store_exclusive<QHSD>): New.
12575
12576 2012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
12577
12578 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
12579 reload patterns if -mvsx-scalar-memory.
12580
12581 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
12582 generated, even -mno-vsx-scalar-double was used.
12583 (vsx_xscvdpsp_scalar): Likewise.
12584 (vsx_xscvspdp_scalar2): Likewise.
12585
12586 2012-01-09 Tom de Vries <tom@codesourcery.com>
12587 Andrew Pinski <apinski@cavium.com>
12588
12589 PR debug/51471
12590 * reorg.c (fill_slots_from_thread): Don't speculate
12591 frame-related insns.
12592
12593 2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
12594
12595 * sched-int.h (bb_note): Move to...
12596 * basic-block.h: ...here.
12597 * haifa-sched.c (bb_note): Move to...
12598 * cfgrtl.c: ...here.
12599 * function.c (next_block_for_reg): New function.
12600 (move_insn_for_shrink_wrap): Likewise.
12601 (prepare_shrink_wrap): Rewrite to use the above.
12602
12603 2012-01-09 Aldy Hernandez <aldyh@redhat.com>
12604
12605 * gimple.c (is_gimple_non_addressable): Remove.
12606 * gimple.h: Remove is_gimple_non_addressable.
12607 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
12608 is_gimple_non_addressable.
12609 * trans-mem.c (expand_assign_tm): Same.
12610
12611 2012-01-09 Richard Guenther <rguenther@suse.de>
12612
12613 PR tree-optimization/51775
12614 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
12615 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
12616
12617 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
12618
12619 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
12620 tuning parameters.
12621 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
12622
12623 2012-01-09 Richard Guenther <rguenther@suse.de>
12624
12625 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
12626
12627 2012-01-08 Jan Hubicka <jh@suse.cz>
12628
12629 PR tree-optimize/51680
12630 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
12631 on when known_vals needs to be computed; cleanup.
12632
12633 2012-01-08 Jan Hubicka <jh@suse.cz>
12634
12635 PR tree-optimize/51694
12636 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
12637
12638 2012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
12639
12640 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
12641 for -std=c++98 and -std=c++11 too.
12642
12643 2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
12644
12645 * cfgloop.c (cancel_loop): Add free() of bbs array.
12646
12647 2012-01-07 Jan Hubicka <jh@suse.cz>
12648
12649 PR tree-optimization/51600
12650 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
12651 that benefits small functions.
12652
12653 2012-01-07 Jan Hubicka <jh@suse.cz>
12654
12655 * ipa-inline.c (want_inline_small_function_p): Fix formating.
12656
12657 2012-01-07 Jan Hubicka <jh@suse.cz>
12658
12659 PR tree-optimization/51680
12660 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
12661 whose inlining reduce unit size.
12662
12663 2012-01-07 Alexandre Oliva <aoliva@redhat.com>
12664
12665 PR bootstrap/51725
12666 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
12667 Add canonical node to containing_mem chain after the non-canonical
12668 one, even if there weren't any locs to propagate.
12669 (remove_useless_values): Keep only canonical values.
12670 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
12671 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
12672 canonicalize mem_chain elements that are not discarded.
12673
12674 2012-01-06 Jakub Jelinek <jakub@redhat.com>
12675
12676 PR target/47333
12677 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
12678 before emitting functions.
12679
12680 PR gcov-profile/50127
12681 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
12682 clear_aux_for_blocks.
12683
12684 2012-01-06 Alexandre Oliva <aoliva@redhat.com>
12685
12686 PR debug/51746
12687 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
12688
12689 2012-01-06 Arnaud Charlet <charlet@adacore.com>
12690
12691 * c-decl.c (ext_block): Moved up.
12692 (collect_all_refs, for_each_global_decl): Take ext_block into account.
12693
12694 2012-01-06 Han Shen <shenhan@google.com>
12695
12696 Translate built-in include paths for sysroot.
12697 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
12698 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
12699
12700 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
12701 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
12702
12703 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
12704 control whether sysroot should be prepended to gxx include dir.
12705
12706 * configure: Regenerate.
12707
12708 2012-01-06 Torvald Riegel <triegel@redhat.com>
12709
12710 PR rtl-optimization/51771
12711 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
12712 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
12713
12714 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
12715
12716 PR tree-optimization/51315
12717 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
12718 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
12719
12720 2012-01-05 Uros Bizjak <ubizjak@gmail.com>
12721
12722 PR target/51681
12723 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
12724 for shrp pattern. Correctly handle and fixup shift variable.
12725 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
12726
12727 2012-01-05 Jakub Jelinek <jakub@redhat.com>
12728
12729 PR debug/51762
12730 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
12731 note when !ACCUMULATE_OUTGOING_ARGS.
12732
12733 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
12734
12735 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
12736 condition.
12737 (extract_range_from_unary_expr_1): Avoid useless computations.
12738
12739 2012-01-05 Jakub Jelinek <jakub@redhat.com>
12740
12741 PR rtl-optimization/51767
12742 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
12743 of jump_block and add an extra edge for degenerated asm gotos.
12744
12745 PR middle-end/51768
12746 * stmt.c (check_unique_operand_names): Don't ICE during error
12747 reporting if i is from labels chain.
12748
12749 PR middle-end/44777
12750 * profile.c (branch_prob): Split bbs that have exit edge
12751 and need a fake entry edge too.
12752
12753 2012-01-05 Jan Hubicka <jh@suse.cz>
12754
12755 PR middle-end/49710
12756 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
12757 unlooping loops.
12758
12759 2012-01-05 Richard Guenther <rguenther@suse.de>
12760
12761 PR lto/50490
12762 * tree-streamer-out.c (write_ts_optimization): New function.
12763 (streamer_write_tree_body): Call it.
12764 * tree-streamer-in.c (lto_input_ts_optimization): New function.
12765 (streamer_read_tree_body): Call it.
12766 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
12767
12768 2012-01-05 Jakub Jelinek <jakub@redhat.com>
12769
12770 PR middle-end/51761
12771 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
12772 * gimplify.c (gimplify_cleanup_point_expr): Save and set
12773 in_cleanup_point_expr before gimplify_stmt call and restore it
12774 afterwards.
12775 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
12776 in_cleanup_point_expr is false.
12777
12778 2012-01-05 Richard Guenther <rguenther@suse.de>
12779
12780 PR middle-end/51764
12781 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
12782 to c.opt.
12783 * toplev.c (process_options): Reject combining mudflap and LTO.
12784 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
12785
12786 2012-01-05 Richard Guenther <rguenther@suse.de>
12787
12788 PR tree-optimization/51760
12789 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
12790 not VARYING.
12791 (bit_value_unop): Handle UNDEFINED operands.
12792 (bit_value_binop): Likewise.
12793
12794 2012-01-05 Georg-Johann Lay <avr@gjlay.de>
12795
12796 * config/avr/avr.c (avr_replace_prefix): Remove.
12797 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
12798 (avr_asm_function_rodata_section): Ditto.
12799 (avr_asm_select_section): Ditto.
12800
12801 2012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
12802
12803 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
12804 insertion.
12805
12806 2012-01-05 Jakub Jelinek <jakub@redhat.com>
12807
12808 PR bootstrap/51648
12809 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
12810 calls that have any non-fake successor edges.
12811
12812 PR debug/51746
12813 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
12814
12815 2012-01-04 Eric Botcazou <ebotcazou@adacore.com>
12816
12817 PR tree-optimization/51624
12818 * tree-sra.c (build_ref_for_model): When replicating a chain of
12819 COMPONENT_REFs, stop as soon as the offset would become negative.
12820
12821 2012-01-04 Jakub Jelinek <jakub@redhat.com>
12822
12823 PR debug/51695
12824 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
12825 in .debug_loc on the floor.
12826
12827 2012-01-04 Andrew Pinski <apinski@cavium.com>
12828
12829 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
12830
12831 2012-01-04 Andrew Pinski <apinski@cavium.com>
12832 Adam Nemet <anemet@caviumnetworks.com>
12833
12834 * config/mips/mips.md (size): Add SI and DI.
12835 (SIZE): New mode attribute.
12836 (U): New code attribute.
12837 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
12838 (mips_lbux_<mode>): Delete.
12839 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
12840 (mips_lhx): Use gen_mips_lhx_extsi.
12841 (mips_lhx_<mode>): Delete.
12842 (mips_lwx): Delete.
12843 (mips_l<size>x): New expand.
12844 (mips_lwx_<mode>): Delete.
12845 (mips_l<GPR:size>x_<P:mode>): New pattern.
12846 (*mips_lw<u>x_<P:mode>_ext): Likewise.
12847 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
12848 * config/mips/mips.c (mips_lx_address_p): New function.
12849 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
12850 (dsp64): New availability predicate.
12851 (mips_builtins): Add an entry for __builtin_mips_ldx.
12852 * config/mips/mips.h (ISA_HAS_LBX): New define.
12853 (ISA_HAS_LBUX): Likewise.
12854 (ISA_HAS_LHX): Likewise.
12855 (ISA_HAS_LHUX): Likewise.
12856 (ISA_HAS_LWX): Likewise.
12857 (ISA_HAS_LWUX): Likewise.
12858 (ISA_HAS_LDX): Likewise.
12859 * doc/extend.texi (__builtin_mips_ldx): Document.
12860
12861 2012-01-04 Tristan Gingold <gingold@adacore.com>
12862
12863 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
12864 when long pointers are used.
12865 * config.build (*-*-*vms*): Handle all OpenVMS targets.
12866 (alpha64-dec-*vms*, alpha*-dec-*vms*)
12867 (ia64-hp-*vms*): Remove.
12868 * config/vms/xm-vms64.h: Delete.
12869
12870 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
12871
12872 PR middle-end/51472
12873 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
12874
12875 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
12876
12877 * opts.c (finish_options): Remove duplicate sorry.
12878
12879 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
12880
12881 PR middle-end/51696
12882 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
12883 correctly.
12884
12885 2012-01-04 Richard Guenther <rguenther@suse.de>
12886
12887 PR middle-end/51750
12888 * tree.c (size_low_cst): New function.
12889 * tree.h (size_low_cst): Declare.
12890 * fold-const.c (fold_comparison): Use it to extract the low
12891 part of the POINTER_PLUS_EXPR offset.
12892
12893 2012-01-04 Georg-Johann Lay <avr@gjlay.de>
12894
12895 Fix clearing ZERO_REG
12896 * config/avr/avr.md (cc): Add alternative "ldi".
12897 (movqi_insn): Use it in cc attribute.
12898 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
12899 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
12900 (output_reload_insisf): Use ZERO_REG to pre-clear register.
12901
12902 2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12903
12904 * configure: Regenerate.
12905
12906 2012-01-04 Richard Guenther <rguenther@suse.de>
12907
12908 PR tree-optimization/49651
12909 * tree-ssa-structalias.c (type_can_have_subvars): New function.
12910 (var_can_have_subvars): Use it.
12911 (get_constraint_for_1): Only consider subfields if there can be any.
12912
12913 2012-01-03 Jakub Jelinek <jakub@redhat.com>
12914
12915 PR bootstrap/51725
12916 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
12917 to its new canonical_cselib_val and the cselib_val was in
12918 first_containing_mem chain, but the canonical_cselib_val was not,
12919 add the latter into the chain.
12920 (cselib_invalidate_mem): Compare canonical_cselib_val of
12921 addr_list chain elt with v.
12922
12923 PR pch/51722
12924 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
12925 dwarf2out_undef): Allocate e.info using ggc_strdup instead
12926 of xstrdup.
12927 (output_macinfo_op): Don't ggc_strdup fd->filename.
12928 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
12929 then ggc_strdup it. Don't free inc->info or cur->info.
12930 (output_macinfo): Don't free ref->info or file->info.
12931
12932 2012-01-03 Ira Rosen <irar@il.ibm.com>
12933
12934 PR tree-optimization/51269
12935 * tree-vect-loop-manip.c (set_prologue_iterations): Make
12936 first_niters a pointer.
12937 (slpeel_tree_peel_loop_to_edge): Likewise.
12938 (vect_do_peeling_for_loop_bound): Update call to
12939 slpeel_tree_peel_loop_to_edge.
12940 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
12941 here. Remove it from the parameters list.
12942 (vect_do_peeling_for_alignment): Update calls and compute
12943 wide_prolog_niters.
12944
12945 2012-01-03 Richard Guenther <rguenther@suse.de>
12946
12947 PR tree-optimization/51070
12948 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
12949 Properly handle calls.
12950
12951 2012-01-03 Richard Guenther <rguenther@suse.de>
12952
12953 PR tree-optimization/51692
12954 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
12955 the LHS of allocation stmts.
12956
12957 2012-01-03 Olivier Hainque <hainque@adacore.com>
12958
12959 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
12960
12961 2012-01-03 Olivier Hainque <hainque@adacore.com>
12962
12963 * collect2.c (main): In AIX specific computations for vector
12964 insertions, use CONST_CAST2 to cast from char ** to const char **.
12965
12966 2012-01-03 Richard Guenther <rguenther@suse.de>
12967
12968 PR debug/51650
12969 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
12970 the context of a limbo DIE when it does not already exist.
12971
12972 2012-01-03 Jakub Jelinek <jakub@redhat.com>
12973
12974 PR tree-optimization/51719
12975 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
12976 but direct call is, clear direct call's lhs and don't add fallthrough
12977 edge from dcall_bb to join_bb and PHIs.
12978
12979 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12980
12981 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
12982 the instructions emitted by the pattern.
12983 ("*TDC_insn_<mode>"): Add comment.
12984
12985 2012-01-03 Richard Guenther <rguenther@suse.de>
12986
12987 PR middle-end/51730
12988 * fold-const.c (fold_comparison): Properly canonicalize
12989 tree offset and HOST_WIDE_INT bit position.
12990
12991 2012-01-02 Uros Bizjak <ubizjak@gmail.com>
12992
12993 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
12994 operands for extzv pattern.
12995
12996 2012-01-02 Jakub Jelinek <jakub@redhat.com>
12997
12998 PR bootstrap/51725
12999 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
13000 on mem_elt first.
13001
13002 2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
13003
13004 * doc/invoke.texi (-flto and related options): Copy-edit.
13005
13006 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13007
13008 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
13009
13010 2012-01-02 Jakub Jelinek <jakub@redhat.com>
13011
13012 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
13013 New patterns.
13014
13015 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13016
13017 * expr.h (move_by_pieces_ninsns): Declare.
13018 * expr.c (move_by_pieces_ninsns): Make external.
13019 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
13020 (mips_store_by_pieces_p): Likewise.
13021 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
13022 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
13023 * config/mips/mips.c (mips_move_by_pieces_p): New function.
13024 (mips_store_by_pieces_p): Likewise.
13025
13026 2012-01-02 Jakub Jelinek <jakub@redhat.com>
13027
13028 * passes.c (register_one_dump_file): Free full_name.
13029
13030 * reload1.c (reload): Don't allocate reg_max_ref_width here.
13031 (calculate_elim_costs_all_insns): Free offsets_at and
13032 offsets_known_at at the end and clear the pointers.
13033
13034 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
13035
13036 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
13037 this option introduced in r180739.
13038
13039 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
13040
13041 PR target/51345
13042 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
13043 (tmake_file target=avr): Add avr/t-multilib.
13044
13045 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
13046 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
13047 * config/avr/genmultilib.awk: New file.
13048 * config/avr/t-multilib: New auto-generated file.
13049 * config/avr/multilib.h: New auto-generated file.
13050 * config/avr/t-avr (AVR_MCUS): New variable.
13051 (genopt.sh): Use it.
13052 (s-mlib): Depend on t-multilib.
13053 (t-multilib, multilib.h): New dependencies.
13054 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
13055 (MULTILIB_OPTIONS): Remove.
13056 (MULTILIB_MATCHES): Remove.
13057 (MULTILIB_DIRNAMES): Remove.
13058 (MULTILIB_EXCEPTIONS): Remove:
13059 * config/avr/genopt.sh: Don't use hard coded file name;
13060 pass AVR_MCUS from t-avr instead.
13061
13062 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
13063
13064 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
13065
13066 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
13067
13068 Implement light-weight DImode support.
13069 * config/avr/avr-dimode.md: New file.
13070 * config/avr/avr.md: Include it.
13071 (adjust_len): Add plus64, compare64.
13072 (HIDI): Remove code iterator.
13073 (code_stdname): New code attribute.
13074 (rotx, rotsmode): Remove DI.
13075 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
13076 as code iterator.
13077 * config/avr/avr-protos.h (avr_have_dimode): New.
13078 (avr_out_plus64, avr_out_compare64): New.
13079 * config/avr/avr.c (avr_out_compare): Handle DImode.
13080 (avr_have_dimode): New variable definition and initialization.
13081 (avr_out_compare64, avr_out_plus64): New functions.
13082 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
13083 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
13084 (avr_compare_pattern): Skip DImode comparisons.
13085
13086 2012-01-02 Revital Eres <revital.eres@linaro.org>
13087
13088 * ddg.c (def_has_ccmode_p): New function.
13089 (add_cross_iteration_register_deps,
13090 create_ddg_dep_from_intra_loop_link): Call it.
13091
13092 2012-01-02 Richard Guenther <rguenther@suse.de>
13093
13094 PR other/51679
13095 * invoke.texi (fassociative-math): Remove spurious paranthesis.
13096
13097 2012-01-01 Jakub Jelinek <jakub@redhat.com>
13098
13099 * gcc.c (process_command): Update copyright notice dates.
13100 * gcov.c (print_version): Likewise.
13101 * gcov-dump.c (print_version): Likewise.
13102 * mips-tfile.c (main): Likewise.
13103 * mips-tdump.c (main): Likewise.
13104
13105 2012-01-01 Ira Rosen <irar@il.ibm.com>
13106
13107 PR tree-optimization/51704
13108 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
13109 a use is inside the basic block or loop before accessing its vect info.
13110
13111 2012-01-01 Jan Hubicka <jhjh@suse.cz>
13112
13113 PR rtl-optimization/51069
13114 * cfgloopmanip.c (remove_path): Removing path making irreducible
13115 region unconditional makes BB part of the region.
13116
13117 2012-01-01 Jakub Jelinek <jakub@redhat.com>
13118
13119 PR tree-optimization/51683
13120 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
13121 calls with side-effects.
13122 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
13123 \f
13124 Copyright (C) 2012 Free Software Foundation, Inc.
13125
13126 Copying and distribution of this file, with or without modification,
13127 are permitted in any medium without royalty provided the copyright
13128 notice and this notice are preserved.