re PR target/51835 (ARM EABI violation when passing arguments to helper floating...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
2
3         PR target/51835
4         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
5         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
6
7 2012-01-30  Richard Guenther  <rguenther@suse.de>
8
9         PR tree-optimization/52028
10         * tree-loop-distribution.c (ldist_gen): Properly update
11         virtual SSA form.
12
13 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
14
15         PR debug/52027
16         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
17         set_cur_line_info_table if not emitting debug info.
18
19         PR tree-optimization/52046
20         * tree-vect-patterns.c (check_bool_pattern): Give up if
21         a comparison could throw.
22
23         PR debug/52048
24         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
25
26 2012-01-30  Richard Guenther  <rguenther@suse.de>
27
28         PR tree-optimization/52045
29         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
30         SSA form if cfgcleanup did anything.
31
32 2012-01-30  Richard Guenther  <rguenther@suse.de>
33
34         PR tree-optimization/52045
35         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
36         before computing final todo.
37
38 2012-01-30  Richard Guenther  <rguenther@suse.de>
39
40         PR tree-optimization/51528
41         * tree-sra.c (sra_modify_assign): Re-factor in preparation
42         for PR51528 fix.
43
44 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
45
46         * df-problems.c (df_kill_notes): Check that the use refers
47         to the note under examination.
48
49 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
50
51         PR target/51920
52         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
53         parameter and use short-lived pseudos.
54         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
55         (sparc_expand_vector_init): Const-ify local variables and adjust
56         calls to above functions.
57
58 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
59
60         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
61
62 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
63
64         * doc/invoke.texi: Make usage of "compile time" and
65         "run time"/"runtime" consistent throughout the file.
66
67 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
68
69         * config/alpha/alpha.c (alpha_option_overrride): Default to
70         full IEEE compliance mode for Go language.
71
72 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
73
74         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
75         (LINK_SSP_SPEC): Define.
76
77 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
78
79         PR target/51871
80         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
81         stubs.
82
83 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
84
85         * doc/invoke.texi: Correct hyphenation of "floating point",
86         "double precision", and related terminology throughout the file.
87
88 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
89
90         PR target/52006
91         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
92         arm_general_register_operand predicate for operand 2 instead of
93         register_operand.
94
95 2012-01-27  Ian Lance Taylor  <iant@google.com>
96
97         PR go/47656
98         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
99         * builtins.c (expand_builtin_init_trampoline): Add onstack
100         parameter.  Change caller.
101         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
102         * tree.c (build_common_builtin_nodes): Declare
103         __builtin_init_heap_trampoline.
104
105 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
106
107         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
108         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
109         * config/avr/avr.c: Ditto.
110         (avr_regnames): Remove because unused.
111         * config/avr/avr.md (*cpse.ne): New peephole.
112         (*cpse.eq): New peephole from former cpse peepholes.
113
114 2012-01-27  Michael Eager  <eager@eagercon.com>
115
116         * config/microblaze.c (microblaze_emit_compare): Correct
117         test after pcmp instruction.
118
119 2012-01-27  Richard Guenther  <rguenther@suse.de>
120
121         PR tree-optimization/52020
122         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
123
124 2012-01-27  Richard Guenther  <rguenther@suse.de>
125
126         * ipa-pure-const.c (check_stmt): Clobbers do not make a
127         function non-const/pure.
128
129 2012-01-27  Richard Guenther  <rguenther@suse.de>
130
131         PR tree-optimization/50444
132         * tree-sra.c (build_ref_for_offset): Properly adjust the
133         MEM_REF type for unaligned accesses.
134
135 2012-01-27  Richard Guenther  <rguenther@suse.de>
136
137         PR tree-optimization/50444
138         * expr.c (mem_ref_refers_to_non_mem_p): New function.
139         (expand_assignment): Use it.  Properly handle misaligned
140         bases when expanding stores to component references.
141         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
142         refactor that case.
143
144 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
145
146         PR middle-end/51389
147         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
148         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
149         * tree-data-ref.c (find_data_references_in_loop): Make static.
150         (compute_all_dependences): Change return type to bool.  Bail out
151         for too many datarefs in a loop.  Move the hunk resetting the data
152         dependences vector from ...
153         (compute_data_dependences_for_loop): ... here.  Account for
154         compute_all_dependences returning false.
155         (compute_data_dependences_for_bb): Likewise.
156         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
157         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
158
159 2012-01-27  Richard Guenther  <rguenther@suse.de>
160
161         PR middle-end/51959
162         * expr.c (store_field): Use the alias-set of the scratch memory
163         for storing to it.
164
165 2012-01-27  Tom de Vries  <tom@codesourcery.com>
166
167         PR tree-optimization/51990
168         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
169         WITH_SIZE_EXPR.
170         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
171
172 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
173
174         PR debug/52001
175         * var-tracking.c (reverse_op): Don't add any reverse operation
176         if V already has any constant locations.
177
178 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
179
180         * doc/invoke.texi: Correct usage of "command line" (noun)
181         vs "command-line" (adjective) throughout.
182
183 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
184
185         * doc/invoke.texi (Language Independent Options): Move
186         -Wcoverage-mismatch blurb from here....
187         (Warning Options): ...to here.
188
189 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
190
191         * config/rs6000/rs6000.c (rs6000_option_override_internal):
192         Set rs6000_always_hint to false for 476.
193
194 2012-01-27  Matthias Klose  <doko@ubuntu.com>
195
196         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
197           system root.
198         * incpath.c (add_standard_paths): Likewise.
199
200 2012-01-27  Richard Henderson  <rth@redhat.com>
201
202         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
203         * config/m68k/sync.md (atomic_test_and_set): Rename from
204         sync_test_and_setqi and adjust the operands.
205         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
206         and unconditionally enable.
207
208 2012-01-27  Richard Henderson  <rth@redhat.com>
209
210         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
211         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
212         (ldstub): Rename from ldstubqi.
213         (ldstub<I24MODE>): Remove.
214
215 2012-01-27  Richard Henderson  <rth@redhat.com>
216
217         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
218         * c-cppbuiltin.c (cpp_atomic_builtins): Define
219         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
220         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
221         * doc/tm.texi: Rebuild.
222
223 2012-01-27  Richard Henderson  <rth@redhat.com>
224
225         * optabs.c (gen_atomic_test_and_set): Remove default.
226         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
227
228 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
229
230         PR rtl-optimization/51978
231         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
232         (combine_reaching_defs): Likewise.
233         (struct re_info): Remove.
234         (add_removable_extension): Remove x and data arguments,
235         add insn, insn_list and def_map.  Use the arguments directly
236         instead of using struct re_info.
237         (find_removable_extensions): Don't call add_removable_extension
238         through note_stores, instead just call it with single_set
239         result if non-NULL.
240         (find_and_remove_re): Pass curr_cand->expr instead of
241         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
242
243 2012-01-26  Michael Matz  <matz@suse.de>
244
245         PR tree-optimization/46590
246         * cfgexpand.c: Revert last change (r183305).
247         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
248         regs.
249         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
250         checking for emptiness.
251
252 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
253
254         PR middle-end/51895
255         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
256         non-addressable non-BLKmode base correctly.
257
258 2012-01-26  Michael Matz  <matz@suse.de>
259
260         PR tree-optimization/48794
261         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
262         regions referenced from RESX/EH_DISPATCH.
263
264 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
265
266         * config/s390/s390.h: Make BRANCH_COST an option.
267         * config/s390/s390.opt: New option -mbranch-cost.
268
269 2012-01-26  Richard Henderson  <rth@redhat.com>
270
271         Revert 2012-01-24 change:
272         * trans-mem.c (requires_barrier): Do not instrument thread local
273         variables and emit save/restore for them.
274
275 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
276
277         PR middle-end/51986
278         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
279         for pat == 0.
280
281 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
282
283         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
284         ASM_OPERANDS.
285
286 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
287
288         PR target/49868
289         Rename __pgm to __flash.
290         Rename __pgm1 to __flash1.
291         Rename __pgm2 to __flash2.
292         Rename __pgm3 to __flash3.
293         Rename __pgm4 to __flash4.
294         Rename __pgm5 to __flash5.
295         Rename __pgmx to __memx.
296         * doc/extend.texi (AVR Named Address Spaces)
297         Rename address space names as indicated above.
298         * config/avr/avr.c (avr_addrspace): Ditto.
299
300         * config/avr/avr-protos.h
301         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
302         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
303         * config/avr/predicates.md: Ditto.
304         * config/avr/avr.c Ditto, and
305         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
306         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
307
308         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
309         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
310         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
311         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
312         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
313         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
314         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
315         * config/avr/avr.c: Ditto.
316         * config/avr/avr.md: Ditto.
317
318 2012-01-25  Jason Merrill  <jason@redhat.com>
319
320         PR c++/51992
321         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
322
323 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
324
325         PR tree-optimization/51987
326         * tree-data-ref.c (get_references_in_stmt): Handle references in
327         non-volatile GIMPLE_ASM.
328
329 2012-01-25  Richard Guenther  <rguenther@suse.de>
330
331         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
332         bases are dereferenced.
333
334 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
335
336         PR rtl-optimization/48374
337         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
338
339 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
340
341         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
342         compute_data_dependences_for_loop returns false.
343         * tree-parloops.c (loop_parallel_p): Likewise.
344
345 2012-01-25  Richard Guenther  <rguenther@suse.de>
346
347         * tree.h (get_pointer_alignment_1): Declare.
348         * builtins.c (get_pointer_alignment_1): New function.
349         (get_pointer_alignment): Use it.
350
351 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
352
353         PR rtl-optimization/48308
354         * combine.c (enum undo_kind): Add UNDO_LINKS.
355         (struct undo): Add member l to other_contents and where.
356         (do_SUBST_LINK): New.
357         (SUBST_LINK): New.
358         (try_combine): Handle LOG_LINKS for the dummy i1 case.
359         (undo_all): Handle UNDO_LINKS.
360
361 2012-01-25  Richard Henderson  <rth@redhat.com>
362
363         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
364         mem inputs.
365
366 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
367
368         * optabs.c (gen_atomic_test_and_set): Use each argument.
369
370 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
371
372         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
373         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
374         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
375         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
376         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
377         TARGET_PAIRED_SINGLE_FLOAT.
378
379 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
380
381         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
382         (in_struct, return_val): Remove MEM documentation.
383         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
384         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
385         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
386         and MEM_SCALAR.
387         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
388         * cfgexpand.c (add_alias_set_conflicts): Likewise.
389         * expr.c (store_field): Likewise.
390         * function.c (assign_stack_temp_for_type): Likewise.
391         * ifcvt.c (noce_try_cmove_arith): Likewise.
392         * reload1.c (reload): Likewise.
393         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
394         (alpha_set_memflags): Likewise.
395         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
396
397 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
398
399         * rtl.h (true_dependence, canon_true_dependence): Remove varies
400         parameter.
401         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
402         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
403         (true_dependence_1, true_dependence, canon_true_dependence): Remove
404         varies parameter.
405         * cselib.c (cselib_rtx_varies_p): Delete.
406         (cselib_invalidate_mem): Update call to canon_true_dependence.
407         * dse.c (record_store, check_mem_read_rtx): Likewise.
408         (scan_reads_nospill): Likewise.
409         * cse.c (check_dependence): Likewise.
410         (cse_rtx_varies_p): Delete.
411         * expr.c (safe_from_p): Update call to true_dependence.
412         * ira.c (validate_equiv_mem_from_store): Likewise.
413         (memref_referenced_p): Likewise.
414         * postreload-gcse.c (find_mem_conflicts): Likewise.
415         * sched-deps.c (sched_analyze_2): Likewise.
416         * store-motion.c (load_kills_store): Likewise.
417         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
418         * gcse.c (mems_conflict_for_gcse_p): Likewise.
419         (compute_transp): Update call to canon_true_dependence.
420
421 2012-01-25  Richard Henderson  <rth@redhat.com>
422
423         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
424         (maybe_emit_atomic_test_and_set): New.
425         (expand_sync_lock_test_and_set): Use it.
426         (expand_atomic_test_and_set): Likewise.
427         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
428         the implementation; clarify implementation defined details.
429         * doc/md.texi (atomic_test_and_set): Document.
430
431 2012-01-25  Richard Henderson  <rth@redhat.com>
432
433         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
434
435 2012-01-25  Richard Henderson  <rth@redhat.com>
436
437         PR target/51968
438         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
439         to effect no-op split.
440
441 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
442
443         PR lto/51698
444         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
445         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
446         (BT_FN_VOID_PTR_INT_SIZE): New.
447         (BT_FN_UINT_UINT_VAR): Remove.
448         (BT_FN_UINT32_UINT32_VAR): New.
449         (BT_FN_DOUBLE_VPTR): Remove.
450         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
451
452         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
453         (_ITM_changeTransactionMode): Same.
454         (_ITM_memmoveRtWt): Change return type to void.
455         (_ITM_memcpyRtWt): Same.
456         (_ITM_memsetW): Same.
457         (_ITM_RaRD): Change types to double.
458         (_ITM_RD): Same.
459         (_ITM_RaWD): Same.
460         (_ITM_RfWD): Same.
461
462         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
463
464 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
465             Patrick Marlier  <patrick.marlier@gmail.com>
466
467         * trans-mem.c (requires_barrier): Do not instrument thread local
468         variables and emit save/restore for them.
469
470 2012-01-24  Jason Merrill  <jason@redhat.com>
471
472         PR c++/51812
473         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
474         output static aliases.
475
476 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
477
478         PR driver/47249
479         * common.opt (-pie, -shared, pie, shared): Change from Common to
480         Driver.
481         * gcc.c (display_help): Display help for -pie and -shared.
482
483 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
484
485         PR target/49868
486         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
487         Remove note on size/offset limitation.
488         (AVR Variable Attributes): Add example how to read data located
489         with progmem.  Refer to named address spaces.
490         * doc/invoke.texi (AVR Options): Fix typo.
491
492 2012-01-24  Richard Guenther  <rguenther@suse.de>
493
494         Forward-port to trunk
495         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
496
497         PR middle-end/45678
498         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
499         op0 isn't sufficiently aligned and there is movmisalignM
500         insn for mode, use it to load op0 into a temporary register.
501
502 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
503
504         PR target/51957
505         * target.def (const_not_ok_for_debug_p): New hook.
506         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
507         documentation.
508         * doc/tm.texi: Regenerated.
509         * dwarf2out.c (const_ok_for_output_1): If
510         targetm.const_not_ok_for_debug_p returns true, fail.
511         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
512         function.
513         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
514
515 2012-01-23  Kai Tietz  <ktietz@redhat.com>
516
517         PR target/51900
518         * config/i386/predicates.md (symbolic_operand): Allow
519         UNSPEC_PCREL as PIC expression for lea.
520         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
521         * config/i386/i386.c (ix86_delegitimize_address): Handle
522         UNSPEC_PCREL for none-MEM, too.
523
524 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
525
526         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
527         (ipa_tm_create_version_alias): Same.
528
529 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
530
531         PR libitm/51830
532         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
533         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
534
535 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
536             Patrick Marlier  <patrick.marlier@gmail.com>
537             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
538
539         PR lto/51916
540         * lto-wrapper.c (run_gcc): Pass the LTO section name to
541         simple_object_start_read.
542
543 2012-01-23  Richard Guenther  <rguenther@suse.de>
544
545
546         PR tree-optimization/51895
547         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
548         parameter decomposition into BLKmode components.
549
550 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
551
552         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
553         fake variables for restrict-qualified pointers whose pointed-to type
554         contains a placeholder.
555
556 2012-01-23  Richard Guenther  <rguenther@suse.de>
557
558         PR tree-optimization/51949
559         * ipa-split.c (execute_split_functions): Do not split malloc functions.
560
561 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
562
563         PR rtl-optimization/51933
564         * ree.c (transform_ifelse): Return true right away if dstreg is
565         already wider or equal to cand->mode.
566         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
567         (make_defs_and_copies_lists): Remove defs_list and copies_list
568         arguments, add state argument, just truncate state->work_list
569         instead of always allocating and freeing the vector.  Assert that
570         get_defs succeeds instead of returning 2.  Changed return type to bool.
571         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
572         have ext_src_mode, see if it has been modified already with the
573         right kind of extension and has been extended before from the
574         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
575         just return true.  Remember the original mode in state->modified array.
576         (combine_reaching_defs): Add state argument.  Don't allocate and
577         free here def_list, copied_list and vec vectors, instead just
578         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
579         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
580         Add state variable, clear vectors in it, initialize state.modified
581         if needed.  Free all the vectors at the end and state.modified too.
582         Don't skip a candidate if the extension expression has been modified.
583
584 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
585
586         PR target/47096
587         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
588          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
589         (extra_options) interix.opt -> i386/interix.opt"
590         (extra_objs):Add winnt-stubs.o
591         * configure.ac: Add interix to target_os .comm on PE check.
592         * configure: Regenerate.
593         * config/interix3.h: Delete and move bits to..
594         * config/interix.h: Delete and move bits to..
595         * config/i386/i386-interix3.h: Delete and move bits to..
596         * config/i386/i386-interix.h: ..here.
597         (TARGET_CPU_DEFAULT): Remove redefinition.
598         (TARGET_ASM_CONSTRUCTOR): Undefine.
599         (SUBTARGET_SWITCHES): Define for ms-bitfields.
600         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
601         (PTRDIFF_TYPE): Define.
602         (LONG_DOUBLE_TYPE_SIZE): Define.
603         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
604         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
605         (TARGET_SECTION_TYPE_FLAGS): Define.
606         (ASM_DECLARE_FUNCTION_NAME): Define.
607         (ASM_OUTPUT_EXTERNAL): Define.
608         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
609         (ASM_OUTPUT_ALIGNED_BSS): Define.
610         (PCC_BITFIELD_TYPE_MATTERS): Define.
611         (USE_CONST_SECTION): Define.
612         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
613         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
614         (SUPPORTS_ONE_ONLY): Remove.
615         (I386_PE_STRIP_ENCODING): Define.
616         * config/interix.opt: Delete and move bits to..
617         * config/i386/interix.opt: ..here. New.
618         (mpe-aligned-commons): Add.
619         * config/i386/t-interix: Add copyright header.
620         (winnt-stubs.o): Add rule.
621
622 2012-01-22  Jason Merrill  <jason@redhat.com>
623
624         PR c++/51832
625         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
626         for extra name aliases.
627
628 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
629
630         PR rtl-optimization/51924
631         * ree.c (combine_set_extension): Improve debugging message.
632         (combine_reaching_defs): Likewise.
633         (get_defs): Rename confusingly named variable.
634         (find_and_remove_re): Skip a candidate if the extension expression has
635         been modified.
636
637 2012-01-21  Robert Millan  <rmh@gnu.org>
638             Gerald Pfeifer  <gerald@pfeifer.com>
639
640         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
641         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
642
643 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
644
645         PR tree-optimization/51914
646         * tree-vect-stmts.c (vectorizable_conversion): For
647         cvt_type && modifier == WIDEN, put temporary with cvt_type
648         at the beginning of vec_dsts and set vec_dest to temporary
649         with vectype_out.
650
651 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
652
653         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
654
655 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
656
657         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
658         * config/rs6000/rs6000.c: Likewise.
659
660 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
661
662         PR target/51915
663         * config/arm/arm.c (arm_count_output_move_double_insns): Call
664         output_move_double on a copy of operands array.
665
666 2012-01-20  Cary Coutant  <ccoutant@google.com>
667             Dodji Seketeli  <dodji@redhat.com>
668
669         PR debug/45682
670         * dwarf2out.c (copy_declaration_context): Return ref to parent
671         of declaration DIE, if necessary.
672         (remove_child_or_replace_with_skeleton): Add new parameter; update
673         caller.  Place skeleton DIE under parent DIE of original declaration.
674         Move call to copy_declaration_context to here ...
675         (break_out_comdat_types): ... from here.
676
677 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
678
679         PR rtl-optimization/51856
680         * reload.c (find_reloads_subreg_address): Set the address_reloaded
681         flag to reloaded.
682
683 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
684
685         PR target/51819
686         * config/arm/arm.c (arm_print_operand): Correct output of alignment
687         hints for neon loads and stores.
688
689 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
690
691         PR target/49868
692         PR target/50887
693         * doc/extend.texi (Named Address Spaces): Split into subsections.
694         (AVR Named Address Spaces): New subsection.
695         (M32C Named Address Spaces): New subsection.
696         (RL78 Named Address Spaces): New subsection.
697         (SPU Named Address Spaces): New subsection.
698         (Variable Attributes): New anchor "AVR Variable Attributes".
699         (AVR Variable Attributes): Rewrite and avoid wording
700         "address space" in this context.
701         * doc/invoke.texi (AVR Options): Rewrite and add documentation
702         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
703         (AVR Built-in Macros): New subsubsection therein.
704         * doc/md.texi (AVR constraints): Remove "C04", "R".
705
706 2012-01-20  Richard Guenther  <rguenther@suse.de>
707
708         PR tree-optimization/51903
709         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
710         when removing stmts.
711
712 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
713
714         PR target/50313
715         * config/arm/arm.c (arm_load_pic_register): Use
716         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
717         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
718         (arm_pic_static_addr): Likewise.
719         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
720         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
721         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
722         (pic_load_addr_unified): New.
723
724 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
725
726         PR target/51106
727         * function.c (instantiate_virtual_regs_in_insn): Use
728         delete_insn_and_edges when removing a wrong asm insn.
729
730 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
731
732         PR rtl-optimization/40761
733         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
734         Add new member loop_num.
735         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
736         (ira_build): Remove the parameter.
737
738         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
739         (ira.c): Do not build CFG loops for one region allocation.  Remove
740         argument from ira_build call.
741
742         * ira-build.c (init_loop_tree_node): New function.
743         (create_loop_tree_nodes): Use it.  Separate the case when CFG
744         loops are not built.
745         (more_one_region_p): Check current_loops.
746         (finish_loop_tree_nodes): Separate the case when CFG loops are not
747         built.
748         (add_loop_to_tree): Process loop equal to NULL too.
749         (form_loop_tree): Separate the case when CFG loops are not built.
750         Use explicitly number for the root.
751         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
752         an assertion.
753         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
754         instead of loop->num.
755         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
756         (mark_all_loops_for_removal): Ditto.
757         (remove_unnecessary_regions): Separate the case when CFG loops
758         are not built.
759         (ira_build): Remove the parameter.  Use explicit number of regions
760         when CFG loops are not built.
761
762         * ira-color.c (print_loop_title): Separate the case for the root node.
763         Use loop_num instead of loop->num.
764         (move_spill_restore): Use loop_num instead of loop->num.
765
766         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
767         (change_loop): Ditto.
768         (change_loop): Use loop_num instead of loop->num.
769
770         * ira-lives.c (process_bb_node_lives): Ditto.
771
772         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
773
774         * ira-conflicts.c (print_allocno_conflicts): Ditto.
775
776 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
777
778         PR libmudflap/40778
779         * tree-mudflap.c (mf_artificial): New function.
780         (execute_mudflap_function_ops, execute_mudflap_function_decls,
781         mx_register_decls, mudflap_enqueue_decl): Use it.
782
783         PR target/51876
784         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
785         numbers in the insn pattern.
786
787 2012-01-19  Michael Matz  <matz@suse.de>
788
789         PR tree-optimization/46590
790         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
791         use it in remembering which conflicts we already created.
792         (add_scope_conflicts): Adjust call to above, (de)allocate helper
793         bitmap.
794
795 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
796
797         PR lto/51280
798         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
799         (merge_and_complain): Same.
800
801 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
802
803         PR bootstrap/50237
804         * config/initfini-array.h: Guard content of the header
805         with #ifdef HAVE_INITFINI_ARRAY.
806         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
807         Add initfini-array.h to tm_file here.
808         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
809         * config.gcc: Don't add initfini-array.h to tm_file here.
810         * configure: Regenerated.
811
812 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
813
814         PR rtl-optimization/51505
815         * df-problems.c (df_kill_notes): New parameter live. Update comment.
816         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
817         (df_note_bb_compute): Update the call to df_kill_notes.
818
819 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
820
821         * trans-mem.c (requires_barrier): Remove call to is_global_var.
822
823 2012-01-18  Richard Guenther  <rguenther@suse.de>
824
825         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
826         of conversions to void *.
827
828 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
829             Richard Sandiford  <rdsandiford@googlemail.com>
830
831         PR middle-end/50325
832         PR middle-end/51192
833         * optabs.h (simplify_expand_binop): Declare.
834         * optabs.c (simplify_expand_binop): Make global.
835         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
836         endian targets if the source cannot be exactly covered by word
837         mode chunks.
838
839 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
840
841         PR bootstrap/51872
842         * hard-reg-set.h (struct hard_reg_set_container): New type.
843         * target.h (struct hard_reg_set_container): Forward declare.
844         * target.def (set_up_by_prologue): New target hook.
845         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
846         * doc/tm.texi: Regenerated.
847         * function.c (thread_prologue_and_epilogue_insns): Change
848         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
849         Call targetm.set_up_by_prologue on it.
850         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
851         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
852
853 2012-01-17  Nick Clifton  <nickc@redhat.com>
854
855         * config/rx/rx.c (rx_can_use_simple_return): New function.
856         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
857         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
858
859 2012-01-17  Richard Guenther  <rguenther@suse.de>
860
861         PR middle-end/51782
862         * expr.c (expand_assignment): Take address-space information
863         from the address operand of MEM_REF and TARGET_MEM_REF.
864         (expand_expr_real_1): Likewise.
865
866 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
867
868         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
869         reload dump is requested.
870
871 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
872
873         PR other/51165
874         * trans-mem.c (requires_barrier): Call may_be_aliased.
875
876 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
877
878         PR tree-optimization/51877
879         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
880         call arguments and fndecls compare equal, instead return false if they
881         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
882         both SSA_NAMEs that are valueized the same, or they satisfy
883         operand_equal_p.
884
885 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
886
887         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
888         Solaris 11+.
889         * configure: Regenerate.
890
891 2012-01-16  Jan Hubicka  <jh@suse.cz>
892
893         PR c/12245
894         PR c++/14179
895         * convert.c (convert_to_integer): Use fold_convert for
896         converting an INTEGER_CST to integer type.
897
898 2012-01-16  Jason Merrill  <jason@redhat.com>
899
900         PR c++/14179
901         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
902
903 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
904
905         PR bootstrap/51860
906         * config/s390/s390.c (s390_chunkify_start): Don't skip
907         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
908         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
909         If insn is followed by NOTE_INSN_VAR_LOCATION or
910         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
911         Don't use location of note insns.
912
913         PR tree-optimization/51865
914         * tree-inline.c (tree_function_versioning): Call remap_decl
915         on DECL_RESULT whenever it has VOID_TYPE_P type.
916
917 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
918
919         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
920         for calls to locally-binding MIPS16 functions if only the return
921         type uses float regs.
922
923 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
924             Richard Sandiford  <rdsandiford@googlemail.com>
925
926         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
927         (SYMBOL_32_HIGH): Likewise.
928         (mips_output_tls_reloc_directive): Declare.
929         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
930         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
931         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
932         (mips_lo_relocs, mips_hi_relocs): Make extern.
933         (mips16_stub_function): Move up file.
934         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
935         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
936         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
937         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
938         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
939         (mips_get_tp): Add MIPS16 support.
940         (mips_legitimize_tls_address): Remove MIPS16 sorry().
941         Generalize DTPREL and TPREL handling.
942         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
943         Add MIPS16 TLS support.
944         (mips_output_tls_reloc_directive): New function.
945         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
946         * config/mips/predicates.md (symbolic_operand_with_high)
947         (tls_reloc_operand): New predicates.
948         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
949         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
950         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
951         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
952         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
953         (*tls_get_tp_mips16_call_<mode>): Likewise.
954
955 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
956
957         PR rtl-optimization/51821
958         * recog.c (peep2_find_free_register): Determine clobbered registers
959         from insn pattern.
960
961 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
962
963         PR target/50925
964         * config/avr/avr-protos.h: Revert change of 2012-01-09.
965         * config/avr/avr.c: Likewise.
966         * config/avr/avr.h: Likewise.
967
968 2012-01-13  Ian Lance Taylor  <iant@google.com>
969
970         PR c++/50012
971         * tree.h (TYPE_QUALS): Add cast to int.
972         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
973
974 2012-01-13  Ian Lance Taylor  <iant@google.com>
975
976         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
977         comparing param_index to VEC_length result.
978
979 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
980
981         * c-decl.c: Do not include tree-mudflap.h
982         * tree-optimize.c: Likewise.
983         * Makefile.in: Update dependencies.
984
985 2012-01-13  Richard Guenther  <rguenther@suse.de>
986
987         PR middle-end/8081
988         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
989         variable-sized result always use RSO.
990
991 2012-01-12  DJ Delorie  <dj@redhat.com>
992
993         * cfgexpand.c (convert_debug_memory_address): Allow any valid
994         pointer type, not just the default pointer type.
995
996 2012-01-09  Richard Henderson  <rth@redhat.com>
997             Denis Chertykov  <chertykov@gmail.com>
998
999         PR target/50925
1000         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
1001         * config/avr/avr.c (avr_can_eliminate): Simplify.
1002         (avr_initial_elimination_offset): Likewise.
1003         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
1004         (expand_epilogue): Likewise.
1005         (avr_legitimize_address): Gut.
1006         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
1007         (avr_hard_regno_nregs): New.
1008         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
1009         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
1010         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
1011         add soft frame pointer.
1012         (CALL_USED_REGISTERS): Likewise.
1013         (REG_CLASS_CONTENTS): Likewise.
1014         (REGISTER_NAMES): Likewise.
1015         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
1016         (HARD_FRAME_POINTER_REGNUM): New.
1017         (FRAME_POINTER_REGNUM): Use soft frame pointer.
1018         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
1019         remove the HARD_FRAME_POINTER self-elimination.
1020
1021 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
1022
1023         PR target/51756
1024         * config/avr/avr.c (avr_encode_section_info): Test for absence of
1025         DECL_EXTERNAL when checking for initializers of progmem variables.
1026
1027 2012-01-12  Ira Rosen  <irar@il.ibm.com>
1028
1029         PR tree-optimization/51799
1030         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
1031         that the last operation is a type demotion.
1032
1033 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
1034
1035         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
1036         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
1037
1038 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
1039
1040         PR bootstrap/51796
1041         * combine.c (distribute_notes): If i3 is a noreturn call,
1042         allow old_size to be equal to args_size and make sure the
1043         noreturn call gets REG_ARGS_SIZE note.
1044         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
1045         on noreturn calls even when the delta is 0.
1046
1047 2012-01-11  Nathan Sidwell  <nathan@acm.org>
1048
1049         * gcov.c (STRING_SIZE): Remove.
1050         (generate_results): Erase annotations for source files with no
1051         coverage information.
1052         (read_line): New.
1053         (output_lines): Use it.
1054
1055 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
1056
1057         * gimple.h (gimplify_body): Remove first argument.
1058         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
1059         pointer set here, instead just pass DATA to walk_tree.
1060         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
1061         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
1062         (unvisit_body): Likewise, but with unmark_visited.
1063         (gimplify_body): Remove BODY_P argument and adjust.
1064         (gimplify_function_tree): Adjust call to gimplify_body.
1065         * omp-low.c (finalize_task_copyfn): Likewise.
1066
1067 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
1068
1069         * tree.h (build_function_decl_skip_args): Add boolean parameter.
1070         (build_function_type_skip_args): Delete.
1071         * tree.c (build_function_type_skip_args): Make static and add
1072         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
1073         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
1074         pass it to build_function_type_skip_args.
1075         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
1076         (tree_function_versioning): Likewise.
1077         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
1078         build_function_decl_skip_args.
1079         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
1080         and pass it to build_function_decl_skip_args/tree_function_versioning.
1081         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
1082         * ipa-inline-transform.c (save_inline_function_body): Likewise.
1083         * trans-mem.c (ipa_tm_create_version): Likewise.
1084         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
1085         * tree-inline.c (declare_return_variable): Remove always-true test.
1086         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
1087         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
1088         * ipa-split.c (split_function): Skip the return value for the split
1089         part if it doesn't return.
1090
1091 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1092
1093         PR tree-optimization/49642
1094         * ipa-split.c (forbidden_dominators): New variable.
1095         (check_forbidden_calls): New function.
1096         (dominated_by_forbidden): Likewise.
1097         (consider_split): Check for forbidden dominators.
1098         (execute_split_functions): Initialize and free forbidden
1099         dominators info; call check_forbidden_calls.
1100
1101 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1102
1103         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
1104
1105 2012-01-11  Nick Clifton  <nickc@redhat.com>
1106
1107         * config/rx/rx.md (return): Define pattern.
1108
1109 2012-01-11  Richard Guenther  <rguenther@suse.de>
1110
1111         * doc/extend.texi (malloc attribute): Adjust according to
1112         implementation.
1113
1114 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
1115             Patrick Marlier  <patrick.marlier@gmail.com>
1116
1117         PR middle-end/51516
1118         * trans-mem.c (get_cg_data): Traverse aliases if requested.
1119         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
1120         (ipa_tm_note_irrevocable): Same.
1121         (ipa_tm_scan_irr_block): Same.
1122         (ipa_tm_decrement_clone_counts): Same.
1123         (ipa_tm_scan_irr_function): Same.
1124         (ipa_tm_create_version_alias): Same.
1125         (ipa_tm_create_version): Same.
1126         (ipa_tm_transform_calls_redirect): Same.
1127         (ipa_tm_transform_calls): Same.
1128         (ipa_tm_transform_transaction): Same.
1129         (ipa_tm_execute): Same.
1130
1131 2012-01-10  Richard Guenther  <rguenther@suse.de>
1132
1133         PR middle-end/51806
1134         * opts.c (common_handle_option): Handle -Werror.
1135
1136 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
1137
1138         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
1139         operand number.
1140
1141 2012-01-10  Jason Merrill  <jason@redhat.com>
1142
1143         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
1144         information.
1145
1146 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1147
1148         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
1149         supports R_386_TLS_GD_PLT reloc.
1150         (gcc_cv_as_ix86_tlsldmplt): Check if linker
1151         supports R_386_TLS_LDM_PLT reloc.
1152         * configure: Regenerate.
1153         * config.in: Regenerate.
1154
1155 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
1156
1157         PR target/49868
1158         Extend __pgmx semantics to linearize memory.
1159         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
1160         determine if code comes inline or from libgcc.
1161         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
1162         (movmem_qi, movmem_qi): Set constraint #2 to "n".
1163         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
1164         (movmemx_qi, movmemx_hi): New insns.
1165         (xload_<mode>_libgcc): Rewrite to new insn condition.
1166         (xload_<mode>): Remove insns.
1167         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
1168         cases that don't satisfy avr_xload_libgcc_p().
1169         (avr_addr_space_convert): Allow converting in any direction.
1170         (avr_addr_space_subset_p): Return always true.
1171         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
1172         (avr_emit_movmemhi): Ditto.
1173         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
1174         (avr_out_movmem): Ditto.
1175         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
1176         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
1177         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
1178         (avr_encode_section_info): Encode 'progmem' in symbol flags.
1179         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
1180
1181 2012-01-10  Richard Guenther  <rguenther@suse.de>
1182
1183         PR tree-optimization/50913
1184         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
1185         Require data-refs to be representable by Graphite with respect
1186         to any loop nest.
1187
1188 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
1189
1190         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
1191         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
1192
1193 2012-01-10  Tom de Vries  <tom@codesourcery.com>
1194
1195         PR rtl-optimization/51271
1196         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
1197         handling annulled branch.
1198
1199 2012-01-10  Richard Henderson  <rth@redhat.com>
1200
1201         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
1202         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
1203         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
1204         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
1205         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
1206         arm_expand_vec_perm_const): New.
1207         * config/arm/arm-protos.h: Update.
1208         * config/arm/neon.md (UNSPEC_VCONCAT): New.
1209         (*neon_vswp<VDQX>): New.
1210         (neon_vcombine<VDX>): Use neon_split_vcombine.
1211         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
1212         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
1213         (vec_perm<VE>): New.
1214
1215 2012-01-10  Richard Henderson  <rth@redhat.com>
1216
1217         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
1218         use it if reload_completed.
1219         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
1220         arm_output_asm_insn, arm_process_output_memory_barrier,
1221         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
1222         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
1223         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
1224         arm_process_output_sync_insn, arm_output_sync_insn,
1225         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
1226         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
1227         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
1228         (emit_unlikely_jump): New.
1229         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
1230         (arm_split_atomic_op): New.
1231         * config/arm/arm-protos.h: Update.
1232         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
1233         (struct arm_sync_generator): Remove.
1234         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
1235         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
1236         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
1237         (VUNSPEC_LL, VUNSPEC_SC): New.
1238         (sync_result, sync_memory, sync_required_value, sync_new_value,
1239         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
1240         (attr length): Don't use arm_sync_loop_insns.
1241         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
1242         (movsfcc, movdfcc): Likewise.
1243         * config/arm/constraints.md (Ua): New.
1244         * config/arm/prediates.md (mem_noofs_operand): New.
1245         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
1246         (sync_clobber, sync_t2_reqd): Remove.
1247         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
1248         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
1249         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
1250         (arm_sync_compare_and_swap<SIDI>): Remove.
1251         (arm_sync_compare_and_swap<NARROW>): Remove.
1252         (arm_sync_lock_test_and_set<SIDI>): Remove.
1253         (arm_sync_lock_test_and_set<NARROW>): Remove.
1254         (arm_sync_new_<syncop><SIDI>): Remove.
1255         (arm_sync_new_<syncop><NARROW>): Remove.
1256         (arm_sync_new_nand<SIDI>): Remove.
1257         (arm_sync_new_nand<NARROW>): Remove.
1258         (arm_sync_old_<syncop><SIDI>): Remove.
1259         (arm_sync_old_<syncop><NARROW>): Remove.
1260         (arm_sync_old_nand<SIDI>): Remove.
1261         (arm_sync_old_nand<NARROW>): Remove.
1262         (*memory_barrier): Merge arm_output_memory_barrier.
1263         (atomic_compare_and_swap<QHSD>): New.
1264         (atomic_compare_and_swap<NARROW>_1): New.
1265         (atomic_compare_and_swap<SIDI>_1): New.
1266         (atomic_exchange<QHSD>): New.
1267         (cas_cmp_operand, cas_cmp_str): New.
1268         (atomic_op_operand, atomic_op_str): New.
1269         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
1270         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
1271         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
1272         (arm_load_exclusive<NARROW>): New.
1273         (arm_load_exclusivesi, arm_load_exclusivedi): New.
1274         (arm_store_exclusive<QHSD>): New.
1275
1276 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1277
1278         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
1279         reload patterns if -mvsx-scalar-memory.
1280
1281         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
1282         generated, even -mno-vsx-scalar-double was used.
1283         (vsx_xscvdpsp_scalar): Likewise.
1284         (vsx_xscvspdp_scalar2): Likewise.
1285
1286 2012-01-09  Tom de Vries  <tom@codesourcery.com>
1287             Andrew Pinski  <apinski@cavium.com>
1288
1289         PR debug/51471
1290         * reorg.c (fill_slots_from_thread): Don't speculate
1291         frame-related insns.
1292
1293 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
1294
1295         * sched-int.h (bb_note): Move to...
1296         * basic-block.h: ...here.
1297         * haifa-sched.c (bb_note): Move to...
1298         * cfgrtl.c: ...here.
1299         * function.c (next_block_for_reg): New function.
1300         (move_insn_for_shrink_wrap): Likewise.
1301         (prepare_shrink_wrap): Rewrite to use the above.
1302
1303 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
1304
1305         * gimple.c (is_gimple_non_addressable): Remove.
1306         * gimple.h: Remove is_gimple_non_addressable.
1307         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
1308         is_gimple_non_addressable.
1309         * trans-mem.c (expand_assign_tm): Same.
1310
1311 2012-01-09  Richard Guenther  <rguenther@suse.de>
1312
1313         PR tree-optimization/51775
1314         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
1315         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
1316
1317 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1318
1319         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
1320         tuning parameters.
1321         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
1322
1323 2012-01-09  Richard Guenther  <rguenther@suse.de>
1324
1325         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
1326
1327 2012-01-08  Jan Hubicka  <jh@suse.cz>
1328
1329         PR tree-optimize/51680
1330         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
1331         on when known_vals needs to be computed; cleanup.
1332
1333 2012-01-08  Jan Hubicka  <jh@suse.cz>
1334
1335         PR tree-optimize/51694
1336         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
1337
1338 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1339
1340         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
1341         for -std=c++98 and -std=c++11 too.
1342
1343 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
1344
1345         * cfgloop.c (cancel_loop): Add free() of bbs array.
1346
1347 2012-01-07  Jan Hubicka  <jh@suse.cz>
1348
1349         PR tree-optimization/51600
1350         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
1351         that benefits small functions.
1352
1353 2012-01-07  Jan Hubicka  <jh@suse.cz>
1354
1355         * ipa-inline.c (want_inline_small_function_p): Fix formating.
1356
1357 2012-01-07  Jan Hubicka  <jh@suse.cz>
1358
1359         PR tree-optimization/51680
1360         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
1361         whose inlining reduce unit size.
1362
1363 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
1364
1365         PR bootstrap/51725
1366         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
1367         Add canonical node to containing_mem chain after the non-canonical
1368         one, even if there weren't any locs to propagate.
1369         (remove_useless_values): Keep only canonical values.
1370         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
1371         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
1372         canonicalize mem_chain elements that are not discarded.
1373
1374 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
1375
1376         PR target/47333
1377         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
1378         before emitting functions.
1379
1380         PR gcov-profile/50127
1381         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
1382         clear_aux_for_blocks.
1383
1384 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
1385
1386         PR debug/51746
1387         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
1388
1389 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
1390
1391         * c-decl.c (ext_block): Moved up.
1392         (collect_all_refs, for_each_global_decl): Take ext_block into account.
1393
1394 2012-01-06  Han Shen  <shenhan@google.com>
1395
1396         Translate built-in include paths for sysroot.
1397         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
1398         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
1399
1400         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
1401         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
1402
1403         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
1404         control whether sysroot should be prepended to gxx include dir.
1405
1406         * configure: Regenerate.
1407
1408 2012-01-06  Torvald Riegel  <triegel@redhat.com>
1409
1410         PR rtl-optimization/51771
1411         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
1412         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
1413
1414 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
1415
1416         PR tree-optimization/51315
1417         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
1418         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
1419
1420 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
1421
1422         PR target/51681
1423         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
1424         for shrp pattern.  Correctly handle and fixup shift variable.
1425         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
1426
1427 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
1428
1429         PR debug/51762
1430         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
1431         note when !ACCUMULATE_OUTGOING_ARGS.
1432
1433 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
1434
1435         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
1436         condition.
1437         (extract_range_from_unary_expr_1): Avoid useless computations.
1438
1439 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
1440
1441         PR rtl-optimization/51767
1442         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
1443         of jump_block and add an extra edge for degenerated asm gotos.
1444
1445         PR middle-end/51768
1446         * stmt.c (check_unique_operand_names): Don't ICE during error
1447         reporting if i is from labels chain.
1448
1449         PR middle-end/44777
1450         * profile.c (branch_prob): Split bbs that have exit edge
1451         and need a fake entry edge too.
1452
1453 2012-01-05  Jan Hubicka  <jh@suse.cz>
1454
1455         PR middle-end/49710
1456         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
1457         unlooping loops.
1458
1459 2012-01-05  Richard Guenther  <rguenther@suse.de>
1460
1461         PR lto/50490
1462         * tree-streamer-out.c (write_ts_optimization): New function.
1463         (streamer_write_tree_body): Call it.
1464         * tree-streamer-in.c (lto_input_ts_optimization): New function.
1465         (streamer_read_tree_body): Call it.
1466         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
1467
1468 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
1469
1470         PR middle-end/51761
1471         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
1472         * gimplify.c (gimplify_cleanup_point_expr): Save and set
1473         in_cleanup_point_expr before gimplify_stmt call and restore it
1474         afterwards.
1475         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
1476         in_cleanup_point_expr is false.
1477
1478 2012-01-05  Richard Guenther  <rguenther@suse.de>
1479
1480         PR middle-end/51764
1481         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
1482         to c.opt.
1483         * toplev.c (process_options): Reject combining mudflap and LTO.
1484         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
1485
1486 2012-01-05  Richard Guenther  <rguenther@suse.de>
1487
1488         PR tree-optimization/51760
1489         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
1490         not VARYING.
1491         (bit_value_unop): Handle UNDEFINED operands.
1492         (bit_value_binop): Likewise.
1493
1494 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
1495
1496         * config/avr/avr.c (avr_replace_prefix): Remove.
1497         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
1498         (avr_asm_function_rodata_section): Ditto.
1499         (avr_asm_select_section): Ditto.
1500
1501 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1502
1503         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
1504         insertion.
1505
1506 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
1507
1508         PR bootstrap/51648
1509         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
1510         calls that have any non-fake successor edges.
1511
1512         PR debug/51746
1513         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
1514
1515 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
1516
1517         PR tree-optimization/51624
1518         * tree-sra.c (build_ref_for_model): When replicating a chain of
1519         COMPONENT_REFs, stop as soon as the offset would become negative.
1520
1521 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
1522
1523         PR debug/51695
1524         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
1525         in .debug_loc on the floor.
1526
1527 2012-01-04  Andrew Pinski  <apinski@cavium.com>
1528
1529         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
1530
1531 2012-01-04  Andrew Pinski  <apinski@cavium.com>
1532             Adam Nemet  <anemet@caviumnetworks.com>
1533
1534         * config/mips/mips.md (size): Add SI and DI.
1535         (SIZE): New mode attribute.
1536         (U): New code attribute.
1537         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
1538         (mips_lbux_<mode>): Delete.
1539         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
1540         (mips_lhx): Use gen_mips_lhx_extsi.
1541         (mips_lhx_<mode>): Delete.
1542         (mips_lwx): Delete.
1543         (mips_l<size>x): New expand.
1544         (mips_lwx_<mode>): Delete.
1545         (mips_l<GPR:size>x_<P:mode>): New pattern.
1546         (*mips_lw<u>x_<P:mode>_ext): Likewise.
1547         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
1548         * config/mips/mips.c (mips_lx_address_p): New function.
1549         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
1550         (dsp64): New availability predicate.
1551         (mips_builtins): Add an entry for __builtin_mips_ldx.
1552         * config/mips/mips.h (ISA_HAS_LBX): New define.
1553         (ISA_HAS_LBUX): Likewise.
1554         (ISA_HAS_LHX): Likewise.
1555         (ISA_HAS_LHUX): Likewise.
1556         (ISA_HAS_LWX): Likewise.
1557         (ISA_HAS_LWUX): Likewise.
1558         (ISA_HAS_LDX): Likewise.
1559         * doc/extend.texi (__builtin_mips_ldx): Document.
1560
1561 2012-01-04  Tristan Gingold  <gingold@adacore.com>
1562
1563         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
1564         when long pointers are used.
1565         * config.build (*-*-*vms*): Handle all OpenVMS targets.
1566         (alpha64-dec-*vms*, alpha*-dec-*vms*)
1567         (ia64-hp-*vms*): Remove.
1568         * config/vms/xm-vms64.h: Delete.
1569
1570 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
1571
1572         PR middle-end/51472
1573         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
1574
1575 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
1576
1577         * opts.c (finish_options): Remove duplicate sorry.
1578
1579 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
1580
1581         PR middle-end/51696
1582         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
1583         correctly.
1584
1585 2012-01-04  Richard Guenther  <rguenther@suse.de>
1586
1587         PR middle-end/51750
1588         * tree.c (size_low_cst): New function.
1589         * tree.h (size_low_cst): Declare.
1590         * fold-const.c (fold_comparison): Use it to extract the low
1591         part of the POINTER_PLUS_EXPR offset.
1592
1593 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
1594
1595         Fix clearing ZERO_REG
1596         * config/avr/avr.md (cc): Add alternative "ldi".
1597         (movqi_insn): Use it in cc attribute.
1598         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
1599         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
1600         (output_reload_insisf): Use ZERO_REG to pre-clear register.
1601
1602 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1603
1604         * configure: Regenerate.
1605
1606 2012-01-04  Richard Guenther  <rguenther@suse.de>
1607
1608         PR tree-optimization/49651
1609         * tree-ssa-structalias.c (type_can_have_subvars): New function.
1610         (var_can_have_subvars): Use it.
1611         (get_constraint_for_1): Only consider subfields if there can be any.
1612
1613 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1614
1615         PR bootstrap/51725
1616         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
1617         to its new canonical_cselib_val and the cselib_val was in
1618         first_containing_mem chain, but the canonical_cselib_val was not,
1619         add the latter into the chain.
1620         (cselib_invalidate_mem): Compare canonical_cselib_val of
1621         addr_list chain elt with v.
1622
1623         PR pch/51722
1624         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
1625         dwarf2out_undef): Allocate e.info using ggc_strdup instead
1626         of xstrdup.
1627         (output_macinfo_op): Don't ggc_strdup fd->filename.
1628         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
1629         then ggc_strdup it.  Don't free inc->info or cur->info.
1630         (output_macinfo): Don't free ref->info or file->info.
1631
1632 2012-01-03  Ira Rosen  <irar@il.ibm.com>
1633
1634         PR tree-optimization/51269
1635         * tree-vect-loop-manip.c (set_prologue_iterations): Make
1636         first_niters a pointer.
1637         (slpeel_tree_peel_loop_to_edge): Likewise.
1638         (vect_do_peeling_for_loop_bound): Update call to
1639         slpeel_tree_peel_loop_to_edge.
1640         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
1641         here.  Remove it from the parameters list.
1642         (vect_do_peeling_for_alignment): Update calls and compute
1643         wide_prolog_niters.
1644
1645 2012-01-03  Richard Guenther  <rguenther@suse.de>
1646
1647         PR tree-optimization/51070
1648         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
1649         Properly handle calls.
1650
1651 2012-01-03  Richard Guenther  <rguenther@suse.de>
1652
1653         PR tree-optimization/51692
1654         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
1655         the LHS of allocation stmts.
1656
1657 2012-01-03  Olivier Hainque  <hainque@adacore.com>
1658
1659         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
1660
1661 2012-01-03  Olivier Hainque  <hainque@adacore.com>
1662
1663         * collect2.c (main): In AIX specific computations for vector
1664         insertions, use CONST_CAST2 to cast from char ** to const char **.
1665
1666 2012-01-03  Richard Guenther  <rguenther@suse.de>
1667
1668         PR debug/51650
1669         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
1670         the context of a limbo DIE when it does not already exist.
1671
1672 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1673
1674         PR tree-optimization/51719
1675         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
1676         but direct call is, clear direct call's lhs and don't add fallthrough
1677         edge from dcall_bb to join_bb and PHIs.
1678
1679 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1680
1681         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
1682         the instructions emitted by the pattern.
1683         ("*TDC_insn_<mode>"): Add comment.
1684
1685 2012-01-03  Richard Guenther  <rguenther@suse.de>
1686
1687         PR middle-end/51730
1688         * fold-const.c (fold_comparison): Properly canonicalize
1689         tree offset and HOST_WIDE_INT bit position.
1690
1691 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
1692
1693         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
1694         operands for extzv pattern.
1695
1696 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
1697
1698         PR bootstrap/51725
1699         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
1700         on mem_elt first.
1701
1702 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
1703
1704         * doc/invoke.texi (-flto and related options): Copy-edit.
1705
1706 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1707
1708         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
1709
1710 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
1711
1712         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
1713         New patterns.
1714
1715 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1716
1717         * expr.h (move_by_pieces_ninsns): Declare.
1718         * expr.c (move_by_pieces_ninsns): Make external.
1719         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
1720         (mips_store_by_pieces_p): Likewise.
1721         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
1722         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
1723         * config/mips/mips.c (mips_move_by_pieces_p): New function.
1724         (mips_store_by_pieces_p): Likewise.
1725
1726 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
1727
1728         * passes.c (register_one_dump_file): Free full_name.
1729
1730         * reload1.c (reload): Don't allocate reg_max_ref_width here.
1731         (calculate_elim_costs_all_insns): Free offsets_at and
1732         offsets_known_at at the end and clear the pointers.
1733
1734 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1735
1736         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
1737         this option introduced in r180739.
1738
1739 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1740
1741         PR target/51345
1742         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
1743         (tmake_file target=avr): Add avr/t-multilib.
1744
1745         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
1746         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
1747         * config/avr/genmultilib.awk: New file.
1748         * config/avr/t-multilib: New auto-generated file.
1749         * config/avr/multilib.h: New auto-generated file.
1750         * config/avr/t-avr (AVR_MCUS): New variable.
1751         (genopt.sh): Use it.
1752         (s-mlib): Depend on t-multilib.
1753         (t-multilib, multilib.h): New dependencies.
1754         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
1755         (MULTILIB_OPTIONS): Remove.
1756         (MULTILIB_MATCHES): Remove.
1757         (MULTILIB_DIRNAMES): Remove.
1758         (MULTILIB_EXCEPTIONS): Remove:
1759         * config/avr/genopt.sh: Don't use hard coded file name;
1760         pass AVR_MCUS from t-avr instead.
1761
1762 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1763
1764         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
1765
1766 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
1767
1768         Implement light-weight DImode support.
1769         * config/avr/avr-dimode.md: New file.
1770         * config/avr/avr.md: Include it.
1771         (adjust_len): Add plus64, compare64.
1772         (HIDI): Remove code iterator.
1773         (code_stdname): New code attribute.
1774         (rotx, rotsmode): Remove DI.
1775         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
1776         as code iterator.
1777         * config/avr/avr-protos.h (avr_have_dimode): New.
1778         (avr_out_plus64, avr_out_compare64): New.
1779         * config/avr/avr.c (avr_out_compare): Handle DImode.
1780         (avr_have_dimode): New variable definition and initialization.
1781         (avr_out_compare64, avr_out_plus64): New functions.
1782         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
1783         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
1784         (avr_compare_pattern): Skip DImode comparisons.
1785
1786 2012-01-02  Revital Eres  <revital.eres@linaro.org>
1787
1788         * ddg.c (def_has_ccmode_p): New function.
1789         (add_cross_iteration_register_deps,
1790         create_ddg_dep_from_intra_loop_link): Call it.
1791
1792 2012-01-02  Richard Guenther  <rguenther@suse.de>
1793
1794         PR other/51679
1795         * invoke.texi (fassociative-math): Remove spurious paranthesis.
1796
1797 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
1798
1799         * gcc.c (process_command): Update copyright notice dates.
1800         * gcov.c (print_version): Likewise.
1801         * gcov-dump.c (print_version): Likewise.
1802         * mips-tfile.c (main): Likewise.
1803         * mips-tdump.c (main): Likewise.
1804
1805 2012-01-01  Ira Rosen  <irar@il.ibm.com>
1806
1807         PR tree-optimization/51704
1808         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
1809         a use is inside the basic block or loop before accessing its vect info.
1810
1811 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
1812
1813         PR rtl-optimization/51069
1814         * cfgloopmanip.c (remove_path): Removing path making irreducible
1815         region unconditional makes BB part of the region.
1816
1817 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
1818
1819         PR tree-optimization/51683
1820         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
1821         calls with side-effects.
1822         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1823 \f
1824 Copyright (C) 2012 Free Software Foundation, Inc.
1825
1826 Copying and distribution of this file, with or without modification,
1827 are permitted in any medium without royalty provided the copyright
1828 notice and this notice are preserved.