OSDN Git Service

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