7eee86a9dccddbc33c3a00ba41a2a66d75d83929
[gcc.git] / gcc / ChangeLog
1 2012-04-13 Richard Guenther <rguenther@suse.de>
2
3 PR tree-optimization/52969
4 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
5 the condition for the COND_EXPR and handle predicate negation
6 by swapping the COND_EXPR arms.
7
8 2012-04-13 Nick Clifton <nickc@redhat.com>
9
10 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
11 TODO_dump_func flag.
12
13 2012-04-13 Andrey Belevantsev <abel@ispras.ru>
14
15 PR rtl-optimization/52203
16 PR rtl-optimization/52715
17
18 Revert the 2012-03-07 fix for PR 52203.
19 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
20 the insn does not modify DFA right before issuing, adjust
21 issue_rate accordingly.
22
23 2012-04-13 Richard Guenther <rguenther@suse.de>
24
25 PR c/52549
26 * c-typeck.c (pointer_diff): Remove bogus assert.
27
28 2012-04-13 Richard Guenther <rguenther@suse.de>
29
30 PR c/52862
31 * convert.c (convert_to_pointer): Remove special-casing of
32 zero.
33
34 2012-04-13 Joey Ye <joey.ye@arm.com>
35
36 * config/arm/constraints.md (Pe): New constraint.
37 * config/arm/arm.md: New split for imm 256-510.
38
39 2012-04-13 Terry Guo <terry.guo@arm.com>
40
41 * config/arm/arm-cores.def: Added core cortex-m0plus.
42 * config/arm/arm-tune.md: Regenerated.
43 * config/arm/arm-tables.opt: Regenerated.
44 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
45
46 2012-04-13 Alan Modra <amodra@gmail.com>
47
48 PR target/52828
49 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
50 tie regs on destination of sets. Delete forward declaration.
51 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
52 (rs6000_emit_prologue): Likewise.
53 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
54 and gen_stack_tie.
55 (is_mem_ref): Use tie_operand to recognise stack ties.
56 * config/rs6000/predicates.md (tie_operand): New.
57 * config/rs6000/rs6000.md (restore_stack_block): Generate new
58 stack tie rtl.
59 (restore_stack_nonlocal): Likewise.
60 (stack_tie): Update.
61 (frame_tie): Delete.
62
63 2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
64
65 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
66 HOST_WIDE_INT_PRINT_DEC in format strings.
67
68 2012-04-12 Uros Bizjak <ubizjak@gmail.com>
69
70 PR target/52932
71 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
72 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
73 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
74 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
75 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
76 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
77 avx2_permvarv8si using VI4F_256 mode iterator.
78 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
79 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
80 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
81 gen_avx2_permvarv8sf.
82 (expand_vec_perm_pshufb): Ditto.
83
84 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
85
86 PR target/52775
87 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
88 the list of options to enable the FCFID instruction.
89 (TARGET_EXTRA_BUILTINS): Adjust comment.
90
91 2012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
92
93 PR tree-optimization/18589
94 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
95 (operand_entry): Add count field.
96 (add_repeat_to_ops_vec): New function.
97 (completely_remove_stmt): Likewise.
98 (remove_def_if_absorbed_call): Likewise.
99 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
100 (acceptable_pow_call): New function.
101 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
102 entries with repeat counts when found.
103 (repeat_factor_d): New struct and associated typedefs.
104 (repeat_factor_vec): New static vector variable.
105 (compare_repeat_factors): New function.
106 (get_reassoc_pow_ssa_name): Likewise.
107 (attempt_builtin_powi): Likewise.
108 (reassociate_bb): Call attempt_builtin_powi.
109 (fini_reassoc): Two new calls to statistics_counter_event.
110
111 2012-04-12 Richard Guenther <rguenther@suse.de>
112
113 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
114 * cgraph.h (tree_rest_of_compilation): Remove.
115 * cgraph.c (cgraph_add_new_function): Move ...
116 * cgraphunit.c (cgraph_add_new_function): ... here.
117 (tree_rest_of_compilation): Make static.
118 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
119 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
120 gate_all_early_local_passes, execute_all_early_local_passes,
121 pass_early_local_passes, gate_all_early_optimizations,
122 pass_all_early_optimizations): Move ...
123 * passes.c (gate_all_optimizations, pass_all_optimizations,
124 gate_all_early_local_passes, execute_all_early_local_passes,
125 pass_early_local_passes, gate_all_early_optimizations,
126 pass_all_early_optimizations): ... here.
127 * tree-optimize.c (execute_free_datastructures): Remove.
128 * tree-flow.h (execute_free_datastructures): Remove.
129 * tree-optimize.c (execute_init_datastructures,
130 pass_init_datastructures): Move ...
131 * tree-ssa.c (execute_init_datastructures,
132 pass_init_datastructures): ... here.
133 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
134 execute_free_datastructures.
135
136 2012-04-12 Bernd Schmidt <bernds@codesourcery.com>
137
138 * dbgcnt.def (ira_move): New counter.
139 * ira-int.h (ira_create_new_reg): Declare function.
140 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
141 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
142 no longer static. All callers changed.
143 * ira.c: Include "dbgcnt.h".
144 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
145 move_unallocated_pseudos): New static functions.
146 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
147 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
148 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
149 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
150 to the pseudos generated in find_moveable_pseudos.
151 * Makefile.in (ira.o): Add $(DBGCNT_H).
152
153 2012-04-12 Richard Guenther <rguenther@suse.de>
154
155 PR tree-optimization/52943
156 * tree-chrec.h (chrec_is_positive): Remove.
157 * tree-scalar-evolution.c (chrec_is_positive): Move ...
158 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
159 Return false for a constant zero instead of negative.
160 (analyze_siv_subscript_cst_affine): Handle zero difference
161 in the initial condition explicitely.
162
163 2012-04-12 Richard Guenther <rguenther@suse.de>
164
165 * tree-parloops.c (parallelize_loops): Also consult the upper
166 bound for the number of iterations.
167 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
168 (loop_prefetch_arrays): Likewise.
169
170 2012-04-12 Richard Guenther <rguenther@suse.de>
171
172 * cfgloop.h (estimated_loop_iterations_int): Ditch
173 'conservative' parameter.
174 (max_stmt_executions_int): Likewise.
175 (estimated_loop_iterations): Likewise.
176 (max_stmt_executions): Likewise.
177 (max_loop_iterations): Declare.
178 (max_loop_iterations_int): Likewise.
179 (estimated_stmt_executions): Likewise.
180 (estimated_stmt_executions_int): Likewise.
181 * tree-ssa-loop-niter.c (estimated_loop_iterations):
182 Split parts to ...
183 (max_loop_iterations): ... this.
184 (estimated_loop_iterations_int): Split parts to ...
185 (max_loop_iterations_int): ... this.
186 (max_stmt_executions_int): Split parts to ...
187 (estimated_stmt_executions_int): ... this.
188 (max_stmt_executions): Split parts to ...
189 (estimated_stmt_executions): ... this.
190 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
191 * predict.c (predict_loops): Likewise.
192 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
193 (analyze_siv_subscript_cst_affine): Likewise.
194 (compute_overlap_steps_for_affine_1_2): Likewise.
195 (analyze_subscript_affine_affine): Likewise.
196 (init_omega_for_ddr_1): Likewise.
197 * tree-parloops.c (parallelize_loops): Likewise.
198 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
199 (may_eliminate_iv): Likewise.
200 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
201 (loop_prefetch_arrays): Likewise.
202 * tree-vrp.c (adjust_range_with_scev): Likewise.
203
204 2012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
205
206 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
207 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
208 Fix line width.
209 (dump_table): Use bool type for need_align and have_df variables.
210 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
211 (regs_used): Remove register modifier.
212 (barrier_align): Move variables slot, credit, jump_to_next
213 into if block above for loop. Use bool type for jump_to_next.
214 (sh_function_arg): Use NULL_RTX instead of 0.
215
216 2012-04-11 Andreas Schwab <schwab@linux-m68k.org>
217
218 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
219 (bswapsi2): New expander.
220
221 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
222
223 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
224 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
225
226 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
227
228 PR rtl-optimization/52876
229 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
230 Don't call mark_reg_pointer for incompatible pointer sign
231 extension.
232
233 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
234 directly.
235
236 2012-04-11 Bernd Schmidt <bernds@codesourcery.com>
237
238 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
239 comparisons against TYPE_PRECISION.
240 * tree-ssa-forwprop.c (combine_conversions): Likewise.
241
242 2012-04-11 Xinliang David Li <davidxl@google.com>
243
244 * tree-passes.h: Remove TODO_dump_func.
245 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
246 * trans-mem.c: Remove TODO_dump_func.
247 * ira.c: Remove TODO_dump_func.
248
249 2012-04-11 H.J. Lu <hongjiu.lu@intel.com>
250
251 * config/i386/i386.c (ix86_option_override_internal): Check
252 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
253 after TARGET_64BIT is updated.
254
255 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
256
257 * config/sh/sh.h: Remove old secondary reload code.
258
259 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
260
261 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
262 (ready_reorder): ... this function.
263
264 2012-04-11 Bernd Schmidt <bernds@codesourcery.com>
265
266 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
267 sched_init calls.
268
269 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
270 insns so that no other insn is queued for a time before them.
271
272 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
273 unknown.
274
275 2012-04-11 Richard Guenther <rguenther@suse.de>
276
277 PR middle-end/52621
278 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
279 consider loop nesting.
280 (evolution_function_is_univariate_p): Properly check the remainder
281 for chrecs.
282
283 2012-04-11 Richard Guenther <rguenther@suse.de>
284
285 PR middle-end/52918
286 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
287
288 2012-04-11 Nick Clifton <nickc@redhat.com>
289
290 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
291 information, if requested.
292
293 * config/rx/rx.c (rx_expand_prologue): Likewise.
294
295 2012-04-11 Peter Bergner <bergner@vnet.ibm.com>
296 Michael Matz <matz@suse.de>
297
298 PR target/16458
299 * rtlanal.c (unsigned_reg_p): New function.
300 Update copyright notice dates.
301 * rtl.h (unsigned_reg_p): Prototype it.
302 Update copyright notice dates.
303 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
304 Update comment.
305 * expr.c (expand_expr_real_1): Set register attributes.
306 * stmt.c (expand_case): Likewise.
307
308 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
309
310 PR target/50751
311 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
312 consider_sh2a and allow_zero.
313 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
314 (disp_addr_displacement): New function.
315 (sh_address_cost): Use disp_addr_displacement function instead
316 of DISP_ADDR_OFFSET.
317 (sh_legitimate_address_p): Adapt to changed
318 sh_legitimate_index_p declaration.
319 (sh_find_mov_disp_adjust): Remove HImode check.
320 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
321 disp_addr_displacement and max_mov_insn_displacement.
322 (max_mov_insn_displacement): Remove HImode check.
323 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
324 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
325 * config/sh/constraints.md (K05, K13): New constraints.
326 (K12): Correct comment.
327 (Sdd): Do not use DISP_ADDR_P macro.
328 (Snd, Sbw): Use satisfies_constraint_Sdd.
329 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
330 (*extendhisi2_compact, movhi_i): Remove.
331 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
332 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
333 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
334 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
335 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
336 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
337 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
338 CONST_OK_FOR_Kxx.
339 Add new peepholes for HImode displacement addressing.
340
341 2012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
342
343 * config/sh/sh.h (SIDI_OFF): Remove.
344 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
345 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
346 or operand_subword.
347
348 2012-04-11 Eric Botcazou <ebotcazou@adacore.com>
349
350 PR target/52624
351 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
352 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
353 * doc/md.texi (Standard Names): Add bswap.
354 * builtin-types.def (BT_UINT16): New primitive type.
355 (BT_FN_UINT16_UINT16): New function type.
356 * builtins.def (BUILT_IN_BSWAP16): New.
357 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
358 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
359 expand_builtin_bswap.
360 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
361 (fold_builtin_1): Likewise.
362 (is_inexpensive_builtin): Likewise.
363 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
364 missing bits for bswap to libcall code.
365 * tree.c (build_common_tree_nodes): Build uint16_type_node.
366 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
367 (uint16_type_node): New define.
368 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
369 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
370 above builtin.
371 (rs6000_init_builtins): Likewise.
372 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
373
374 2012-04-11 Tristan Gingold <gingold@adacore.com>
375
376 * doc/extend.texi (Type Attributes): Move paragraph.
377
378 2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
379
380 PR 24985
381 * diagnostic.h (show_caret): Declare.
382 (caret_max_width): Declare.
383 (diagnostic_show_locus): Declare.
384 * diagnostic.c (diagnostic_initialize): Initialize to false.
385 (diagnostic_show_locus): New.
386 (diagnostic_report_diagnostic): Call it.
387 (getenv_columns): New.
388 (adjust_line): New.
389 (diagnostic_set_caret_max_width): New.
390 * input.c (read_line): New.
391 (location_get_source_line): New.
392 * input.h (location_get_source_line): Declare.
393 * toplev.c (general_init): Initialize show_caret from options.
394 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
395 * opts.c (common_handle_option): Likewise.
396 * pretty-print.h (pp_get_prefix): New.
397 (pp_base_get_prefix): New.
398 * common.opt (fdiagnostics-show-caret): New option.
399 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
400
401 2012-04-11 Richard Guenther <rguenther@suse.de>
402
403 PR rtl-optimization/52881
404 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
405
406 2012-04-11 Richard Guenther <rguenther@suse.de>
407
408 PR tree-optimization/52912
409 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
410 manipulation code we are threading through a loop header
411 to an exit destination.
412
413 2012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
414
415 * tree.h (warn_if_unused_value): Move declaration from here.
416 * stmt.c (warn_if_unused_value): Move definition from here.
417
418 2010-04-10 Michael Matz <matz@suse.de>
419
420 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
421 grouped_stores.
422 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
423 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
424 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
425 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
426 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
427 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
428 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
429 (vect_record_strided_load_vectors): Rename to
430 vect_record_grouped_load_vectors.
431 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
432 Rename use of above macros.
433 (vect_verify_datarefs_alignment): Ditto.
434 (vector_alignment_reachable_p): Ditto.
435 (vect_peeling_hash_get_lowest_cost): Ditto.
436 (vect_enhance_data_refs_alignment): Ditto.
437 (vect_analyze_group_access): Ditto and rename stride to groupsize.
438 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
439 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
440 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
441 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
442 (vect_record_strided_load_vectors): Rename to
443 vect_record_grouped_load_vectors.
444 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
445 (destroy_loop_vec_info): Ditto.
446 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
447 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
448 (vect_analyze_slp): Ditto.
449 (new_bb_vec_info): Ditto.
450 (destroy_bb_vec_info): Ditto.
451 (vect_schedule_slp_instance): Ditto and rename strided_store to
452 grouped_store.
453 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
454 vect_cost_group_size.
455 (vect_model_store_cost): Rename use of above macros and call
456 to vect_cost_strided_group_size.
457 (vect_model_load_cost): Ditto.
458 (vectorizable_store): Ditto, rename strided_store to grouped_store
459 and calls to renamed tree-vectorizer.h functions.
460 (vectorizable_load): Ditto.
461 (vect_transform_stmt): Rename use of above macros and strided_store
462 to grouped_store.
463
464 2012-04-10 Jan Hubicka <jh@suse.cz>
465
466 * cgraph.h: Remove misledaing comment on ipa-ref.h.
467 (symtab_type): New enum.
468 (symtab_node): New structure.
469 (cgraph_node, varpool_node): Add symbol base type.
470 (cgraph, varpool): New accestor functions.
471 * cgraph.c (cgraph_create_node_1): Set symbol type.
472 * varpool.c (varpool_node): Set symbol type.
473
474 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
475 Richard Sandiford <rdsandiford@googlemail.com>
476
477 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
478
479 2012-04-10 Richard Guenther <rguenther@suse.de>
480
481 PR middle-end/52888
482 * gimple-low.c (gimple_check_call_args): Properly account for
483 compatible aggregate types.
484
485 2012-04-10 Richard Guenther <rguenther@suse.de>
486
487 * toplev.h (tree_rest_of_compilation): Remove.
488 * tree-optimize.c (tree_rest_of_compilation): Likewise.
489 * cgraph.h (tree_rest_of_compilation): Declare.
490 * tree-optimize.c (tree_rest_of_compilation): Move ...
491 * cgraphunit.c (tree_rest_of_compilation): ... here.
492 * cgraph.c (cgraph_add_new_function): Adjust.
493 * Makefile.in (tree-optimize.o): Adjust.
494 (cgraphunit.o): Likewise.
495
496 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
497
498 PR tree-optimization/52870
499 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
500 presumed pattern statement is within the same loop or basic block.
501
502 2012-04-10 Tristan Gingold <gingold@adacore.com>
503
504 * gengtype.c (main): Make uintptr_t a known type.
505
506 2012-04-10 Richard Guenther <rguenther@suse.de>
507
508 * tree-pass.h (tree_lowering_passes): Remove.
509 * tree-optimize.c (tree_lowering_passes): Remove.
510 * cgraph.c (cgraph_add_new_function): Inline relevant parts
511 of tree_lowering_passes, avoid redundant call of early local passes.
512 * cgraphunit.c (cgraph_lower_function): Fold into ...
513 (cgraph_analyze_function): ... its single caller. Inline
514 relevant parts of tree_lowering_passes.
515
516 2012-04-09 H.J. Lu <hongjiu.lu@intel.com>
517
518 PR other/52777
519 * config/pa/pa.opt: Remove SIO and GNU_LD.
520
521 2012-04-09 Jan Hubicka <jh@suse.cz>
522
523 PR lto/52722
524 PR lto/51765
525 PR lto/52634
526 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
527 boundary, add its target too.
528 * lto.c (add_references_to_partition): Add also aliased nodes.
529 (add_cgraph_node_to_partition,
530 add_varpool_node_to_partition): Work on nodes, not functions/variables;
531 when adding alias, add also the aliased object.
532
533 2012-04-09 Uros Bizjak <ubizjak@gmail.com>
534
535 PR target/52883
536 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
537 VOIDmode immediate operands.
538 * config/i386/constraints.md (Wz): New constraint.
539 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
540
541 2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
542
543 PR target/52717
544 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
545 the DECL generated for the special GOT helper.
546
547 2012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
548
549 * config/sh/constraints.md: Update list of constraints in
550 comment block.
551 (Sr0): Remove unused memory constraint.
552
553 2012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
554
555 * tree-pretty-print.h: Update comment.
556
557 2012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
558
559 * config/sh/sh.md: Use braced string notation where applicable.
560 (*prefetch_i4, prefetch_m2a): Merge into ...
561 (*prefetch): ... this new insn.
562
563 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
564
565 * config/sh/sh.h (high_life_started): Remove
566 * config/sh/predicates.md (general_movdst_operand): Use
567 'reload_in_progress' instead of 'high_life_started'.
568 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
569 divsi_inv_fp): Likewise.
570
571 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
572
573 * config/sh/sh-protos.h (prepare_move_operands): Return void
574 instead of int.
575 * config/sh/sh.c (prepare_move_operands): Likewise.
576 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
577
578 2012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
579
580 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
581 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
582 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
583 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
584 commutative_float_operator, noncommutative_float_operator,
585 sh_handle_pragma): Remove.
586
587 2012-04-06 Sandra Loosemore <sandra@codesourcery.com>
588
589 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
590 Use @option markup on command-line options. Use @samp markup on
591 literal keywords to options. Use @code markup on code fragments.
592 Use other markup in preference to quotation marks in the text.
593 Add markup to some passages without any.
594
595 2012-04-06 Mike Stump <mikestump@comcast.net>
596
597 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
598
599 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
600
601 * config/sh/sh.c (hi_const): Remove.
602 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
603 of hi_const.
604
605 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
606
607 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
608 to bool.
609 * config/sh/sh.c (sh_expand_t_scc): Likewise.
610 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
611 calling sh_expand_t_scc.
612
613 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
614
615 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
616 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
617 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
618 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
619 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
620 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
621 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
622 sh2a_is_function_vector_call): Use bool as return type.
623 (sh_pass_in_reg_p): Remove.
624 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
625 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
626 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
627 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
628 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
629 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
630 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
631 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
632 sh_loads_bankedreg_p): Use bool as return type.
633 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
634 'register' modifier.
635
636 2012-04-06 Matt Turner <mattst88@gmail.com>
637
638 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
639
640 2012-04-06 Eric Botcazou <ebotcazou@adacore.com>
641
642 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
643 of the destination isn't also a FP_REGS register.
644
645 2012-04-05 Teresa Johnson <tejohnson@google.com>
646 H.J. Lu <hongjiu.lu@intel.com>
647
648 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
649 * config/i386/i386.md (move immediate to memory peephole2):
650 Add cases for HImode move when LCP stall avoidance is needed.
651 * config/i386/i386.c (initial_ix86_tune_features): Initialize
652 X86_TUNE_LCP_STALL entry.
653
654 2012-04-05 Uros Bizjak <ubizjak@gmail.com>
655
656 PR target/52882
657 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
658 CONST_INT operands, zero-extended with AND.
659
660 2012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
661
662 PR target/50751
663 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
664 first argument instead of mode size. Move displacement calculations
665 to ...
666 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
667 ... these new functions.
668 (disp_adjust): Remove max_mov_disp field.
669 (sh_legitimate_index_p): Use max_mov_insn_displacement and
670 mov_insn_alignment_mask.
671 (sh_address_cost): Use max_mov_insn_displacement.
672
673 2012-04-05 Andrew Stubbs <ams@codesourcery.com>
674
675 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
676 (arch_enabled): Handle new arch types.
677 (one_cmpldi2): Add NEON support.
678
679 2012-04-05 Richard Guenther <rguenther@suse.de>
680
681 * gimple.c (walk_gimple_op): Compute val_only for the LHS
682 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
683 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
684 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
685 ... here and make static.
686 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
687 Remove.
688
689 2012-04-05 Richard Guenther <rguenther@suse.de>
690
691 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
692 basic-block before removing it.
693
694 2012-04-05 Richard Guenther <rguenther@suse.de>
695
696 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
697 version namespace as we release the freelist.
698
699 2012-04-05 Richard Guenther <rguenther@suse.de>
700
701 * tree-nrv.c (tree_nrv): Release VDEFs.
702 * tree-sra.c (sra_modify_constructor_assign): Likewise.
703 (sra_modify_assign): Likewise.
704 * tree-vect-stmts.c (vect_remove_stores): Likewise.
705 * tree-vect-loop.c (vect_transform_loop): Likewise.
706 * tree-ssa-dom.c (optimize_stmt): Likewise.
707 * tree-vect-slp.c (vect_schedule_slp): Likewise.
708 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
709
710 2012-04-05 Richard Guenther <rguenther@suse.de>
711
712 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
713 cleanup.
714 * gimple.h (gsi_remove): Adjust.
715 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
716 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
717 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
718 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
719 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
720 * tree-ssa-pre.c (eliminate): Likewise.
721
722 2012-04-04 Mike Stump <mikestump@comcast.net>
723
724 * doc/rtl.texi (const_double): Document as sign-extending.
725 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
726 * emit-rtl.c (immed_double_int_const): Refine to state the
727 value is signed.
728 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
729 CONST_DOUBLE integers.
730 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
731 negative values are converted. Fix conversions bigger than
732 HOST_BITS_PER_WIDE_INT.
733 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
734 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
735 * explow.c (plus_constant_mode): Add.
736 (plus_constant): Implement with plus_constant_mode.
737 * rtl.h (plus_constant_mode): Add.
738
739 2012-04-04 Richard Guenther <rguenther@suse.de>
740
741 PR tree-optimization/52808
742 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
743 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
744
745 2012-04-04 Tristan Gingold <gingold@adacore.com>
746
747 * expr.c (expand_expr_real_2): Handle larger sizetype in
748 POINTER_PLUS_EXPR.
749
750 2012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
751
752 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
753 to m2a-single instead of m2e.
754
755 2012-04-03 Eric Botcazou <ebotcazou@adacore.com>
756
757 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
758 Change type of BITOFFSET to signed. Make sure the lower bound of
759 the computed range is non-negative by adjusting OFFSET and BITPOS.
760 (expand_assignment): Adjust call to get_bit_range.
761
762 2012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
763
764 * h8300/h8300.c (h8300_current_function_monitor_function_p):
765 New function. Added to check monitor functions.
766 (h8300_option_override): Modified to generate error/warning
767 messages for invalid combinations of different command line
768 options.
769 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
770 save EXR on stack for monitor function in case of H8S target
771 when "-mno-exr" is passed.
772 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
773 Add prototype.
774 * doc/invoke.texi: Document H8S options.
775
776 2012-04-03 Tristan Gingold <gingold@adacore.com>
777
778 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
779 of gcc_AC_FUNC_MMAP_BLACKLIST.
780 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
781 * Makefile.in (aclocal_deps): Add mmap.m4.
782 * configure: Regenerate.
783 * aclocal.m4: Regenerate.
784
785 2012-04-03 Richard Guenther <rguenther@suse.de>
786
787 PR tree-optimization/52808
788 * tracer.c (tail_duplicate): Return whether we have duplicated
789 any block.
790 (tracer): If we have duplicated any block, cleanup the CFG.
791 * cfghooks.c (duplicate_block): If we duplicated a loop
792 header but not its loop, destroy the loop because it now has
793 multiple entries.
794 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
795 the cfg manipulation routines we are not creating a multiple
796 entry loop.
797
798 2012-04-03 Tristan Gingold <gingold@adacore.com>
799
800 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
801 'byte' alignment.
802 (vms_c_common_override_options): Allow parameterless variadic
803 functions.
804
805 2012-04-03 Jakub Jelinek <jakub@redhat.com>
806
807 PR tree-optimization/52835
808 * tree-data-ref.c (build_rdg): Return NULL if
809 compute_data_dependences_for_loop failed.
810
811 2012-04-03 Eric Botcazou <ebotcazou@adacore.com>
812
813 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
814 for REAL_CST as well.
815 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
816 In the bitfield case, if the value is a REAL_CST, convert it first to
817 an INTEGER_CST.
818
819 2012-04-02 H.J. Lu <hongjiu.lu@intel.com>
820
821 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
822 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
823 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
824
825 * config/i386/biarchx32.h: New.
826
827 2012-04-02 Anatoly Sokolov <aesok@post.ru>
828
829 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
830 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
831 (arm_preferred_reload_class): New function.
832
833 2012-04-02 Richard Guenther <rguenther@suse.de>
834
835 PR tree-optimization/52756
836 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
837 (thread_through_loop_header): After threading through the loop latch
838 remove the split part from the loop and clear further threading
839 opportunities that would create a multiple entry loop.
840
841 2012-04-02 Richard Guenther <rguenther@suse.de>
842
843 PR rtl-optimization/52800
844 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
845 CLEANUP_CFG_CHANGED.
846
847 2012-04-02 Richard Guenther <rguenther@suse.de>
848
849 PR middle-end/52803
850 * loop-init.c (gate_handle_loop2): Destroy loops here if
851 we don't enter RTL loop optimizers.
852
853 2012-04-02 Uros Bizjak <ubizjak@gmail.com>
854
855 Partially revert:
856 2012-03-29 Richard Guenther <rguenther@suse.de>
857
858 * rtl.h (extended_count): Remove.
859 * combine.c (extended_count): Remove.
860
861 2012-04-02 Dodji Seketeli <dodji@redhat.com>
862
863 PR c++/40942
864 * pt.c (more_specialized_fn): Don't apply decay conversion to
865 types of function parameters.
866
867 2012-04-02 Tristan Gingold <gingold@adacore.com>
868
869 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
870 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
871 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
872 (ggc_pch_this_base): Use uintptr_t instead of size_t.
873
874 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
875
876 PR bootstrap/52784
877 * config/i386/i386.c (ix86_option_override_internal): Don't
878 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
879
880 2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
881
882 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
883 (stmt_can_make_abnormal_goto): Use it.
884 (is_ctrl_altering_stmt): Likewise.
885
886 2012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
887 Kaz Kojima <kkojima@gcc.gnu.org>
888
889 * config/sh/sh.c (push_regs): Skip banked registers when
890 resbank attribute is specified.
891 (sh_expand_epilogue): Likewise.
892
893 2012-03-30 Richard Henderson <rth@redhat.com>
894
895 PR debug/52727
896 * combine-stack-adj.c (prev_active_insn_bb): New.
897 (next_active_insn_bb): New.
898 (force_move_args_size_note): New.
899 (combine_stack_adjustments_for_block): Use it.
900
901 2012-03-30 Richard Henderson <rth@redhat.com>
902
903 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
904 (ix86_expand_vector_init_duplicate): Initialize it.
905 (expand_vec_perm_palignr): Likewise.
906 (ix86_expand_vec_perm_const): Likewise.
907 (ix86_vectorize_vec_perm_const_ok): Likewise.
908 (expand_vec_perm_blend): Use it.
909 (expand_vec_perm_vpermil): Likewise.
910 (expand_vec_perm_pshufb): Likewise.
911 (expand_vec_perm_1): Likewise.
912 (expand_vec_perm_pshuflw_pshufhw): Likewise.
913 (expand_vec_perm_interleave2): Likewise.
914 (expand_vec_perm_vpermq_perm_1): Likewise.
915 (expand_vec_perm_vperm2f128): Likewise.
916 (expand_vec_perm_interleave3): Likewise.
917 (expand_vec_perm_vperm2f128_vblend): Likewise.
918 (expand_vec_perm_vpshufb2_vpermq): Likewise.
919 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
920 (expand_vec_perm_broadcast): Likewise.
921 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
922
923 2012-03-30 Richard Henderson <rth@redhat.com>
924
925 * dwarf2out.c (gen_variable_die): Initialize off.
926
927 2012-03-30 Tristan Gingold <gingold@adacore.com>
928
929 * config/vms/vms-f.c: New file.
930 * config/vms/t-vms (vms-f.o): New rule.
931 * config.gcc (*-*-*vms*): Define fortran_target_objs.
932
933 2012-03-30 Richard Guenther <rguenther@suse.de>
934
935 PR tree-optimization/52754
936 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
937 propagate arbitrary addresses into really plain dereferences.
938
939 2012-03-30 Richard Guenther <rguenther@suse.de>
940
941 PR middle-end/52772
942 * except.c (emit_to_new_bb_before): Move loop updating ...
943 (dw2_build_landing_pads): ... here. Use a proper block for
944 querying the loop father.
945
946 2012-03-30 Tristan Gingold <gingold@adacore.com>
947
948 * config/ia64/ia64.c (ia64_section_type_flags): Remove
949 common_object attribute handling.
950 (SECTION_VMS_OVERLAY): Remove
951 (ia64_vms_common_object_attribute): Replace abort with an assert.
952 Do not set DECL_SECTION_NAME.
953 (ia64_vms_output_aligned_decl_common): Handle common_object
954 attribute.
955 (ia64_vms_elf_asm_named_section): Remove.
956 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
957
958 2012-03-30 Richard Guenther <rguenther@suse.de>
959
960 PR middle-end/52786
961 * double-int.c (rshift_double): Remove not needed cast.
962
963 2012-03-30 Richard Guenther <rguenther@suse.de>
964
965 * tree-affine.h (print_aff): Remove.
966 * tree-affine.c (print_aff): Make static.
967 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
968 (get_references_in_stmt): Likewise.
969 (print_direction_vector): Likewise.
970 (print_dir_vectors): Likewise.
971 (print_dist_vectors): Likewise.
972 (dump_subscript): Likewise.
973 (dump_ddrs): Likewise.
974 (dump_dist_dir_vectors): Likewise.
975 (dump_data_references): Likewise.
976 (dump_data_dependence_relation): Likewise.
977 (dump_data_dependence_direction): Likewise.
978 (dump_rdg_vertex): Likewise.
979 (dump_rdg_component): Likewise.
980 (debug_ddrs): Declare.
981 (struct data_ref_loc_d): Move ...
982 * tree-data-ref.c (struct data_ref_loc_d): ... here.
983 (get_references_in_stmt): Make static.
984 (dump_data_references): Likewise.
985 (dump_subscript): Likewise.
986 (print_direction_vector): Likewise.
987 (print_dir_vectors): Likewise.
988 (print_dist_vectors): Likewise.
989 (dump_data_dependence_relation): Likewise.
990 (dump_dist_dir_vectors): Likewise.
991 (dump_ddrs): Likewise.
992 (dump_rdg_vertex): Likewise.
993 (dump_rdg_component): Likewise.
994 (debug_ddrs): New function.
995 (access_matrix_get_index_for_parameter): Remove.
996
997 2012-03-30 Tristan Gingold <gingold@adacore.com>
998
999 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
1000 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
1001 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
1002 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
1003 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
1004 (vms_patch_builtins): Handle new flags
1005 * config/vms/vms-crtlmap.map: Completed using nm on
1006 c and math system libraries.
1007 * config/vms/make-crtlmap.awk: Handle any number of flags.
1008
1009 2012-03-30 Martin Jambor <mjambor@suse.cz>
1010
1011 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
1012 is a builtin_stack_save in a dominating BB.
1013
1014 2012-03-29 Uros Bizjak <ubizjak@gmail.com>
1015
1016 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
1017 crossing 128bit lane boundary.
1018
1019 2012-03-29 Vladimir Makarov <vmakarov@redhat.com>
1020
1021 * ira-color.c (setup_left_conflict_sizes_p): Process all
1022 conflicting objects.
1023
1024 2012-03-29 Jakub Jelinek <jakub@redhat.com>
1025
1026 PR tree-optimization/52760
1027 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
1028 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
1029
1030 2012-03-29 Richard Guenther <rguenther@suse.de>
1031
1032 * cgraph.h (cgraph_materialize_all_clones): Remove.
1033 (reset_inline_failed): Likewise.
1034 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
1035 * cgraphbuild.c (reset_inline_failed): Remove.
1036 * rtl.h (cse_main): Remove.
1037 (extended_count): Likewise.
1038 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
1039 (cse_main): Make static.
1040 * combine.c (extended_count): Remove.
1041 (dump_combine_stats): Mark as DEBUG_FUNCTION.
1042 * basic-block.h (reorder_basic_blocks): Remove.
1043 * bb-reorder.c (reorder_basic_blocks): Make static.
1044 * Makefile.in (dse.o): Remove dse.h dependency.
1045 * dse.h: Remove.
1046 * dse.c (gate_dse): Remove.
1047 (clear_alias_mode_eq): Likewise.
1048 (clear_alias_mode_hash): Likewise.
1049 (dse_record_singleton_alias_set): Likewise.
1050 (dse_invalidate_singleton_alias_set): Likewise.
1051
1052 2012-03-29 H.J. Lu <hongjiu.lu@intel.com>
1053
1054 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
1055 crtbegin_so%O%s for -shared.
1056 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
1057
1058 2012-03-29 Richard Guenther <rguenther@suse.de>
1059
1060 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
1061 (add_to_value): Remove.
1062 (print_value_expressions): Likewise.
1063 * tree-ssa-pre.c (add_to_value): Make static.
1064 (print_value_expressions): Likewise.
1065 * gimple.h (gimple_adjust_this_by_delta): Remove.
1066 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
1067
1068 2012-03-29 Richard Guenther <rguenther@suse.de>
1069
1070 PR middle-end/50708
1071 * double-int.h (rshift_double): Remove.
1072 * double-int.c (lshift_double): Use absu_hwi to make count
1073 positive.
1074 (rshift_double): Make static, take unsigned count argument,
1075 remove handling of negative count argument.
1076 (double_int_rshift): Dispatch to lshift_double.
1077
1078 2012-03-28 H.J. Lu <hongjiu.lu@intel.com>
1079
1080 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
1081 OPTION_MASK_ABI_64.
1082
1083 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
1084 (SPEC_X32): Likewise.
1085 (MULTILIB_DEFAULTS): Likewise.
1086
1087 * config/i386/i386.c (isa_opts): Remove -m64.
1088 (ix86_target_string): Properly handle -m32/-m64/-mx32.
1089 (ix86_option_override_internal): Properly
1090 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
1091 handle -m32, -m64 and -mx32.
1092
1093 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
1094 with OPTION_ABI_X32. Moved after TARGET_LP64.
1095 (TARGET_LP64): Changed to OPTION_ABI_64.
1096
1097 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
1098 (mx32): Replace ISA_X32 with ABI_X32.
1099
1100 2012-03-28 Eric Botcazou <ebotcazou@adacore.com>
1101
1102 * tree.c (tree_size) <VECTOR_CST>: New case.
1103
1104 2012-03-28 Uros Bizjak <ubizjak@gmail.com>
1105
1106 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
1107 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
1108
1109 2012-03-28 Jakub Jelinek <jakub@redhat.com>
1110
1111 PR middle-end/52691
1112 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
1113 __builtin_va_start to __builtin_next_arg if the latter is
1114 builtin_decl_explicit_p rather than when it is not.
1115
1116 PR middle-end/52750
1117 * tree-vect-generic.c (vector_element): Perform multiplication
1118 for pos in bitsizetype type instead of idx type.
1119
1120 2012-03-28 Richard Guenther <rguenther@suse.de>
1121
1122 * loop-init.c (loop_optimizer_init): If loops are preserved
1123 perform incremental initialization of required loop features.
1124 (loop_optimizer_finalize): If loops are to be preserved only
1125 clean up optional loop features.
1126 (rtl_loop_done): Forcefully free loops here.
1127 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
1128 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
1129 to existing loops.
1130 (construct_init_block): Likewise.
1131 (construct_exit_block): Likewise.
1132 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
1133 the CFG after expanding.
1134 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
1135 If we needed to calculate them, free them afterwards.
1136 * tree-pass.h (PROP_loops): New define.
1137 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
1138 * basic-block.h (CLEANUP_CFG_CHANGED): New.
1139 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
1140 (cleanup_cfg): If we did something and have loops around, fix them up.
1141 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
1142 with CLEANUP_CFG_CHANGED.
1143 * cfghooks.c (merge_blocks): If we merge a loop header into
1144 its predecessor, update the loop structure.
1145 (duplicate_block): If we copy a loop latch, adjust loop state
1146 to note we may have multiple latches.
1147 (delete_basic_block): Mark loops for fixup if we remove a loop.
1148 * cfganal.c (forwarder_block_p): Protect loop latches, headers
1149 and preheaders.
1150 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
1151 (cfg_layout_can_merge_blocks_p): Likewise.
1152 * cprop.c (bypass_block): If we create a loop with multiple
1153 entries, mark it for removal.
1154 * except.c (emit_to_new_bb_before): Add the new basic-block
1155 to existing loops.
1156 * tree-eh.c (lower_resx): Likewise.
1157 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
1158 (expand_omp_taskreg): Likewise.
1159 * tree-inline.c (initialize_cfun): Likewise.
1160 * tree-mudflap.c (add_bb_to_loop): Prototype.
1161 (mf_build_check_statement_for): Properly add new basic-blocks
1162 to existing loops.
1163 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
1164 if we remove a loop.
1165 (thread_through_loop_header): Likewise.
1166 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
1167 new basic-blocks to existing loops.
1168 (expand_transaction): Likewise.
1169 * Makefile.in (except.o): Add $(CFGLOOP_H).
1170 (expr.o): Likewise.
1171 (cgraph.o): Likewise.
1172 (cprop.o): Likewise.
1173 (cfgexpand.o): Likewise.
1174 (cfganal.o): Likewise.
1175 (trans-mem.o): Likewise.
1176 (tree-eh.o): Likewise.
1177
1178 2012-03-28 Georg-Johann Lay <avr@gjlay.de>
1179
1180 PR target/52692
1181 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
1182 (avr_builtin_decl): New static function.
1183 (struct avr_builtin_description, avr_bdesc): Move up.
1184 Add GTY marker. Add field fndecl. Remove redundant field id.
1185 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
1186 (avr_expand_builtin): Code cleanup because .id is removed.
1187
1188 2012-03-28 Georg-Johann Lay <avr@gjlay.de>
1189
1190 PR target/52737
1191 * config.gcc (tm_file): Remove avr/multilib.h.
1192
1193 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
1194
1195 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
1196 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
1197 * config/avr/t-avr: Remove generation of multilib.h.
1198 * config/avr/t-multilib: Regenerate.
1199 * config/avr/multilib.h: Remove.
1200 * config/avr/avr.opt (-msp8): New option.
1201 (avr_sp8): New variable.
1202 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
1203 * config/avr/avr.h (AVR_HAVE_SPH): New define.
1204 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
1205 (avr_device_to_sp8): New prototype.
1206 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
1207 (DRIVER_SELF_SPECS): New define.
1208 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
1209 __AVR_SP8__, __AVR_HAVE_SPH__.
1210 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
1211 AVR_HAVE_8BIT_SP to decide if SP_H is present.
1212 (avr_file_start): Ditto.
1213
1214 2012-03-28 Jakub Jelinek <jakub@redhat.com>
1215
1216 PR target/52736
1217 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
1218 instead of 8 in adjust_address.
1219
1220 2012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
1221
1222 PR middle-end/51893
1223 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
1224 targets.
1225
1226 2012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
1227
1228 PR target/50751
1229 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
1230 Rearrange conditional logic. Move displacement address calculations
1231 to ...
1232 (sh_find_mov_disp_adjust): ... this new function.
1233
1234 2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
1235
1236 * config/arm/arm.opt (mapcs): Remove MaskExists.
1237 * config/cris/linux.opt (mno-gotplt): Likewise.
1238 * config/i386/i386.opt (mhard-float): Likewise.
1239 (msse4): Likewise.
1240 (mno-sse4): Likewise.
1241 * config/m68k/m68k.opt (mhard-float): Likewise.
1242 * config/mep/mep.op (mcop32): Likewise.
1243 * config/pa/pa-hpux.opt (msio): Likewise.
1244 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
1245 * config/picochip/picochip.opt (mlittle): Likewise.
1246 * config/sh/sh.opt (mrenesas): Likewise.
1247 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
1248 * config/sparc/sparc.opt (mhard-float): Likewise.
1249 * config/v850/v850.opt (mv850es): Likewise.
1250 * config/vax/vax.opt (mg-float): Likewise.
1251
1252 2012-03-27 Martin Jambor <mjambor@suse.cz>
1253
1254 PR middle-end/52693
1255 * tree-sra.c (sra_modify_assign): Do not call
1256 load_assign_lhs_subreplacements when working with an unscalarizable
1257 region.
1258
1259 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
1260
1261 PR target/52698
1262 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
1263 New prototype.
1264 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
1265 * config/i386/i386.c: Include reload.h.
1266 (ix86_legitimize_reload_address): New function.
1267
1268 2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
1269
1270 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
1271 hasn't been allocated. Define a target macro for Mask and
1272 InverseMask if it hasn't been defined. Remove MaskExists handling.
1273
1274 * doc/options.texi: Remove MaskExists.
1275
1276 2012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
1277
1278 PR target/52667
1279 * config/sh/sh.c (find_barrier): Add equality check of last_got
1280 to avoid going above orig insn. Update comments.
1281
1282 2012-03-27 Richard Guenther <rguenther@suse.de>
1283
1284 PR middle-end/52720
1285 * fold-const.c (try_move_mult_to_index): Handle &x.array more
1286 explicitely.
1287
1288 2012-03-27 Eric Botcazou <ebotcazou@adacore.com>
1289
1290 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
1291 of a unit before computing the offset in units.
1292 * expr.c (get_bit_range): Return the null range if the enclosing record
1293 is part of a larger bit field.
1294
1295 2012-03-27 Tristan Gingold <gingold@adacore.com>
1296
1297 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
1298 * config/ia64/ia64.md: Remove mode in template.
1299 Sign extend operand in expand_simple_binop.
1300 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
1301 CASE_VECTOR_MODE instead of TARGET_ILP32.
1302 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
1303
1304 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
1305
1306 * varasm.c (assemble_external): #if 0 out the new assert from the
1307 previous commit, it breaks the Java and Go front ends.
1308
1309 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
1310
1311 * toplev.c (check_global_declaration_1): Do not call assemble_external.
1312 * expr.c (emit_block_move_libcall_fn): Likewise.
1313 (clear_storage_libcall_fn): Likewise.
1314 (expand_expr_addr_expr_1): Likewise.
1315 (expand_expr_real_1): Likewise.
1316 * calls.c (rtx_for_function_call): Likewise.
1317
1318 * varasm.c (assemble_external): Assert this function is only called
1319 during or after expanding to RTL.
1320
1321 2012-03-26 Martin Jambor <mjambor@suse.cz>
1322
1323 PR tree-optimization/50052
1324 * tree-sra.c (tree_non_aligned_mem_p): Removed.
1325 (tree_non_aligned_mem_for_access_p): Likewise.
1326 (build_accesses_from_assign): Removed strict alignment requirements
1327 checks.
1328 (access_precludes_ipa_sra_p): Likewise.
1329
1330 2012-03-26 Richard Guenther <rguenther@suse.de>
1331
1332 PR tree-optimization/52701
1333 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
1334 compute and set the evolution part of PHI nodes.
1335
1336 2012-03-26 Richard Guenther <rguenther@suse.de>
1337
1338 PR tree-optimization/52721
1339 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
1340
1341 2012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
1342
1343 PR tree-optimization/52686
1344 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
1345 WIDEN_LSHIFT_EXPR.
1346
1347 2012-03-26 Tristan Gingold <gingold@adacore.com>
1348
1349 * config/alpha/vms.h (LINK_SPEC): Simplify.
1350 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
1351 (NAME__MAIN, SYMBOL__MAIN): Remove.
1352 (VMS_DEBUG_MAIN_POINTER): Remove.
1353 * config/ia64/vms.h: Likewise.
1354 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
1355 code to vms.c. Call vms_start_function.
1356 * config/ia64/ia64.c (ia64_start_function): Likewise.
1357 * config/vms/vms-protos.h (vms_start_function): Declare.
1358 * config/vms/vms.c (vms_start_function): New function.
1359 * config/vms/vms.h (MATH_LIBRARY): Define.
1360 (VMS_DEBUG_MAIN_POINTER): Define.
1361
1362 2012-03-26 Eric Botcazou <ebotcazou@adacore.com>
1363
1364 PR rtl-optimization/52629
1365 * reload1.c (count_pseudo): Short-circuit common case.
1366 (count_spilled_pseudo): Return early for pseudos without hard regs.
1367 Assert that the pseudo has got a hard reg before manipulating it.
1368
1369 2012-03-24 Jan Hubicka <jh@suse.cz>
1370
1371 PR lto/51663
1372 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
1373 (decide_is_variable_needed): Do not handle toplevel reorder here.
1374 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
1375 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
1376 even at -O0.
1377
1378 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
1379
1380 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
1381 and str_bitsize instead of more convoluted expressions.
1382
1383 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
1384
1385 PR target/52610
1386 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
1387
1388 2012-03-24 Eric Botcazou <ebotcazou@adacore.com>
1389
1390 PR target/52656
1391 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
1392
1393 2012-03-23 Martin Jambor <mjambor@suse.cz>
1394
1395 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
1396
1397 2012-03-23 Richard Guenther <rguenther@suse.de>
1398
1399 PR tree-optimization/52678
1400 * tree-vectorizer.h (struct _stmt_vec_info): Add
1401 loop_phi_evolution_part member.
1402 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
1403 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
1404 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
1405 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1406 Use the cached evolution part and the PHI nodes value from
1407 the loop preheader edge instead of re-analyzing the evolution.
1408
1409 2012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1410
1411 * config/mips/mips-tables.opt: Update.
1412 * config/mips/mips.md (processor): Add xlp.
1413 * config/mips/mips-cpus.def: Add xlp.
1414 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
1415 5KF for now.
1416 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
1417 * doc/invoke.texi: Mention XLP.
1418
1419 2012-03-22 Jakub Jelinek <jakub@redhat.com>
1420
1421 PR middle-end/52547
1422 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
1423 on any new_local_var_chain vars declared during recursing on
1424 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
1425
1426 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
1427
1428 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
1429 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
1430 (ASM_OUTPUT_LOCAL): Ditto.
1431 (ASM_OUTPUT_COMMON): Remove.
1432 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
1433 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
1434
1435 2012-03-22 Jan Hubicka <jh@suse.cz>
1436
1437 PR middle-end/51737
1438 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
1439 parameter.
1440 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
1441 * ipa-inline-transform.c (save_inline_function_body): Remove
1442 copied clone if needed.
1443 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
1444
1445 2012-03-22 Richard Guenther <rguenther@suse.de>
1446
1447 PR middle-end/52666
1448 * fold-const.c (fold_ternary_loc): Fix typo.
1449
1450 2012-03-22 Georg-Johann Lay <avr@gjlay.de>
1451
1452 PR target/52496
1453 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
1454 (unspecv): Add UNSPECV_MEMORY_BARRIER.
1455 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
1456 (delay_cycles_1, delay_cycles_2): Ditto.
1457 (delay_cycles_3, delay_cycles_4): Ditto.
1458 (nopv, *nopv): Ditto.
1459 (sleep, *sleep): Ditto.
1460 (wdr, *wdr): Ditto.
1461
1462 2012-03-22 Richard Guenther <rguenther@suse.de>
1463
1464 PR tree-optimization/52548
1465 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
1466 because of clobbers.
1467 (prune_clobbered_mems): New function.
1468 (compute_antic_aux): Use it to prune ANTIC_OUT.
1469 (compute_partial_antic_aux): Use it to prune PA_IN.
1470 (compute_avail): Only insert expressions into EXP_GEN that are not
1471 invalidated when translated up to the beginning of the block.
1472
1473 2012-03-22 Richard Guenther <rguenther@suse.de>
1474
1475 PR tree-optimization/52638
1476 * tree-vect-stmts.c (vect_init_vector_1): New function, split
1477 out from ...
1478 (vect_init_vector): ... here. Handle scalar vector inits.
1479 (vect_get_vec_def_for_operand): Adjust.
1480 (vectorizable_load): Likewise.
1481
1482 2012-03-22 Uros Bizjak <ubizjak@gmail.com>
1483
1484 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
1485 (alpha*-*-freebsd*): Ditto.
1486 (alpha*-*-netbsd*): Ditto.
1487 (alpha*-*-openbsd*): Ditto.
1488 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
1489 (DWARF2_DEBUGGING_INFO): Remove.
1490 (PREFERRED_DEBUGGING_TYPE): Remove.
1491 (ASM_FINAL_SPEC): Remove.
1492 (IDENT_ASM_OP): Remove.
1493 (ASM_OUTPUT_IDENT): Remove.
1494 (SKIP_ASM_OP): Remove.
1495 (ASM_OUTPUT_SKIP): Remove.
1496 (ALIGN_ASM_OP): Remove.
1497 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
1498 (ASM_OUTPUT_CASE_LABEL): Remove.
1499 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
1500 (COMMON_ASM_OP): Remove.
1501 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
1502 (ASCII_DATA_ASM_OP): Remove.
1503 (READONLY_DATA_SECTION_ASM_OP): Remove.
1504 (INIT_SECTION_ASM_OP): Remove.
1505 (FINI_SECTION_ASM_OP): Remove.
1506 (ASM_SECTION_START_OP): Remove.
1507 (ASM_OUTPUT_SECTION_START_FILE): Remove.
1508 (TARGET_ASM_NAMED_SECTION): Remove.
1509 (TARGET_ASM_SELECT_SECTION): Remove.
1510 (MAKE_DECL_ONE_ONLY): Remove.
1511 (TYPE_ASM_OP): Remove.
1512 (SIZE_ASM_OP): Remove.
1513 (ASM_WEAKEN_LABEL): Remove.
1514 (TYPE_OPERAND_FMT): Remove.
1515 (ASM_DECLARE_RESULT): Remove.
1516 (ASM_DECLARE_OBJECT_NAME): Remove.
1517 (ASM_FINISH_DECLARE_OBJECT): Remove.
1518 (ELF_ASCII_ESCAPES): Remove.
1519 (ELF_STRING_LIMIT): Remove.
1520 (STRING_ASM_OP): Remove.
1521 (ASM_OUTPUT_EXTERNAL): Remove.
1522 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
1523 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
1524 before define.
1525 (ASM_DECLARE_FUNCTION_NAME): Ditto.
1526 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
1527 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
1528 (ASM_OUTPUT_SKIP): Ditto.
1529 (READONLY_DATA_SECTION_ASM_OP): Remove.
1530 (USER_LABEL_PREFIX): Remove.
1531 (ASM_OUTPUT_ASCII): Remove.
1532 (ASM_OUTPUT_CASE_LABEL): Remove.
1533 (NO_DOLLAR_IN_LABEL): Undefine.
1534
1535 2012-03-22 Richard Guenther <rguenther@suse.de>
1536
1537 PR tree-optimization/52459
1538 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
1539 PHI insertion for calls.
1540
1541 2012-03-21 Steven Bosscher <steven@gcc.gnu.org>
1542
1543 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
1544 find_sets_in_insn, canonicalize_insn): Split out from ...
1545 (cse_insn): ... here.
1546 (invalidate_from_clobbers): Take an insn instead of the pattern.
1547
1548 2012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
1549
1550 PR target/52479
1551 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
1552 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
1553 * config/sh/sh.md (sindf2, cosdf2): Remove.
1554
1555 2012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
1556
1557 PR target/52642
1558 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
1559 prologue for unwinder and profiler.
1560
1561 2012-03-21 Andreas Tobler <andreast@fgznet.ch>
1562
1563 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
1564 Introduce emul_name to select the right linker emulation for
1565 powerpc64-*-freebsd*.
1566 * configure: Regenerate.
1567 * config.gcc: Add bits to support powerpc64-*-freebsd*.
1568 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
1569 * config/rs6000/freebsd64.h: New file.
1570 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
1571 POWERPC_FREEBSD.
1572 (rs6000_savres_strategy): Likewise.
1573 (rs6000_savres_routine_name): Likewise.
1574 (rs6000_elf_file_end): Likewise.
1575 * config/rs6000/t-freebsd64: New file.
1576 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
1577 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
1578
1579 * config/rs6000/freebsd64.h: Remove duplicated entries from last
1580 commit.
1581 * config/rs6000/t-freebsd64: Likewise.
1582
1583 2012-03-21 Georg-Johann Lay <avr@gjlay.de>
1584
1585 PR rtl-optimization/52543
1586 PR target/52461
1587 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
1588 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
1589 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
1590 (avr_load_libgcc_p): Restrict to __flash loads.
1591 (avr_out_lpm): Only handle 1-byte loads from __flash.
1592 (avr_load_lpm): New function.
1593 (avr_find_unused_d_reg): Remove.
1594 (avr_out_lpm_no_lpmx): Remove.
1595 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
1596 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
1597 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
1598 (load_<mode>, load_<mode>_clobber): New insns.
1599 (mov<mode>): For multi-byte move from non-generic
1600 16-bit address spaces: Expand to load_<mode> resp.
1601 load_<mode>_clobber.
1602 (load<mode>_libgcc): Remove expander.
1603 (split-lpmx): Remove split.
1604
1605 2012-03-21 Richard Earnshaw <rearnsha@arm.com>
1606
1607 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
1608 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
1609 All callers changed.
1610 (Fixed_core_reg): New feature.
1611 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
1612 disassembly.
1613 * neon-testgen.ml: Handle Fixed_core_reg.
1614
1615 2012-03-21 Andrew Stubbs <ams@codesourcery.com>
1616
1617 * config/arm/arm.c (thumb2_reorg): Add complete support
1618 for 16-bit instructions.
1619 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
1620
1621 2012-03-21 Richard Guenther <rguenther@suse.de>
1622
1623 PR tree-optimizer/52636
1624 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
1625 to the appropriate type.
1626
1627 2012-03-21 Richard Guenther <rguenther@suse.de>
1628
1629 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
1630 dependencies.
1631 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
1632 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
1633 * passes.c (init_optimization_passes): Remove pass_init_function,
1634 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
1635 * tree-pass.h (pass_init_function): Remove.
1636 (pass_jump): Remove.
1637 (pass_initial_value_sets): Remove.
1638 (pass_unshare_all_rtl): Remove.
1639 * integrate.c (pass_initial_value_sets): Remove.
1640 * emit-rtl.c (pass_unshare_all_rtl): Remove.
1641 * tree.h (init_function_for_compilation): Remove.
1642 * function.c (init_function_for_compilation): Remove.
1643 (pass_init_function): Remove.
1644 * cfgcleanup.c (rest_of_handle_jump): Remove.
1645 (pass_jump): Remove.
1646
1647 2012-03-20 Jason Merrill <jason@redhat.com>
1648
1649 * tree-streamer-in.c (streamer_alloc_tree): Call
1650 ggc_alloc_zone_cleared_tree_node instead of
1651 ggc_alloc_zone_cleared_tree_node_stat.
1652
1653 2012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
1654
1655 * doc/extend.texi (Template Instantiation): Remove anachronisms.
1656
1657 2012-03-20 Jakub Jelinek <jakub@redhat.com>
1658
1659 PR target/52607
1660 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
1661 (ix86_expand_vec_perm_const_1): Call it.
1662
1663 * config/i386/i386.c (vselect_insn): New variable.
1664 (init_vselect_insn): New function.
1665 (expand_vselect, expand_vselect_insn): Add testing_p argument.
1666 Call init_vselect_insn if vselect_insn is NULL. Adjust
1667 PATTERN (vselect_insn), instead of creating a new insn each time,
1668 only emit a copy of it if not testing and recog has been successful.
1669 (expand_vec_perm_pshufb, expand_vec_perm_1,
1670 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
1671 callers.
1672
1673 PR target/52607
1674 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
1675 ("enabled" attribute): Handle avx2 and noavx2 isas.
1676 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
1677 New insns.
1678 (vec_dup<mode>): Add avx2 =x,x alternative.
1679 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
1680 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
1681 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
1682 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
1683 for V8SFmode.
1684 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
1685 if possible, handle also V8SFmode.
1686
1687 2012-03-20 Richard Earnshaw <rearnsha@arm.com>
1688
1689 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
1690 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
1691 reg_or_zero_operand predicate.
1692 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
1693
1694 2012-03-20 Jakub Jelinek <jakub@redhat.com>
1695
1696 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
1697 If operand isn't UNSPEC, return 0.
1698
1699 2012-03-20 Richard Guenther <rguenther@suse.de>
1700
1701 * tree-pass.h (pass_rtl_eh): Remove.
1702 * except.c (gate_handle_eh): Likewise.
1703 (rest_of_handle_eh): Likewise.
1704 (pass_rtl_eh): Likewise.
1705 (finish_eh_generation): Export.
1706 * except.h (finish_eh_generation): Declare.
1707 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
1708 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
1709 after expanding stack alignment. Instead of compacting blocks
1710 call cleanup_cfg.
1711
1712 2012-03-20 Richard Guenther <rguenther@suse.de>
1713
1714 * stor-layout.c (finish_bitfield_representative): Fallback
1715 to conservative maximum size if the padding up to the next
1716 field cannot be computed as a constant.
1717 (finish_bitfield_layout): If we cannot compute the distance
1718 between the start of the bitfield representative and the
1719 bitfield member start a new representative.
1720 * expr.c (get_bit_range): The distance between the start of
1721 the bitfield representative and the bitfield member is zero
1722 if the field offsets are not constants.
1723
1724 2012-03-20 Tristan Gingold <gingold@adacore.com>
1725
1726 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
1727 convert in lowercase.
1728 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
1729 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
1730 * stor-layout.c (sizetype_tab): Adjust.
1731 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
1732 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
1733 instead of type_kind_last.
1734 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
1735 instead of size_int_kind.
1736 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
1737 * doc/tm.texi: Regenerate.
1738 * defaults.h (SIZETYPE): Provide a default value.
1739 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
1740 (SIZETYPE): Define.
1741
1742 2012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
1743
1744 * config/sh/sh.md: Use braced string notation where applicable.
1745
1746 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
1747
1748 * config/i386/i386.md (allocate_stack): Simplify.
1749
1750 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
1751
1752 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
1753 copy_to_mode_reg (Pmode, ...).
1754 (expand_builtin_frame_address): Ditto.
1755 * expr.c (emit_block_move_via_libcall): Ditto.
1756 (set_storage_via_libcall): Ditto.
1757
1758 * config/i386/i386.c (ix86_expand_movmem): Ditto.
1759 (ix86_expand_setmem): Ditto.
1760 (ix86_trampoline_init): DItto.
1761 * config/i386/i386.md (cmpstrnsi): Ditto.
1762
1763 2012-03-19 Sandra Loosemore <sandra@codesourcery.com>
1764
1765 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
1766 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
1767 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
1768 (SH Options): Likewise.
1769
1770 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
1771
1772 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
1773 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
1774 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
1775 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
1776 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
1777
1778 Revert:
1779 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
1780
1781 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
1782 * config/i386/i386.c (ix86_decompose_address): Use
1783 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
1784 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
1785 thread pointer to a register.
1786
1787 Revert:
1788 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
1789
1790 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
1791 if Pmode != word_mode.
1792 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
1793 Pmode == SImode for TARGET_X32.
1794
1795 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
1796 (tls_initial_exec_x32): Likewise.
1797
1798 2012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
1799
1800 PR target/50751
1801 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
1802 DISP_ADDR_OFFSET): New macros.
1803 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
1804 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
1805 (sh_legitimize_address): Add QImode displacement handling.
1806 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
1807 vector subregs.
1808 (sh_secondary_reload): Add QImode displacement handling.
1809 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
1810 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
1811 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
1812 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
1813 to register operands only.
1814 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
1815 (extendqihi2): Change insn to expander.
1816 (*extendqihi2_compact_reg): New insn.
1817 (movqi_i, movqi): Replace with ...
1818 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
1819 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
1820 Add new peepholes for QImode displacement addressing.
1821
1822 2012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
1823
1824 PR c++/14710
1825 * doc/invoke.texi: Document -Wuseless-cast.
1826
1827 2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
1828
1829 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
1830 * tree.h (handled_component_p): Reorder cases.
1831 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
1832 not initialize unsignedp.
1833 (loc_list_from_tree): Likewise.
1834 (fortran_common): Likewise.
1835 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1836
1837 2012-03-19 Uros Bizjak <ubizjak@gmail.com>
1838
1839 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
1840 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
1841 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
1842 (ix86_split_long_move): Ditto.
1843 (legitimize_tls_address): Use ix86_gen_sub3.
1844 (construct_plt_address): Assert that Pmode == DImode.
1845
1846 2012-03-18 Uros Bizjak <ubizjak@gmail.com>
1847
1848 * config/i386/i386.md: Remove empty predicates and/or constraints.
1849 * config/i386/sync.md: Ditto.
1850 * config/i386/sse.md: Ditto.
1851 * config/i386/mmx.md: Ditto.
1852 * config/i386/pentium.md: Ditto.
1853 * config/i386/athlon.md: Ditto.
1854
1855 2012-03-16 Richard Guenther <rguenther@suse.de>
1856
1857 PR tree-optimization/52603
1858 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
1859 comment.
1860
1861 Revert
1862 2012-03-14 Richard Guenther <rguenther@suse.de>
1863
1864 PR tree-optimization/52571
1865 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
1866 flag_section_anchors check ...
1867 (vect_can_force_dr_alignment_p): ... here.
1868
1869 2012-03-16 Martin Jambor <mjambor@suse.cz>
1870
1871 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
1872 memory through MEM_REFs by calling extract_bit_field.
1873
1874 2012-03-16 Richard Guenther <rguenther@suse.de>
1875
1876 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
1877 and REFERENCE_TYPE interpretations.
1878 (can_native_interpret_type_p): New function.
1879 (fold_ternary_loc): Use native encode/interpret to fold
1880 BIT_FIELD_REFs of constants.
1881
1882 2012-03-16 Richard Guenther <rguenther@suse.de>
1883
1884 PR middle-end/52584
1885 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
1886 of vector constants and constructors.
1887
1888 2012-03-16 Richard Guenther <rguenther@suse.de>
1889
1890 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
1891 VIEW_CONVERT_EXPR to convert constants.
1892 (vect_is_simple_use): Treat all constants as vec_constant_def.
1893
1894 2012-03-16 Richard Guenther <rguenther@suse.de>
1895 Kai Tietz <ktietz@redhat.com>
1896
1897 PR middle-end/48814
1898 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
1899 side-effects completely in the pre-queue and use a temporary
1900 for the result.
1901
1902 2012-03-16 Richard Guenther <rguenther@suse.de>
1903
1904 * stor-layout.c (finish_bitfield_representative): Fall back
1905 to the conservative maximum size if we cannot compute the
1906 size of the tail padding.
1907
1908 2012-03-16 Tristan Gingold <gingold@adacore.com>
1909
1910 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
1911 __CRTL_VER and __VMS_VER.
1912 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
1913 and vms_c_get_vms_ver.
1914 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
1915 functions.
1916 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
1917 (VMS_DEFAULT_VMS_VER): Define.
1918 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
1919 (VMS_DEFAULT_VMS_VER): Define.
1920
1921 2012-03-16 Richard Guenther <rguenther@suse.de>
1922
1923 * tree-vect-loop.c (get_initial_def_for_induction): Use
1924 build_constructor directly.
1925 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
1926 build_vector_from_val.
1927 * tree.c (build_vector_from_val): Avoid creating a constructor
1928 first when we want a constant vector.
1929
1930 2012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1931
1932 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
1933
1934 2012-03-16 Richard Guenther <rguenther@suse.de>
1935
1936 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
1937 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
1938 (struct tree_vector): Remove elements member, add variable size
1939 elts array member.
1940 (build_vector_stat): Declare.
1941 (build_vector): Define in terms of build_vector_stat.
1942 * tree.c (build_vector): Rename to ...
1943 (build_vector_stat): ... this. Take array of trees as parameter.
1944 (build_vector_from_ctor): Adjust.
1945 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
1946 initializer_zerop): Adjust.
1947 * cfgexpand.c (expand_debug_expr): Likewise.
1948 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
1949 const_vector_from_tree): Likewise.
1950 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
1951 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
1952 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
1953 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
1954 (lto_input_ts_vector_tree_pointers): Adjust.
1955 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
1956 (write_ts_vector_tree_pointers): Adjust.
1957 * varasm.c (const_hash_1, compare_constant, copy_constant,
1958 output_constant): Adjust.
1959 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
1960 * print-tree.c (print_node): Adjust.
1961 * tree-pretty-print.c (dump_generic_node): Adjust.
1962 * tree-vect-generic.c (uniform_vector_p, vector_element,
1963 lower_vec_perm): Adjust.
1964 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
1965 * tree-vect-slp.c (vect_get_constant_vectors,
1966 vect_transform_slp_perm_load): Adjust.
1967 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
1968 * expmed.c (make_tree): Adjust.
1969 * config/i386/i386.c (ix86_expand_builtin): Adjust.
1970 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
1971 and implementation.
1972 (sparc_fold_builtin): Adjust.
1973
1974 2012-03-16 Tristan Gingold <gingold@adacore.com>
1975
1976 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
1977 * config/vms/vms-stdint.h: New file.
1978
1979 2012-03-16 Tristan Gingold <gingold@adacore.com>
1980
1981 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
1982 (ia64-hp-*vms*): Replaced by ...
1983 (*-*-*vms*): ... This new entry.
1984
1985 2012-03-15 Jakub Jelinek <jakub@redhat.com>
1986
1987 PR target/52568
1988 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
1989 (ix86_expand_vec_perm_const_1): Use it.
1990
1991 PR target/52568
1992 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
1993 (avx2_permv4df): Remove.
1994 (avx2_permv4di): Macroize into...
1995 (avx2_perm<mode>): ... this using VI8F_256 iterator.
1996 (avx2_permv4di_1): Macroize into...
1997 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
1998
1999 2012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
2000
2001 * combine.c (apply_distributive_law): Do not distribute SUBREG.
2002
2003 2012-03-15 Ira Rosen <irar@il.ibm.com>
2004 Ulrich Weigand <ulrich.weigand@linaro.org>
2005
2006 * tree-vect-patterns.c (widened_name_p): Rename to ...
2007 (type_conversion_p): ... this. Add new argument to determine
2008 if it's a promotion or demotion operation. Check for
2009 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
2010 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
2011 widened_name_p.
2012 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
2013 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
2014 Likewise.
2015 (vect_recog_mixed_size_cond_pattern): Likewise and allow
2016 non-constant then and else clauses.
2017
2018 2012-03-15 Ira Rosen <irar@il.ibm.com>
2019 Ulrich Weigand <ulrich.weigand@linaro.org>
2020
2021 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
2022 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
2023 vect_pattern_recog.
2024 * tree-vect-patterns.c (widened_name_p): Pass basic block
2025 info to vect_is_simple_use.
2026 (vect_recog_dot_prod_pattern): Fail for basic blocks.
2027 (vect_recog_widen_sum_pattern): Likewise.
2028 (vect_handle_widen_op_by_const): Support basic blocks.
2029 (vect_operation_fits_smaller_type,
2030 vect_recog_over_widening_pattern): Likewise.
2031 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
2032 Update call to vect_is_simple_use.
2033 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
2034 Add printing.
2035 (check_bool_pattern): Add an argument, update call to
2036 vect_is_simple_use and the recursive calls.
2037 (vect_recog_bool_pattern): Update relevant function calls.
2038 Add printing.
2039 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
2040 (vect_pattern_recog_1): Check for reduction only in loops.
2041 (vect_pattern_recog): Add new argument. Support basic blocks.
2042 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
2043 info to vect_is_simple_use_1.
2044 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
2045 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
2046
2047 2012-03-15 Jakub Jelinek <jakub@redhat.com>
2048 Andrew Pinski <apinski@cavium.com>
2049
2050 PR middle-end/52592
2051 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
2052 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
2053 calls instead of __builtin_ir{int,ound}*.
2054
2055 2012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2056
2057 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
2058 documentation.
2059
2060 2012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2061
2062 * config.gcc (target_type_format_char): New. Document it. Set it for
2063 arm*-*-* .
2064 * configure.ac (gnu_unique_option): Use target_type_format_char
2065 in test. Comment rationale.
2066 * configure: Regenerate .
2067
2068 2012-03-15 Jakub Jelinek <jakub@redhat.com>
2069
2070 PR tree-optimization/52267
2071 * tree-vrp.c (masked_increment): New function.
2072 (register_edge_assert_for_2): Derive ASSERT_EXPRs
2073 from (X & CST1) cmp CST2 tests.
2074
2075 2012-03-15 Richard Guenther <rguenther@suse.de>
2076
2077 PR middle-end/52580
2078 * tree-data-ref.c (subscript_dependence_tester_1): Check
2079 all dimensions for non-conflicting access functions.
2080
2081 2012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2082
2083 PR c++/44783
2084 * doc/invoke.texi [C++ Language Options]: Document
2085 -ftemplate-backtrace-limit.
2086
2087 2012-03-15 Tristan Gingold <gingold@adacore.com>
2088
2089 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
2090 before a parameter.
2091
2092 2012-03-15 Tristan Gingold <gingold@adacore.com>
2093
2094 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
2095 use DW_OP_call_frame_cfa.
2096
2097 2012-03-14 H.J. Lu <hongjiu.lu@intel.com>
2098
2099 PR target/50797
2100 * config/i386/i386-opts.h (pmode): New.
2101
2102 * config/i386/i386.c (ix86_option_override_internal): Properly
2103 check and set ix86_pmode.
2104
2105 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
2106
2107 * config/i386/i386.opt (maddress-mode=): New.
2108
2109 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
2110
2111 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2112
2113 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
2114 (dwarf2out_do_cfi_asm): Likewise.
2115 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
2116 handling.
2117 (add_data_member_location_attribute): Likewise.
2118 (gen_array_type_die): Likewise.
2119 (gen_subprogram_die): Likewise.
2120 (gen_producer_string): Likewise.
2121 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
2122 Remove MIPS_DEBUGGING_INFO handling.
2123 (sdb_debug_hooks): Likewise.
2124 (sdbout_begin_block): Likewise.
2125 (sdbout_end_block): Likewise.
2126 (sdbout_begin_prologue): Likewise.
2127 (sdbout_start_source_file): Likewise.
2128 (sdbout_end_source_file): Likewise.
2129 (sdbout_init): Likewise.
2130 * system.h (MIPS_DEBUGGING_INFO): Poison.
2131
2132 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2133
2134 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
2135 (alpha_file_start) [MS_STAMP]: Remove.
2136
2137 * config/alpha/elf.h (TARGET_GAS): Remove.
2138 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
2139 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
2140 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
2141 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
2142 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
2143 (alpha*-*-freebsd*): Likewise.
2144 (alpha*-*-netbsd*): Likewise.
2145 (alpha*-*-openbsd*): Likewise.
2146 (alpha*-*-*): Remove target_cpu_default2.
2147 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
2148 handling.
2149 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
2150 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
2151 * config/alpha/alpha.c (print_operand): Always assume
2152 TARGET_AS_SLASH_BEFORE_SUFFIX.
2153 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
2154 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
2155 ("*builtin_setjmp_receiver_er_1"): Remove.
2156 * config/alpha/alpha.opt (malpha-as): Remove.
2157 (mgas): Ignore.
2158 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
2159 -malpha-as, -mgas.
2160 Remove DEC Unix reference.
2161
2162 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
2163 (EXTENDED_COFF): Remove.
2164 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
2165 (EXTENDED_COFF): Don't undef.
2166 * config/alpha/alpha.c (alpha_file_start): Always assume
2167 OBJECT_FORMAT_ELF.
2168 Don't set targetm.asm_file_start_file_directive.
2169 [!OBJECT_FORMAT_ELF]: Remove.
2170 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
2171
2172 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
2173 (DBX_DEBUGGING_INFO): Remove.
2174 (MIPS_DEBUGGING_INFO): Remove.
2175 (PREFERRED_DEBUGGING_TYPE): Remove.
2176 (DBX_OUTPUT_SOURCE_LINE): Remove.
2177 (SDB_OUTPUT_SOURCE_LINE): Remove.
2178 (DBX_CONTIN_LENGTH): Remove.
2179 (NO_DBX_FUNCTION_END): Remove.
2180 (ASM_STABS_OP): Remove.
2181 (ASM_STABN_OP): Remove.
2182 (ASM_STABD_OP): Remove.
2183 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
2184 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
2185 (PUT_SDB_DEF): Remove.
2186 (PUT_SDB_PLAIN_DEF): Remove.
2187 (PUT_SDB_TYPE): Remove.
2188 (sdb_label_count): Remove.
2189 (PUT_SDB_BLOCK_START): Remove.
2190 (PUT_SDB_BLOCK_END): Remove.
2191 (PUT_SDB_FUNCTION_START): Remove.
2192 (PUT_SDB_FUNCTION_END): Remove.
2193 (PUT_SDB_EPILOGUE_END): Remove.
2194 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
2195 (MIPS_DEBUGGING_INFO): Don't undef.
2196 (DBX_DEBUGGING_INFO): Don't undef.
2197 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
2198 (MIPS_DEBUGGING_INFO): Don't undef.
2199 (DBX_DEBUGGING_INFO): Don't undef.
2200 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
2201 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
2202 handling.
2203 (alpha_start_function): Likewise.
2204 (sdb_label_count): Remove.
2205 (alpha_output_filename): Remove DBX_DEBUG handling.
2206 (alpha_file_start): Likewise.
2207
2208 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2209
2210 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
2211 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
2212 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
2213 Solaris 8 support.
2214 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
2215 (ld_tls_support): Remove Solaris 8 references.
2216 (lwp_dir, lwp_spec): Remove support for alternate thread library.
2217 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
2218 * configure: Regenerate.
2219 * config.in: Regenerate.
2220
2221 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
2222 * config/i386/sol2.h: Remove Solaris 8 references.
2223
2224 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
2225 (i?86-*-solaris2.9): ... this.
2226 Remove Solaris 8 references.
2227 (Specific, *-*-solaris2*): Document Solaris 8 removal.
2228 Remove Solaris 8 references.
2229
2230 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2231
2232 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
2233 (mips-sgi-irix6.5*): Remove.
2234 * config.host (mips-sgi-irix*): Remove.
2235 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
2236 (set_have_as_tls): Remove *-*-irix6*.
2237 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
2238 * configure: Regenerate.
2239
2240 * config/mips/iris6.h: Remove.
2241 * config/mips/iris6.opt: Remove.
2242 * config/mips/t-irix6: Remove.
2243
2244 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
2245 (TARGET_IRIX6): Remove.
2246 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
2247 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
2248 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
2249 handling.
2250 (mips_file_start): Likewise.
2251 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
2252
2253 * config/mips/driver-native.c [__sgi__]: Remove.
2254 (host_detect_local_cpu) [__sgi__]: Remove.
2255
2256 * config/mips/gnu-user.h: Remove iris5.h reference.
2257
2258 * config/mips/mips-modes.def: Remove IRIX 6 reference.
2259 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
2260 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
2261 Remove.
2262
2263 * gcc.c (main): Move asm_debug initialization ...
2264 (asm_debug): ... here.
2265
2266 * ginclude/stddef.h (__STDDEF_H__): Don't define.
2267
2268 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
2269 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
2270 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
2271 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
2272 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
2273 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
2274 Remove.
2275 * doc/tm.texi: Regenerate.
2276
2277 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
2278 IRIX 6 reference.
2279 (MIPS Options, -march): Remove IRIX reference.
2280 * doc/install.texi (Binaries, SGI IRIX): Remove.
2281 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
2282 of section.
2283 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
2284
2285 2012-03-14 Martin Jambor <mjambor@suse.cz>
2286
2287 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
2288 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
2289 (expand_expr_real_1): Do not handle misalignment if modifier is
2290 EXPAND_WRITE.
2291
2292 2012-03-14 Richard Guenther <rguenther@suse.de>
2293
2294 PR middle-end/52584
2295 * tree-vect-generic.c (type_for_widest_vector_mode): Take
2296 element type instead of mode, use build_vector_type_for_mode
2297 instead of the langhook, build a vector of proper signedness.
2298 (expand_vector_operations_1): Adjust.
2299
2300 2012-03-14 Richard Guenther <rguenther@suse.de>
2301
2302 PR middle-end/52582
2303 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
2304 a cgraph node for a FUNCTION_DECL that comes from a constructor.
2305 (gimple_get_virt_method_for_binfo): Likewise.
2306
2307 2012-03-14 Richard Guenther <rguenther@suse.de>
2308
2309 PR tree-optimization/52571
2310 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
2311 flag_section_anchors check ...
2312 (vect_can_force_dr_alignment_p): ... here. Do not re-align
2313 DECL_COMMON variables.
2314
2315 2012-03-14 Richard Guenther <rguenther@suse.de>
2316
2317 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
2318 * stor-layout.c (start_bitfield_representative): New function.
2319 (finish_bitfield_representative): Likewise.
2320 (finish_bitfield_layout): Likewise.
2321 (finish_record_layout): Call finish_bitfield_layout.
2322 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
2323 for QUAL_UNION_TYPE fields.
2324 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
2325 Stream DECL_BIT_FIELD_REPRESENTATIVE.
2326 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
2327
2328 PR middle-end/52080
2329 PR middle-end/52097
2330 PR middle-end/48124
2331 * expr.c (get_bit_range): Unconditionally extract bitrange
2332 from DECL_BIT_FIELD_REPRESENTATIVE.
2333 (expand_assignment): Adjust call to get_bit_range.
2334
2335 2012-03-14 Richard Guenther <rguenther@suse.de>
2336
2337 PR middle-end/52578
2338 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
2339 the outermost conversion is a sign-change only.
2340 (fold_binary_loc): Disregard widening and sign-changing
2341 conversions when we determine if two variables are equal
2342 for reassociation.
2343 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
2344 (T1)x if the outermost conversion is a sign-change only.
2345
2346 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
2347
2348 Revert:
2349 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
2350
2351 * config/i386/predicates.md (constant_call_address_operand): Declare
2352 as special predicate. Update all uses.
2353
2354 2012-03-13 Jakub Jelinek <jakub@redhat.com>
2355
2356 PR c/52577
2357 * c-parser.c (c_parser_postfix_expression)
2358 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
2359
2360 * config/i386/smmintrin.h: Avoid /* within a comment.
2361 * config/i386/nmmintrin.h: Likewise.
2362
2363 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
2364
2365 * config/i386/i386.md (xbegin): Remove constraint from expander.
2366
2367 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
2368
2369 * config/i386/predicates.md (constant_call_address_operand): Declare
2370 as special predicate. Update all uses.
2371 * config/i386/i386.md: Remove mode from constant_call_address_operand
2372 predicates.
2373 * config/i386/i386.c (ix86_output_call_insn): Call
2374 constant_call_address_operand with VOIDmode.
2375
2376 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
2377
2378 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
2379 AND zero extended address correctly.
2380
2381 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
2382
2383 * config/i386/predicates.md (tls_symbolic_operand): Declare as
2384 special predicate.
2385 (tls_modbase_operand): Ditto.
2386 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
2387 tls_modbase_operand predicates.
2388
2389 2012-03-13 Martin Jambor <mjambor@suse.cz>
2390
2391 * expr.c (expand_assignment): Handle misaligned scalar writes to
2392 memory through top-level MEM_REFs by calling store_bit_field.
2393
2394 2012-03-13 Richard Guenther <rguenther@suse.de>
2395
2396 PR middle-end/52134
2397 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
2398 if Y is a constant multiple of 1 << CST.
2399
2400 2012-03-13 Georg-Johann Lay <avr@gjlay.de>
2401
2402 PR target/52488
2403 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
2404 offset (size) to a value the insns can deal with.
2405 (expand_epilogue): Ditto.
2406
2407 2012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2408
2409 * config/arm/neon.ml (ops): Fixup expected instructions for
2410 unsigned vector compares.
2411
2412 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
2413
2414 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
2415 addresses only when %reg is not in word mode.
2416
2417 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2418
2419 * config/microblaze/microblaze.md: Fix typo.
2420 * tree-if-conv.c: Likewise.
2421 * tree-vect-patterns.c: Likewise.
2422
2423 2012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2424
2425 * config.gcc (extra_passes): Remove.
2426 * configure.ac (extra_passes): Don't substitute.
2427 * configure: Regenerate.
2428 * Makefile.in (EXTRA_PASSES): Remove.
2429 (GCC_PASSES): Remove $(EXTRA_PASSES).
2430 (MOSTLYCLEANFILES): Likewise.
2431 (native): Likewise.
2432 (install-common): Likewise.
2433
2434 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
2435
2436 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
2437 * config/i386/i386.c (ix86_decompose_address): Use
2438 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
2439 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
2440 thread pointer to a register.
2441
2442 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
2443
2444 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
2445 on tls_symbolic_operand.
2446 (tls_global_dynamic_64_<mode>): Likewise.
2447
2448 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
2449
2450 PR other/52545
2451 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
2452 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
2453
2454 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
2455
2456 PR target/52499
2457 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
2458 type from reg_class_t to enum reg_class.
2459 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
2460
2461 2012-03-12 Andrew Pinski <apinski@cavium.com>
2462
2463 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
2464 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
2465 (value_replacement): Likewise.
2466 (empty_block_p): Check also if the PHIs for the block are empty.
2467
2468 2012-03-12 Georg-Johann Lay <avr@gjlay.de>
2469
2470 PR target/52148
2471 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
2472 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
2473 r184615 from 2012-02-28.
2474
2475 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
2476
2477 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
2478 (ix86_gen_tls_local_dynamic_base_64): Likewise.
2479 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
2480 and ix86_gen_tls_local_dynamic_base_64.
2481 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
2482 ix86_gen_tls_local_dynamic_base_64.
2483
2484 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
2485 (*tls_global_dynamic_64_<mode>): This.
2486 (tls_global_dynamic_64): Renamed to ...
2487 (tls_global_dynamic_64_<mode>): This.
2488 (*tls_local_dynamic_base_64): Renamed to ...
2489 (*tls_local_dynamic_base_64_<mode>): This.
2490 (tls_local_dynamic_base_64): Renamed to ...
2491 (tls_local_dynamic_base_64_<mode>): This.
2492
2493 2012-03-12 H.J. Lu <hongjiu.lu@intel.com>
2494
2495 * config/i386/i386.c (ix86_option_override_internal): Properly
2496 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
2497 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
2498 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
2499 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
2500
2501 * config/i386/sse.md (sse3_monitor64): Renamed to ...
2502 (sse3_monitor64_<mode>): This.
2503
2504 2012-03-12 Tristan Gingold <gingold@adacore.com>
2505
2506 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
2507 (ia64_function_arg_advance): Ditto.
2508
2509 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2510
2511 * config.gcc (mips*-*-openbsd*): Remove.
2512 * config/mips/openbsd.h: Remove.
2513 * config/mips/sdb.h: Remove.
2514
2515 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
2516 * config/mips/mips.c (sdb_label_count): Remove.
2517 (mips_debugger_offset): Remove #if 0 code.
2518 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
2519 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
2520
2521 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2522
2523 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
2524 binutils reference.
2525 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
2526 Update binutils references.
2527 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
2528 Update binutils reference.
2529 Update Sun as/GNU ld caveat.
2530 Document binutils largefile requirement for LTO plugin.
2531 Remove reference to alternate libpthread.
2532
2533 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2534
2535 * config.gcc (alpha*-dec-osf5.1*): Remove.
2536 * config.host (alpha*-dec-osf*): Remove.
2537 * configure.ac (*-*-osf*): Remove.
2538 (alpha*-dec-osf*): Remove.
2539 * configure: Regenerate.
2540
2541 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
2542 config/alpha/va_list.h, config/alpha/x-osf: Remove.
2543
2544 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
2545 * config/alpha/alpha.c (struct machine_function): Update comment.
2546 (alpha_start_function): Remove Tru64 UNIX as handling for
2547 max_frame_size.
2548 * config/alpha/alpha.md ("exception_receiver"): Remove
2549 TARGET_LD_BUGGY_LDGP.
2550 ("*exception_receiver_2"): Likewise.
2551 * except.c (finish_eh_generation): Remove Tru64 reference.
2552 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
2553 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
2554 * target.def (handle_pragma_extern_prefix): Remove.
2555
2556 * Makefile.in (mips-tfile.o-warn): Remove.
2557 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
2558 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
2559 * mips-tdump.c, mips-tfile.c: Remove.
2560
2561 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
2562 extern_prefix.
2563 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
2564 (Specific, alpha*-dec-osf5.1): Note removal.
2565 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
2566 Remove.
2567 * doc/tm.texi: Regenerate.
2568 * doc/trouble.texi (Cross-Compiler Problems): Remove.
2569
2570 2012-03-12 Richard Guenther <rguenther@suse.de>
2571
2572 * config/arm/arm.c (neon_dereference_pointer): Do not call
2573 covert during RTL expansion.
2574
2575 2012-03-12 Tristan Gingold <gingold@adacore.com>
2576
2577 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
2578 Options. Mention -mpointer-size.
2579
2580 2012-03-12 Richard Guenther <rguenther@suse.de>
2581
2582 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
2583 build_nonstandard_integer_type.
2584
2585 2012-03-12 Richard Guenther <rguenther@suse.de>
2586
2587 * tree.c (signed_or_unsigned_type_for): Use
2588 build_nonstandard_integer_type.
2589 (signed_type_for): Adjust documentation.
2590 (unsigned_type_for): Likewise.
2591 * tree-pretty-print.c (dump_generic_node): Use standard names
2592 for non-standard integer types if available.
2593
2594 2012-03-12 Tristan Gingold <gingold@adacore.com>
2595
2596 * config/vms/vms.opt: Add vms-opts.h header.
2597 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
2598 target mask.
2599 (-mvms-return-codes): Document.
2600 (-mpointer-size): New option.
2601 (vms_pointer_size): Add enumeration.
2602 * config/vms/vms-opts.h: New file.
2603 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
2604 __INITIAL_POINTER_SIZE.
2605 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
2606 (C_COMMON_OVERRIDE_OPTIONS): Define.
2607 (DWARF2_ADDR_SIZE): Define.
2608 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
2609 * config/vms/vms-protos.h (vms_c_common_override_options):
2610 New prototype.
2611 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
2612 if -mno-pointer-size.
2613 (vms_c_common_override_options): New function.
2614 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
2615 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
2616 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
2617 and flag_vms_pointer_size.
2618 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
2619 * config.gcc (*-*-*vms*): Define xm_file.
2620 (alpha*-dec-*vms*): Do not define xm_file.
2621 (alpha64-dec-*vms*): Remove.
2622 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
2623 and tmake_file.
2624
2625 2012-03-12 Jakub Jelinek <jakub@redhat.com>
2626
2627 PR tree-optimization/51721
2628 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
2629 if (int) unsvar cmp CST.
2630
2631 2012-03-12 Richard Guenther <rguenther@suse.de>
2632
2633 * tree-sra.c (create_access_replacement): Only rename the replacement
2634 if we can rewrite it into SSA form. Properly mark register typed
2635 replacements that we cannot rewrite with TREE_ADDRESSABLE.
2636 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
2637 for aggregate or BLKmode results.
2638
2639 2012-03-12 Jakub Jelinek <jakub@redhat.com>
2640
2641 PR tree-optimization/52533
2642 * tree-vrp.c (register_edge_assert_for_2): Use double_int
2643 type for mask, only handle shifts by non-zero in-range
2644 shift count, for LE_EXPR and GT_EXPR if new_val is
2645 maximum, don't add the assertion.
2646
2647 2012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
2648
2649 * doc/invoke.texi: Document -mrtm option.
2650 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
2651 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
2652 (ix86_handle_option): Handle OPT_mrtm.
2653 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
2654 xtestintrin.h.
2655 (x86_64-*-*): Ditto.
2656 * i386-builtin-types.def (INT_FTYPE_VOID): New.
2657 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2658 __RTM__ if needed.
2659 (ix86_target_string): Define -mrtm option.
2660 (PTA_RTM): New.
2661 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
2662 Handle new option.
2663 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
2664 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
2665 IX86_BUILTIN_XTEST.
2666 (bdesc_special_args): Ditto.
2667 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
2668 (ix86_expand_special_args_builtin): Handle new built-in type.
2669 (ix86_expand_builtin): Handle XABORT instruction.
2670 * config/i386/i386.h (TARGET_RTM): New.
2671 * config/i386/i386.md (UNSPECV_XBEGIN): New.
2672 (UNSPECV_XEND): Ditto.
2673 (UNSPECV_XABORT): Ditto.
2674 (UNSPECV_XTEST): Ditto.
2675 (xbegin): Ditto.
2676 (xbegin_1): Ditto.
2677 (xend): Ditto.
2678 (xabort): Ditto
2679 (xtest): Ditto.
2680 (xtest_1): Ditto.
2681 * config/i386/i386.opt (mrtm): New.
2682 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
2683 * config/i386/rtmintrin.h: New header.
2684 * config/i386/xtestintrin.h: Ditto.
2685
2686 2012-03-12 Tristan Gingold <gingold@adacore.com>
2687
2688 * ginclude/stddef.h: Adjust previous patch.
2689 Use __VMS__ instead of VMS.
2690
2691 2012-03-12 Uros Bizjak <ubizjak@gmail.com>
2692
2693 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
2694 Also convert sequences with CC setting arithmetic instruction.
2695
2696 2012-03-11 Sandra Loosemore <sandra@codesourcery.com>
2697
2698 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
2699 from C Language Options to Preprocessor Options.
2700 (C Dialect Options): Move -no-integrated-cpp documentation
2701 from here...
2702 (Preprocessor Options): ...to here. Rewrite the description
2703 so it makes more sense, and remove discussion of merging front ends.
2704
2705 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
2706
2707 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
2708 needed for loop.
2709 (ix86_expand_setmem): Likewise.
2710
2711 2012-03-11 Uros Bizjak <ubizjak@gmail.com>
2712
2713 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
2714 convert_to_mode.
2715
2716 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
2717
2718 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
2719 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
2720
2721 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
2722
2723 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
2724
2725 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
2726
2727 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
2728 TARGET_64BIT.
2729
2730 2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
2731 Uros Bizjak <ubizjak@gmail.com>
2732
2733 * config/i386/predicates.md (call_insn_operand): Allow
2734 constant_call_address_operand in Pmode only.
2735 (sibcall_insn_operand): Ditto.
2736 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
2737 (*call_vzeroupper): Ditto.
2738 (*sibcall): Ditto.
2739 (*sibcall_vzeroupper): Ditto.
2740 (*call_value): Ditto.
2741 (*call_value_vzeroupper): Ditto.
2742 (*sibcall_value): Ditto.
2743 (*sibcall_value_vzeroupper): Ditto.
2744 (*indirect_jump): Ditto.
2745 (*tablejump_1): Ditto.
2746 (indirect_jump): Convert memory address to word mode for TARGET_X32.
2747 (tablejump): Ditto.
2748 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
2749 to word mode.
2750
2751 2012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
2752
2753 PR target/51244
2754 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
2755 Use movrt_negc instead of negc pattern for non-SH2A.
2756 (*movnegt): Remove.
2757 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
2758
2759 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
2760
2761 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
2762 if Pmode != word_mode.
2763 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
2764 Pmode == SImode for TARGET_X32.
2765
2766 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
2767 (tls_initial_exec_x32): Likewise.
2768
2769 2012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
2770
2771 PR rtl-optimization/52528
2772 * combine.c (can_combine_p): Add setting of subst_low_luid
2773 before call to expand_field_assignment().
2774
2775 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
2776
2777 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
2778 and related program names.
2779
2780 2012-03-09 Sandra Loosemore <sandra@codesourcery.com>
2781
2782 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
2783
2784 2012-03-09 Uros Bizjak <ubizjak@gmail.com>
2785
2786 PR target/52530
2787 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
2788 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
2789 to set code to 'q'.
2790 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
2791 (*movdi_internal_rex64): Use %E operand modifier for lea.
2792 (*movsi_internal): Ditto.
2793 (*lea_1): Ditto.
2794 (*lea<mode>_2): Ditto.
2795 (*lea_{3,4,5,6}_zext): Ditto.
2796 (*tls_global_dynamic_32_gnu): Ditto.
2797 (*tls_global_dynamic_64): Ditto.
2798 (*tls_dynamic_gnu2_lea_32): Ditto.
2799 (*tls_dynamic_gnu2_lea_64): Ditto.
2800 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
2801
2802 2012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2803
2804 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
2805 redefine to be NULL if the current bit-size is different from the
2806 configured bit-size.
2807
2808 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
2809 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
2810 set the default tuning. Add asserts to make sure the cpu and tune
2811 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
2812 test whether the index is set, instead of > 0.
2813 (rs6000_file_start): Do not reset the default cpu if the current
2814 bit-size is different from the configured bit-size.
2815
2816 2012-03-09 Tristan Gingold <gingold@adacore.com>
2817
2818 * config/vms/vms-crtlmap.map: Add comments.
2819 Add entries needed to build Ada RTS.
2820
2821 2012-03-09 Tristan Gingold <gingold@adacore.com>
2822
2823 * ginclude/stddef.h: Do not define __size_t on VMS.
2824
2825 2012-03-09 Tristan Gingold <gingold@adacore.com>
2826
2827 * c-tree.h (c_default_pointer_mode): New variable.
2828 * c-decl.c (c_default_pointer_mode): New variable.
2829 (c_build_pointer_type): New function.
2830 (grokdeclarator): Call c_build_pointer_type instead
2831 of build_pointer_type.
2832
2833 * config/vms/vms-c.c: Include c-tree.h
2834 (saved_pointer_mode): New variable.
2835 (handle_pragma_pointer_size): New function.
2836 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
2837 (vms_c_register_pragma): Register __pointer_size and
2838 __required_pointer_size pragmas.
2839
2840 2012-03-09 Tristan Gingold <gingold@adacore.com>
2841
2842 * config/vms/vms-c.c (vms_construct_include_filename): New function.
2843 (vms_c_register_includes): Reference it.
2844
2845 2012-03-09 Andrew Pinski <apinski@cavium.com>
2846
2847 PR middle-end/51988
2848 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
2849 print_generic_expr.
2850 (tree_ssa_phiopt_worker): Go through all the PHIs for
2851 value_replacement instead of just the singleton one.
2852 (value_replacement): Change return type to int. Return 0 instead of
2853 false.
2854 Allow the middle basic block to contain more than just the defining
2855 statement.
2856 Handle non empty middle basic blocks.
2857 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
2858
2859 2012-03-09 Jiangning Liu <jiangning.liu@arm.com>
2860
2861 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
2862 array reference and component reference.
2863 (analyze_scalar_evolution_for_address_of): New.
2864
2865 2012-03-08 Jie Zhang <jzhang918@gmail.com>
2866
2867 PR target/49862
2868 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
2869 (hwloop_pattern_reg): Fix set but not used warning.
2870 (bfin_reorg_loops): Remove unused parameter.
2871 (bfin_reorg): Update use of bfin_reorg_loops.
2872
2873 2012-03-08 H.J. Lu <hongjiu.lu@intel.com>
2874
2875 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
2876 with integer parameters in registers.
2877 (gen_push): Push register in word_mode instead of Pmode.
2878 (ix86_emit_save_regs): Likewise.
2879 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
2880 (gen_pop): Pop register in word_mode instead of Pmode.
2881 (ix86_emit_restore_regs_using_pop): Likewise.
2882 (ix86_expand_prologue): Replace Pmode with word_mode for push
2883 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
2884 restore RAX and R10 in word_mode.
2885 (ix86_emit_restore_regs_using_mov): Restore integer registers
2886 in word_mode.
2887 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
2888 word_mode.
2889 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
2890 (ix86_split_long_move): Likewise.
2891
2892 * config/i386/i386.md (W): New.
2893 (*push<mode>2_prologue): Replace :P with :W.
2894 (*pop<mode>1): Likewise.
2895 (*pop<mode>1_epilogue): Likewise.
2896 (push/pop peephole2): Use word_mode scratch registers.
2897
2898 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
2899
2900 * config/i386/predicates.md (indirect_branch_operand): Simplify.
2901
2902 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
2903
2904 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
2905 for constants in [-63,63].
2906
2907 2012-03-08 Uros Bizjak <ubizjak@gmail.com>
2908
2909 PR target/52530
2910 Revert:
2911 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
2912
2913 * config/i386/i386.c (ix86_print_operand_address): Only handle
2914 zero-extended DImode addresses.
2915
2916 2012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2917
2918 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
2919 * configure: Regenerate.
2920
2921 2012-03-08 Georg-Johann Lay <avr@gjlay.de>
2922
2923 PR target/52496
2924 * config/avr/avr.c (avr_mem_clobber): New static function.
2925 (avr_expand_delay_cycles): Add memory clobber operand to
2926 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
2927 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
2928 (enable_interrupt, disable_interrupt): New expander.
2929 (nopv, sleep, wdr): New expanders.
2930 (delay_cycles_1): Add memory clobber.
2931 (delay_cycles_2): Add memory clobber.
2932 (delay_cycles_3): Add memory clobber.
2933 (delay_cycles_4): Add memory clobber.
2934 (cli_sei): New insn from former "enable_interrupt",
2935 "disable_interrupt" with memory clobber.
2936 (*wdt): New insn from former "wdt" with memory clobber.
2937 (*nopv): Similar, but for "nopv".
2938 (*sleep): Similar, but for "sleep".
2939
2940 2012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
2941 Kaz Kojima <kkojima@gcc.gnu.org>
2942
2943 PR target/52503
2944 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
2945 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
2946 (SUBTARGET_OVERRIDE_OPTIONS): Define.
2947
2948 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
2949
2950 * config/i386/predicates.md (x86_64_zext_general_operand): New.
2951 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
2952 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
2953
2954 2012-03-07 Walter Lee <walt@tilera.com>
2955
2956 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
2957 REG_CFA_* notes for the stack pointer.
2958 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
2959 EH_RETURN_STACKADJ_RTX.
2960 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
2961 generate REG_CFA_* notes for the stack pointer.
2962 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
2963 by EH_RETURN_STACKADJ_RTX.
2964
2965 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
2966
2967 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
2968 when __AVR_3_BYTE_PC__ is defined.
2969
2970 2012-03-07 Uros Bizjak <ubizjak@gmail.com>
2971
2972 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
2973 (ix86_print_operand): Handle '^'.
2974 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
2975 using P mode iterator. Add %^ to asm template to conditionally emit
2976 addr32 prefix.
2977 (*rep_movdi_rex64): Ditto.
2978 (*strsetdi_rex_1): Ditto.
2979 (*rep_stosdi_rex64): Ditto.
2980 (*strmov{si,hi,qi}_1): Add %^ to asm template to
2981 conditionally emit addr32 prefix.
2982 (*rep_mov{si,qi}): Ditto.
2983 (*strset{si,hi,qi}): Ditto.
2984 (*rep_stos{si,qi}): Ditto.
2985 (*cmpstrnqi_nz_1): Ditto.
2986 (*cmpstrnqi_1): Ditto.
2987 (*strlenqi_1): Ditto.
2988
2989 2012-03-07 H.J. Lu <hongjiu.lu@intel.com>
2990
2991 * config/i386/i386.c (function_value_64): Return pointers in
2992 word_mode instead of Pmode.
2993 (ix86_promote_function_mode): Likewise.
2994
2995 2012-03-07 Richard Guenther <rguenther@suse.de>
2996
2997 * coverage.c (get_gcov_type): Use type_for_mode.
2998 (get_gcov_unsigned_t): Likewise.
2999 * expr.c (store_constructor): Use type_for_mode.
3000 (try_casesi): Likewise.
3001 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
3002 (add_standard_iv_candidates): Use standard type trees.
3003 * dojump.c (do_jump): Remove dead code.
3004
3005 2012-03-07 Richard Guenther <rguenther@suse.de>
3006
3007 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
3008
3009 2012-03-07 Richard Guenther <rguenther@suse.de>
3010
3011 * convert.c (strip_float_extensions): Move ...
3012 * tree.c (strip_float_extensions): ... here.
3013
3014 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
3015
3016 PR target/52484
3017 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
3018
3019 2012-03-07 Richard Guenther <rguenther@suse.de>
3020
3021 * omp-low.c (extract_omp_for_data): Use signed_type_for.
3022 (expand_omp_for_generic): Likewise.
3023 (expand_omp_for_static_nochunk): Likewise.
3024 (expand_omp_for_static_chunk): Likewise.
3025 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
3026 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
3027 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3028 Use unsigned_type_for.
3029 (vect_create_cond_for_align_checks): Use signed_type_for.
3030
3031 2012-03-07 Andrey Belevantsev <abel@ispras.ru>
3032
3033 PR rtl-optimization/52203
3034 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
3035 all callers to pass NULL except ...
3036 (reset_sched_cycles_in_current_ebb): ... here, save the value
3037 in new variable 'empty'. Increase issue_rate only for
3038 non-empty insns.
3039
3040 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
3041
3042 PR target/51417
3043 * Makefile.in: Let install-gcc-ar depend on installdirs,
3044 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
3045 Don't double canonicalize if cross-compiling.
3046
3047 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
3048
3049 PR target/52506
3050 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
3051 to: RAMPZ, RAMPY, RAMPX, RAMPD.
3052 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
3053
3054 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
3055
3056 PR target/52505
3057 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
3058 from RAM.
3059 * config/avr/avr.md (xload_8): Adjust insn length.
3060
3061 2012-03-07 Georg-Johann Lay <avr@gjlay.de>
3062
3063 PR target/52461
3064 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
3065 if RAMPZ affects reading from RAM.
3066
3067 2012-03-07 Richard Guenther <rguenther@suse.de>
3068
3069 PR pch/52518
3070 PR pch/38987
3071 * doc/invoke.texi (Precompiled Headers): Remove sentence that
3072 suggests you can include PCHs from inside another header.
3073
3074 2012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
3075
3076 PR middle-end/52515
3077 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
3078
3079 2012-03-07 Kai Tietz <ktietz@redhat.com>
3080
3081 * doc/invoke.texi (fwritable-relocated-rdata): Document
3082 new Cygwin/MinGW target option.
3083 * config/i386/winnt.c (i386_pe_unique_section): Ignore
3084 reloc if flag -fwritable-relocated-rdata is not set.
3085 (i386_pe_section_type_flags): Likewise.
3086 * config/i386/cygming.opt (fwritable-relocated-rdata):
3087 Add new flag variable flag_writable_rel_rdata.
3088
3089 2012-03-07 Richard Guenther <rguenther@suse.de>
3090
3091 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
3092 precision against gimple constraints.
3093
3094 2012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
3095
3096 PR middle-end/52372
3097 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
3098 variables.
3099 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
3100 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
3101 variables.
3102 (init_emit_regs): Move associated initialization to...
3103 (init_emit_once): ...here.
3104
3105 2012-03-06 Richard Henderson <rth@redhat.com>
3106
3107 * config/m68k/m68k.h (ISA_HAS_TAS): New.
3108 * config/m68k/sync.md (atomic_test_and_set): Use it.
3109 (atomic_test_and_set_1): Likewise.
3110
3111 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3112
3113 PR target/50310
3114 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
3115 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
3116 (vector_ltgt<mode>): Likewise.
3117 (vector_ordered<mode>): Likewise.
3118 (vector_unordered<mode>): Likewise.
3119 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
3120
3121 2012-03-06 Aldy Hernandez <aldyh@redhat.com>
3122
3123 * trans-mem.c: New typedef for tm_region_p.
3124 Define vector types for tm_region_p.
3125 (tm_region_init): Replace region_worklist to a vector called
3126 bb_regions.
3127
3128 2012-03-06 Richard Guenther <rguenther@suse.de>
3129
3130 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
3131 MEM_REF with constant pointer operand.
3132
3133 2012-03-06 Richard Guenther <rguenther@suse.de>
3134
3135 PR middle-end/52493
3136 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
3137
3138 2012-03-06 Tristan Gingold <gingold@adacore.com>
3139
3140 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
3141 (external_model_kind): Improve documentation.
3142 (vms_pragma_extern_model): Handle relaxed_redef.
3143 (vms_c_register_pragma): Allow expansion for nomember_alignment.
3144
3145 2012-03-06 Georg-Johann Lay <avr@gjlay.de>
3146
3147 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
3148 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
3149 Some more notes on EIND usage and reorder EIND subsection.
3150
3151 2012-03-06 Tristan Gingold <gingold@adacore.com>
3152
3153 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
3154 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
3155
3156 2012-03-06 Tristan Gingold <gingold@adacore.com>
3157
3158 * config/vms/t-vmsnative (version): Define.
3159 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
3160
3161 2012-03-06 Andrey Belevantsev <abel@ispras.ru>
3162
3163 PR rtl-optimization/52250
3164 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
3165 to put note list into. Unconditionally call move_bb_info.
3166 (move_bb_info): Do not assert the blocks being in the same region,
3167 just drop the note list if they are not.
3168
3169 2012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
3170
3171 PR target/51244
3172 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
3173 and use unified expansion logic.
3174 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
3175 closer to the existing movt insn.
3176 (negc): Rename insn to *negc. Add new expander.
3177 (movnegt): Use xor pattern for T bit negation. Reserve helper
3178 constant for negc pattern.
3179 (*movnegt): New insn and splitter.
3180
3181 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
3182
3183 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
3184 PLUS_EXPR.
3185
3186 2012-03-05 Richard Henderson <rth@redhat.com>
3187
3188 * genemit.c (main): Include "target.h" in insn-emit.c.
3189 * Makefile.in (insn-emit.o): Depend on TARGET_H.
3190 * config/sh/sync.md (atomic_test_and_set): Reference
3191 targetm.atomic_test_and_set_trueval instead of
3192 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
3193
3194 2012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
3195
3196 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
3197 Make static.
3198
3199 2012-03-05 Steven Bosscher <steven@gcc.gnu.org>
3200
3201 * langhooks.c (add_builtin_type): New function.
3202 * langhooks.h (add_builtin_type): Export it.
3203 * config/mep/mep.c (mep_init_builtins): Use it.
3204 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
3205
3206 2012-03-05 Jakub Jelinek <jakub@redhat.com>
3207
3208 PR debug/51902
3209 * tree.h (BLOCK_SAME_RANGE): Define.
3210 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
3211 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
3212 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
3213 isn't equal to supercontext fragment's fragment chain.
3214 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
3215 fragment origin.
3216 (blocks_nreverse_all): Likewise.
3217 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
3218 BLOCK_SUPERCONTEXT to supercontext fragment instead of
3219 supercontext fragment's fragment origin.
3220 * dwarf2out.c (add_high_low_attributes): If stmt has the same
3221 range as its parent (or parents thereof etc.), use the parent's
3222 DW_AT_ranges value instead of creating a new .debug_ranges range.
3223
3224 2012-03-05 Richard Henderson <rth@redhat.com>
3225
3226 PR tree-opt/52242
3227 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
3228 * omp-low.c (expand_omp_atomic): Assume anything aligned to
3229 BIGGEST_ALIGNMENT is aligned.
3230
3231 2012-03-05 Richard Henderson <rth@redhat.com>
3232
3233 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
3234 * config/sh/sh.c: ... here.
3235
3236 2012-03-05 Richard Henderson <rth@redhat.com>
3237
3238 PR target/52481
3239 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
3240 instead of calling negqi2 directly.
3241
3242 2012-03-05 Aldy Hernandez <aldyh@redhat.com>
3243
3244 PR middle-end/52463
3245 * trans-mem.c (tm_region_init): Use last_basic_block.
3246
3247 2012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
3248
3249 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
3250 * config/sh/sync.md (atomic_test_and_set): New expander.
3251 (tasb, atomic_test_and_set_soft): New insns.
3252 * config/sh/sh.opt (menable-tas): New option.
3253 * doc/invoke.texi (SH Options): Document it.
3254
3255 2012-03-05 Richard Guenther <rguenther@suse.de>
3256
3257 * cfgloop.c (verify_loop_structure): Verify dominators before
3258 using them.
3259 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
3260 dominators from here.
3261 * graphite-scop-detection.c (create_sese_edges): Likewise.
3262 * loop-doloop.c (doloop_optimize_loops): Likewise.
3263 * loop-init.c (loop_optimizer_init): Likewise.
3264 * loop-unroll.c (unroll_and_peel_loops): Likewise.
3265 * loop-unswitch.c (unswitch_loops): Likewise.
3266 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
3267 * tree-parloops.c (parallelize_loops): Likewise. Verify
3268 only when checking is enabled.
3269 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
3270
3271 2012-03-05 Bernd Schmidt <bernds@codesourcery.com>
3272
3273 * genautomata.c (parse_automata_opt): New static function.
3274 (initiate_automaton_gen): Remove all option handling code. Remove
3275 argc argument. All callers changed.
3276 (main): Call init_rtx_reader_args_cb with the new function as argument.
3277
3278 2012-03-05 Richard Guenther <rguenther@suse.de>
3279
3280 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
3281 * tree-if-conv.c (combine_blocks): Free post-dominator info
3282 after breaking it.
3283 * tree-parloops.c (create_parallel_loop): Free and re-compute
3284 dominator info after breaking it.
3285
3286 2012-03-05 Richard Guenther <rguenther@suse.de>
3287
3288 PR middle-end/52353
3289 * optabs.h (trapv_unoptab_p): New function.
3290 (trapv_binoptab_p): Likewise.
3291 * optabs.c (expand_binop): Use emit_libcall_block_1 with
3292 a proper equiv_may_trap argument.
3293 (expand_unop): Likewise.
3294 (emit_libcall_block_1): Take extra argument whether the
3295 instruction may trap. Renamed from ...
3296 (emit_libcall_block): ... this. New wrapper.
3297
3298 2012-03-05 Jakub Jelinek <jakub@redhat.com>
3299
3300 PR tree-optimization/51721
3301 * tree-vrp.c (register_edge_assert_for_2): If comparing
3302 lhs of right shift by constant with an integer constant,
3303 add ASSERT_EXPRs for the rhs1 of the right shift.
3304
3305 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
3306
3307 2012-03-05 Richard Guenther <rguenther@suse.de>
3308
3309 * tree.c (integer_zerop): Handle VECTOR_CSTs.
3310 (integer_onep): Likewise.
3311 (integer_all_onesp): Likewise.
3312
3313 2012-03-05 Georg-Johann Lay <avr@gjlay.de>
3314
3315 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
3316
3317 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
3318
3319 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
3320 instead of TARGET_64BIT.
3321
3322 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
3323
3324 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
3325 adjust_stack_insn.
3326
3327 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
3328
3329 * config/i386/i386.c (ix86_print_operand_address): Only handle
3330 zero-extended DImode addresses.
3331
3332 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
3333
3334 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
3335 taken and cputaken as bool.
3336
3337 2012-03-04 Uros Bizjak <ubizjak@gmail.com>
3338
3339 * config/i386/constraints.md (Ya): New internal constraint.
3340 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
3341 (*zero_extendsidi2_rex64): Add x,x alternative.
3342 (*zero_extendsidi2): Ditto. Add o,0 alternative.
3343 Remove flags reg clobber. Adjust corresponding splits.
3344 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
3345 zero_extendqisi2 expanders using SWI12 mode iterator.
3346 (zero_extend<mode>si2_and): Macroize insn from
3347 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
3348 splitters.
3349 (*zero_extend<mode>si2): Macroize insn from
3350 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
3351 (*zero_extend*2_movzbl_and): Remove insn patterns.
3352 (zero_extendqihi2_and): Merge corresponding splitter.
3353 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
3354 (*zero_extend*2_movzbl_and): Remove insn patterns.
3355 (*anddi_1): Split TYPE_IMOVX instructions.
3356 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
3357 (*andhi_1): Ditto.
3358 (and->zext splitter): Add splitter pattern.
3359 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
3360
3361 2012-03-04 Sandra Loosemore <sandra@codesourcery.com>
3362
3363 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
3364 x86-specific text.
3365 (Debugging Options): Likewise.
3366 (Optimize Options): Likewise.
3367 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
3368 with other architectures. Use official processor names with correct
3369 spelling/capitalization. Fix formatting and grammar issues.
3370 (i386 and x86-64 Windows Options): Similar cleanup here.
3371
3372 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
3373
3374 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
3375
3376 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
3377
3378 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
3379 DBX_REGISTER_NUMBER.
3380
3381 2012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
3382
3383 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
3384 operand is CONST_INT. Take COSTS_N_INSNS into account.
3385 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
3386 of shiftcosts.
3387
3388 2012-03-02 Richard Henderson <rth@redhat.com>
3389
3390 * optabs.c (expand_atomic_test_and_set): Honor
3391 atomic_test_and_set_trueval even when atomic_test_and_set
3392 optab is not in use.
3393
3394 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
3395
3396 PR target/48596
3397 PR target/48806
3398 * config/sh/sh.c (sh_register_move_cost): Increase cost between
3399 GENERAL_REGS and FP_REGS for SImode.
3400
3401 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
3402
3403 PR target/49486
3404 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
3405 (absdi2): New expander.
3406 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
3407
3408 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
3409
3410 * config/sh/sync.md (atomic_exchange<mode>): New expander.
3411 (atomic_exchange<mode>_soft): New insn.
3412
3413 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
3414
3415 * config/sh/sync.md: Update copyright notice dates.
3416 (atomic_compare_and_swap<mode>): Use SImode for return value instead
3417 of QImode.
3418 (atomic_compare_and_swap<mode>_soft): Likewise.
3419
3420 2012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
3421
3422 PR target/31640
3423 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
3424 * config/sh/sh.c: Update copyright notice dates.
3425 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
3426 alignment for TARGET_HARD_SH4.
3427 (sh_option_override): Reduce default function alignment. Set
3428 loop alignment to 4 bytes when not optimizing for size.
3429
3430 2012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
3431
3432 PR middle-end/50335
3433 * doc/invoke.texi (floop-flatten): Remove.
3434 * toplev.c (process_options): Remove references to flag_loop_flatten.
3435 * tree-ssa-loop.c (gate_graphite_transform): Same.
3436 * common.opt (floop-flatten): Obsolete.
3437 * graphite-poly.c (apply_poly_transforms): Remove reference to
3438 flag_loop_flatten.
3439 * Makefile.in (graphite-flattening.o): Remove.
3440 * graphite-flattening.c: Remove.
3441
3442 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
3443
3444 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
3445 having mode compatible with the mode of previous compare. Substitute
3446 compare mode of previous compare with the mode, compatible
3447 with eliminated and previous compare.
3448
3449 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
3450
3451 * config/rs6000/dfp.md (floatdidd2): New define_insn.
3452
3453 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
3454
3455 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
3456 compatible with CCGOCmode and CCGCmode.
3457
3458 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
3459
3460 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
3461
3462 2012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
3463
3464 * config/arm/arm.c (arm_sat_operator_match): New function.
3465 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
3466 * config/arm/arm.md ("insn" attribute): Add "sat" value.
3467 ("SAT", "SATrev"): New code iterators.
3468 ("SATlo", "SAThi"): New code iterator attributes.
3469 ("*satsi_<SAT:code>"): New pattern.
3470 ("*satsi_<SAT:code>_shift"): Likewise.
3471 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
3472 and "shift" attributes.
3473 ("arm_usatsihi"): Add "insn" attribute.
3474 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
3475 by powers of two. Do not allow shift by 32.
3476
3477 2012-03-02 Uros Bizjak <ubizjak@gmail.com>
3478
3479 PR target/46716
3480 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
3481 to pass the argument in the register of "natural" mode.
3482
3483 2012-03-02 Richard Guenther <rguenther@suse.de>
3484
3485 PR tree-optimization/52406
3486 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
3487 (struct indices): Add unconstrained_base member.
3488 (struct dr_alias): Remove unused vops member.
3489 (DR_UNCONSTRAINED_BASE): New define.
3490 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
3491 add indices to allow their disambiguation. Make DR_BASE_OBJECT
3492 be an artificial access that covers the whole indexed object,
3493 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
3494 plain decl base-objects to their MEM_REF variant.
3495 (dr_may_alias_p): When the base-object of either data reference
3496 has unknown size use only points-to information.
3497 (compute_affine_dependence): Make dumps easier to read and
3498 more verbose.
3499 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
3500 DR_REF when looking for packed references.
3501 (vect_supportable_dr_alignment): Likewise.
3502
3503 2012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
3504
3505 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
3506 Improve conditions for peepholes of loads followed by commutative
3507 operators.
3508 * config/arm/ldmstm.md: Regenerated.
3509
3510 2012-03-02 Richard Guenther <rguenther@suse.de>
3511
3512 * BASE-VER: Set to 4.8.0.
3513
3514 2012-03-01 Richard Earnshaw <rearnsha@arm.com>
3515
3516 * config.gcc (obsolete): Add all ARM targets using the FPA.
3517 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
3518 * doc/install.texi: Avoid references to obsolete ARM ports.
3519
3520 2012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
3521
3522 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
3523
3524 2012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
3525 Joern Rennecke <joern.rennecke@embecosm.com>
3526
3527 * doc/extend.texi: Expand and update information on interrupt
3528 attribute for Epiphany.
3529
3530 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
3531
3532 * config/sh/sh-protos.h: Update copyright notice dates.
3533 * config/sh/sh.h: Likewise.
3534 * config/sh/sh.md: Likewise.
3535 * config/sh/constraints.md: Likewise.
3536 * config/sh/predicates.md: Likewise.
3537
3538 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
3539
3540 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
3541 * config/sh/sh.c (tertiary_reload_operand): Likewise.
3542
3543 2012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
3544
3545 * config/sh/constraints.md: Fix comment typo.
3546
3547 2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3548
3549 PR target/52408
3550 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
3551 unsigned HOST_WIDE_INT.
3552 (zvdep_imm64): Likewise.
3553 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
3554 (vdepi_and): Likewise.
3555 Likewise for unamed 64-bit patterns.
3556 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
3557
3558 2012-03-01 Alexandre Oliva <aoliva@redhat.com>
3559
3560 PR debug/52001
3561 PR rtl-optimization/52417
3562 * cselib.c (cselib_any_perm_equivs): New variable.
3563 (cselib_reset_table): Check that it's not set when not
3564 preserving constants.
3565 (cselib_add_permanent_equiv): Set it.
3566 (cselib_have_permanent_equivalences): New.
3567 (cselib_init, cselib_finish): Reset it.
3568 * cselib.h (cselib_have_permanent_equivalences): Declare.
3569 * alias.c (get_addr): Restore earlier behavior when there
3570 aren't permanent equivalences.
3571
3572 2012-03-01 Steven Bosscher <steven@gcc.gnu.org>
3573
3574 * config/mn10300/mn10300-modes.def: Fix copyright notice.
3575 * config/v850/v850-modes.def: Fix copyright notice.
3576
3577 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
3578
3579 * doc/extend.texi (AVR Built-in Functions): Document
3580 __builtin_avr_flash_segment.
3581
3582 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
3583 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
3584 (*split.flash_segment): New insn-and-split.
3585 * config/avr/avr.c (avr_init_builtins): Add local variables:
3586 const_memx_void_node, const_memx_ptr_type_node,
3587 char_ftype_const_memx_ptr.
3588
3589 2012-03-01 Jakub Jelinek <jakub@redhat.com>
3590
3591 PR tree-optimization/52445
3592 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
3593 add ssa_name_ver, offset and size fields and change store field
3594 to bool.
3595 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
3596 (add_or_mark_expr): Likewise. Only consider previous stores
3597 with the same size and offset.
3598 (nt_init_block): Only look at gimple_assign_single_p stmts,
3599 doesn't look at rhs2.
3600
3601 2012-03-01 Richard Guenther <rguenther@suse.de>
3602
3603 PR middle-end/52443
3604 * tree-cfg.c (verify_gimple_assign_unary): Allow any
3605 conversions from integral types to pointer types.
3606
3607 2012-03-01 Georg-Johann Lay <avr@gjlay.de>
3608
3609 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
3610 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
3611 unintentionally removed in r184616.
3612
3613 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
3614
3615 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
3616 3DNow from bdver1.
3617
3618 2012-02-29 Jakub Jelinek <jakub@redhat.com>
3619 Uros Bizjak <ubizjak@gmail.com>
3620
3621 PR target/52437
3622 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
3623 alternatives, add "e" constraint to the new last alternative
3624 and ! to last 3 alternatives.
3625
3626 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
3627
3628 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
3629 DW_AT_artificial attributes at the end of the processing.
3630 (gen_array_type_die): Likewise.
3631 (gen_enumeration_type_die): Likewise.
3632 (gen_struct_or_union_type_die): Likewise.
3633 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
3634 the parent type.
3635
3636 2012-02-29 Jakub Jelinek <jakub@redhat.com>
3637
3638 PR middle-end/52419
3639 * expr.c (expand_assignment): If doing misaligned store that doesn't
3640 cover all mode bits, perform a RMW cycle.
3641
3642 PR tree-optimization/52429
3643 * tree-parloops.c (separate_decls_in_region_debug): Return early
3644 if var is LABEL_DECL.
3645
3646 2012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3647
3648 PR tree-optimization/52424
3649 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
3650 calling dom_thread_across_edge.
3651
3652 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
3653
3654 * config/avr/avr.c: Move definition of TARGET macros to end of file.
3655
3656 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
3657
3658 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
3659 * config/avr/avr.c (avr_output_bld): Remove unused function.
3660 (avr_out_sbxx_branch): Use "%T" to print bit position.
3661
3662 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
3663
3664 * config/avr/avr.md: Untabify.
3665
3666 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
3667
3668 * config/avr/avr.md (eqne): New code iterator.
3669 (*dec-and-branchsi): Use it in text peephole's condition.
3670 (*dec-and-branchhi): Ditto.
3671 (*dec-and-branchqi): Ditto.
3672
3673 2012-02-29 Georg-Johann Lay <avr@gjlay.de>
3674
3675 PR target/49939
3676 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
3677 the device does not have the skip-bug.
3678
3679 2012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
3680
3681 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
3682 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
3683 -mpretend-cmove): New.
3684
3685 2012-02-29 Jakub Jelinek <jakub@redhat.com>
3686
3687 PR bootstrap/52397
3688 * df.h (struct df_d): Adjust comment that hard_regs_live_count
3689 doesn't count DEBUG_INSN refs.
3690 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
3691 for DEBUG_INSN refs.
3692
3693 2012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3694
3695 Partially revert:
3696
3697 2012-02-20 Richard Guenther <rguenther@suse.de>
3698 PR tree-optimization/52298
3699 * tree-vect-stmts.c (vectorizable_load): Properly use
3700 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
3701 outer loops.
3702
3703 2012-02-28 Aldy Hernandez <aldyh@redhat.com>
3704
3705 PR middle-end/51752
3706 * gimple.h (gimple_in_transaction): New.
3707 (gimple_set_in_transaction): New.
3708 (struct gimple_statement_base): Add in_transaction field.
3709 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
3710 transaction loads.
3711 (tree_ssa_lim_initialize): Compute transaction bits.
3712 * tree.h (compute_transaction_bits): Protoize.
3713 * trans-mem.c (tm_region_init): Use the heap to store BB
3714 auxilliary data.
3715 (compute_transaction_bits): New.
3716
3717 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3718
3719 * gcc.c (display_help): Document --help=common and sort entries
3720 alphabetically.
3721
3722 2012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3723
3724 * doc/install.texi: Document check-$LANG specific shortcuts
3725
3726 2012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
3727
3728 PR target/51534
3729 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
3730 and vcgtu.
3731 * config/arm/arm_neon.h: Regenerate.
3732 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
3733 (neon_vcgeu): New insn.
3734 (neon_vcgtu): Likewise.
3735 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
3736 (ops): Unsigned comparison intrinsics call a different builtin.
3737
3738 2012-02-28 Richard Guenther <rguenther@suse.de>
3739
3740 PR target/52407
3741 * config/i386/i386.c (ix86_expand_vector_set): Fix element
3742 ordering for the VEC_CONCAT for two element vectors for
3743 V2SFmode, V2SImode and V2DImode.
3744
3745 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
3746
3747 PR target/49448
3748 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
3749 detecting big-endian triplets.
3750
3751 2012-02-28 Richard Earnshaw <rearnsha@arm.com>
3752
3753 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
3754 mode if there is no type information available.
3755
3756 2012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
3757
3758 PR tree-optimization/53207
3759 * doc/invoke.texi: Document as experimental and relying on graphite.
3760
3761 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
3762
3763 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
3764 of initializer to changes from r184614.
3765
3766 2012-02-28 Richard Guenther <rguenther@suse.de>
3767
3768 PR tree-optimization/52395
3769 * tree-sra.c (build_ref_for_offset): Also look at the base
3770 TYPE_ALIGN when figuring out the alignment of the replacement.
3771
3772 2012-02-28 Richard Guenther <rguenther@suse.de>
3773
3774 PR tree-optimization/52402
3775 * ipa-prop.c (ipa_modify_call_arguments): Properly use
3776 mis-aligned types when creating the accesses at the call site.
3777
3778 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
3779
3780 * config/avr/builtins.def: New file.
3781 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
3782 * config/avr/avr.c (enum avr_builtin_id): Use it.
3783 (avr_init_builtins): Use it. And use avr_bdesc.
3784 (bdesc_1arg): Remove.
3785 (bdesc_2arg): Remove.
3786 (bdesc_3arg): Remove.
3787 (struct avr_builtin_description): Add field n_args.
3788 (avr_bdesc): New static variable using builtins.def.
3789 (avr_expand_builtin): Use it.
3790 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
3791 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
3792 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
3793
3794 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
3795
3796 PR target/52148
3797 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
3798 match only one single hard register with respective hard reg rtx.
3799 (movmemx_<mode>): Ditto.
3800 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
3801 insn anatomy of movmem[x]_<mode>.
3802 (avr_out_movmem): Same for printing assembler and operand usage.
3803
3804 2012-02-28 Georg-Johann Lay <avr@gjlay.de>
3805
3806 PR target/49868
3807 PR target/52261
3808 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
3809 address spaces located outside of device flash.
3810
3811 * config/avr/avr.h (base_arch_s): Remove field n_segments.
3812 (mcu_type_s): Add field n_flash.
3813 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
3814 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
3815 (AVR_MCU): Add N_FLASH argument.
3816 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
3817 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
3818 macro __FLASH<n> if that address space makes sense for the device.
3819 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
3820 outside of target flash.
3821 (avr_asm_named_section): Ditto.
3822 (avr_asm_select_section): Ditto.
3823 (avr_addr_space_convert): Ditto.
3824 (avr_emit_movmemhi): Ditto.
3825 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
3826 address space is outside of device flash.
3827 (avr_insert_attributes): Ditto.
3828 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
3829 avr_current_arch->n_segments.
3830
3831 2012-02-27 H.J. Lu <hongjiu.lu@intel.com>
3832
3833 PR target/52352
3834 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
3835 (*movabs<mode>_2): Likewise.
3836
3837 2012-02-27 Jakub Jelinek <jakub@redhat.com>
3838
3839 PR target/52375
3840 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
3841 s_register_operand in the test instead of REG_P. Don't call
3842 gen_reg_rtx if it won't be used.
3843
3844 PR tree-optimization/52376
3845 * ipa-split.c (split_function): Ignore CLOBBER stmts.
3846
3847 2012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
3848
3849 * ifcvt.c (noce_get_condition): Check condition variable is not
3850 small_register_classes_for_mode_p before accepting.
3851
3852 2012-02-27 Uros Bizjak <ubizjak@gmail.com>
3853
3854 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
3855
3856 2012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
3857
3858 Revert:
3859 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
3860 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
3861 tuning parameters.
3862 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
3863
3864 2012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
3865
3866 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
3867
3868 2012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
3869
3870 * config/sh/predicates.md: Remove blank lines.
3871 * config/sh/sh.c: Fix typos in comments.
3872 * config/sh/constraints.md: Likewise.
3873 * config/sh/sh.md: Remove blank lines.
3874 Fix typos in comments. Use ;; as comment characters.
3875
3876 2012-02-26 Walter Lee <walt@tilera.com>
3877
3878 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
3879 (replace_mov_pcrel_step2): Ditto.
3880
3881 2012-02-25 Alexandre Oliva <aoliva@redhat.com>
3882
3883 PR debug/52001
3884 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
3885 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
3886 and locs that reference values newer than the non-canonical value
3887 at hand. Return the canonical value as a worst case.
3888 (memrefs_conflict_p): Walk canonical value's locs.
3889
3890 PR debug/52001
3891 * cselib.c (preserve_only_constants): Rename to...
3892 (preserve_constants_and_equivs): ... this. Split out...
3893 (invariant_or_equiv_p): ... this. Preserve plus expressions
3894 of other preserved expressions too.
3895 (cselib_reset_table): Adjust.
3896 * var-tracking.c (reverse_op): Use canonical value to build
3897 reverse operation.
3898
3899 2012-02-23 Kai Tietz <ktietz@redhat.com>
3900
3901 * config/i386/i386.c (ix86_delegitimize_address): Handle
3902 UNSPEC_PCREL plus displacement.
3903
3904 2012-02-24 Georg-Johann Lay <avr@gjlay.de>
3905
3906 PR target/52261
3907 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
3908 to test for unusedness in st X addressing.
3909
3910 2012-02-24 Richard Guenther <rguenther@suse.de>
3911
3912 PR middle-end/52361
3913 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
3914 (is_gimple_reg_type): Move inline ...
3915 * gimple.h (is_gimple_reg_type): ... here.
3916
3917 2012-02-24 Richard Guenther <rguenther@suse.de>
3918
3919 PR middle-end/52361
3920 * passes.c (execute_function_todo): When verifying SSA form
3921 verify gimple form first.
3922 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
3923
3924 2012-02-24 Richard Guenther <rguenther@suse.de>
3925
3926 PR middle-end/52355
3927 * fold-const.c (fold_addr_of_array_ref_difference): New function.
3928 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
3929
3930 2012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3931
3932 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
3933
3934 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3935
3936 * tree-phinodes.c (make_phi_node): Mark static.
3937 * tree-flow.h (make_phi_node): Remove extern decl.
3938 * doc/gimple.texi (make_phi_node): Remove documentation.
3939
3940 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3941
3942 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
3943 * tree-ssa-sccvn.c (print_scc): Ditto.
3944
3945 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3946
3947 * doc/passes.texi (Full redundancy elimination): Fix typo.
3948
3949 2012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3950
3951 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
3952
3953 2012-02-23 Eric Botcazou <ebotcazou@adacore.com>
3954
3955 PR bootstrap/52287
3956 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
3957
3958 2012-02-23 Uros Bizjak <ubizjak@gmail.com>
3959
3960 PR c/52290
3961 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
3962
3963 2012-02-23 Georg-Johann Lay <avr@gjlay.de>
3964
3965 * config/avr/avr.md (code_stdname): Add ior, xor.
3966 (xior): New code iterator.
3967 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
3968 (*<code_stdname><mode>qi.byte1-3): Ditto.
3969
3970 2012-02-23 Jakub Jelinek <jakub@redhat.com>
3971
3972 PR tree-optimization/52019
3973 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
3974 CLOBBER stmts.
3975
3976 2012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3977
3978 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
3979 HAVE_INITFINI_ARRAY to work around namespace pollution in
3980 certain versions of newlib system headers.
3981 * config.in: Regenerate.
3982 * configure: Regenerate.
3983 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
3984 instead of HAVE_INITFINI_ARRAY.
3985
3986 2012-02-22 Uros Bizjak <ubizjak@gmail.com>
3987
3988 PR target/52330
3989 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
3990 is not offsettable memory reference.
3991
3992 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
3993
3994 PR target/18145
3995 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
3996 setting avr_need_clear_bss_p for __gnu_lto* symbols.
3997
3998 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
3999
4000 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
4001 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
4002
4003 2012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4004
4005 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
4006 library on Solaris 8 even without TLS support.
4007 * configure: Regenerate.
4008
4009 2012-02-22 Richard Guenther <rguenther@suse.de>
4010
4011 PR middle-end/52329
4012 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
4013 for GIMPLE_DEBUG stmts.
4014
4015 2012-02-22 Martin Jambor <mjambor@suse.cz>
4016
4017 PR middle-end/51782
4018 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
4019 according to the base object.
4020
4021 2012-02-22 Georg-Johann Lay <avr@gjlay.de>
4022
4023 PR rtl-optimization/50063
4024 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
4025 and 2 (8-bit SP) in operand 2.
4026 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
4027 setup to use movhi_sp_r instead of vanilla move to write SP.
4028 Adjust REG_CFA notes to superseed unspec.
4029 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
4030 of vanilla move.
4031 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
4032 known to be off) only with TARGET_NO_INTERRUPTS. Never use
4033 irq_state 1 (IRQ known to be on) here.
4034
4035 2012-02-21 Bernd Schmidt <bernds@codesourcery.com>
4036
4037 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
4038 WORDS_BIG_ENDIAN.
4039 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
4040 assign_hard_reg): Likewise.
4041
4042 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
4043
4044 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
4045
4046 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
4047
4048 * config/avr/avr.md
4049 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
4050 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
4051
4052 2012-02-21 Georg-Johann Lay <avr@gjlay.de>
4053
4054 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
4055 prototype from here to...
4056 * config/avr/avr.h: ...here.
4057
4058 2012-02-21 Richard Earnshaw <rearnsha@arm.com>
4059
4060 PR target/52294
4061 * thumb2.md (thumb2_shiftsi3_short): Split register and
4062 immediate shifts. For register shifts tie operands 0 and 1.
4063 (peephole2 for above): Check that register-controlled shifts
4064 have suitably tied operands.
4065
4066 2012-02-21 Quentin Neill <quentin.neill@amd.com>
4067
4068 PR target/52137
4069 * config/i386/bdver1.md (bdver1_call, bdver1_push,
4070 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
4071 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
4072 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
4073 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
4074 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
4075 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
4076 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
4077 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
4078 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
4079 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
4080 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
4081 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
4082 bdver1_ssevector_avx256_unaligned_load,
4083 bdver1_ssevector_sse128_unaligned_load,
4084 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
4085 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
4086 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
4087 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
4088 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
4089 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
4090 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
4091 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
4092 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
4093 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
4094 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
4095 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
4096 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
4097 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
4098 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
4099 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
4100 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
4101 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
4102 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
4103 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
4104 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
4105 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
4106 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
4107 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
4108 bdver1_ssediv_double_load, bdver1_ssediv_double,
4109 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
4110 Add "bdver2" attribute.
4111
4112 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4113
4114 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
4115 default if possible and not specified otherwise.
4116
4117 2012-02-21 Richard Guenther <rguenther@suse.de>
4118
4119 PR middle-end/52314
4120 * gimplify.c (create_tmp_from_val): Use the main variant type
4121 for the type of the temporary we create.
4122
4123 2012-02-21 Richard Guenther <rguenther@suse.de>
4124
4125 PR tree-optimization/52324
4126 * gimplify.c (gimplify_expr): When re-gimplifying expressions
4127 do not gimplify a MEM_REF address operand if it is already
4128 in suitable form.
4129
4130 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4131
4132 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
4133 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
4134
4135 2012-02-21 Richard Guenther <rguenther@suse.de>
4136
4137 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
4138 nested_in_vect_loop.
4139
4140 2012-02-21 Jakub Jelinek <jakub@redhat.com>
4141
4142 PR tree-optimization/52318
4143 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
4144 vdef also to non-pure/const call stmts in the sequence.
4145
4146 2012-02-21 Tristan Gingold <gingold@adacore.com>
4147
4148 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
4149
4150 2012-02-20 David S. Miller <davem@davemloft.net>
4151
4152 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
4153 don't use the "rd %pc" instruction on v9 for PIC register loads.
4154
4155 2012-02-20 Aldy Hernandez <aldyh@redhat.com>
4156
4157 PR middle-end/52141
4158 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
4159 in a transaction safe function.
4160
4161 2012-02-20 Kai Tietz <ktietz@redhat.com>
4162
4163 PR target/52238
4164 * stor-layout.c (place_field): Handle desired_align for
4165 ms-bitfields, too.
4166
4167 2012-02-20 Richard Guenther <rguenther@suse.de>
4168
4169 PR tree-optimization/52298
4170 * tree-vect-stmts.c (vectorizable_store): Properly use
4171 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
4172 outer loops.
4173 (vectorizable_load): Likewise.
4174 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
4175 Access DR_STEP after ensuring it is not NULL.
4176
4177 2012-02-20 Jakub Jelinek <jakub@redhat.com>
4178
4179 PR tree-optimization/52286
4180 * fold-const.c (fold_binary_loc): For (X & C1) | C2
4181 optimization use double_int_to_tree instead of build_int_cst_wide,
4182 rewrite to use double_int vars.
4183
4184 2012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4185
4186 PR target/50166
4187 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
4188 Define _start.
4189 Remove -e 0 from $gcc_cv_ld invocation.
4190 Only use __GLIBC_PREREQ if defined.
4191 Enable on Solaris since Solaris 8 patch.
4192 (gcc_SUN_LD_VERSION): New macro.
4193 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
4194 gcc_SUN_LD_VERSION for version number format.
4195 * configure: Regenerate.
4196 * varasm.c (get_elf_initfini_array_priority_section): Set
4197 SECTION_NOTYPE for non-default priority.
4198 Use get_section instead of get_unnamed_section to emit
4199 .init_array/.fini_array with default priority.
4200
4201 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
4202
4203 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
4204 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
4205 (mips_start_unique_function, mips_output_mips16_rdhwr)
4206 (mips_code_end): New functions.
4207 (TARGET_ASM_CODE_END): Define.
4208
4209 2012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
4210
4211 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
4212 to stubs with non-sibling calls.
4213
4214 2012-02-18 Sandra Loosemore <sandra@codesourcery.com>
4215
4216 * doc/invoke.texi (-fira-* options): Copy-edit.
4217 (ira-* parameters): Copy-edit.
4218
4219 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
4220
4221 * doc/invoke.texi: Minor copy-edits to bring into conformance with
4222 GCC coding conventions.
4223
4224 2012-02-17 Sandra Loosemore <sandra@codesourcery.com>
4225
4226 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
4227 when used as adjectives.
4228
4229 2012-02-16 Sandra Loosemore <sandra@codesourcery.com>
4230
4231 * doc/invoke.texi: Clean up "that"/"which" confusion.
4232
4233 2012-02-17 Steven Bosscher <steven@gcc.gnu.org>
4234
4235 * system.h: Poison SMALL_REGISTER_CLASSES
4236 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
4237 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
4238
4239 2012-02-16 Jakub Jelinek <jakub@redhat.com>
4240
4241 PR tree-optimization/52285
4242 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
4243 when deciding if a call is a tail call or tail recursion.
4244
4245 2012-02-16 Kai Tietz <ktietz@redhat.com>
4246
4247 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
4248 interger-constant displacement for UNSPEC_PCREL.
4249
4250 2012-02-16 Jakub Jelinek <jakub@redhat.com>
4251
4252 PR rtl-optimization/52208
4253 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
4254 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
4255
4256 PR tree-optimization/52255
4257 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
4258 loop->header has virtual PHI, but exit_e->dest doesn't, add
4259 virtual PHI to exit_e->dest and adjust all uses after the loop.
4260
4261 PR debug/52260
4262 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
4263 children with clone_tree_hash, not after it.
4264
4265 2012-02-16 Iain Sandoe <iains@gcc.gnu.org>
4266
4267 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
4268 extended identifiers.
4269
4270 2012-02-16 Jakub Jelinek <jakub@redhat.com>
4271
4272 PR middle-end/51929
4273 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
4274 a same_body_alias, also test whether e->callee isn't a former
4275 or current clone of the decl this is a same body alias of.
4276
4277 PR translation/52264
4278 * cgraphunit.c (verify_cgraph_node): Fix a typo.
4279
4280 2012-02-15 Sandra Loosemore <sandra@codesourcery.com>
4281
4282 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
4283
4284 2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
4285
4286 PR target/52199
4287 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
4288 force_reg instead of copy_to_reg for better optimization. Force
4289 non-register or memory operands into a register.
4290
4291 2012-02-15 Andrew MacLeod <amacleod@redhat.com>
4292
4293 * extend.texi: Reserve upper bits of memory model for future use.
4294
4295 2012-01-15 Georg-Johann Lay <avr@gjlay.de>
4296 Anatoly Sokolov <aesok@post.ru>
4297 Eric Weddington <eric.weddington@atmel.com>
4298
4299 PR target/52261
4300 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
4301 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
4302 Rewrite initializers for .macro.
4303 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
4304 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
4305 atxmega32d4, atxmega32x1.
4306 avrxmega4: atxmega64a3, atxmega64d3.
4307 avrxmega5: atxmega64a1, atxmega64a1u.
4308 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
4309 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
4310 avrxmega7: atxmega128a1, atxmega128a1u.
4311 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
4312 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
4313 (struct base_arch_s): Rename reserved to xmega_p.
4314 Rename reserved2 to have_rampd.
4315 (AVR_XMEGA): New define.
4316 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
4317 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
4318 * config/avr/predicates.md (io_address_operand): Take into
4319 account SFR offset.
4320 (low_io_address_operand): Ditto.
4321 (high_io_address_operand): Ditto.
4322 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
4323 (enabled, movhi_sp_r): Use them.
4324 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
4325 cpp_define_formatted to built-in define __AVR_ARCH__.
4326 (__AVR_XMEGA__): New built-in define.
4327 (__AVR_HAVE_RAMPD__): New built-in define.
4328 (__AVR_HAVE_RAMPX__): New built-in define.
4329 (__AVR_HAVE_RAMPY__): New built-in define.
4330 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
4331
4332 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
4333 (avr_option_override): Initialize them.
4334 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
4335 (avr_init_expanders): Initialize them. No more block several calls.
4336 (emit_push_sfr): New static function.
4337 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
4338 Handle AVR_XMEGA.
4339 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
4340 (avr_print_operand): Print addreeses as symbols for
4341 RAMPX, RAMPY, RAMPD, CCP.
4342 (output_movhi): Handle AVR_XMEGA when writing to SP.
4343 (avr_out_movhi_mr_r_xmega): New static function.
4344 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
4345 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
4346 __RAMPD__, __CCP__ as needed.
4347
4348 * config/avr/multilib.h: Regenerate.
4349 * config/avr/t-multilib: Regenerate.
4350 * config/avr/avr-tables.opt: Regenerate.
4351
4352 2012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
4353
4354 PR tree-optimization/50561
4355 * graphite-flattening.c (lst_project_loop): Do not
4356 remove old scattering dimensions after flattening.
4357 (lst_do_flatten): Likewise.
4358
4359 2012-02-15 Georg-Johann Lay <avr@gjlay.de>
4360
4361 * doc/extend.texi (AVR Built-in Functions): Remove doc for
4362 __builtin_avr_map8, __builtin_avr_map16.
4363 Document __builtin_avr_insert_bits.
4364
4365 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
4366 (insert_bits): New insn.
4367 (adjust_len.map_bits): Rename to insert_bits.
4368 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
4369 * avr-protos.h (avr_out_map_bits): Remove.
4370 (avr_out_insert_bits, avr_has_nibble_0xf): New.
4371 * config/avr/constraints.md (Cxf,C0f): New.
4372 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
4373 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
4374 New built-in define __BUILTIN_AVR_INSERT_BITS.
4375 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
4376 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
4377 (avr_move_bits): Rewrite.
4378 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
4379 functions.
4380 (avr_map_op_t): New typedef.
4381 (avr_map_op): New static variable.
4382 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
4383 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
4384 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
4385 (bdesc_3arg, avr_expand_triop_builtin): New.
4386 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
4387 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
4388 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
4389 (avr_map_equal_p, avr_map_sig_p): Remove.
4390 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
4391 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
4392 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
4393 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
4394 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
4395 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
4396
4397 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
4398
4399 * config/c6x/c6x.md (reserve_cycles): New attribute.
4400 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
4401 don't reserve functional units after the branch occurs.
4402
4403 2012-02-14 Aldy Hernandez <aldyh@redhat.com>
4404
4405 PR middle-end/52142
4406 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
4407 functions into non-tm_pure functions.
4408
4409 2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
4410
4411 PR lto/52178
4412 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
4413 (iterative_hash_canonical_type): Likewise.
4414 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
4415 the dead edges.
4416
4417 2012-02-14 Bernd Schmidt <bernds@codesourcery.com>
4418
4419 * haifa-sched.c (prune_ready_list): Ensure that if there is a
4420 sched-group insn, it either remains alone or the entire list is pruned.
4421
4422 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
4423
4424 * doc/install.texi (Prerequisites): Fix grammar.
4425 (Configuration): Likewise.
4426
4427 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
4428
4429 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
4430 MPC as part of GCC before describing configuring with --with-gmp etc.
4431 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
4432 sources are present.
4433
4434 2012-02-14 Jakub Jelinek <jakub@redhat.com>
4435
4436 PR debug/51950
4437 * dwarf2out.c (clone_tree_hash): New function.
4438 (copy_decls_walk): Use it instead of clone_tree.
4439
4440 2012-02-14 Richard Guenther <rguenther@suse.de>
4441
4442 PR tree-optimization/52244
4443 PR tree-optimization/51528
4444 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
4445 replacements for integral types.
4446
4447 2012-02-14 Walter Lee <walt@tilera.com>
4448
4449 * config.gcc: Handle tilegx and tilepro.
4450 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
4451 tilegx and tilepro.
4452 Add HAVE_AS_TLS check for tilegx and tilepro.
4453 * configure: Regenerate.
4454 * doc/contrib.texi: Add Mat Hostetter and self.
4455 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
4456 Document instruction intrinsics and network accessing intrinsics.
4457 (TILEPro Built-in Functions): New node. Document instruction
4458 intrinsics and network accessing intrinsics.
4459 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
4460 (Specific, tilepro-*-linux*): Likewise.
4461 * doc/invoke.texi (TILE-Gx Options): New section.
4462 (TILEPro Options): New section.
4463 * doc/md.texi (TILE-Gx): New section.
4464 (TILEPro): New section.
4465 * common/config/tilegx/tilegx-common.c: New file.
4466 * common/config/tilepro/tilepro-common.c: New file.
4467 * config/tilegx/constraints.md: New file.
4468 * config/tilegx/linux.h: New file.
4469 * config/tilegx/mul-tables.c: New file.
4470 * config/tilegx/predicates.md: New file.
4471 * config/tilegx/sync.md: New file.
4472 * config/tilegx/t-tilegx: New file.
4473 * config/tilegx/tilegx-builtins.h: New file.
4474 * config/tilegx/tilegx-c.c: New file.
4475 * config/tilegx/tilegx-generic.md: New file.
4476 * config/tilegx/tilegx-modes.def: New file.
4477 * config/tilegx/tilegx-multiply.h: New file.
4478 * config/tilegx/tilegx-protos.h: New file.
4479 * config/tilegx/tilegx.c: New file.
4480 * config/tilegx/tilegx.h: New file.
4481 * config/tilegx/tilegx.md: New file.
4482 * config/tilegx/tilegx.opt: New file.
4483 * config/tilepro/constraints.md: New file.
4484 * config/tilepro/gen-mul-tables.cc: New file.
4485 * config/tilepro/linux.h: New file.
4486 * config/tilepro/mul-tables.c: New file.
4487 * config/tilepro/predicates.md: New file.
4488 * config/tilepro/t-tilepro: New file.
4489 * config/tilepro/tilepro-builtins.h: New file.
4490 * config/tilepro/tilepro-c.c: New file.
4491 * config/tilepro/tilepro-generic.md: New file.
4492 * config/tilepro/tilepro-modes.def: New file.
4493 * config/tilepro/tilepro-multiply.h: New file.
4494 * config/tilepro/tilepro-protos.h: New file.
4495 * config/tilepro/tilepro.c: New file.
4496 * config/tilepro/tilepro.h: New file.
4497 * config/tilepro/tilepro.md: New file.
4498 * config/tilepro/tilepro.opt: New file.
4499
4500 2012-02-14 Jakub Jelinek <jakub@redhat.com>
4501
4502 PR tree-optimization/52210
4503 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
4504 vect_model_simple_cost with two entry vect_def_type array instead
4505 of an address of dt.
4506
4507 2012-02-14 Richard Guenther <rguenther@suse.de>
4508
4509 PR lto/52178
4510 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
4511 Do not stream DECL_QUALIFIER.
4512 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
4513 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
4514 (find_decls_types_r): Do not walk DECL_QUALIFIER.
4515
4516 2012-02-14 Jakub Jelinek <jakub@redhat.com>
4517
4518 PR c/52181
4519 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
4520 newdecl.
4521
4522 2012-02-13 Jakub Jelinek <jakub@redhat.com>
4523
4524 PR bootstrap/52172
4525 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
4526 * cselib.c (cselib_subst_to_values_from_insn): New function.
4527 * sched-deps.c (add_insn_mem_dependence,
4528 sched_analyze_1, sched_analyze_2): Use it.
4529
4530 2012-02-13 Jan Hubicka <jh@suse.cz>
4531
4532 PR middle-end/52214
4533 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
4534
4535 2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
4536
4537 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
4538 (GTM_SELF_SPECS): Define if not already defined.
4539 (driver_self_specs): Add GTM_SELF_SPECS.
4540 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
4541 (GTM_SELF_SPECS): Define.
4542 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
4543 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
4544
4545 2012-02-13 Jakub Jelinek <jakub@redhat.com>
4546
4547 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
4548 away if seen.
4549
4550 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
4551
4552 PR middle-end/52230
4553 * omp-low.c (expand_omp_for): If a static schedule without chunk size
4554 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
4555
4556 2012-02-13 Andrew MacLeod <amacleod@redhat.com>
4557
4558 PR c/52190
4559 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
4560
4561 2012-02-13 Richard Guenther <rguenther@suse.de>
4562
4563 PR translation/52211
4564 * passes.c (enable_disable_pass): Fix typo.
4565
4566 2012-02-13 Jakub Jelinek <jakub@redhat.com>
4567
4568 PR middle-end/52209
4569 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
4570 XOR for reduce_bit_field if type is unsigned.
4571
4572 2012-02-12 Eric Botcazou <ebotcazou@adacore.com>
4573
4574 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
4575 disallow changes from SFmode to mode with different size in FP regs.
4576
4577 2012-02-12 Robert Millan <rmh@gnu.org>
4578 Gerald Pfeifer <gerald@pfeifer.com>
4579
4580 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
4581 Tweak comment.
4582
4583 2012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
4584
4585 PR rtl-optimization/52175
4586 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
4587 to frame-related instructions.
4588
4589 2012-02-10 Jason Merrill <jason@redhat.com>
4590
4591 PR c++/51910
4592 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
4593 (demangle_new_symbols): Fill it.
4594 (scan_linker_output): Walk it.
4595 (start_tweaking): Split out from scan_linker_output.
4596 (maybe_tweak): Update sym->chosen.
4597 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
4598
4599 2012-02-11 Jakub Jelinek <jakub@redhat.com>
4600
4601 PR debug/52132
4602 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
4603
4604 2012-02-11 Uros Bizjak <ubizjak@gmail.com>
4605
4606 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
4607 having the same mode as previous compare.
4608
4609 2012-02-10 Eric Botcazou <ebotcazou@adacore.com>
4610
4611 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
4612 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
4613 (nonlocal_goto_internal): Likewise.
4614 (nonlocal_goto): Emit a use and an indirect jump directly.
4615
4616 2012-02-10 Andrew MacLeod <amacleod@redhat.com>
4617
4618 PR c/52190
4619 * doc/extend.texi : Update comments for __atomic_compare_exchange and
4620 __atomic_{is,always}_lock_free.
4621
4622 2012-02-10 Uros Bizjak <ubizjak@gmail.com>
4623
4624 PR target/52146
4625 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
4626 negative constant address for TARGET_X32.
4627
4628 2012-02-10 Richard Henderson <rth@redhat.com>
4629
4630 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
4631 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
4632 for GIMPLE_TRANSACTION. Tidy if's into a switch.
4633
4634 2012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4635 Ira Rosen <irar@il.ibm.com>
4636
4637 PR tree-optimization/50031
4638 * targhooks.c (default_builtin_vectorization_cost): Handle
4639 vec_promote_demote.
4640 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
4641 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
4642 all types of reduction and pattern statements.
4643 (vect_estimate_min_profitable_iters): Likewise.
4644 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
4645 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
4646 for explicit realigns.
4647 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
4648 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
4649 vec_promote_demote.
4650 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
4651 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
4652 vec_perm for VSX and handle vec_promote_demote.
4653
4654 2012-02-10 Jakub Jelinek <jakub@redhat.com>
4655
4656 PR middle-end/52177
4657 * builtins.c (fold_builtin_atomic_always_lock_free,
4658 expand_builtin_atomic_always_lock_free,
4659 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
4660 Return and/or test boolean_true_node/boolean_false_node instead of
4661 integer_one_node/integer_zero_node.
4662
4663 2012-02-10 Jan Hubicka <jh@suse.cz>
4664
4665 PR middle-end/48600
4666 * predict.c (predict_paths_for_bb): Prevent looping.
4667 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
4668
4669 2012-02-10 Roman Zhuykov <zhroma@ispras.ru>
4670
4671 * config/arm/arm.c (output_move_double): In one case properly
4672 count number of instructions that will be emitted.
4673
4674 2012-02-10 Richard Guenther <rguenther@suse.de>
4675
4676 PR translation/52193
4677 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
4678
4679 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
4680
4681 PR middle-end/52140
4682 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
4683
4684 2012-02-09 Jakub Jelinek <jakub@redhat.com>
4685
4686 PR debug/52165
4687 * var-tracking.c (emit_note_insn_var_location): If
4688 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
4689 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
4690 non-NOTE_DURING_CALL_P insn.
4691
4692 2012-02-09 Bin Cheng <bin.cheng@arm.com>
4693
4694 PR middle-end/51867
4695 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
4696
4697 2012-02-08 Magnus Granberg <zorry@gentoo.org>
4698
4699 PR driver/48524
4700 * gcc.c (switch_matches) Support switches with separated form,
4701 -D and -U.
4702
4703 2012-02-08 Georg-Johann Lay <avr@gjlay.de>
4704
4705 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
4706 (SP_ADDR): Ditto.
4707 (RAMPZ_ADDR): Ditto.
4708 * config/avr/avr.c (avr_addr_t): New typedef.
4709 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
4710 (avr_init_expanders): Initialize it.
4711 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
4712 SREG_ADDR.
4713 (expand_epilogue): Ditto.
4714 (avr_print_operand): Ditto.
4715 (avr_file_start): Ditto.
4716 (avr_emit_movmemhi): Ditto.
4717
4718 2012-02-08 Richard Guenther <rguenther@suse.de>
4719
4720 PR tree-optimization/46886
4721 * tree-flow.h (do_while_loop_p): Declare.
4722 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
4723 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
4724
4725 2012-02-08 Andrew MacLeod <amacleod@redhat.com>
4726
4727 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
4728 always succeed for integers larger than a native word.
4729
4730 2012-02-08 Richard Guenther <rguenther@suse.de>
4731
4732 PR rtl-optimization/52170
4733 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
4734 properly handle integer vector modes.
4735
4736 2012-02-08 Jakub Jelinek <jakub@redhat.com>
4737
4738 PR gcov-profile/52150
4739 * coverage.c: Include target.h.
4740 (build_var): Call targetm.strip_name_encoding on the assembler name.
4741 Change one _ into . or $ if the target allows it.
4742 * Makefile.in (coverage.o): Depend on $(TARGET_H).
4743
4744 PR rtl-optimization/52139
4745 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
4746 is a BARRIER after emit_insn_after_noloc, move BB_END
4747 to the last non-BARRIER insn before it.
4748
4749 2012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
4750
4751 PR middle-end/24306
4752 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
4753 (mips_gimplify_va_arg_expr): Call it instead of
4754 std_gimplify_va_arg_expr.
4755
4756 2012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4757
4758 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
4759 message for -mno-pointers-to-nested-function.
4760
4761 2012-02-07 Eric Botcazou <ebotcazou@adacore.com>
4762
4763 PR middle-end/51994
4764 * expr.c (get_inner_reference): If there is an offset, add a negative
4765 bit position to it (if any).
4766
4767 2012-02-07 Jakub Jelinek <jakub@redhat.com>
4768
4769 PR rtl-optimization/52060
4770 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
4771 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
4772 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
4773 and/or i0src_copy2 when needed.
4774
4775 2012-02-07 Jakub Jelinek <jakub@redhat.com>
4776
4777 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
4778 or LTOPLUGINSONAME if have_c.
4779
4780 * config/freebsd-spec.h: Add comment about what macros can be defined
4781 in this header.
4782 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
4783 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
4784 here instead.
4785
4786 2012-02-07 Richard Guenther <rguenther@suse.de>
4787
4788 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
4789 newline in -alias dumps.
4790
4791 2012-02-07 Kai Tietz <ktietz@redhat.com>
4792 Dave Korn <dave.korn.cygwin@gmail.com>
4793
4794 PR target/40068
4795 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
4796 Take care that typinfo gets dllexport-attribute.
4797
4798 2012-02-07 Jakub Jelinek <jakub@redhat.com>
4799
4800 PR middle-end/52074
4801 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
4802 if modifier < EXPAND_SUM call force_operand on the result.
4803
4804 2012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
4805
4806 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
4807 adding __forwarder_dst__ prefix if a forwarder_section attribute is
4808 present.
4809 (epiphany_function_type): Replace types for specific interrupts with
4810 EPIPHANY_FUNCTION_INTERRUPT.
4811 (EPIPHANY_INTERRUPT_P): Update.
4812 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
4813 New static function.
4814 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
4815 <disinterrupt>: Affects type identity.
4816 (epiphany_handle_interrupt_attribute): Handle variable number of
4817 arguments.
4818 (epiphany_compute_function_type): Update for new
4819 epiphany_function_type definition.
4820 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
4821 handlers with a longcall forwarder.
4822 (epiphany_start_function): Handle multiple interrupt arguments and/or
4823 forwarder_section attribute.
4824
4825 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
4826 libgloss.
4827
4828 2012-02-07 Alan Modra <amodra@gmail.com>
4829
4830 PR target/52107
4831 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
4832 subregs of TFmode.
4833
4834 2012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4835
4836 PR tree-optimization/50969
4837 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
4838 use vec_perm rather than vector_stmt.
4839 (vect_model_load_cost): Likewise.
4840 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
4841 vec_perm to be the same as other vector statements.
4842 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
4843 cost of vec_perm for TARGET_VSX.
4844
4845 2012-02-06 Richard Guenther <rguenther@suse.de>
4846
4847 PR tree-optimization/52115
4848 * tree-sra.c (access_has_replacements_p): New function.
4849 (sra_modify_assign): Use it to decide whether a use is uninitialized.
4850
4851 2012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
4852
4853 PR middle-end/52047
4854 * trans-mem.c (expand_call_tm): Add an assertion.
4855 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
4856 functions.
4857
4858 2012-02-06 Richard Guenther <rguenther@suse.de>
4859
4860 PR tree-optimization/50955
4861 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
4862 raise cost of expressions that replace an address with an
4863 expression based on a different pointer.
4864
4865 2012-02-06 Jakub Jelinek <jakub@redhat.com>
4866
4867 PR target/52129
4868 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
4869 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
4870
4871 2012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
4872
4873 PR c++/48680
4874 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
4875 -Weffc++ and specify guidelines come from second edition.
4876
4877 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
4878
4879 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
4880 (sibcall_value_multiple_internal, call_split, call_internal_direct)
4881 (call_direct_split, call_value_split, call_value_internal_direct)
4882 (call_value_direct_split, call_value_multiple_split): Use jal and
4883 jal_macro attributes.
4884
4885 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
4886
4887 * reload1.c (reload_regs_reach_end_p): Replace with...
4888 (reload_reg_rtx_reaches_end_p): ...this function.
4889 (new_spill_reg_store): Update commentary.
4890 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
4891 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
4892 before setting new_spill_reg_store.
4893 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
4894 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
4895 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
4896 for non-spill reload registers.
4897
4898 2012-02-05 Ira Rosen <irar@il.ibm.com>
4899
4900 PR tree-optimization/52091
4901 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
4902 (vect_is_simple_use_1): Likewise.
4903 * tree-vect-loop.c (vectorizable_reduction): Update calls
4904 to vect_is_simple_use_1 and vect_is_simple_use.
4905 (vectorizable_live_operation): Likewise.
4906 * tree-vect-patterns.c (widened_name_p,
4907 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
4908 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
4909 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4910 vectorizable_shift,vectorizable_operation, vectorizable_store,
4911 vectorizable_load): Likewise.
4912 (vect_is_simple_cond): Add an argument, pass it to
4913 vect_is_simple_use_1.
4914 (vectorizable_condition): Update calls to vect_is_simple_cond,
4915 vect_is_simple_use.
4916 (vect_is_simple_use): Add an argument, the statement in which
4917 OPERAND is used. Check that if OPERAND's def stmt is a double
4918 reduction phi node, the use is a phi node too.
4919 (vect_is_simple_use_1): Add an argument, pass it to
4920 vect_is_simple_use.
4921 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
4922 to vect_is_simple_use.
4923
4924 2012-02-04 Jakub Jelinek <jakub@redhat.com>
4925
4926 PR rtl-optimization/52095
4927 * modulo-sched.c (dump_insn_locator): New function.
4928 (loop_canon_p, sms_schedule): Use it.
4929
4930 PR rtl-optimization/52113
4931 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
4932 even for decomposable shift/zext insns.
4933
4934 2012-02-03 Jakub Jelinek <jakub@redhat.com>
4935 Zdenek Dvorak <ook@ucw.cz>
4936
4937 PR rtl-optimization/52092
4938 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
4939 on get_iv_value result.
4940
4941 2012-02-02 Andrew Pinski <apinski@cavium.com>
4942
4943 PR middle-end/47982
4944 PR middle-end/43967
4945 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
4946
4947 2012-02-02 Jakub Jelinek <jakub@redhat.com>
4948
4949 PR middle-end/48071
4950 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
4951
4952 2012-02-02 Vladimir Makarov <vmakarov@redhat.com>
4953
4954 PR rtl-optimization/49800
4955 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
4956 (sched_finish): Call regstat_free_n_sets_and_refs.
4957
4958 2012-02-02 Jia Liu <proljc@gmail.com>
4959
4960 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
4961 than operand 2.
4962
4963 2012-02-02 Jan Hubicka <jh@suse.cz>
4964 Tom de Vries <tom@codesourcery.com>
4965
4966 PR middle-end/51998
4967 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
4968 * varpool.c (varpool_analyze_pending_decls): Likewise.
4969
4970 2012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
4971 Jayant R Sonar <jayant.sonar@kpitcummins.com>
4972
4973 * config.gcc: Add cr16-* support.
4974
4975 * doc/extend.texi: Document cr16 extensions.
4976 * doc/install.texi: Document cr16 install.
4977 * doc/invoke.texi: Document cr16 options.
4978 * doc/md.texi: Document cr16 constraints.
4979
4980 * common/config/cr16/cr16-common.c: New file.
4981 * config/cr16/cr16.c: New file.
4982 * config/cr16/cr16.h: New file.
4983 * config/cr16/cr16.md: New file.
4984 * config/cr16/cr16.opt: New file.
4985 * config/cr16/cr16-protos.h: New file.
4986 * config/cr16/predicates.md: New file.
4987 * config/cr16/constraints.md: New file.
4988 * config/cr16/t-cr16: New file.
4989
4990 2012-02-02 Jakub Jelinek <jakub@redhat.com>
4991
4992 PR target/52086
4993 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
4994 that operands[2] is either immediate, or q_regs_operand.
4995
4996 PR tree-optimization/52073
4997 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
4998 a pattern stmt for pattern uses, ignore uses outside of the loop.
4999
5000 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
5001
5002 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
5003 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
5004 (OUT_AS1, OUT_AS2): Remove.
5005
5006 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
5007
5008 PR rtl-optimization/51374
5009 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
5010 to cross other volatile_refs_p insns.
5011
5012 2012-02-01 Richard Guenther <rguenther@suse.de>
5013
5014 * doc/invoke.texi (fno-inline): Clarify documentation.
5015 (finline-small-functions): Likewise.
5016 (finline-functions): Likewise.
5017 * common.opt (finline): Adjust comment and documentation.
5018 (finline-small-functions): Clarify documentation.
5019 (finline-functions): Likewise.
5020 (finline-functions-called-once): Likewise.
5021
5022 2012-02-01 Tristan Gingold <gingold@adacore.com>
5023
5024 * c-typeck.c (composite_type): Keep mode for pointers.
5025
5026 2012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
5027
5028 * function.h (regno_reg_rtx): Adjust comment.
5029 * reginfo.c (init_reg_modes_target): Only use the previous mode
5030 if it fits within one register. Remove MIPS comment.
5031
5032 2012-01-31 Jakub Jelinek <jakub@redhat.com>
5033
5034 PR bootstrap/52058
5035 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
5036
5037 2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5038
5039 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
5040 to srak instruction.
5041
5042 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
5043
5044 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
5045
5046 2012-01-31 Jakub Jelinek <jakub@redhat.com>
5047
5048 PR bootstrap/52041
5049 PR bootstrap/52039
5050 PR target/51974
5051 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
5052
5053 2012-01-31 Richard Guenther <rguenther@suse.de>
5054
5055 PR tree-optimization/51528
5056 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
5057 assigns.
5058
5059 2012-01-31 Jakub Jelinek <jakub@redhat.com>
5060
5061 PR bootstrap/52041
5062 PR bootstrap/52039
5063 PR target/51974
5064 * ree.c (add_removable_extension): Change def_map argument
5065 to unsigned *, store in def_map 1 + offset into *insn_list vector
5066 instead of pointers into the vector.
5067 (find_removable_extensions): Adjust caller.
5068
5069 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
5070
5071 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
5072 Transform all "* quoted-c-code" to { c-code }.
5073 Remove redundant test for "optimize" in combine patterns.
5074 Move (include "avr-dimode.md") to end of file.
5075
5076 2012-01-30 Bin Cheng <bin.cheng@arm.com>
5077
5078 PR target/51835
5079 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
5080 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
5081
5082 2012-01-30 Richard Guenther <rguenther@suse.de>
5083
5084 PR tree-optimization/52028
5085 * tree-loop-distribution.c (ldist_gen): Properly update
5086 virtual SSA form.
5087
5088 2012-01-30 Jakub Jelinek <jakub@redhat.com>
5089
5090 PR debug/52027
5091 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
5092 set_cur_line_info_table if not emitting debug info.
5093
5094 PR tree-optimization/52046
5095 * tree-vect-patterns.c (check_bool_pattern): Give up if
5096 a comparison could throw.
5097
5098 PR debug/52048
5099 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
5100
5101 2012-01-30 Richard Guenther <rguenther@suse.de>
5102
5103 PR tree-optimization/52045
5104 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
5105 SSA form if cfgcleanup did anything.
5106
5107 2012-01-30 Richard Guenther <rguenther@suse.de>
5108
5109 PR tree-optimization/52045
5110 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
5111 before computing final todo.
5112
5113 2012-01-30 Richard Guenther <rguenther@suse.de>
5114
5115 PR tree-optimization/51528
5116 * tree-sra.c (sra_modify_assign): Re-factor in preparation
5117 for PR51528 fix.
5118
5119 2012-01-30 Paolo Bonzini <bonzini@gnu.org>
5120
5121 * df-problems.c (df_kill_notes): Check that the use refers
5122 to the note under examination.
5123
5124 2012-01-30 Eric Botcazou <ebotcazou@adacore.com>
5125
5126 PR target/51920
5127 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
5128 parameter and use short-lived pseudos.
5129 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
5130 (sparc_expand_vector_init): Const-ify local variables and adjust
5131 calls to above functions.
5132
5133 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
5134
5135 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
5136
5137 2012-01-29 Sandra Loosemore <sandra@codesourcery.com>
5138
5139 * doc/invoke.texi: Make usage of "compile time" and
5140 "run time"/"runtime" consistent throughout the file.
5141
5142 2012-01-29 Uros Bizjak <ubizjak@gmail.com>
5143
5144 * config/alpha/alpha.c (alpha_option_override): Default to
5145 full IEEE compliance mode for Go language.
5146
5147 2011-01-29 Tijl Coosemans <tijl@coosemans.org>
5148
5149 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
5150 (LINK_SSP_SPEC): Define.
5151
5152 2012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5153
5154 PR target/51871
5155 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
5156 stubs.
5157
5158 2012-01-28 Sandra Loosemore <sandra@codesourcery.com>
5159
5160 * doc/invoke.texi: Correct hyphenation of "floating point",
5161 "double precision", and related terminology throughout the file.
5162
5163 2012-01-28 Jakub Jelinek <jakub@redhat.com>
5164
5165 PR target/52006
5166 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
5167 arm_general_register_operand predicate for operand 2 instead of
5168 register_operand.
5169
5170 2012-01-27 Ian Lance Taylor <iant@google.com>
5171
5172 PR go/47656
5173 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
5174 * builtins.c (expand_builtin_init_trampoline): Add onstack
5175 parameter. Change caller.
5176 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
5177 * tree.c (build_common_builtin_nodes): Declare
5178 __builtin_init_heap_trampoline.
5179
5180 2012-01-27 Georg-Johann Lay <avr@gjlay.de>
5181
5182 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
5183 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
5184 * config/avr/avr.c: Ditto.
5185 (avr_regnames): Remove because unused.
5186 * config/avr/avr.md (*cpse.ne): New peephole.
5187 (*cpse.eq): New peephole from former cpse peepholes.
5188
5189 2012-01-27 Michael Eager <eager@eagercon.com>
5190
5191 * config/microblaze.c (microblaze_emit_compare): Correct
5192 test after pcmp instruction.
5193
5194 2012-01-27 Richard Guenther <rguenther@suse.de>
5195
5196 PR tree-optimization/52020
5197 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
5198
5199 2012-01-27 Richard Guenther <rguenther@suse.de>
5200
5201 * ipa-pure-const.c (check_stmt): Clobbers do not make a
5202 function non-const/pure.
5203
5204 2012-01-27 Richard Guenther <rguenther@suse.de>
5205
5206 PR tree-optimization/50444
5207 * tree-sra.c (build_ref_for_offset): Properly adjust the
5208 MEM_REF type for unaligned accesses.
5209
5210 2012-01-27 Richard Guenther <rguenther@suse.de>
5211
5212 PR tree-optimization/50444
5213 * expr.c (mem_ref_refers_to_non_mem_p): New function.
5214 (expand_assignment): Use it. Properly handle misaligned
5215 bases when expanding stores to component references.
5216 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
5217 refactor that case.
5218
5219 2012-01-27 Andrey Belevantsev <abel@ispras.ru>
5220
5221 PR middle-end/51389
5222 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
5223 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
5224 * tree-data-ref.c (find_data_references_in_loop): Make static.
5225 (compute_all_dependences): Change return type to bool. Bail out
5226 for too many datarefs in a loop. Move the hunk resetting the data
5227 dependences vector from ...
5228 (compute_data_dependences_for_loop): ... here. Account for
5229 compute_all_dependences returning false.
5230 (compute_data_dependences_for_bb): Likewise.
5231 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
5232 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
5233
5234 2012-01-27 Richard Guenther <rguenther@suse.de>
5235
5236 PR middle-end/51959
5237 * expr.c (store_field): Use the alias-set of the scratch memory
5238 for storing to it.
5239
5240 2012-01-27 Tom de Vries <tom@codesourcery.com>
5241
5242 PR tree-optimization/51990
5243 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
5244 WITH_SIZE_EXPR.
5245 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
5246
5247 2012-01-27 Jakub Jelinek <jakub@redhat.com>
5248
5249 PR debug/52001
5250 * var-tracking.c (reverse_op): Don't add any reverse operation
5251 if V already has any constant locations.
5252
5253 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
5254
5255 * doc/invoke.texi: Correct usage of "command line" (noun)
5256 vs "command-line" (adjective) throughout.
5257
5258 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
5259
5260 * doc/invoke.texi (Language Independent Options): Move
5261 -Wcoverage-mismatch blurb from here....
5262 (Warning Options): ...to here.
5263
5264 2012-01-27 Peter Bergner <bergner@vnet.ibm.com>
5265
5266 * config/rs6000/rs6000.c (rs6000_option_override_internal):
5267 Set rs6000_always_hint to false for 476.
5268
5269 2012-01-27 Matthias Klose <doko@ubuntu.com>
5270
5271 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
5272 system root.
5273 * incpath.c (add_standard_paths): Likewise.
5274
5275 2012-01-27 Richard Henderson <rth@redhat.com>
5276
5277 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
5278 * config/m68k/sync.md (atomic_test_and_set): Rename from
5279 sync_test_and_setqi and adjust the operands.
5280 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
5281 and unconditionally enable.
5282
5283 2012-01-27 Richard Henderson <rth@redhat.com>
5284
5285 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
5286 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
5287 (ldstub): Rename from ldstubqi.
5288 (ldstub<I24MODE>): Remove.
5289
5290 2012-01-27 Richard Henderson <rth@redhat.com>
5291
5292 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
5293 * c-cppbuiltin.c (cpp_atomic_builtins): Define
5294 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
5295 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
5296 * doc/tm.texi: Rebuild.
5297
5298 2012-01-27 Richard Henderson <rth@redhat.com>
5299
5300 * optabs.c (gen_atomic_test_and_set): Remove default.
5301 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
5302
5303 2012-01-26 Jakub Jelinek <jakub@redhat.com>
5304
5305 PR rtl-optimization/51978
5306 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
5307 (combine_reaching_defs): Likewise.
5308 (struct re_info): Remove.
5309 (add_removable_extension): Remove x and data arguments,
5310 add insn, insn_list and def_map. Use the arguments directly
5311 instead of using struct re_info.
5312 (find_removable_extensions): Don't call add_removable_extension
5313 through note_stores, instead just call it with single_set
5314 result if non-NULL.
5315 (find_and_remove_re): Pass curr_cand->expr instead of
5316 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
5317
5318 2012-01-26 Michael Matz <matz@suse.de>
5319
5320 PR tree-optimization/46590
5321 * cfgexpand.c: Revert last change (r183305).
5322 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
5323 regs.
5324 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
5325 checking for emptiness.
5326
5327 2012-01-26 Jakub Jelinek <jakub@redhat.com>
5328
5329 PR middle-end/51895
5330 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
5331 non-addressable non-BLKmode base correctly.
5332
5333 2012-01-26 Michael Matz <matz@suse.de>
5334
5335 PR tree-optimization/48794
5336 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
5337 regions referenced from RESX/EH_DISPATCH.
5338
5339 2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5340
5341 * config/s390/s390.h: Make BRANCH_COST an option.
5342 * config/s390/s390.opt: New option -mbranch-cost.
5343
5344 2012-01-26 Richard Henderson <rth@redhat.com>
5345
5346 Revert 2012-01-24 change:
5347 * trans-mem.c (requires_barrier): Do not instrument thread local
5348 variables and emit save/restore for them.
5349
5350 2012-01-25 Jakub Jelinek <jakub@redhat.com>
5351
5352 PR middle-end/51986
5353 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
5354 for pat == 0.
5355
5356 2012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
5357
5358 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
5359 ASM_OPERANDS.
5360
5361 2012-01-25 Georg-Johann Lay <avr@gjlay.de>
5362
5363 PR target/49868
5364 Rename __pgm to __flash.
5365 Rename __pgm1 to __flash1.
5366 Rename __pgm2 to __flash2.
5367 Rename __pgm3 to __flash3.
5368 Rename __pgm4 to __flash4.
5369 Rename __pgm5 to __flash5.
5370 Rename __pgmx to __memx.
5371 * doc/extend.texi (AVR Named Address Spaces)
5372 Rename address space names as indicated above.
5373 * config/avr/avr.c (avr_addrspace): Ditto.
5374
5375 * config/avr/avr-protos.h
5376 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
5377 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
5378 * config/avr/predicates.md: Ditto.
5379 * config/avr/avr.c Ditto, and
5380 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
5381 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
5382
5383 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
5384 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
5385 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
5386 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
5387 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
5388 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
5389 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
5390 * config/avr/avr.c: Ditto.
5391 * config/avr/avr.md: Ditto.
5392
5393 2012-01-25 Jason Merrill <jason@redhat.com>
5394
5395 PR c++/51992
5396 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
5397
5398 2012-01-25 Jakub Jelinek <jakub@redhat.com>
5399
5400 PR tree-optimization/51987
5401 * tree-data-ref.c (get_references_in_stmt): Handle references in
5402 non-volatile GIMPLE_ASM.
5403
5404 2012-01-25 Richard Guenther <rguenther@suse.de>
5405
5406 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
5407 bases are dereferenced.
5408
5409 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
5410
5411 PR rtl-optimization/48374
5412 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
5413
5414 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
5415
5416 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
5417 compute_data_dependences_for_loop returns false.
5418 * tree-parloops.c (loop_parallel_p): Likewise.
5419
5420 2012-01-25 Richard Guenther <rguenther@suse.de>
5421
5422 * tree.h (get_pointer_alignment_1): Declare.
5423 * builtins.c (get_pointer_alignment_1): New function.
5424 (get_pointer_alignment): Use it.
5425
5426 2012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5427
5428 PR rtl-optimization/48308
5429 * combine.c (enum undo_kind): Add UNDO_LINKS.
5430 (struct undo): Add member l to other_contents and where.
5431 (do_SUBST_LINK): New.
5432 (SUBST_LINK): New.
5433 (try_combine): Handle LOG_LINKS for the dummy i1 case.
5434 (undo_all): Handle UNDO_LINKS.
5435
5436 2012-01-25 Richard Henderson <rth@redhat.com>
5437
5438 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
5439 mem inputs.
5440
5441 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
5442
5443 * optabs.c (gen_atomic_test_and_set): Use each argument.
5444
5445 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
5446
5447 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
5448 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
5449 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
5450 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
5451 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
5452 TARGET_PAIRED_SINGLE_FLOAT.
5453
5454 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
5455
5456 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
5457 (in_struct, return_val): Remove MEM documentation.
5458 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
5459 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
5460 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
5461 and MEM_SCALAR.
5462 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5463 * cfgexpand.c (add_alias_set_conflicts): Likewise.
5464 * expr.c (store_field): Likewise.
5465 * function.c (assign_stack_temp_for_type): Likewise.
5466 * ifcvt.c (noce_try_cmove_arith): Likewise.
5467 * reload1.c (reload): Likewise.
5468 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
5469 (alpha_set_memflags): Likewise.
5470 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
5471
5472 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
5473
5474 * rtl.h (true_dependence, canon_true_dependence): Remove varies
5475 parameter.
5476 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
5477 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
5478 (true_dependence_1, true_dependence, canon_true_dependence): Remove
5479 varies parameter.
5480 * cselib.c (cselib_rtx_varies_p): Delete.
5481 (cselib_invalidate_mem): Update call to canon_true_dependence.
5482 * dse.c (record_store, check_mem_read_rtx): Likewise.
5483 (scan_reads_nospill): Likewise.
5484 * cse.c (check_dependence): Likewise.
5485 (cse_rtx_varies_p): Delete.
5486 * expr.c (safe_from_p): Update call to true_dependence.
5487 * ira.c (validate_equiv_mem_from_store): Likewise.
5488 (memref_referenced_p): Likewise.
5489 * postreload-gcse.c (find_mem_conflicts): Likewise.
5490 * sched-deps.c (sched_analyze_2): Likewise.
5491 * store-motion.c (load_kills_store): Likewise.
5492 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
5493 * gcse.c (mems_conflict_for_gcse_p): Likewise.
5494 (compute_transp): Update call to canon_true_dependence.
5495
5496 2012-01-25 Richard Henderson <rth@redhat.com>
5497
5498 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
5499 (maybe_emit_atomic_test_and_set): New.
5500 (expand_sync_lock_test_and_set): Use it.
5501 (expand_atomic_test_and_set): Likewise.
5502 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
5503 the implementation; clarify implementation defined details.
5504 * doc/md.texi (atomic_test_and_set): Document.
5505
5506 2012-01-25 Richard Henderson <rth@redhat.com>
5507
5508 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
5509
5510 2012-01-25 Richard Henderson <rth@redhat.com>
5511
5512 PR target/51968
5513 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
5514 to effect no-op split.
5515
5516 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
5517
5518 PR lto/51698
5519 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
5520 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
5521 (BT_FN_VOID_PTR_INT_SIZE): New.
5522 (BT_FN_UINT_UINT_VAR): Remove.
5523 (BT_FN_UINT32_UINT32_VAR): New.
5524 (BT_FN_DOUBLE_VPTR): Remove.
5525 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
5526
5527 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
5528 (_ITM_changeTransactionMode): Same.
5529 (_ITM_memmoveRtWt): Change return type to void.
5530 (_ITM_memcpyRtWt): Same.
5531 (_ITM_memsetW): Same.
5532 (_ITM_RaRD): Change types to double.
5533 (_ITM_RD): Same.
5534 (_ITM_RaWD): Same.
5535 (_ITM_RfWD): Same.
5536
5537 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
5538
5539 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
5540 Patrick Marlier <patrick.marlier@gmail.com>
5541
5542 * trans-mem.c (requires_barrier): Do not instrument thread local
5543 variables and emit save/restore for them.
5544
5545 2012-01-24 Jason Merrill <jason@redhat.com>
5546
5547 PR c++/51812
5548 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
5549 output static aliases.
5550
5551 2012-01-24 Jakub Jelinek <jakub@redhat.com>
5552
5553 PR driver/47249
5554 * common.opt (-pie, -shared, pie, shared): Change from Common to
5555 Driver.
5556 * gcc.c (display_help): Display help for -pie and -shared.
5557
5558 2012-01-24 Georg-Johann Lay <avr@gjlay.de>
5559
5560 PR target/49868
5561 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
5562 Remove note on size/offset limitation.
5563 (AVR Variable Attributes): Add example how to read data located
5564 with progmem. Refer to named address spaces.
5565 * doc/invoke.texi (AVR Options): Fix typo.
5566
5567 2012-01-24 Richard Guenther <rguenther@suse.de>
5568
5569 Forward-port to trunk
5570 2010-09-21 Jakub Jelinek <jakub@redhat.com>
5571
5572 PR middle-end/45678
5573 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
5574 op0 isn't sufficiently aligned and there is movmisalignM
5575 insn for mode, use it to load op0 into a temporary register.
5576
5577 2012-01-24 Jakub Jelinek <jakub@redhat.com>
5578
5579 PR target/51957
5580 * target.def (const_not_ok_for_debug_p): New hook.
5581 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
5582 documentation.
5583 * doc/tm.texi: Regenerated.
5584 * dwarf2out.c (const_ok_for_output_1): If
5585 targetm.const_not_ok_for_debug_p returns true, fail.
5586 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
5587 function.
5588 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
5589
5590 2012-01-23 Kai Tietz <ktietz@redhat.com>
5591
5592 PR target/51900
5593 * config/i386/predicates.md (symbolic_operand): Allow
5594 UNSPEC_PCREL as PIC expression for lea.
5595 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
5596 * config/i386/i386.c (ix86_delegitimize_address): Handle
5597 UNSPEC_PCREL for none-MEM, too.
5598
5599 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
5600
5601 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
5602 (ipa_tm_create_version_alias): Same.
5603
5604 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
5605
5606 PR libitm/51830
5607 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
5608 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
5609
5610 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
5611 Patrick Marlier <patrick.marlier@gmail.com>
5612 Iain Sandoe <developer@sandoe-acoustics.co.uk>
5613
5614 PR lto/51916
5615 * lto-wrapper.c (run_gcc): Pass the LTO section name to
5616 simple_object_start_read.
5617
5618 2012-01-23 Richard Guenther <rguenther@suse.de>
5619
5620
5621 PR tree-optimization/51895
5622 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
5623 parameter decomposition into BLKmode components.
5624
5625 2012-01-23 Eric Botcazou <ebotcazou@adacore.com>
5626
5627 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
5628 fake variables for restrict-qualified pointers whose pointed-to type
5629 contains a placeholder.
5630
5631 2012-01-23 Richard Guenther <rguenther@suse.de>
5632
5633 PR tree-optimization/51949
5634 * ipa-split.c (execute_split_functions): Do not split malloc functions.
5635
5636 2012-01-23 Jakub Jelinek <jakub@redhat.com>
5637
5638 PR rtl-optimization/51933
5639 * ree.c (transform_ifelse): Return true right away if dstreg is
5640 already wider or equal to cand->mode.
5641 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
5642 (make_defs_and_copies_lists): Remove defs_list and copies_list
5643 arguments, add state argument, just truncate state->work_list
5644 instead of always allocating and freeing the vector. Assert that
5645 get_defs succeeds instead of returning 2. Changed return type to bool.
5646 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
5647 have ext_src_mode, see if it has been modified already with the
5648 right kind of extension and has been extended before from the
5649 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
5650 just return true. Remember the original mode in state->modified array.
5651 (combine_reaching_defs): Add state argument. Don't allocate and
5652 free here def_list, copied_list and vec vectors, instead just
5653 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
5654 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
5655 Add state variable, clear vectors in it, initialize state.modified
5656 if needed. Free all the vectors at the end and state.modified too.
5657 Don't skip a candidate if the extension expression has been modified.
5658
5659 2012-01-22 Douglas B Rupp <rupp@gnat.com>
5660
5661 PR target/47096
5662 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
5663 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
5664 (extra_options) interix.opt -> i386/interix.opt"
5665 (extra_objs):Add winnt-stubs.o
5666 * configure.ac: Add interix to target_os .comm on PE check.
5667 * configure: Regenerate.
5668 * config/interix3.h: Delete and move bits to..
5669 * config/interix.h: Delete and move bits to..
5670 * config/i386/i386-interix3.h: Delete and move bits to..
5671 * config/i386/i386-interix.h: ..here.
5672 (TARGET_CPU_DEFAULT): Remove redefinition.
5673 (TARGET_ASM_CONSTRUCTOR): Undefine.
5674 (SUBTARGET_SWITCHES): Define for ms-bitfields.
5675 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
5676 (PTRDIFF_TYPE): Define.
5677 (LONG_DOUBLE_TYPE_SIZE): Define.
5678 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
5679 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5680 (TARGET_SECTION_TYPE_FLAGS): Define.
5681 (ASM_DECLARE_FUNCTION_NAME): Define.
5682 (ASM_OUTPUT_EXTERNAL): Define.
5683 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
5684 (ASM_OUTPUT_ALIGNED_BSS): Define.
5685 (PCC_BITFIELD_TYPE_MATTERS): Define.
5686 (USE_CONST_SECTION): Define.
5687 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
5688 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
5689 (SUPPORTS_ONE_ONLY): Remove.
5690 (I386_PE_STRIP_ENCODING): Define.
5691 * config/interix.opt: Delete and move bits to..
5692 * config/i386/interix.opt: ..here. New.
5693 (mpe-aligned-commons): Add.
5694 * config/i386/t-interix: Add copyright header.
5695 (winnt-stubs.o): Add rule.
5696
5697 2012-01-22 Jason Merrill <jason@redhat.com>
5698
5699 PR c++/51832
5700 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
5701 for extra name aliases.
5702
5703 2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
5704
5705 PR rtl-optimization/51924
5706 * ree.c (combine_set_extension): Improve debugging message.
5707 (combine_reaching_defs): Likewise.
5708 (get_defs): Rename confusingly named variable.
5709 (find_and_remove_re): Skip a candidate if the extension expression has
5710 been modified.
5711
5712 2012-01-21 Robert Millan <rmh@gnu.org>
5713 Gerald Pfeifer <gerald@pfeifer.com>
5714
5715 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
5716 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
5717
5718 2012-01-20 Jakub Jelinek <jakub@redhat.com>
5719
5720 PR tree-optimization/51914
5721 * tree-vect-stmts.c (vectorizable_conversion): For
5722 cvt_type && modifier == WIDEN, put temporary with cvt_type
5723 at the beginning of vec_dsts and set vec_dest to temporary
5724 with vectype_out.
5725
5726 2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
5727
5728 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
5729
5730 2011-01-20 Tijl Coosemans <tijl@coosemans.org>
5731
5732 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
5733 * config/rs6000/rs6000.c: Likewise.
5734
5735 2012-01-20 Jakub Jelinek <jakub@redhat.com>
5736
5737 PR target/51915
5738 * config/arm/arm.c (arm_count_output_move_double_insns): Call
5739 output_move_double on a copy of operands array.
5740
5741 2012-01-20 Cary Coutant <ccoutant@google.com>
5742 Dodji Seketeli <dodji@redhat.com>
5743
5744 PR debug/45682
5745 * dwarf2out.c (copy_declaration_context): Return ref to parent
5746 of declaration DIE, if necessary.
5747 (remove_child_or_replace_with_skeleton): Add new parameter; update
5748 caller. Place skeleton DIE under parent DIE of original declaration.
5749 Move call to copy_declaration_context to here ...
5750 (break_out_comdat_types): ... from here.
5751
5752 2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5753
5754 PR rtl-optimization/51856
5755 * reload.c (find_reloads_subreg_address): Set the address_reloaded
5756 flag to reloaded.
5757
5758 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5759
5760 PR target/51819
5761 * config/arm/arm.c (arm_print_operand): Correct output of alignment
5762 hints for neon loads and stores.
5763
5764 2012-01-20 Georg-Johann Lay <avr@gjlay.de>
5765
5766 PR target/49868
5767 PR target/50887
5768 * doc/extend.texi (Named Address Spaces): Split into subsections.
5769 (AVR Named Address Spaces): New subsection.
5770 (M32C Named Address Spaces): New subsection.
5771 (RL78 Named Address Spaces): New subsection.
5772 (SPU Named Address Spaces): New subsection.
5773 (Variable Attributes): New anchor "AVR Variable Attributes".
5774 (AVR Variable Attributes): Rewrite and avoid wording
5775 "address space" in this context.
5776 * doc/invoke.texi (AVR Options): Rewrite and add documentation
5777 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
5778 (AVR Built-in Macros): New subsubsection therein.
5779 * doc/md.texi (AVR constraints): Remove "C04", "R".
5780
5781 2012-01-20 Richard Guenther <rguenther@suse.de>
5782
5783 PR tree-optimization/51903
5784 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
5785 when removing stmts.
5786
5787 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5788
5789 PR target/50313
5790 * config/arm/arm.c (arm_load_pic_register): Use
5791 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
5792 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
5793 (arm_pic_static_addr): Likewise.
5794 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
5795 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
5796 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
5797 (pic_load_addr_unified): New.
5798
5799 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
5800
5801 PR target/51106
5802 * function.c (instantiate_virtual_regs_in_insn): Use
5803 delete_insn_and_edges when removing a wrong asm insn.
5804
5805 2012-01-19 Vladimir Makarov <vmakarov@redhat.com>
5806
5807 PR rtl-optimization/40761
5808 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
5809 Add new member loop_num.
5810 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
5811 (ira_build): Remove the parameter.
5812
5813 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
5814 (ira.c): Do not build CFG loops for one region allocation. Remove
5815 argument from ira_build call.
5816
5817 * ira-build.c (init_loop_tree_node): New function.
5818 (create_loop_tree_nodes): Use it. Separate the case when CFG
5819 loops are not built.
5820 (more_one_region_p): Check current_loops.
5821 (finish_loop_tree_nodes): Separate the case when CFG loops are not
5822 built.
5823 (add_loop_to_tree): Process loop equal to NULL too.
5824 (form_loop_tree): Separate the case when CFG loops are not built.
5825 Use explicitly number for the root.
5826 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
5827 an assertion.
5828 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
5829 instead of loop->num.
5830 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
5831 (mark_all_loops_for_removal): Ditto.
5832 (remove_unnecessary_regions): Separate the case when CFG loops
5833 are not built.
5834 (ira_build): Remove the parameter. Use explicit number of regions
5835 when CFG loops are not built.
5836
5837 * ira-color.c (print_loop_title): Separate the case for the root node.
5838 Use loop_num instead of loop->num.
5839 (move_spill_restore): Use loop_num instead of loop->num.
5840
5841 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
5842 (change_loop): Ditto.
5843 (change_loop): Use loop_num instead of loop->num.
5844
5845 * ira-lives.c (process_bb_node_lives): Ditto.
5846
5847 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
5848
5849 * ira-conflicts.c (print_allocno_conflicts): Ditto.
5850
5851 2012-01-19 Jakub Jelinek <jakub@redhat.com>
5852
5853 PR libmudflap/40778
5854 * tree-mudflap.c (mf_artificial): New function.
5855 (execute_mudflap_function_ops, execute_mudflap_function_decls,
5856 mx_register_decls, mudflap_enqueue_decl): Use it.
5857
5858 PR target/51876
5859 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
5860 numbers in the insn pattern.
5861
5862 2012-01-19 Michael Matz <matz@suse.de>
5863
5864 PR tree-optimization/46590
5865 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
5866 use it in remembering which conflicts we already created.
5867 (add_scope_conflicts): Adjust call to above, (de)allocate helper
5868 bitmap.
5869
5870 2012-01-19 Aldy Hernandez <aldyh@redhat.com>
5871
5872 PR lto/51280
5873 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
5874 (merge_and_complain): Same.
5875
5876 2012-01-19 Jakub Jelinek <jakub@redhat.com>
5877
5878 PR bootstrap/50237
5879 * config/initfini-array.h: Guard content of the header
5880 with #ifdef HAVE_INITFINI_ARRAY.
5881 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
5882 Add initfini-array.h to tm_file here.
5883 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
5884 * config.gcc: Don't add initfini-array.h to tm_file here.
5885 * configure: Regenerated.
5886
5887 2012-01-19 Andrey Belevantsev <abel@ispras.ru>
5888
5889 PR rtl-optimization/51505
5890 * df-problems.c (df_kill_notes): New parameter live. Update comment.
5891 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
5892 (df_note_bb_compute): Update the call to df_kill_notes.
5893
5894 2012-01-18 Aldy Hernandez <aldyh@redhat.com>
5895
5896 * trans-mem.c (requires_barrier): Remove call to is_global_var.
5897
5898 2012-01-18 Richard Guenther <rguenther@suse.de>
5899
5900 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
5901 of conversions to void *.
5902
5903 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5904 Richard Sandiford <rdsandiford@googlemail.com>
5905
5906 PR middle-end/50325
5907 PR middle-end/51192
5908 * optabs.h (simplify_expand_binop): Declare.
5909 * optabs.c (simplify_expand_binop): Make global.
5910 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
5911 endian targets if the source cannot be exactly covered by word
5912 mode chunks.
5913
5914 2012-01-17 Jakub Jelinek <jakub@redhat.com>
5915
5916 PR bootstrap/51872
5917 * hard-reg-set.h (struct hard_reg_set_container): New type.
5918 * target.h (struct hard_reg_set_container): Forward declare.
5919 * target.def (set_up_by_prologue): New target hook.
5920 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
5921 * doc/tm.texi: Regenerated.
5922 * function.c (thread_prologue_and_epilogue_insns): Change
5923 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
5924 Call targetm.set_up_by_prologue on it.
5925 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
5926 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
5927
5928 2012-01-17 Nick Clifton <nickc@redhat.com>
5929
5930 * config/rx/rx.c (rx_can_use_simple_return): New function.
5931 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
5932 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
5933
5934 2012-01-17 Richard Guenther <rguenther@suse.de>
5935
5936 PR middle-end/51782
5937 * expr.c (expand_assignment): Take address-space information
5938 from the address operand of MEM_REF and TARGET_MEM_REF.
5939 (expand_expr_real_1): Likewise.
5940
5941 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5942
5943 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
5944 reload dump is requested.
5945
5946 2012-01-17 Aldy Hernandez <aldyh@redhat.com>
5947
5948 PR other/51165
5949 * trans-mem.c (requires_barrier): Call may_be_aliased.
5950
5951 2012-01-17 Jakub Jelinek <jakub@redhat.com>
5952
5953 PR tree-optimization/51877
5954 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
5955 call arguments and fndecls compare equal, instead return false if they
5956 don't. Return true only if lhs1 and lhs2 are either both NULL, or
5957 both SSA_NAMEs that are valueized the same, or they satisfy
5958 operand_equal_p.
5959
5960 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5961
5962 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
5963 Solaris 11+.
5964 * configure: Regenerate.
5965
5966 2012-01-16 Jan Hubicka <jh@suse.cz>
5967
5968 PR c/12245
5969 PR c++/14179
5970 * convert.c (convert_to_integer): Use fold_convert for
5971 converting an INTEGER_CST to integer type.
5972
5973 2012-01-16 Jason Merrill <jason@redhat.com>
5974
5975 PR c++/14179
5976 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
5977
5978 2012-01-16 Jakub Jelinek <jakub@redhat.com>
5979
5980 PR bootstrap/51860
5981 * config/s390/s390.c (s390_chunkify_start): Don't skip
5982 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
5983 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
5984 If insn is followed by NOTE_INSN_VAR_LOCATION or
5985 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
5986 Don't use location of note insns.
5987
5988 PR tree-optimization/51865
5989 * tree-inline.c (tree_function_versioning): Call remap_decl
5990 on DECL_RESULT whenever it has VOID_TYPE_P type.
5991
5992 2012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
5993
5994 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
5995 for calls to locally-binding MIPS16 functions if only the return
5996 type uses float regs.
5997
5998 2012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
5999 Richard Sandiford <rdsandiford@googlemail.com>
6000
6001 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
6002 (SYMBOL_32_HIGH): Likewise.
6003 (mips_output_tls_reloc_directive): Declare.
6004 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
6005 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
6006 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
6007 (mips_lo_relocs, mips_hi_relocs): Make extern.
6008 (mips16_stub_function): Move up file.
6009 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
6010 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
6011 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
6012 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
6013 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
6014 (mips_get_tp): Add MIPS16 support.
6015 (mips_legitimize_tls_address): Remove MIPS16 sorry().
6016 Generalize DTPREL and TPREL handling.
6017 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
6018 Add MIPS16 TLS support.
6019 (mips_output_tls_reloc_directive): New function.
6020 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
6021 * config/mips/predicates.md (symbolic_operand_with_high)
6022 (tls_reloc_operand): New predicates.
6023 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
6024 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
6025 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
6026 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
6027 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
6028 (*tls_get_tp_mips16_call_<mode>): Likewise.
6029
6030 2012-01-15 Uros Bizjak <ubizjak@gmail.com>
6031
6032 PR rtl-optimization/51821
6033 * recog.c (peep2_find_free_register): Determine clobbered registers
6034 from insn pattern.
6035
6036 2012-01-14 Denis Chertykov <chertykov@gmail.com>
6037
6038 PR target/50925
6039 * config/avr/avr-protos.h: Revert change of 2012-01-09.
6040 * config/avr/avr.c: Likewise.
6041 * config/avr/avr.h: Likewise.
6042
6043 2012-01-13 Ian Lance Taylor <iant@google.com>
6044
6045 PR c++/50012
6046 * tree.h (TYPE_QUALS): Add cast to int.
6047 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
6048
6049 2012-01-13 Ian Lance Taylor <iant@google.com>
6050
6051 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
6052 comparing param_index to VEC_length result.
6053
6054 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
6055
6056 * c-decl.c: Do not include tree-mudflap.h
6057 * tree-optimize.c: Likewise.
6058 * Makefile.in: Update dependencies.
6059
6060 2012-01-13 Richard Guenther <rguenther@suse.de>
6061
6062 PR middle-end/8081
6063 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
6064 variable-sized result always use RSO.
6065
6066 2012-01-12 DJ Delorie <dj@redhat.com>
6067
6068 * cfgexpand.c (convert_debug_memory_address): Allow any valid
6069 pointer type, not just the default pointer type.
6070
6071 2012-01-09 Richard Henderson <rth@redhat.com>
6072 Denis Chertykov <chertykov@gmail.com>
6073
6074 PR target/50925
6075 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
6076 * config/avr/avr.c (avr_can_eliminate): Simplify.
6077 (avr_initial_elimination_offset): Likewise.
6078 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
6079 (expand_epilogue): Likewise.
6080 (avr_legitimize_address): Gut.
6081 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
6082 (avr_hard_regno_nregs): New.
6083 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
6084 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
6085 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
6086 add soft frame pointer.
6087 (CALL_USED_REGISTERS): Likewise.
6088 (REG_CLASS_CONTENTS): Likewise.
6089 (REGISTER_NAMES): Likewise.
6090 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
6091 (HARD_FRAME_POINTER_REGNUM): New.
6092 (FRAME_POINTER_REGNUM): Use soft frame pointer.
6093 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
6094 remove the HARD_FRAME_POINTER self-elimination.
6095
6096 2012-01-12 Georg-Johann Lay <avr@gjlay.de>
6097
6098 PR target/51756
6099 * config/avr/avr.c (avr_encode_section_info): Test for absence of
6100 DECL_EXTERNAL when checking for initializers of progmem variables.
6101
6102 2012-01-12 Ira Rosen <irar@il.ibm.com>
6103
6104 PR tree-optimization/51799
6105 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
6106 that the last operation is a type demotion.
6107
6108 2012-01-12 Uros Bizjak <ubizjak@gmail.com>
6109
6110 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
6111 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
6112
6113 2012-01-11 Jakub Jelinek <jakub@redhat.com>
6114
6115 PR bootstrap/51796
6116 * combine.c (distribute_notes): If i3 is a noreturn call,
6117 allow old_size to be equal to args_size and make sure the
6118 noreturn call gets REG_ARGS_SIZE note.
6119 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
6120 on noreturn calls even when the delta is 0.
6121
6122 2012-01-11 Nathan Sidwell <nathan@acm.org>
6123
6124 * gcov.c (STRING_SIZE): Remove.
6125 (generate_results): Erase annotations for source files with no
6126 coverage information.
6127 (read_line): New.
6128 (output_lines): Use it.
6129
6130 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
6131
6132 * gimple.h (gimplify_body): Remove first argument.
6133 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
6134 pointer set here, instead just pass DATA to walk_tree.
6135 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
6136 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
6137 (unvisit_body): Likewise, but with unmark_visited.
6138 (gimplify_body): Remove BODY_P argument and adjust.
6139 (gimplify_function_tree): Adjust call to gimplify_body.
6140 * omp-low.c (finalize_task_copyfn): Likewise.
6141
6142 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
6143
6144 * tree.h (build_function_decl_skip_args): Add boolean parameter.
6145 (build_function_type_skip_args): Delete.
6146 * tree.c (build_function_type_skip_args): Make static and add
6147 SKIP_RETURN parameter. Fix thinko in the handling of variants.
6148 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
6149 pass it to build_function_type_skip_args.
6150 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
6151 (tree_function_versioning): Likewise.
6152 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
6153 build_function_decl_skip_args.
6154 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
6155 and pass it to build_function_decl_skip_args/tree_function_versioning.
6156 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
6157 * ipa-inline-transform.c (save_inline_function_body): Likewise.
6158 * trans-mem.c (ipa_tm_create_version): Likewise.
6159 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
6160 * tree-inline.c (declare_return_variable): Remove always-true test.
6161 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
6162 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
6163 * ipa-split.c (split_function): Skip the return value for the split
6164 part if it doesn't return.
6165
6166 2012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6167
6168 PR tree-optimization/49642
6169 * ipa-split.c (forbidden_dominators): New variable.
6170 (check_forbidden_calls): New function.
6171 (dominated_by_forbidden): Likewise.
6172 (consider_split): Check for forbidden dominators.
6173 (execute_split_functions): Initialize and free forbidden
6174 dominators info; call check_forbidden_calls.
6175
6176 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
6177
6178 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
6179
6180 2012-01-11 Nick Clifton <nickc@redhat.com>
6181
6182 * config/rx/rx.md (return): Define pattern.
6183
6184 2012-01-11 Richard Guenther <rguenther@suse.de>
6185
6186 * doc/extend.texi (malloc attribute): Adjust according to
6187 implementation.
6188
6189 2012-01-10 Aldy Hernandez <aldyh@redhat.com>
6190 Patrick Marlier <patrick.marlier@gmail.com>
6191
6192 PR middle-end/51516
6193 * trans-mem.c (get_cg_data): Traverse aliases if requested.
6194 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
6195 (ipa_tm_note_irrevocable): Same.
6196 (ipa_tm_scan_irr_block): Same.
6197 (ipa_tm_decrement_clone_counts): Same.
6198 (ipa_tm_scan_irr_function): Same.
6199 (ipa_tm_create_version_alias): Same.
6200 (ipa_tm_create_version): Same.
6201 (ipa_tm_transform_calls_redirect): Same.
6202 (ipa_tm_transform_calls): Same.
6203 (ipa_tm_transform_transaction): Same.
6204 (ipa_tm_execute): Same.
6205
6206 2012-01-10 Richard Guenther <rguenther@suse.de>
6207
6208 PR middle-end/51806
6209 * opts.c (common_handle_option): Handle -Werror.
6210
6211 2012-01-10 Andreas Schwab <schwab@linux-m68k.org>
6212
6213 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
6214 operand number.
6215
6216 2012-01-10 Jason Merrill <jason@redhat.com>
6217
6218 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
6219 information.
6220
6221 2012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6222
6223 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
6224 supports R_386_TLS_GD_PLT reloc.
6225 (gcc_cv_as_ix86_tlsldmplt): Check if linker
6226 supports R_386_TLS_LDM_PLT reloc.
6227 * configure: Regenerate.
6228 * config.in: Regenerate.
6229
6230 2012-01-10 Georg-Johann Lay <avr@gjlay.de>
6231
6232 PR target/49868
6233 Extend __pgmx semantics to linearize memory.
6234 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
6235 determine if code comes inline or from libgcc.
6236 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
6237 (movmem_qi, movmem_qi): Set constraint #2 to "n".
6238 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
6239 (movmemx_qi, movmemx_hi): New insns.
6240 (xload_<mode>_libgcc): Rewrite to new insn condition.
6241 (xload_<mode>): Remove insns.
6242 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
6243 cases that don't satisfy avr_xload_libgcc_p().
6244 (avr_addr_space_convert): Allow converting in any direction.
6245 (avr_addr_space_subset_p): Return always true.
6246 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
6247 (avr_emit_movmemhi): Ditto.
6248 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
6249 (avr_out_movmem): Ditto.
6250 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
6251 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
6252 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
6253 (avr_encode_section_info): Encode 'progmem' in symbol flags.
6254 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
6255
6256 2012-01-10 Richard Guenther <rguenther@suse.de>
6257
6258 PR tree-optimization/50913
6259 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
6260 Require data-refs to be representable by Graphite with respect
6261 to any loop nest.
6262
6263 2012-01-10 Uros Bizjak <ubizjak@gmail.com>
6264
6265 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
6266 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
6267
6268 2012-01-10 Tom de Vries <tom@codesourcery.com>
6269
6270 PR rtl-optimization/51271
6271 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
6272 handling annulled branch.
6273
6274 2012-01-10 Richard Henderson <rth@redhat.com>
6275
6276 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
6277 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
6278 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
6279 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
6280 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
6281 arm_expand_vec_perm_const): New.
6282 * config/arm/arm-protos.h: Update.
6283 * config/arm/neon.md (UNSPEC_VCONCAT): New.
6284 (*neon_vswp<VDQX>): New.
6285 (neon_vcombine<VDX>): Use neon_split_vcombine.
6286 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
6287 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
6288 (vec_perm<VE>): New.
6289
6290 2012-01-10 Richard Henderson <rth@redhat.com>
6291
6292 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
6293 use it if reload_completed.
6294 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
6295 arm_output_asm_insn, arm_process_output_memory_barrier,
6296 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
6297 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
6298 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
6299 arm_process_output_sync_insn, arm_output_sync_insn,
6300 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
6301 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
6302 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
6303 (emit_unlikely_jump): New.
6304 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
6305 (arm_split_atomic_op): New.
6306 * config/arm/arm-protos.h: Update.
6307 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
6308 (struct arm_sync_generator): Remove.
6309 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
6310 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
6311 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
6312 (VUNSPEC_LL, VUNSPEC_SC): New.
6313 (sync_result, sync_memory, sync_required_value, sync_new_value,
6314 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
6315 (attr length): Don't use arm_sync_loop_insns.
6316 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
6317 (movsfcc, movdfcc): Likewise.
6318 * config/arm/constraints.md (Ua): New.
6319 * config/arm/prediates.md (mem_noofs_operand): New.
6320 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
6321 (sync_clobber, sync_t2_reqd): Remove.
6322 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
6323 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
6324 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
6325 (arm_sync_compare_and_swap<SIDI>): Remove.
6326 (arm_sync_compare_and_swap<NARROW>): Remove.
6327 (arm_sync_lock_test_and_set<SIDI>): Remove.
6328 (arm_sync_lock_test_and_set<NARROW>): Remove.
6329 (arm_sync_new_<syncop><SIDI>): Remove.
6330 (arm_sync_new_<syncop><NARROW>): Remove.
6331 (arm_sync_new_nand<SIDI>): Remove.
6332 (arm_sync_new_nand<NARROW>): Remove.
6333 (arm_sync_old_<syncop><SIDI>): Remove.
6334 (arm_sync_old_<syncop><NARROW>): Remove.
6335 (arm_sync_old_nand<SIDI>): Remove.
6336 (arm_sync_old_nand<NARROW>): Remove.
6337 (*memory_barrier): Merge arm_output_memory_barrier.
6338 (atomic_compare_and_swap<QHSD>): New.
6339 (atomic_compare_and_swap<NARROW>_1): New.
6340 (atomic_compare_and_swap<SIDI>_1): New.
6341 (atomic_exchange<QHSD>): New.
6342 (cas_cmp_operand, cas_cmp_str): New.
6343 (atomic_op_operand, atomic_op_str): New.
6344 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
6345 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
6346 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
6347 (arm_load_exclusive<NARROW>): New.
6348 (arm_load_exclusivesi, arm_load_exclusivedi): New.
6349 (arm_store_exclusive<QHSD>): New.
6350
6351 2012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
6352
6353 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
6354 reload patterns if -mvsx-scalar-memory.
6355
6356 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
6357 generated, even -mno-vsx-scalar-double was used.
6358 (vsx_xscvdpsp_scalar): Likewise.
6359 (vsx_xscvspdp_scalar2): Likewise.
6360
6361 2012-01-09 Tom de Vries <tom@codesourcery.com>
6362 Andrew Pinski <apinski@cavium.com>
6363
6364 PR debug/51471
6365 * reorg.c (fill_slots_from_thread): Don't speculate
6366 frame-related insns.
6367
6368 2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
6369
6370 * sched-int.h (bb_note): Move to...
6371 * basic-block.h: ...here.
6372 * haifa-sched.c (bb_note): Move to...
6373 * cfgrtl.c: ...here.
6374 * function.c (next_block_for_reg): New function.
6375 (move_insn_for_shrink_wrap): Likewise.
6376 (prepare_shrink_wrap): Rewrite to use the above.
6377
6378 2012-01-09 Aldy Hernandez <aldyh@redhat.com>
6379
6380 * gimple.c (is_gimple_non_addressable): Remove.
6381 * gimple.h: Remove is_gimple_non_addressable.
6382 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
6383 is_gimple_non_addressable.
6384 * trans-mem.c (expand_assign_tm): Same.
6385
6386 2012-01-09 Richard Guenther <rguenther@suse.de>
6387
6388 PR tree-optimization/51775
6389 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
6390 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
6391
6392 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
6393
6394 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
6395 tuning parameters.
6396 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
6397
6398 2012-01-09 Richard Guenther <rguenther@suse.de>
6399
6400 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
6401
6402 2012-01-08 Jan Hubicka <jh@suse.cz>
6403
6404 PR tree-optimize/51680
6405 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
6406 on when known_vals needs to be computed; cleanup.
6407
6408 2012-01-08 Jan Hubicka <jh@suse.cz>
6409
6410 PR tree-optimize/51694
6411 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
6412
6413 2012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
6414
6415 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
6416 for -std=c++98 and -std=c++11 too.
6417
6418 2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
6419
6420 * cfgloop.c (cancel_loop): Add free() of bbs array.
6421
6422 2012-01-07 Jan Hubicka <jh@suse.cz>
6423
6424 PR tree-optimization/51600
6425 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
6426 that benefits small functions.
6427
6428 2012-01-07 Jan Hubicka <jh@suse.cz>
6429
6430 * ipa-inline.c (want_inline_small_function_p): Fix formating.
6431
6432 2012-01-07 Jan Hubicka <jh@suse.cz>
6433
6434 PR tree-optimization/51680
6435 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
6436 whose inlining reduce unit size.
6437
6438 2012-01-07 Alexandre Oliva <aoliva@redhat.com>
6439
6440 PR bootstrap/51725
6441 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
6442 Add canonical node to containing_mem chain after the non-canonical
6443 one, even if there weren't any locs to propagate.
6444 (remove_useless_values): Keep only canonical values.
6445 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
6446 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
6447 canonicalize mem_chain elements that are not discarded.
6448
6449 2012-01-06 Jakub Jelinek <jakub@redhat.com>
6450
6451 PR target/47333
6452 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
6453 before emitting functions.
6454
6455 PR gcov-profile/50127
6456 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
6457 clear_aux_for_blocks.
6458
6459 2012-01-06 Alexandre Oliva <aoliva@redhat.com>
6460
6461 PR debug/51746
6462 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
6463
6464 2012-01-06 Arnaud Charlet <charlet@adacore.com>
6465
6466 * c-decl.c (ext_block): Moved up.
6467 (collect_all_refs, for_each_global_decl): Take ext_block into account.
6468
6469 2012-01-06 Han Shen <shenhan@google.com>
6470
6471 Translate built-in include paths for sysroot.
6472 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
6473 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
6474
6475 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
6476 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
6477
6478 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
6479 control whether sysroot should be prepended to gxx include dir.
6480
6481 * configure: Regenerate.
6482
6483 2012-01-06 Torvald Riegel <triegel@redhat.com>
6484
6485 PR rtl-optimization/51771
6486 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
6487 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
6488
6489 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
6490
6491 PR tree-optimization/51315
6492 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
6493 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
6494
6495 2012-01-05 Uros Bizjak <ubizjak@gmail.com>
6496
6497 PR target/51681
6498 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
6499 for shrp pattern. Correctly handle and fixup shift variable.
6500 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
6501
6502 2012-01-05 Jakub Jelinek <jakub@redhat.com>
6503
6504 PR debug/51762
6505 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
6506 note when !ACCUMULATE_OUTGOING_ARGS.
6507
6508 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
6509
6510 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
6511 condition.
6512 (extract_range_from_unary_expr_1): Avoid useless computations.
6513
6514 2012-01-05 Jakub Jelinek <jakub@redhat.com>
6515
6516 PR rtl-optimization/51767
6517 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
6518 of jump_block and add an extra edge for degenerated asm gotos.
6519
6520 PR middle-end/51768
6521 * stmt.c (check_unique_operand_names): Don't ICE during error
6522 reporting if i is from labels chain.
6523
6524 PR middle-end/44777
6525 * profile.c (branch_prob): Split bbs that have exit edge
6526 and need a fake entry edge too.
6527
6528 2012-01-05 Jan Hubicka <jh@suse.cz>
6529
6530 PR middle-end/49710
6531 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
6532 unlooping loops.
6533
6534 2012-01-05 Richard Guenther <rguenther@suse.de>
6535
6536 PR lto/50490
6537 * tree-streamer-out.c (write_ts_optimization): New function.
6538 (streamer_write_tree_body): Call it.
6539 * tree-streamer-in.c (lto_input_ts_optimization): New function.
6540 (streamer_read_tree_body): Call it.
6541 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
6542
6543 2012-01-05 Jakub Jelinek <jakub@redhat.com>
6544
6545 PR middle-end/51761
6546 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
6547 * gimplify.c (gimplify_cleanup_point_expr): Save and set
6548 in_cleanup_point_expr before gimplify_stmt call and restore it
6549 afterwards.
6550 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
6551 in_cleanup_point_expr is false.
6552
6553 2012-01-05 Richard Guenther <rguenther@suse.de>
6554
6555 PR middle-end/51764
6556 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
6557 to c.opt.
6558 * toplev.c (process_options): Reject combining mudflap and LTO.
6559 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
6560
6561 2012-01-05 Richard Guenther <rguenther@suse.de>
6562
6563 PR tree-optimization/51760
6564 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
6565 not VARYING.
6566 (bit_value_unop): Handle UNDEFINED operands.
6567 (bit_value_binop): Likewise.
6568
6569 2012-01-05 Georg-Johann Lay <avr@gjlay.de>
6570
6571 * config/avr/avr.c (avr_replace_prefix): Remove.
6572 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
6573 (avr_asm_function_rodata_section): Ditto.
6574 (avr_asm_select_section): Ditto.
6575
6576 2012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
6577
6578 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
6579 insertion.
6580
6581 2012-01-05 Jakub Jelinek <jakub@redhat.com>
6582
6583 PR bootstrap/51648
6584 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
6585 calls that have any non-fake successor edges.
6586
6587 PR debug/51746
6588 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
6589
6590 2012-01-04 Eric Botcazou <ebotcazou@adacore.com>
6591
6592 PR tree-optimization/51624
6593 * tree-sra.c (build_ref_for_model): When replicating a chain of
6594 COMPONENT_REFs, stop as soon as the offset would become negative.
6595
6596 2012-01-04 Jakub Jelinek <jakub@redhat.com>
6597
6598 PR debug/51695
6599 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
6600 in .debug_loc on the floor.
6601
6602 2012-01-04 Andrew Pinski <apinski@cavium.com>
6603
6604 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
6605
6606 2012-01-04 Andrew Pinski <apinski@cavium.com>
6607 Adam Nemet <anemet@caviumnetworks.com>
6608
6609 * config/mips/mips.md (size): Add SI and DI.
6610 (SIZE): New mode attribute.
6611 (U): New code attribute.
6612 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
6613 (mips_lbux_<mode>): Delete.
6614 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
6615 (mips_lhx): Use gen_mips_lhx_extsi.
6616 (mips_lhx_<mode>): Delete.
6617 (mips_lwx): Delete.
6618 (mips_l<size>x): New expand.
6619 (mips_lwx_<mode>): Delete.
6620 (mips_l<GPR:size>x_<P:mode>): New pattern.
6621 (*mips_lw<u>x_<P:mode>_ext): Likewise.
6622 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
6623 * config/mips/mips.c (mips_lx_address_p): New function.
6624 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
6625 (dsp64): New availability predicate.
6626 (mips_builtins): Add an entry for __builtin_mips_ldx.
6627 * config/mips/mips.h (ISA_HAS_LBX): New define.
6628 (ISA_HAS_LBUX): Likewise.
6629 (ISA_HAS_LHX): Likewise.
6630 (ISA_HAS_LHUX): Likewise.
6631 (ISA_HAS_LWX): Likewise.
6632 (ISA_HAS_LWUX): Likewise.
6633 (ISA_HAS_LDX): Likewise.
6634 * doc/extend.texi (__builtin_mips_ldx): Document.
6635
6636 2012-01-04 Tristan Gingold <gingold@adacore.com>
6637
6638 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
6639 when long pointers are used.
6640 * config.build (*-*-*vms*): Handle all OpenVMS targets.
6641 (alpha64-dec-*vms*, alpha*-dec-*vms*)
6642 (ia64-hp-*vms*): Remove.
6643 * config/vms/xm-vms64.h: Delete.
6644
6645 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
6646
6647 PR middle-end/51472
6648 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
6649
6650 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
6651
6652 * opts.c (finish_options): Remove duplicate sorry.
6653
6654 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
6655
6656 PR middle-end/51696
6657 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
6658 correctly.
6659
6660 2012-01-04 Richard Guenther <rguenther@suse.de>
6661
6662 PR middle-end/51750
6663 * tree.c (size_low_cst): New function.
6664 * tree.h (size_low_cst): Declare.
6665 * fold-const.c (fold_comparison): Use it to extract the low
6666 part of the POINTER_PLUS_EXPR offset.
6667
6668 2012-01-04 Georg-Johann Lay <avr@gjlay.de>
6669
6670 Fix clearing ZERO_REG
6671 * config/avr/avr.md (cc): Add alternative "ldi".
6672 (movqi_insn): Use it in cc attribute.
6673 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
6674 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
6675 (output_reload_insisf): Use ZERO_REG to pre-clear register.
6676
6677 2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6678
6679 * configure: Regenerate.
6680
6681 2012-01-04 Richard Guenther <rguenther@suse.de>
6682
6683 PR tree-optimization/49651
6684 * tree-ssa-structalias.c (type_can_have_subvars): New function.
6685 (var_can_have_subvars): Use it.
6686 (get_constraint_for_1): Only consider subfields if there can be any.
6687
6688 2012-01-03 Jakub Jelinek <jakub@redhat.com>
6689
6690 PR bootstrap/51725
6691 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
6692 to its new canonical_cselib_val and the cselib_val was in
6693 first_containing_mem chain, but the canonical_cselib_val was not,
6694 add the latter into the chain.
6695 (cselib_invalidate_mem): Compare canonical_cselib_val of
6696 addr_list chain elt with v.
6697
6698 PR pch/51722
6699 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
6700 dwarf2out_undef): Allocate e.info using ggc_strdup instead
6701 of xstrdup.
6702 (output_macinfo_op): Don't ggc_strdup fd->filename.
6703 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
6704 then ggc_strdup it. Don't free inc->info or cur->info.
6705 (output_macinfo): Don't free ref->info or file->info.
6706
6707 2012-01-03 Ira Rosen <irar@il.ibm.com>
6708
6709 PR tree-optimization/51269
6710 * tree-vect-loop-manip.c (set_prologue_iterations): Make
6711 first_niters a pointer.
6712 (slpeel_tree_peel_loop_to_edge): Likewise.
6713 (vect_do_peeling_for_loop_bound): Update call to
6714 slpeel_tree_peel_loop_to_edge.
6715 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
6716 here. Remove it from the parameters list.
6717 (vect_do_peeling_for_alignment): Update calls and compute
6718 wide_prolog_niters.
6719
6720 2012-01-03 Richard Guenther <rguenther@suse.de>
6721
6722 PR tree-optimization/51070
6723 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
6724 Properly handle calls.
6725
6726 2012-01-03 Richard Guenther <rguenther@suse.de>
6727
6728 PR tree-optimization/51692
6729 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
6730 the LHS of allocation stmts.
6731
6732 2012-01-03 Olivier Hainque <hainque@adacore.com>
6733
6734 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
6735
6736 2012-01-03 Olivier Hainque <hainque@adacore.com>
6737
6738 * collect2.c (main): In AIX specific computations for vector
6739 insertions, use CONST_CAST2 to cast from char ** to const char **.
6740
6741 2012-01-03 Richard Guenther <rguenther@suse.de>
6742
6743 PR debug/51650
6744 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
6745 the context of a limbo DIE when it does not already exist.
6746
6747 2012-01-03 Jakub Jelinek <jakub@redhat.com>
6748
6749 PR tree-optimization/51719
6750 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
6751 but direct call is, clear direct call's lhs and don't add fallthrough
6752 edge from dcall_bb to join_bb and PHIs.
6753
6754 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6755
6756 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
6757 the instructions emitted by the pattern.
6758 ("*TDC_insn_<mode>"): Add comment.
6759
6760 2012-01-03 Richard Guenther <rguenther@suse.de>
6761
6762 PR middle-end/51730
6763 * fold-const.c (fold_comparison): Properly canonicalize
6764 tree offset and HOST_WIDE_INT bit position.
6765
6766 2012-01-02 Uros Bizjak <ubizjak@gmail.com>
6767
6768 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
6769 operands for extzv pattern.
6770
6771 2012-01-02 Jakub Jelinek <jakub@redhat.com>
6772
6773 PR bootstrap/51725
6774 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
6775 on mem_elt first.
6776
6777 2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
6778
6779 * doc/invoke.texi (-flto and related options): Copy-edit.
6780
6781 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6782
6783 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
6784
6785 2012-01-02 Jakub Jelinek <jakub@redhat.com>
6786
6787 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
6788 New patterns.
6789
6790 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6791
6792 * expr.h (move_by_pieces_ninsns): Declare.
6793 * expr.c (move_by_pieces_ninsns): Make external.
6794 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
6795 (mips_store_by_pieces_p): Likewise.
6796 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
6797 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
6798 * config/mips/mips.c (mips_move_by_pieces_p): New function.
6799 (mips_store_by_pieces_p): Likewise.
6800
6801 2012-01-02 Jakub Jelinek <jakub@redhat.com>
6802
6803 * passes.c (register_one_dump_file): Free full_name.
6804
6805 * reload1.c (reload): Don't allocate reg_max_ref_width here.
6806 (calculate_elim_costs_all_insns): Free offsets_at and
6807 offsets_known_at at the end and clear the pointers.
6808
6809 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
6810
6811 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
6812 this option introduced in r180739.
6813
6814 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
6815
6816 PR target/51345
6817 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
6818 (tmake_file target=avr): Add avr/t-multilib.
6819
6820 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
6821 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
6822 * config/avr/genmultilib.awk: New file.
6823 * config/avr/t-multilib: New auto-generated file.
6824 * config/avr/multilib.h: New auto-generated file.
6825 * config/avr/t-avr (AVR_MCUS): New variable.
6826 (genopt.sh): Use it.
6827 (s-mlib): Depend on t-multilib.
6828 (t-multilib, multilib.h): New dependencies.
6829 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
6830 (MULTILIB_OPTIONS): Remove.
6831 (MULTILIB_MATCHES): Remove.
6832 (MULTILIB_DIRNAMES): Remove.
6833 (MULTILIB_EXCEPTIONS): Remove:
6834 * config/avr/genopt.sh: Don't use hard coded file name;
6835 pass AVR_MCUS from t-avr instead.
6836
6837 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
6838
6839 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
6840
6841 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
6842
6843 Implement light-weight DImode support.
6844 * config/avr/avr-dimode.md: New file.
6845 * config/avr/avr.md: Include it.
6846 (adjust_len): Add plus64, compare64.
6847 (HIDI): Remove code iterator.
6848 (code_stdname): New code attribute.
6849 (rotx, rotsmode): Remove DI.
6850 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
6851 as code iterator.
6852 * config/avr/avr-protos.h (avr_have_dimode): New.
6853 (avr_out_plus64, avr_out_compare64): New.
6854 * config/avr/avr.c (avr_out_compare): Handle DImode.
6855 (avr_have_dimode): New variable definition and initialization.
6856 (avr_out_compare64, avr_out_plus64): New functions.
6857 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
6858 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
6859 (avr_compare_pattern): Skip DImode comparisons.
6860
6861 2012-01-02 Revital Eres <revital.eres@linaro.org>
6862
6863 * ddg.c (def_has_ccmode_p): New function.
6864 (add_cross_iteration_register_deps,
6865 create_ddg_dep_from_intra_loop_link): Call it.
6866
6867 2012-01-02 Richard Guenther <rguenther@suse.de>
6868
6869 PR other/51679
6870 * invoke.texi (fassociative-math): Remove spurious paranthesis.
6871
6872 2012-01-01 Jakub Jelinek <jakub@redhat.com>
6873
6874 * gcc.c (process_command): Update copyright notice dates.
6875 * gcov.c (print_version): Likewise.
6876 * gcov-dump.c (print_version): Likewise.
6877 * mips-tfile.c (main): Likewise.
6878 * mips-tdump.c (main): Likewise.
6879
6880 2012-01-01 Ira Rosen <irar@il.ibm.com>
6881
6882 PR tree-optimization/51704
6883 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
6884 a use is inside the basic block or loop before accessing its vect info.
6885
6886 2012-01-01 Jan Hubicka <jhjh@suse.cz>
6887
6888 PR rtl-optimization/51069
6889 * cfgloopmanip.c (remove_path): Removing path making irreducible
6890 region unconditional makes BB part of the region.
6891
6892 2012-01-01 Jakub Jelinek <jakub@redhat.com>
6893
6894 PR tree-optimization/51683
6895 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
6896 calls with side-effects.
6897 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6898 \f
6899 Copyright (C) 2012 Free Software Foundation, Inc.
6900
6901 Copying and distribution of this file, with or without modification,
6902 are permitted in any medium without royalty provided the copyright
6903 notice and this notice are preserved.