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