OSDN Git Service

Backport from mainline:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3         Backport from mainline:
4         2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5
6         PR target/52999
7         * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
8         in constant pool.
9
10 2012-05-04  Ian Lance Taylor  <iant@google.com>
11
12         * tree-vect-patterns.c (vect_single_imm_use): Correct return
13         values from false to NULL.
14
15 2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
16
17         Backport from mainline
18         2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
19
20         PR target/53228
21         * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
22         (TARGET_CMOV): Rename from TARGET_CMOVE.
23         (TARGET_CMOVE): New define.
24         * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
25         Do not set TARGET_CMOVE here.
26
27 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
28
29         Backport from mainline:
30
31         2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
32
33         PR tree-optimization/52633
34         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
35         vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
36         (vect_recog_over_widening_pattern): Remove handling of code that was
37         already detected as over-widening pattern.  Remove special handling
38         of "unsigned" cases.  Instead, support general case of conversion
39         of the shift result to another type.
40
41         2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
42
43         * tree-vect-patterns.c (vect_single_imm_use): New function.
44         (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
45         (vect_recog_over_widening_pattern): Likewise.
46         (vect_recog_widen_shift_pattern): Likewise.
47
48         2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
49
50         PR tree-optimization/52870
51         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
52         presumed pattern statement is within the same loop or basic block.
53
54 2012-05-04  Richard Guenther  <rguenther@suse.de>
55
56         * common.opt (flto-report): Do not mark as Optimization.
57
58 2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>
59
60         PR target/48496
61         * recog.c (constrain_operands): If extra constraints are present, also
62         accept pseudo-registers with equivalent memory locations during reload.
63
64 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
65
66         Backport from the mainline
67         2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
68
69         PR target/53199
70         * config/rs6000/rs6000.md (bswapdi splitters): If
71         -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
72         default) is used, generate an alternate sequence that does not
73         depend on using indexed addressing.
74
75 2012-05-03  David S. Miller  <davem@davemloft.net>
76
77         PR target/52684
78         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
79         MEM directly into a libcall, mark it's MEM_EXPR as addressable.
80         (sparc_emit_float_lib_cmp): Likewise.
81
82 2012-05-04  Martin Jambor  <mjambor@suse.cz>
83
84         Backport from mainline
85         2012-05-02  Martin Jambor  <mjambor@suse.cz>
86
87         PR lto/52605
88         * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
89         of a variable when the contect is a function.
90
91 2012-05-03  Jakub Jelinek  <jakub@redhat.com>
92
93         PR plugins/53126
94         * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
95         append program name to it and pass that as first argument
96         to make_relative_prefix.  Always pass standard_libexec_prefix
97         as last argument to make_relative_prefix.  If
98         make_relative_prefix returns NULL, fall back to
99         standard_libexec_prefix.
100
101         PR debug/53174
102         * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
103         removed.
104
105         PR target/53187
106         * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
107         mode, return that mode.
108
109 2012-05-03  Richard Guenther  <rguenther@suse.de>
110
111         PR tree-optimization/53144
112         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
113         Rename to ...
114         (vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
115         with SSA name values.
116         (vn_reference_lookup_3): Adjust callers.
117
118 2012-05-02  Jakub Jelinek  <jakub@redhat.com>
119
120         PR tree-optimization/53163
121         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
122         return value from compute_all_dependences.
123
124         PR rtl-optimization/53160
125         * ree.c (combine_reaching_defs): Handle the case where cand->insn
126         has been modified by ree pass already.
127
128 2012-05-01  Uros Bizjak  <ubizjak@gmail.com>
129
130         Backport from mainline
131         2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
132
133         PR middle-end/53136
134         * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
135         calls to cgraph_node_name in xstrdup.
136         (ipa_make_edge_direct_to_target): Ditto.
137         * tree-sra.c (convert_callers_for_node): Ditto.
138         * lto-symtab.c (lto_cgraph_replace_node): Ditto.
139         * ipa-cp.c (perhaps_add_new_callers): Ditto.
140         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
141         (cgraph_materialize_all_clones): Ditto.
142         * ipa-inline.c (report_inline_failed_reason): Ditto.
143         (want_early_inline_function_p): Ditto.
144         (edge_badness): Ditto.
145         (update_edge_key): Ditto.
146         (flatten_function): Ditto.
147         (ipa_inline): Ditto.
148         (inline_always_inline_functions): Ditto.
149         (early_inline_small_functions): Ditto.
150
151 2012-04-30  Andreas Tobler  <andreast@fgznet.ch>
152
153         Backport from mainline
154         2012-03-21  Andreas Tobler  <andreast@fgznet.ch>
155
156         * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
157         Introduce emul_name to select the right linker emulation for
158         powerpc64-*-freebsd*.
159         * configure: Regenerate.
160         * config.gcc: Add bits to support powerpc64-*-freebsd*.
161         * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
162         * config/rs6000/freebsd64.h: New file.
163         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
164         POWERPC_FREEBSD.
165         (rs6000_savres_strategy): Likewise.
166         (rs6000_savres_routine_name): Likewise.
167         (rs6000_elf_file_end): Likewise.
168         * config/rs6000/t-freebsd64: New file.
169         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
170         rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
171
172 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
173
174         Backport from mainline
175         2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
176
177         PR target/53138
178         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
179
180 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
181
182         * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
183         predicate to discriminate types.
184
185 2012-04-27  Richard Guenther  <rguenther@suse.de>
186
187         PR c/51527
188         * convert.c (convert_to_integer): Avoid infinite recursion for
189         target-defined built-in types.
190
191 2012-04-26  Hans-Peter Nilsson  <hp@axis.com>
192
193         PR target/53120
194         * config/cris/cris.md ("*andhi_lowpart_v32")
195         ("*andqi_lowpart_v32"): Change first input-only operand from
196         a (match_operand ...) to (match_dup 0).  Drop alternatives with
197         const_int-matching constraints for redundancy.
198         ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
199         three-operand alternative.
200
201 2012-04-26  Uros Bizjak  <ubizjak@gmail.com>
202
203         Backport from mainline
204         2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
205
206         * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
207         (*addsi_2_zext): Ditto.
208         (*add<mode>_3): Ditto.
209         (*addsi_3_zext): Ditto.
210         (*add<mode>_5): Ditto.
211
212 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
213
214         PR c/52880
215         * c-typeck.c (set_nonincremental_init,
216         set_nonincremental_init_from_string): Pass true instead of false
217         as IMPLICIT to add_pending_init.
218
219 2012-04-24  Georg-Johann Lay  <avr@gjlay.de>
220
221         Backport from 2012-04-24 mainline r186768.
222
223         PR target/53065
224         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
225
226 2012-04-24  Richard Guenther  <rguenther@suse.de>
227
228         PR tree-optimization/53085
229         * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
230         stores.
231
232 2012-04-24  Jakub Jelinek  <jakub@redhat.com>
233
234         PR middle-end/53084
235         * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR
236         of MEM_REF.
237         (output_addressed_constants): Likewise.
238
239         PR middle-end/52999
240         * varasm.c (get_section): Don't ICE for section conflicts with
241         built-in section kinds.
242
243 2012-04-23  David Edelsohn  <dje.gcc@gmail.com>
244
245         * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
246
247 2012-04-23  Georg-Johann Lay  <avr@gjlay.de>
248
249         * doc/extend.texi (AVR Named Address Spaces): Fix typos.
250
251 2012-04-23  Richard Guenther  <rguenther@suse.de>
252
253         PR c/53060
254         * c-typeck.c (build_binary_op): Fix typo.
255
256 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
257
258         PR tree-optimizations/52891
259         * tree-vect-patterns.c (adjust_bool_pattern): Use
260         build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
261         but with non-standard precision.
262
263 2012-04-22  Ian Lance Taylor  <iant@google.com>
264
265         * godump.c (go_output_typedef): Dump size of structs.
266
267 2012-04-20  Ulrich Weigand  <ulrich.weigand@linaro.org>
268
269         Backport from mainline:
270
271         * config/arm/arm.c (arm_print_operand): Fix invalid alignment
272         hints for 'A' operand types.
273
274 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
275
276         Backport from 2012-04-19 mainline r186588.
277
278         PR target/53033
279         * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
280         the case *(X+const).
281
282 2012-04-18  Uros Bizjak  <ubizjak@gmail.com>
283
284         * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
285
286 2012-04-17  Uros Bizjak  <ubizjak@gmail.com>
287
288         PR target/53020
289         * config/i386/sync.md (atomic_<code><mode>): Rename to
290         atomic_<logic><mode>.
291
292 2012-04-16  Uros Bizjak  <ubizjak@gmail.com>
293
294         Backport from mainline
295         2012-04-12  Uros Bizjak  <ubizjak@gmail.com>
296
297         PR target/52932
298         * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
299         argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
300         * config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI.
301         (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
302         * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
303         Update builtin type to V8SF_FTYPE_V8SF_V8SI.
304         (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
305         gen_avx2_permvarv8sf.
306
307 2012-04-16  Martin Jambor  <mjambor@suse.cz>
308
309         Backported from mainline
310
311         2012-04-13  Martin Jambor  <mjambor@suse.cz>
312         PR middle-end/52939
313
314         * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
315         fold_ctor_reference returns a zero constant.
316
317 2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
318
319         Backported from mainline
320         2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
321
322         * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
323         and __ILP32__ for x32.
324
325 2012-04-13  Tom de Vries  <tom@codesourcery.com>
326
327         Backport from mainline r186418.
328
329         2012-04-13  Tom de Vries  <tom@codesourcery.com>
330
331         * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
332         parameters vuse and vuse_escaped.
333         (find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
334         gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
335         vuse1 != vuse2.
336
337 2012-04-13  Richard Guenther  <rguenther@suse.de>
338
339         PR tree-optimization/52969
340         * tree-if-conv.c (predicate_mem_writes): Properly gimplify
341         the condition for the COND_EXPR and handle predicate negation
342         by swapping the COND_EXPR arms.
343
344 2012-04-13  Richard Guenther  <rguenther@suse.de>
345
346         PR c/52862
347         * convert.c (convert_to_pointer): Remove special-casing of
348         zero.
349
350 2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
351
352         Backport from mainline
353         2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
354
355         PR target/52775
356         * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
357         the list of options to enable the FCFID instruction.
358         (TARGET_EXTRA_BUILTINS): Adjust comment.
359
360 2012-04-12  Richard Guenther  <rguenther@suse.de>
361
362         PR tree-optimization/52943
363         * tree-chrec.h (chrec_is_positive): Remove.
364         * tree-scalar-evolution.c (chrec_is_positive): Move ...
365         * tree-data-ref.c (chrec_is_positive): ... here.  Make static.
366         Return false for a constant zero instead of negative.
367         (analyze_siv_subscript_cst_affine): Handle zero difference
368         in the initial condition explicitely.
369
370 2012-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
371
372         PR middle-end/52894
373         * varasm.c (process_pending_assemble_externals): Set
374         pending_assemble_externals_processed true.
375         (assemble_external): Call assemble_external_real if the pending
376         assemble externals have been processed.
377
378 2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>
379
380         PR target/52717
381         * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
382         the DECL generated for the special GOT helper.
383
384 2012-04-06  Walter Lee  <walt@tilera.com>
385
386         Backport from mainline
387         2012-03-07  Walter Lee  <walt@tilera.com>
388
389         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
390         REG_CFA_* notes for the stack pointer.
391         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
392         EH_RETURN_STACKADJ_RTX.
393         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
394         generate REG_CFA_* notes for the stack pointer.
395         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
396         by EH_RETURN_STACKADJ_RTX.
397
398 2012-04-06  Matt Turner  <mattst88@gmail.com>
399
400         * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
401
402 2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>
403
404         * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
405         of the destination isn't also a FP_REGS register.
406
407 2012-04-03  Richard Guenther  <rguenther@suse.de>
408
409         Backport from mainline
410         2012-03-02  Richard Guenther  <rguenther@suse.de>
411
412         PR tree-optimization/52406
413         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
414         (struct indices): Add unconstrained_base member.
415         (struct dr_alias): Remove unused vops member.
416         (DR_UNCONSTRAINED_BASE): New define.
417         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
418         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
419         be an artificial access that covers the whole indexed object,
420         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
421         plain decl base-objects to their MEM_REF variant.
422         (dr_may_alias_p): When the base-object of either data reference
423         has unknown size use only points-to information.
424         (compute_affine_dependence): Make dumps easier to read and
425         more verbose.
426         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
427         DR_REF when looking for packed references.
428         (vect_supportable_dr_alignment): Likewise.
429
430 2012-04-03  Richard Guenther  <rguenther@suse.de>
431
432         Backport from mainline
433         2012-03-15  Richard Guenther  <rguenther@suse.de>
434
435         PR middle-end/52580
436         * tree-data-ref.c (subscript_dependence_tester_1): Check
437         all dimensions for non-conflicting access functions.
438
439 2012-04-03  Richard Guenther  <rguenther@suse.de>
440
441         Backport from mainline
442         2012-03-06  Richard Guenther  <rguenther@suse.de>
443
444         PR middle-end/52493
445         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
446
447         2012-03-23  Richard Guenther  <rguenther@suse.de>
448
449         PR tree-optimization/52678
450         * tree-vectorizer.h (struct _stmt_vec_info): Add
451         loop_phi_evolution_part member.
452         (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
453         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
454         STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
455         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
456         Use the cached evolution part and the PHI nodes value from
457         the loop preheader edge instead of re-analyzing the evolution.
458
459         2012-03-26  Richard Guenther  <rguenther@suse.de>
460
461         PR tree-optimization/52701
462         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
463         compute and set the evolution part of PHI nodes.
464
465         2012-03-30  Richard Guenther  <rguenther@suse.de>
466
467         PR tree-optimization/52754
468         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
469         propagate arbitrary addresses into really plain dereferences.
470
471 2012-04-03  Jakub Jelinek  <jakub@redhat.com>
472
473         PR tree-optimization/52835
474         * tree-data-ref.c (build_rdg): Return NULL if
475         compute_data_dependences_for_loop failed.
476
477 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
478
479         * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
480         (stmt_can_make_abnormal_goto): Use it.
481         (is_ctrl_altering_stmt): Likewise.
482
483 2012-03-31  Martin Jambor  <mjambor@suse.cz>
484
485         Backported from mainline
486         2012-03-30  Martin Jambor  <mjambor@suse.cz>
487
488         * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
489         is a builtin_stack_save in a dominating BB.
490
491 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
492
493         * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
494         crossing 128bit lane boundary.
495
496 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
497
498         Backported from mainline
499         2012-03-27  Uros Bizjak  <ubizjak@gmail.com>
500
501         PR target/52698
502         * config/i386/i386-protos.h (ix86_legitimize_reload_address):
503         New prototype.
504         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
505         * config/i386/i386.c: Include reload.h.
506         (ix86_legitimize_reload_address): New function.
507
508 2012-03-28  Martin Jambor  <mjambor@suse.cz>
509
510         Backported from mainline
511         2012-03-27  Martin Jambor  <mjambor@suse.cz>
512
513         PR middle-end/52693
514         * tree-sra.c (sra_modify_assign): Do not call
515         load_assign_lhs_subreplacements when working with an unscalarizable
516         region.
517
518 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
519
520         PR middle-end/52691
521         * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
522         __builtin_va_start to __builtin_next_arg if the latter is
523         builtin_decl_explicit_p rather than when it is not.
524
525         PR middle-end/52750
526         * tree-vect-generic.c (vector_element): Perform multiplication
527         for pos in bitsizetype type instead of idx type.
528
529 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
530
531         Backport from 2012-03-28 mainline r185910.
532
533         PR target/52692
534         * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
535         (avr_builtin_decl): New static function.
536         (struct avr_builtin_description, avr_bdesc): Move up.
537         Add GTY marker. Add field fndecl. Remove redundant field id.
538         (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
539         (avr_expand_builtin): Code cleanup because .id is removed.
540
541 2012-03-28  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>
542
543         PR middle-end/51893
544         * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
545         targets.
546
547 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
548
549         Backport from 2012-03-28 mainline r185907.
550
551         PR target/52737
552         * config.gcc (tm_file): Remove avr/multilib.h.
553
554         * doc/invoke.texi (AVR Options): Adjust
555         documentation of -mtiny-stack.
556
557         * config/avr/genmultilib.awk: Remove code to generate multilib.h.
558         (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
559         * config/avr/t-avr: Remove generation of multilib.h.
560         * config/avr/t-multilib: Regenerate.
561         * config/avr/multilib.h: Remove.
562         * config/avr/avr.opt (-msp8): New option.
563         (avr_sp8): New variable.
564         * config/avr/driver-avr.c (avr_device_to_sp8): New function.
565         * config/avr/avr.h (AVR_HAVE_SPH): New define.
566         (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
567         (avr_device_to_sp8): New prototype.
568         (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
569         (DRIVER_SELF_SPECS): New define.
570         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
571         __AVR_SP8__, __AVR_HAVE_SPH__.
572         * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
573         AVR_HAVE_8BIT_SP to decide if SP_H is present.
574         (avr_file_start): Ditto.
575
576 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
577
578         PR target/52736
579         * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
580         instead of 8 in adjust_address.
581
582 2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
583
584         * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
585         of a unit before computing the offset in units.
586
587 2012-03-27  Richard Guenther  <rguenther@suse.de>
588
589         PR middle-end/52720
590         * fold-const.c (try_move_mult_to_index): Handle &x.array more
591         explicitely.
592
593 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
594
595         PR target/52610
596         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
597
598 2012-03-24  Steven Bosscher  <steven@gcc.gnu.org>
599
600         PR middle-end/52640
601         * varasm.c: Include pointer-set.h.
602         (pending_assemble_externals_set): New pointer set.
603         (process_pending_assemble_externals): Destroy the pointer set.
604         (assemble_external): See if decl is in pending_assemble_externals_set,
605         and add it to pending_assemble_externals if necessary.
606         (init_varasm_once): Allocate pending_assemble_externals_set.
607
608 2012-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
609
610         Backported from mainline
611         2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
612
613         PR target/50310
614         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
615         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
616         (vector_ltgt<mode>): Likewise.
617         (vector_ordered<mode>): Likewise.
618         (vector_unordered<mode>): Likewise.
619         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
620
621 2012-03-23  Joern Rennecke  <joern.rennecke@embecosm.com>
622
623         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
624         Make static.
625
626 2012-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
627
628         Backported from mainline
629         2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
630
631         PR target/48596
632         PR target/48806
633         * config/sh/sh.c (sh_register_move_cost): Increase cost between
634         GENERAL_REGS and FP_REGS for SImode.
635
636 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
637
638         PR middle-end/52547
639         * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
640         on any new_local_var_chain vars declared during recursing on
641         GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
642
643 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
644
645         Backport from 2012-03-22 mainline r185692.
646
647         PR target/52496
648         * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
649         (unspecv): Add UNSPECV_MEMORY_BARRIER.
650         (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
651         (delay_cycles_1, delay_cycles_2): Ditto.
652         (delay_cycles_3, delay_cycles_4): Ditto.
653         (nopv, *nopv): Ditto.
654         (sleep, *sleep): Ditto.
655         (wdr, *wdr): Ditto.
656
657         Backport from 2012-03-21 mainline r185605.
658
659         PR rtl-optimization/52543
660         PR target/52461
661         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
662         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
663         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
664         (avr_load_libgcc_p): Restrict to __flash loads.
665         (avr_out_lpm): Only handle 1-byte loads from __flash.
666         (avr_load_lpm): New function.
667         (avr_find_unused_d_reg): Remove.
668         (avr_out_lpm_no_lpmx): Remove.
669         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
670         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
671         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
672         (load_<mode>, load_<mode>_clobber): New insns.
673         (mov<mode>): For multi-byte move from non-generic
674         16-bit address spaces: Expand to load_<mode> resp.
675         load_<mode>_clobber.
676         (load<mode>_libgcc): Remove expander.
677         (split-lpmx): Remove split.
678
679         Backport from 2012-03-13 mainline r185329.
680
681         PR target/52488
682         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
683         offset (size) to a value the insns can deal with.
684         (expand_epilogue): Ditto.
685
686         Backport from 2012-03-12 mainline r185256.
687
688         PR target/52499
689         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
690         type from reg_class_t to enum reg_class.
691         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
692
693         Backport from 2012-03-12 mainline r185253.
694
695         PR target/52148
696         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
697         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
698         r184615 from 2012-02-28.
699
700         Backport from 2012-03-08 mainline r185105.
701
702         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
703         for constants in [-63,63].
704
705         Backport from 2012-03-08 mainline r185100.
706
707         PR target/52496
708         * config/avr/avr.c (avr_mem_clobber): New static function.
709         (avr_expand_delay_cycles): Add memory clobber operand to
710         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
711         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
712         (enable_interrupt, disable_interrupt): New expander.
713         (nopv, sleep, wdr): New expanders.
714         (delay_cycles_1): Add memory clobber.
715         (delay_cycles_2): Add memory clobber.
716         (delay_cycles_3): Add memory clobber.
717         (delay_cycles_4): Add memory clobber.
718         (cli_sei): New insn from former "enable_interrupt",
719         "disable_interrupt" with memory clobber.
720         (*wdt): New insn from former "wdt" with memory clobber.
721         (*nopv): Similar, but for "nopv".
722         (*sleep): Similar, but for "sleep".
723
724         Backport from 2012-03-07 mainline r185043.
725
726         PR target/52484
727         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
728
729         Backport from 2012-03-07 mainline r185032.
730
731         PR target/52506
732         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
733         to: RAMPZ, RAMPY, RAMPX, RAMPD.
734         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
735
736         Backport from 2012-03-07 mainline r185031.
737
738         PR target/52505
739         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
740         from RAM.
741         * config/avr/avr.md (xload_8): Adjust insn length.
742
743         Backport from 2012-03-07 mainline r185030.
744
745         PR target/52461
746         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
747         if RAMPZ affects reading from RAM.
748
749         Backport from 2012-03-05 mainline r184919.
750
751         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
752
753 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
754
755         Backport from mainline r185259.
756
757         PR other/52545
758         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
759         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
760
761 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
762
763         Backported from mainline
764         2012-03-13  Jakub Jelinek  <jakub@redhat.com>
765
766         PR c/52577
767         * c-parser.c (c_parser_postfix_expression)
768         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
769
770         * config/i386/smmintrin.h: Avoid /* within a comment.
771         * config/i386/nmmintrin.h: Likewise.
772
773 2012-03-22  Richard Guenther  <rguenther@suse.de>
774
775         * BASE-VER: Set to 4.7.1.
776         * DEV-PHASE: Set to prerelease.
777
778 2012-03-22  Release Manager
779
780         * GCC 4.7.0 released.
781
782 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
783
784         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
785
786 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
787             Andrew Pinski  <apinski@cavium.com>
788
789         PR middle-end/52592
790         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
791         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
792         calls instead of __builtin_ir{int,ound}*.
793
794 2012-03-14  Jakub Jelinek  <jakub@redhat.com>
795
796         PR c++/52582
797         * config/rs6000/rs6000.c (call_ABI_of_interest): Return true
798         if c_node is NULL.
799
800 2012-03-13  Joseph Myers  <joseph@codesourcery.com>
801
802         * doc/invoke.texi (-std=c99), doc/standards.texi (C language):
803         Refer to GCC 4.7 version of c99status.html.
804
805 2012-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
806
807         Backport from mainline
808         2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
809
810         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
811         redefine to be NULL if the current bit-size is different from the
812         configured bit-size.
813
814         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
815         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
816         set the default tuning.  Add asserts to make sure the cpu and tune
817         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
818         test whether the index is set, instead of > 0.
819         (rs6000_file_start): Do not reset the default cpu if the current
820         bit-size is different from the configured bit-size.
821
822 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
823
824         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
825         binutils reference.
826         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
827         Update binutils references.
828         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
829         Update binutils reference.
830         Update Sun as/GNU ld caveat.
831         Document binutils largefile requirement for LTO plugin.
832         Remove reference to alternate libpthread.
833
834 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
835
836         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update binutils
837         reference.
838         (Specific, mips-sgi-irix6): Likewise.
839
840 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
841
842         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
843         * configure: Regenerate.
844
845 2012-03-07  Richard Henderson  <rth@redhat.com>
846
847         * config/m68k/m68k.h (ISA_HAS_TAS): New.
848         * config/m68k/sync.md (atomic_test_and_set): Use it.
849         (atomic_test_and_set_1): Likewise.
850
851 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
852
853         PR target/51417
854         * Makefile.in: Let install-gcc-ar depend on installdirs,
855         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
856         Don't double canonicalize if cross-compiling.
857
858 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
859
860         * trans-mem.c: New typedef for tm_region_p.
861         Define vector types for tm_region_p.
862         (tm_region_init): Replace region_worklist to a vector called
863         bb_regions.
864
865 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
866
867         PR middle-end/52463
868         * trans-mem.c (tm_region_init): Use last_basic_block.
869
870 2012-03-05  Richard Henderson  <rth@redhat.com>
871
872         PR tree-opt/52242
873         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
874         * omp-low.c (expand_omp_atomic): Assume anything aligned to
875         BIGGEST_ALIGNMENT is aligned.
876
877 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
878
879         * config/sh/sh.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
880
881 2012-03-05  Richard Henderson  <rth@redhat.com>
882
883         PR target/52481
884         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
885         instead of calling negqi2 directly.
886
887 2012-03-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
888
889         * config/mips/iris6.h [!USED_FOR_TARGET] (long_intmax): Declare.
890         (INTMAX_TYPE): Use it.
891         (UINTMAX_TYPE): Likewise.
892         (SUBTARGET_OVERRIDE_OPTIONS): Define.
893         (irix6_c_common_override_options): Declare.
894         (C_COMMON_OVERRIDE_OPTIONS): Define.
895         * config/mips/mips.c [TARGET_IRIX6] (long_intmax): Define.
896         * config/mips/irix6-c.c: New file.
897         * config/mips/t-irix6 (irix6-c.o): New target.
898         * config.gcc (mips-sgi-irix6.5): Set c_target_objs,
899         cxx_target_objs.
900
901 2012-03-02  Richard Henderson  <rth@redhat.com>
902
903         * optabs.c (expand_atomic_test_and_set): Honor
904         atomic_test_and_set_trueval even when atomic_test_and_set
905         optab is not in use.
906
907 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
908
909         Backport from mainline
910         2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
911
912         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
913
914 2012-03-02  Richard Guenther  <rguenther@suse.de>
915
916         * DEV-PHASE: Set to prerelease.
917
918 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
919
920         * config.gcc (obsolete): Add all ARM targets using the FPA.
921         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
922         * doc/install.texi: Avoid references to obsolete ARM ports.
923
924 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
925
926         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
927
928 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
929             Joern Rennecke  <joern.rennecke@embecosm.com>
930
931         * doc/extend.texi: Expand and update information on interrupt
932         attribute for Epiphany.
933
934 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
935
936         * config/sh/sh-protos.h: Update copyright notice dates.
937         * config/sh/sh.h: Likewise.
938         * config/sh/sh.md: Likewise.
939         * config/sh/constraints.md: Likewise.
940         * config/sh/predicates.md: Likewise.
941
942 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
943
944         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
945         * config/sh/sh.c (tertiary_reload_operand): Likewise.
946
947 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
948
949         * config/sh/constraints.md: Fix comment typo.
950
951 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
952
953         PR target/52408
954         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
955         unsigned HOST_WIDE_INT.
956         (zvdep_imm64): Likewise.
957         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
958         (vdepi_and): Likewise.
959         Likewise for unamed 64-bit patterns.
960         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
961
962 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
963
964         PR debug/52001
965         PR rtl-optimization/52417
966         * cselib.c (cselib_any_perm_equivs): New variable.
967         (cselib_reset_table): Check that it's not set when not
968         preserving constants.
969         (cselib_add_permanent_equiv): Set it.
970         (cselib_have_permanent_equivalences): New.
971         (cselib_init, cselib_finish): Reset it.
972         * cselib.h (cselib_have_permanent_equivalences): Declare.
973         * alias.c (get_addr): Restore earlier behavior when there
974         aren't permanent equivalences.
975
976 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
977
978         * config/mn10300/mn10300-modes.def: Fix copyright notice.
979         * config/v850/v850-modes.def: Fix copyright notice.
980
981 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
982
983         * doc/extend.texi (AVR Built-in Functions): Document
984         __builtin_avr_flash_segment.
985
986         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
987         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
988         (*split.flash_segment): New insn-and-split.
989         * config/avr/avr.c (avr_init_builtins): Add local variables:
990         const_memx_void_node, const_memx_ptr_type_node,
991         char_ftype_const_memx_ptr.
992
993 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
994
995         PR tree-optimization/52445
996         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
997         add ssa_name_ver, offset and size fields and change store field
998         to bool.
999         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
1000         (add_or_mark_expr): Likewise.  Only consider previous stores
1001         with the same size and offset.
1002         (nt_init_block): Only look at gimple_assign_single_p stmts,
1003         doesn't look at rhs2.
1004
1005 2012-03-01  Richard Guenther  <rguenther@suse.de>
1006
1007         PR middle-end/52443
1008         * tree-cfg.c (verify_gimple_assign_unary): Allow any
1009         conversions from integral types to pointer types.
1010
1011 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
1012
1013         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
1014         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
1015         unintentionally removed in r184616.
1016
1017 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1018
1019         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
1020         3DNow from bdver1.
1021
1022 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
1023             Uros Bizjak  <ubizjak@gmail.com>
1024
1025         PR target/52437
1026         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
1027         alternatives, add "e" constraint to the new last alternative
1028         and ! to last 3 alternatives.
1029
1030 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
1031
1032         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
1033         DW_AT_artificial attributes at the end of the processing.
1034         (gen_array_type_die): Likewise.
1035         (gen_enumeration_type_die): Likewise.
1036         (gen_struct_or_union_type_die): Likewise.
1037         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
1038         the parent type.
1039
1040 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
1041
1042         PR middle-end/52419
1043         * expr.c (expand_assignment): If doing misaligned store that doesn't
1044         cover all mode bits, perform a RMW cycle.
1045
1046         PR tree-optimization/52429
1047         * tree-parloops.c (separate_decls_in_region_debug): Return early
1048         if var is LABEL_DECL.
1049
1050 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1051
1052         PR tree-optimization/52424
1053         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
1054         calling dom_thread_across_edge.
1055
1056 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
1057
1058         * config/avr/avr.c: Move definition of TARGET macros to end of file.
1059
1060 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
1061
1062         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
1063         * config/avr/avr.c (avr_output_bld): Remove unused function.
1064         (avr_out_sbxx_branch): Use "%T" to print bit position.
1065
1066 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
1067
1068         * config/avr/avr.md: Untabify.
1069
1070 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
1071
1072         * config/avr/avr.md (eqne): New code iterator.
1073         (*dec-and-branchsi): Use it in text peephole's condition.
1074         (*dec-and-branchhi): Ditto.
1075         (*dec-and-branchqi): Ditto.
1076
1077 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
1078
1079         PR target/49939
1080         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
1081         the device does not have the skip-bug.
1082
1083 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
1084
1085         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
1086         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
1087         -mpretend-cmove): New.
1088
1089 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR bootstrap/52397
1092         * df.h (struct df_d): Adjust comment that hard_regs_live_count
1093         doesn't count DEBUG_INSN refs.
1094         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
1095         for DEBUG_INSN refs.
1096
1097 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1098
1099         Partially revert:
1100
1101         2012-02-20  Richard Guenther  <rguenther@suse.de>
1102         PR tree-optimization/52298
1103         * tree-vect-stmts.c (vectorizable_load): Properly use
1104         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
1105         outer loops.
1106
1107 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
1108
1109         PR middle-end/51752
1110         * gimple.h (gimple_in_transaction): New.
1111         (gimple_set_in_transaction): New.
1112         (struct gimple_statement_base): Add in_transaction field.
1113         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
1114         transaction loads.
1115         (tree_ssa_lim_initialize): Compute transaction bits.
1116         * tree.h (compute_transaction_bits): Protoize.
1117         * trans-mem.c (tm_region_init): Use the heap to store BB
1118         auxilliary data.
1119         (compute_transaction_bits): New.
1120
1121 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1122
1123         * gcc.c (display_help): Document --help=common and sort entries
1124         alphabetically.
1125
1126 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1127
1128         * doc/install.texi: Document check-$LANG specific shortcuts
1129
1130 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1131
1132         PR target/51534
1133         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
1134         and vcgtu.
1135         * config/arm/arm_neon.h: Regenerate.
1136         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
1137         (neon_vcgeu): New insn.
1138         (neon_vcgtu): Likewise.
1139         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
1140         (ops): Unsigned comparison intrinsics call a different
1141         builtin.
1142
1143 2012-02-28  Richard Guenther  <rguenther@suse.de>
1144
1145         PR target/52407
1146         * config/i386/i386.c (ix86_expand_vector_set): Fix element
1147         ordering for the VEC_CONCAT for two element vectors for
1148         V2SFmode, V2SImode and V2DImode.
1149
1150 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
1151
1152         PR target/49448
1153         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
1154         detecting big-endian triplets.
1155
1156 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
1157
1158         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
1159         mode if there is no type information available.
1160
1161 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1162
1163         PR tree-optimization/53207
1164         * doc/invoke.texi: Document as experimental and relying on graphite.
1165
1166 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
1167
1168         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
1169         of initializer to changes from r184614.
1170
1171 2012-02-28  Richard Guenther  <rguenther@suse.de>
1172
1173         PR tree-optimization/52395
1174         * tree-sra.c (build_ref_for_offset): Also look at the base
1175         TYPE_ALIGN when figuring out the alignment of the replacement.
1176
1177 2012-02-28  Richard Guenther  <rguenther@suse.de>
1178
1179         PR tree-optimization/52402
1180         * ipa-prop.c (ipa_modify_call_arguments): Properly use
1181         mis-aligned types when creating the accesses at the call site.
1182
1183 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
1184
1185         * config/avr/builtins.def: New file.
1186         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
1187         * config/avr/avr.c (enum avr_builtin_id): Use it.
1188         (avr_init_builtins): Use it. And use avr_bdesc.
1189         (bdesc_1arg): Remove.
1190         (bdesc_2arg): Remove.
1191         (bdesc_3arg): Remove.
1192         (struct avr_builtin_description): Add field n_args.
1193         (avr_bdesc): New static variable using builtins.def.
1194         (avr_expand_builtin): Use it.
1195         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
1196         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
1197         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
1198
1199 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
1200
1201         PR target/52148
1202         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
1203         match only one single hard register with respective hard reg rtx.
1204         (movmemx_<mode>): Ditto.
1205         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
1206         insn anatomy of movmem[x]_<mode>.
1207         (avr_out_movmem): Same for printing assembler and operand usage.
1208
1209 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
1210
1211         PR target/49868
1212         PR target/52261
1213         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
1214         address spaces located outside of device flash.
1215
1216         * config/avr/avr.h (base_arch_s): Remove field n_segments.
1217         (mcu_type_s): Add field n_flash.
1218         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
1219         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
1220         (AVR_MCU): Add N_FLASH argument.
1221         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
1222         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
1223         macro __FLASH<n> if that address space makes sense for the device.
1224         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
1225         outside of target flash.
1226         (avr_asm_named_section): Ditto.
1227         (avr_asm_select_section): Ditto.
1228         (avr_addr_space_convert): Ditto.
1229         (avr_emit_movmemhi): Ditto.
1230         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
1231         address space is outside of device flash.
1232         (avr_insert_attributes): Ditto.
1233         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
1234         avr_current_arch->n_segments.
1235
1236 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
1237
1238         PR target/52352
1239         * config/i386/i386.md (*movabs<mode>_1): Enable only for
1240         TARGET_LP64.
1241         (*movabs<mode>_2): Likewise.
1242
1243 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
1244
1245         PR target/52375
1246         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
1247         s_register_operand in the test instead of REG_P.  Don't call
1248         gen_reg_rtx if it won't be used.
1249
1250         PR tree-optimization/52376
1251         * ipa-split.c (split_function): Ignore CLOBBER stmts.
1252
1253 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
1254
1255         * ifcvt.c (noce_get_condition): Check condition variable is not
1256         small_register_classes_for_mode_p before accepting.
1257
1258 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
1259
1260         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
1261
1262 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1263
1264         Revert:
1265         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1266         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
1267         tuning parameters.
1268         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
1269
1270 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
1271
1272         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
1273
1274 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
1275
1276         * config/sh/predicates.md: Remove blank lines.
1277         * config/sh/sh.c: Fix typos in comments.
1278         * config/sh/constraints.md: Likewise.
1279         * config/sh/sh.md: Remove blank lines.
1280         Fix typos in comments.  Use ;; as comment characters.
1281
1282 2012-02-26  Walter Lee  <walt@tilera.com>
1283
1284         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
1285         (replace_mov_pcrel_step2): Ditto.
1286
1287 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
1288
1289         PR debug/52001
1290         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
1291         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
1292         and locs that reference values newer than the non-canonical value
1293         at hand.  Return the canonical value as a worst case.
1294         (memrefs_conflict_p): Walk canonical value's locs.
1295
1296         PR debug/52001
1297         * cselib.c (preserve_only_constants): Rename to...
1298         (preserve_constants_and_equivs): ... this.  Split out...
1299         (invariant_or_equiv_p): ... this.  Preserve plus expressions
1300         of other preserved expressions too.
1301         (cselib_reset_table): Adjust.
1302         * var-tracking.c (reverse_op): Use canonical value to build
1303         reverse operation.
1304
1305 2012-02-23  Kai Tietz  <ktietz@redhat.com>
1306
1307         * config/i386/i386.c (ix86_delegitimize_address): Handle
1308         UNSPEC_PCREL plus displacement.
1309
1310 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
1311
1312         PR target/52261
1313         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
1314         to test for unusedness in st X addressing.
1315
1316 2012-02-24  Richard Guenther  <rguenther@suse.de>
1317
1318         PR middle-end/52361
1319         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
1320         (is_gimple_reg_type): Move inline ...
1321         * gimple.h (is_gimple_reg_type): ... here.
1322
1323 2012-02-24  Richard Guenther  <rguenther@suse.de>
1324
1325         PR middle-end/52361
1326         * passes.c (execute_function_todo): When verifying SSA form
1327         verify gimple form first.
1328         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
1329
1330 2012-02-24  Richard Guenther  <rguenther@suse.de>
1331
1332         PR middle-end/52355
1333         * fold-const.c (fold_addr_of_array_ref_difference): New function.
1334         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
1335
1336 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1337
1338         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
1339
1340 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1341
1342         * tree-phinodes.c (make_phi_node): Mark static.
1343         * tree-flow.h (make_phi_node): Remove extern decl.
1344         * doc/gimple.texi (make_phi_node): Remove documentation.
1345
1346 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1347
1348         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
1349         * tree-ssa-sccvn.c (print_scc): Ditto.
1350
1351 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1352
1353         * doc/passes.texi (Full redundancy elimination): Fix typo.
1354
1355 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1356
1357         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
1358
1359 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
1360
1361         PR bootstrap/52287
1362         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
1363
1364 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
1365
1366         PR c/52290
1367         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
1368
1369 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
1370
1371         * config/avr/avr.md (code_stdname): Add ior, xor.
1372         (xior): New code iterator.
1373         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
1374         (*<code_stdname><mode>qi.byte1-3): Ditto.
1375
1376 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
1377
1378         PR tree-optimization/52019
1379         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
1380         CLOBBER stmts.
1381
1382 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1383
1384         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
1385         HAVE_INITFINI_ARRAY to work around namespace pollution in
1386         certain versions of newlib system headers.
1387         * config.in: Regenerate.
1388         * configure: Regenerate.
1389         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
1390         instead of HAVE_INITFINI_ARRAY.
1391
1392 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
1393
1394         PR target/52330
1395         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
1396         is not offsettable memory reference.
1397
1398 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
1399
1400         PR target/18145
1401         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
1402         setting avr_need_clear_bss_p for __gnu_lto* symbols.
1403
1404 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
1405
1406         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
1407         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
1408
1409 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1410
1411         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
1412         library on Solaris 8 even without TLS support.
1413         * configure: Regenerate.
1414
1415 2012-02-22  Richard Guenther  <rguenther@suse.de>
1416
1417         PR middle-end/52329
1418         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
1419         for GIMPLE_DEBUG stmts.
1420
1421 2012-02-22  Martin Jambor  <mjambor@suse.cz>
1422
1423         PR middle-end/51782
1424         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
1425         according to the base object.
1426
1427 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
1428
1429         PR rtl-optimization/50063
1430         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
1431         and 2 (8-bit SP) in operand 2.
1432         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
1433         setup to use movhi_sp_r instead of vanilla move to write SP.
1434         Adjust REG_CFA notes to superseed unspec.
1435         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
1436         of vanilla move.
1437         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
1438         known to be off) only with TARGET_NO_INTERRUPTS. Never use
1439         irq_state 1 (IRQ known to be on) here.
1440
1441 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
1442
1443         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
1444         WORDS_BIG_ENDIAN.
1445         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
1446         assign_hard_reg): Likewise.
1447
1448 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
1449
1450         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
1451
1452 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
1453
1454         * config/avr/avr.md
1455         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
1456         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
1457
1458 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
1459
1460         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
1461         prototype from here to...
1462         * config/avr/avr.h: ...here.
1463
1464 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
1465
1466         PR target/52294
1467         * thumb2.md (thumb2_shiftsi3_short): Split register and
1468         immediate shifts.  For register shifts tie operands 0 and 1.
1469         (peephole2 for above): Check that register-controlled shifts
1470         have suitably tied operands.
1471
1472 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
1473
1474         PR target/52137
1475         * config/i386/bdver1.md (bdver1_call, bdver1_push,
1476         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
1477         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
1478         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
1479         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
1480         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
1481         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
1482         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
1483         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
1484         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
1485         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
1486         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
1487         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
1488         bdver1_ssevector_avx256_unaligned_load,
1489         bdver1_ssevector_sse128_unaligned_load,
1490         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
1491         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
1492         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
1493         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
1494         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
1495         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
1496         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
1497         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
1498         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
1499         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
1500         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
1501         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
1502         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
1503         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
1504         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
1505         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
1506         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
1507         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
1508         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
1509         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
1510         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
1511         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
1512         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
1513         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
1514         bdver1_ssediv_double_load, bdver1_ssediv_double,
1515         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
1516         Add "bdver2" attribute.
1517
1518 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1519
1520         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
1521         default if possible and not specified otherwise.
1522
1523 2012-02-21  Richard Guenther  <rguenther@suse.de>
1524
1525         PR middle-end/52314
1526         * gimplify.c (create_tmp_from_val): Use the main variant type
1527         for the type of the temporary we create.
1528
1529 2012-02-21  Richard Guenther  <rguenther@suse.de>
1530
1531         PR tree-optimization/52324
1532         * gimplify.c (gimplify_expr): When re-gimplifying expressions
1533         do not gimplify a MEM_REF address operand if it is already
1534         in suitable form.
1535
1536 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1537
1538         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
1539         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
1540
1541 2012-02-21  Richard Guenther  <rguenther@suse.de>
1542
1543         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
1544         nested_in_vect_loop.
1545
1546 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
1547
1548         PR tree-optimization/52318
1549         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
1550         vdef also to non-pure/const call stmts in the sequence.
1551
1552 2012-02-20  David S. Miller  <davem@davemloft.net>
1553
1554         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
1555         don't use the "rd %pc" instruction on v9 for PIC register loads.
1556
1557 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
1558
1559         PR middle-end/52141
1560         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
1561         in a transaction safe function.
1562
1563 2012-02-20  Kai Tietz  <ktietz@redhat.com>
1564
1565         PR target/52238
1566         * stor-layout.c (place_field): Handle desired_align for
1567         ms-bitfields, too.
1568
1569 2012-02-20  Richard Guenther  <rguenther@suse.de>
1570
1571         PR tree-optimization/52298
1572         * tree-vect-stmts.c (vectorizable_store): Properly use
1573         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
1574         outer loops.
1575         (vectorizable_load): Likewise.
1576         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1577         Access DR_STEP after ensuring it is not NULL.
1578
1579 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
1580
1581         PR tree-optimization/52286
1582         * fold-const.c (fold_binary_loc): For (X & C1) | C2
1583         optimization use double_int_to_tree instead of build_int_cst_wide,
1584         rewrite to use double_int vars.
1585
1586 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1587
1588         PR target/50166
1589         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
1590         Define _start.
1591         Remove -e 0 from $gcc_cv_ld invocation.
1592         Only use __GLIBC_PREREQ if defined.
1593         Enable on Solaris since Solaris 8 patch.
1594         (gcc_SUN_LD_VERSION): New macro.
1595         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
1596         gcc_SUN_LD_VERSION for version number format.
1597         * configure: Regenerate.
1598         * varasm.c (get_elf_initfini_array_priority_section): Set
1599         SECTION_NOTYPE for non-default priority.
1600         Use get_section instead of get_unnamed_section to emit
1601         .init_array/.fini_array with default priority.
1602
1603 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
1604
1605         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
1606         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
1607         (mips_start_unique_function, mips_output_mips16_rdhwr)
1608         (mips_code_end): New functions.
1609         (TARGET_ASM_CODE_END): Define.
1610
1611 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
1612
1613         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
1614         to stubs with non-sibling calls.
1615
1616 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
1617
1618         * doc/invoke.texi (-fira-* options): Copy-edit.
1619         (ira-* parameters): Copy-edit.
1620
1621 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
1622
1623         * doc/invoke.texi: Minor copy-edits to bring into conformance with
1624         GCC coding conventions.
1625
1626 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
1627
1628         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
1629         when used as adjectives.
1630
1631 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
1632
1633         * doc/invoke.texi: Clean up "that"/"which" confusion.
1634
1635 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
1636
1637         * system.h: Poison SMALL_REGISTER_CLASSES
1638         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
1639         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
1640
1641 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
1642
1643         PR tree-optimization/52285
1644         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
1645         when deciding if a call is a tail call or tail recursion.
1646
1647 2012-02-16  Kai Tietz  <ktietz@redhat.com>
1648
1649         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1650         interger-constant displacement for UNSPEC_PCREL.
1651
1652 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
1653
1654         PR rtl-optimization/52208
1655         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
1656         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
1657
1658         PR tree-optimization/52255
1659         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
1660         loop->header has virtual PHI, but exit_e->dest doesn't, add
1661         virtual PHI to exit_e->dest and adjust all uses after the loop.
1662
1663         PR debug/52260
1664         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
1665         children with clone_tree_hash, not after it.
1666
1667 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
1668
1669         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
1670         extended identifiers.
1671
1672 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
1673
1674         PR middle-end/51929
1675         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
1676         a same_body_alias, also test whether e->callee isn't a former
1677         or current clone of the decl this is a same body alias of.
1678
1679         PR translation/52264
1680         * cgraphunit.c (verify_cgraph_node): Fix a typo.
1681
1682 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
1683
1684         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
1685
1686 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1687
1688         PR target/52199
1689         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
1690         force_reg instead of copy_to_reg for better optimization.  Force
1691         non-register or memory operands into a register.
1692
1693 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
1694
1695         * extend.texi: Reserve upper bits of memory model for future use.
1696
1697 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
1698             Anatoly Sokolov <aesok@post.ru>
1699             Eric Weddington <eric.weddington@atmel.com>
1700
1701         PR target/52261
1702         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
1703         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
1704         Rewrite initializers for .macro.
1705         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
1706         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
1707         atxmega32d4, atxmega32x1.
1708         avrxmega4: atxmega64a3, atxmega64d3.
1709         avrxmega5: atxmega64a1, atxmega64a1u.
1710         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
1711         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
1712         avrxmega7: atxmega128a1, atxmega128a1u.
1713         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
1714         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
1715         (struct base_arch_s): Rename reserved to xmega_p.
1716         Rename reserved2 to have_rampd.
1717         (AVR_XMEGA): New define.
1718         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
1719         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
1720         * config/avr/predicates.md (io_address_operand): Take into
1721         account SFR offset.
1722         (low_io_address_operand): Ditto.
1723         (high_io_address_operand): Ditto.
1724         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
1725         (enabled, movhi_sp_r): Use them.
1726         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
1727         cpp_define_formatted to built-in define __AVR_ARCH__.
1728         (__AVR_XMEGA__): New built-in define.
1729         (__AVR_HAVE_RAMPD__): New built-in define.
1730         (__AVR_HAVE_RAMPX__): New built-in define.
1731         (__AVR_HAVE_RAMPY__): New built-in define.
1732         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
1733
1734         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
1735         (avr_option_override): Initialize them.
1736         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
1737         (avr_init_expanders): Initialize them. No more block several calls.
1738         (emit_push_sfr): New static function.
1739         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
1740         Handle AVR_XMEGA.
1741         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
1742         (avr_print_operand): Print addreeses as symbols for
1743         RAMPX, RAMPY, RAMPD, CCP.
1744         (output_movhi): Handle AVR_XMEGA when writing to SP.
1745         (avr_out_movhi_mr_r_xmega): New static function.
1746         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
1747         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
1748         __RAMPD__,  __CCP__ as needed.
1749
1750         * config/avr/multilib.h: Regenerate.
1751         * config/avr/t-multilib: Regenerate.
1752         * config/avr/avr-tables.opt: Regenerate.
1753
1754 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
1755
1756         PR tree-optimization/50561
1757         * graphite-flattening.c (lst_project_loop): Do not
1758         remove old scattering dimensions after flattening.
1759         (lst_do_flatten): Likewise.
1760
1761 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
1762
1763         * doc/extend.texi (AVR Built-in Functions): Remove doc for
1764         __builtin_avr_map8, __builtin_avr_map16.
1765         Document __builtin_avr_insert_bits.
1766
1767         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
1768         (insert_bits): New insn.
1769         (adjust_len.map_bits): Rename to insert_bits.
1770         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
1771         * avr-protos.h (avr_out_map_bits): Remove.
1772         (avr_out_insert_bits, avr_has_nibble_0xf): New.
1773         * config/avr/constraints.md (Cxf,C0f): New.
1774         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
1775         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
1776         New built-in define __BUILTIN_AVR_INSERT_BITS.
1777         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
1778         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
1779         (avr_move_bits): Rewrite.
1780         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
1781         functions.
1782         (avr_map_op_t): New typedef.
1783         (avr_map_op): New static variable.
1784         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
1785         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
1786         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
1787         (bdesc_3arg, avr_expand_triop_builtin): New.
1788         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
1789         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
1790         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
1791         (avr_map_equal_p, avr_map_sig_p): Remove.
1792         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
1793         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
1794         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
1795         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
1796         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
1797         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
1798
1799 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
1800
1801         * config/c6x/c6x.md (reserve_cycles): New attribute.
1802         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
1803         don't reserve functional units after the branch occurs.
1804
1805 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
1806
1807         PR middle-end/52142
1808         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
1809         functions into non-tm_pure functions.
1810
1811 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
1812
1813         PR lto/52178
1814         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
1815         (iterative_hash_canonical_type): Likewise.
1816         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
1817         the dead edges.
1818
1819 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
1820
1821         * haifa-sched.c (prune_ready_list): Ensure that if there is a
1822         sched-group insn, it either remains alone or the entire list is pruned.
1823
1824 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
1825
1826         * doc/install.texi (Prerequisites): Fix grammar.
1827         (Configuration): Likewise.
1828
1829 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
1830
1831         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
1832         MPC as part of GCC before describing configuring with --with-gmp etc.
1833         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
1834         sources are present.
1835
1836 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1837
1838         PR debug/51950
1839         * dwarf2out.c (clone_tree_hash): New function.
1840         (copy_decls_walk): Use it instead of clone_tree.
1841
1842 2012-02-14  Richard Guenther  <rguenther@suse.de>
1843
1844         PR tree-optimization/52244
1845         PR tree-optimization/51528
1846         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
1847         replacements for integral types.
1848
1849 2012-02-14  Walter Lee  <walt@tilera.com>
1850
1851         * config.gcc: Handle tilegx and tilepro.
1852         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
1853         tilegx and tilepro.
1854         Add HAVE_AS_TLS check for tilegx and tilepro.
1855         * configure: Regenerate.
1856         * doc/contrib.texi: Add Mat Hostetter and self.
1857         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
1858         Document instruction intrinsics and network accessing intrinsics.
1859         (TILEPro Built-in Functions): New node.  Document instruction
1860         intrinsics and network accessing intrinsics.
1861         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
1862         (Specific, tilepro-*-linux*): Likewise.
1863         * doc/invoke.texi (TILE-Gx Options): New section.
1864         (TILEPro Options): New section.
1865         * doc/md.texi (TILE-Gx): New section.
1866         (TILEPro): New section.
1867         * common/config/tilegx/tilegx-common.c: New file.
1868         * common/config/tilepro/tilepro-common.c: New file.
1869         * config/tilegx/constraints.md: New file.
1870         * config/tilegx/linux.h: New file.
1871         * config/tilegx/mul-tables.c: New file.
1872         * config/tilegx/predicates.md: New file.
1873         * config/tilegx/sync.md: New file.
1874         * config/tilegx/t-tilegx: New file.
1875         * config/tilegx/tilegx-builtins.h: New file.
1876         * config/tilegx/tilegx-c.c: New file.
1877         * config/tilegx/tilegx-generic.md: New file.
1878         * config/tilegx/tilegx-modes.def: New file.
1879         * config/tilegx/tilegx-multiply.h: New file.
1880         * config/tilegx/tilegx-protos.h: New file.
1881         * config/tilegx/tilegx.c: New file.
1882         * config/tilegx/tilegx.h: New file.
1883         * config/tilegx/tilegx.md: New file.
1884         * config/tilegx/tilegx.opt: New file.
1885         * config/tilepro/constraints.md: New file.
1886         * config/tilepro/gen-mul-tables.cc: New file.
1887         * config/tilepro/linux.h: New file.
1888         * config/tilepro/mul-tables.c: New file.
1889         * config/tilepro/predicates.md: New file.
1890         * config/tilepro/t-tilepro: New file.
1891         * config/tilepro/tilepro-builtins.h: New file.
1892         * config/tilepro/tilepro-c.c: New file.
1893         * config/tilepro/tilepro-generic.md: New file.
1894         * config/tilepro/tilepro-modes.def: New file.
1895         * config/tilepro/tilepro-multiply.h: New file.
1896         * config/tilepro/tilepro-protos.h: New file.
1897         * config/tilepro/tilepro.c: New file.
1898         * config/tilepro/tilepro.h: New file.
1899         * config/tilepro/tilepro.md: New file.
1900         * config/tilepro/tilepro.opt: New file.
1901
1902 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1903
1904         PR tree-optimization/52210
1905         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
1906         vect_model_simple_cost with two entry vect_def_type array instead
1907         of an address of dt.
1908
1909 2012-02-14  Richard Guenther  <rguenther@suse.de>
1910
1911         PR lto/52178
1912         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
1913         Do not stream DECL_QUALIFIER.
1914         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
1915         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
1916         (find_decls_types_r): Do not walk DECL_QUALIFIER.
1917
1918 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1919
1920         PR c/52181
1921         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
1922         newdecl.
1923
1924 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
1925
1926         PR bootstrap/52172
1927         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
1928         * cselib.c (cselib_subst_to_values_from_insn): New function.
1929         * sched-deps.c (add_insn_mem_dependence,
1930         sched_analyze_1, sched_analyze_2): Use it.
1931
1932 2012-02-13  Jan Hubicka  <jh@suse.cz>
1933
1934         PR middle-end/52214
1935         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
1936
1937 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
1938
1939         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
1940         (GTM_SELF_SPECS): Define if not already defined.
1941         (driver_self_specs): Add GTM_SELF_SPECS.
1942         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
1943         (GTM_SELF_SPECS): Define.
1944         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
1945         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
1946
1947 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
1948
1949         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
1950         away if seen.
1951
1952         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
1953
1954         PR middle-end/52230
1955         * omp-low.c (expand_omp_for): If a static schedule without chunk size
1956         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
1957
1958 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
1959
1960         PR c/52190
1961         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
1962
1963 2012-02-13  Richard Guenther  <rguenther@suse.de>
1964
1965         PR translation/52211
1966         * passes.c (enable_disable_pass): Fix typo.
1967
1968 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
1969
1970         PR middle-end/52209
1971         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
1972         XOR for reduce_bit_field if type is unsigned.
1973
1974 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
1975
1976         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
1977         disallow changes from SFmode to mode with different size in FP regs.
1978
1979 2012-02-12  Robert Millan  <rmh@gnu.org>
1980             Gerald Pfeifer <gerald@pfeifer.com>
1981
1982         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
1983         Tweak comment.
1984
1985 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
1986
1987         PR rtl-optimization/52175
1988         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
1989         to frame-related instructions.
1990
1991 2012-02-10  Jason Merrill  <jason@redhat.com>
1992
1993         PR c++/51910
1994         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
1995         (demangle_new_symbols): Fill it.
1996         (scan_linker_output): Walk it.
1997         (start_tweaking): Split out from scan_linker_output.
1998         (maybe_tweak): Update sym->chosen.
1999         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
2000
2001 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
2002
2003         PR debug/52132
2004         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
2005
2006 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
2007
2008         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
2009         having the same mode as previous compare.
2010
2011 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
2012
2013         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
2014         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
2015         (nonlocal_goto_internal): Likewise.
2016         (nonlocal_goto): Emit a use and an indirect jump directly.
2017
2018 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
2019
2020         PR c/52190
2021         * doc/extend.texi : Update comments for __atomic_compare_exchange and
2022         __atomic_{is,always}_lock_free.
2023
2024 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
2025
2026         PR target/52146
2027         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
2028         negative constant address for x32.
2029
2030 2012-02-10  Richard Henderson  <rth@redhat.com>
2031
2032         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
2033         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
2034         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
2035
2036 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2037             Ira Rosen  <irar@il.ibm.com>
2038
2039         PR tree-optimization/50031
2040         * targhooks.c (default_builtin_vectorization_cost): Handle
2041         vec_promote_demote.
2042         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
2043         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
2044         all types of reduction and pattern statements.
2045         (vect_estimate_min_profitable_iters): Likewise.
2046         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
2047         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
2048         for explicit realigns.
2049         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
2050         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
2051         vec_promote_demote.
2052         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
2053         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
2054         vec_perm for VSX and handle vec_promote_demote.
2055
2056 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
2057
2058         PR middle-end/52177
2059         * builtins.c (fold_builtin_atomic_always_lock_free,
2060         expand_builtin_atomic_always_lock_free,
2061         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
2062         Return and/or test boolean_true_node/boolean_false_node instead of
2063         integer_one_node/integer_zero_node.
2064
2065 2012-02-10  Jan Hubicka  <jh@suse.cz>
2066
2067         PR middle-end/48600
2068         * predict.c (predict_paths_for_bb): Prevent looping.
2069         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
2070
2071 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
2072
2073         * config/arm/arm.c (output_move_double): In one case properly
2074         count number of instructions that will be emitted.
2075
2076 2012-02-10  Richard Guenther  <rguenther@suse.de>
2077
2078         PR translation/52193
2079         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
2080
2081 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
2082
2083         PR middle-end/52140
2084         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
2085
2086 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
2087
2088         PR debug/52165
2089         * var-tracking.c (emit_note_insn_var_location): If
2090         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
2091         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
2092         non-NOTE_DURING_CALL_P insn.
2093
2094 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
2095
2096         PR middle-end/51867
2097         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
2098
2099 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
2100
2101         PR driver/48524
2102         * gcc.c (switch_matches) Support switches with separated form,
2103         -D and -U.
2104
2105 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
2106
2107         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
2108         (SP_ADDR): Ditto.
2109         (RAMPZ_ADDR): Ditto.
2110         * config/avr/avr.c (avr_addr_t): New typedef.
2111         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
2112         (avr_init_expanders): Initialize it.
2113         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
2114         SREG_ADDR.
2115         (expand_epilogue): Ditto.
2116         (avr_print_operand): Ditto.
2117         (avr_file_start): Ditto.
2118         (avr_emit_movmemhi): Ditto.
2119
2120 2012-02-08  Richard Guenther  <rguenther@suse.de>
2121
2122         PR tree-optimization/46886
2123         * tree-flow.h (do_while_loop_p): Declare.
2124         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
2125         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
2126
2127 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
2128
2129         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
2130         always succeed for integers larger than a native word.
2131
2132 2012-02-08  Richard Guenther  <rguenther@suse.de>
2133
2134         PR rtl-optimization/52170
2135         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
2136         properly handle integer vector modes.
2137
2138 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
2139
2140         PR gcov-profile/52150
2141         * coverage.c: Include target.h.
2142         (build_var): Call targetm.strip_name_encoding on the assembler name.
2143         Change one _ into . or $ if the target allows it.
2144         * Makefile.in (coverage.o): Depend on $(TARGET_H).
2145
2146         PR rtl-optimization/52139
2147         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
2148         is a BARRIER after emit_insn_after_noloc, move BB_END
2149         to the last non-BARRIER insn before it.
2150
2151 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
2152
2153         PR middle-end/24306
2154         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
2155         (mips_gimplify_va_arg_expr): Call it instead of
2156         std_gimplify_va_arg_expr.
2157
2158 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
2159
2160         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
2161         message for -mno-pointers-to-nested-function.
2162
2163 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
2164
2165         PR middle-end/51994
2166         * expr.c (get_inner_reference): If there is an offset, add a negative
2167         bit position to it (if any).
2168
2169 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
2170
2171         PR rtl-optimization/52060
2172         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
2173         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
2174         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
2175         and/or i0src_copy2 when needed.
2176
2177 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
2178
2179         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
2180         or LTOPLUGINSONAME if have_c.
2181
2182         * config/freebsd-spec.h: Add comment about what macros can be defined
2183         in this header.
2184         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
2185         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
2186         here instead.
2187
2188 2012-02-07  Richard Guenther  <rguenther@suse.de>
2189
2190         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
2191         newline in -alias dumps.
2192
2193 2012-02-07  Kai Tietz  <ktietz@redhat.com>
2194             Dave Korn  <dave.korn.cygwin@gmail.com>
2195
2196         PR target/40068
2197         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
2198         Take care that typinfo gets dllexport-attribute.
2199
2200 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
2201
2202         PR middle-end/52074
2203         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
2204         if modifier < EXPAND_SUM call force_operand on the result.
2205
2206 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
2207
2208         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
2209         adding __forwarder_dst__ prefix if a forwarder_section attribute is
2210         present.
2211         (epiphany_function_type): Replace types for specific interrupts with
2212         EPIPHANY_FUNCTION_INTERRUPT.
2213         (EPIPHANY_INTERRUPT_P): Update.
2214         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
2215         New static function.
2216         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
2217         <disinterrupt>: Affects type identity.
2218         (epiphany_handle_interrupt_attribute): Handle variable number of
2219         arguments.
2220         (epiphany_compute_function_type): Update for new
2221         epiphany_function_type definition.
2222         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
2223         handlers with a longcall forwarder.
2224         (epiphany_start_function): Handle multiple interrupt arguments and/or
2225         forwarder_section attribute.
2226
2227         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
2228         libgloss.
2229
2230 2012-02-07  Alan Modra  <amodra@gmail.com>
2231
2232         PR target/52107
2233         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
2234         subregs of TFmode.
2235
2236 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2237
2238         PR tree-optimization/50969
2239         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
2240         use vec_perm rather than vector_stmt.
2241         (vect_model_load_cost): Likewise.
2242         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
2243         vec_perm to be the same as other vector statements.
2244         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
2245         cost of vec_perm for TARGET_VSX.
2246
2247 2012-02-06  Richard Guenther  <rguenther@suse.de>
2248
2249         PR tree-optimization/52115
2250         * tree-sra.c (access_has_replacements_p): New function.
2251         (sra_modify_assign): Use it to decide whether a use is uninitialized.
2252
2253 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
2254
2255         PR middle-end/52047
2256         * trans-mem.c (expand_call_tm): Add an assertion.
2257         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
2258         functions.
2259
2260 2012-02-06  Richard Guenther  <rguenther@suse.de>
2261
2262         PR tree-optimization/50955
2263         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
2264         raise cost of expressions that replace an address with an
2265         expression based on a different pointer.
2266
2267 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
2268
2269         PR target/52129
2270         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
2271         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
2272
2273 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
2274
2275         PR c++/48680
2276         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
2277         -Weffc++ and specify guidelines come from second edition.
2278
2279 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
2280
2281         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
2282         (sibcall_value_multiple_internal, call_split, call_internal_direct)
2283         (call_direct_split, call_value_split, call_value_internal_direct)
2284         (call_value_direct_split, call_value_multiple_split): Use jal and
2285         jal_macro attributes.
2286
2287 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
2288
2289         * reload1.c (reload_regs_reach_end_p): Replace with...
2290         (reload_reg_rtx_reaches_end_p): ...this function.
2291         (new_spill_reg_store): Update commentary.
2292         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
2293         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
2294         before setting new_spill_reg_store.
2295         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
2296         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
2297         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
2298         for non-spill reload registers.
2299
2300 2012-02-05  Ira Rosen  <irar@il.ibm.com>
2301
2302         PR tree-optimization/52091
2303         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
2304         (vect_is_simple_use_1): Likewise.
2305         * tree-vect-loop.c (vectorizable_reduction): Update calls
2306         to vect_is_simple_use_1 and vect_is_simple_use.
2307         (vectorizable_live_operation): Likewise.
2308         * tree-vect-patterns.c (widened_name_p,
2309         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
2310         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
2311         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2312         vectorizable_shift,vectorizable_operation, vectorizable_store,
2313         vectorizable_load): Likewise.
2314         (vect_is_simple_cond): Add an argument, pass it to
2315         vect_is_simple_use_1.
2316         (vectorizable_condition): Update calls to vect_is_simple_cond,
2317         vect_is_simple_use.
2318         (vect_is_simple_use): Add an argument, the statement in which
2319         OPERAND is used.  Check that if OPERAND's def stmt is a double
2320         reduction phi node, the use is a phi node too.
2321         (vect_is_simple_use_1): Add an argument, pass it to
2322         vect_is_simple_use.
2323         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
2324         to vect_is_simple_use.
2325
2326 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
2327
2328         PR rtl-optimization/52095
2329         * modulo-sched.c (dump_insn_locator): New function.
2330         (loop_canon_p, sms_schedule): Use it.
2331
2332         PR rtl-optimization/52113
2333         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
2334         even for decomposable shift/zext insns.
2335
2336 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
2337             Zdenek Dvorak  <ook@ucw.cz>
2338
2339         PR rtl-optimization/52092
2340         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
2341         on get_iv_value result.
2342
2343 2012-02-02  Andrew Pinski  <apinski@cavium.com>
2344
2345         PR middle-end/47982
2346         PR middle-end/43967
2347         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
2348
2349 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
2350
2351         PR middle-end/48071
2352         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
2353
2354 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
2355
2356         PR rtl-optimization/49800
2357         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
2358         (sched_finish): Call regstat_free_n_sets_and_refs.
2359
2360 2012-02-02  Jia Liu  <proljc@gmail.com>
2361
2362         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
2363         than operand 2.
2364
2365 2012-02-02  Jan Hubicka  <jh@suse.cz>
2366             Tom de Vries  <tom@codesourcery.com>
2367
2368         PR middle-end/51998
2369         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
2370         * varpool.c (varpool_analyze_pending_decls): Likewise.
2371
2372 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
2373             Jayant R Sonar <jayant.sonar@kpitcummins.com>
2374
2375         * config.gcc: Add cr16-* support.
2376
2377         * doc/extend.texi: Document cr16 extensions.
2378         * doc/install.texi: Document cr16 install.
2379         * doc/invoke.texi: Document cr16 options.
2380         * doc/md.texi: Document cr16 constraints.
2381
2382         * common/config/cr16/cr16-common.c: New file.
2383         * config/cr16/cr16.c: New file.
2384         * config/cr16/cr16.h: New file.
2385         * config/cr16/cr16.md: New file.
2386         * config/cr16/cr16.opt: New file.
2387         * config/cr16/cr16-protos.h: New file.
2388         * config/cr16/predicates.md: New file.
2389         * config/cr16/constraints.md: New file.
2390         * config/cr16/t-cr16: New file.
2391
2392 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
2393
2394         PR target/52086
2395         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
2396         that operands[2] is either immediate, or q_regs_operand.
2397
2398         PR tree-optimization/52073
2399         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
2400         a pattern stmt for pattern uses, ignore uses outside of the loop.
2401
2402 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
2403
2404         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
2405         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
2406         (OUT_AS1, OUT_AS2): Remove.
2407
2408 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
2409
2410         PR rtl-optimization/51374
2411         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
2412         to cross other volatile_refs_p insns.
2413
2414 2012-02-01  Richard Guenther  <rguenther@suse.de>
2415
2416         * doc/invoke.texi (fno-inline): Clarify documentation.
2417         (finline-small-functions): Likewise.
2418         (finline-functions): Likewise.
2419         * common.opt (finline): Adjust comment and documentation.
2420         (finline-small-functions): Clarify documentation.
2421         (finline-functions): Likewise.
2422         (finline-functions-called-once): Likewise.
2423
2424 2012-02-01  Tristan Gingold  <gingold@adacore.com>
2425
2426         * c-typeck.c (composite_type): Keep mode for pointers.
2427
2428 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
2429
2430         * function.h (regno_reg_rtx): Adjust comment.
2431         * reginfo.c (init_reg_modes_target): Only use the previous mode
2432         if it fits within one register.  Remove MIPS comment.
2433
2434 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
2435
2436         PR bootstrap/52058
2437         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
2438
2439 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2440
2441         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
2442         to srak instruction.
2443
2444 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2445
2446         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
2447
2448 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
2449
2450         PR bootstrap/52041
2451         PR bootstrap/52039
2452         PR target/51974
2453         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
2454
2455 2012-01-31  Richard Guenther  <rguenther@suse.de>
2456
2457         PR tree-optimization/51528
2458         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
2459         assigns.
2460
2461 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
2462
2463         PR bootstrap/52041
2464         PR bootstrap/52039
2465         PR target/51974
2466         * ree.c (add_removable_extension): Change def_map argument
2467         to unsigned *, store in def_map 1 + offset into *insn_list vector
2468         instead of pointers into the vector.
2469         (find_removable_extensions): Adjust caller.
2470
2471 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
2472
2473         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
2474         Transform all "* quoted-c-code" to { c-code }.
2475         Remove redundant test for "optimize" in combine patterns.
2476         Move (include "avr-dimode.md") to end of file.
2477
2478 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
2479
2480         PR target/51835
2481         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
2482         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
2483
2484 2012-01-30  Richard Guenther  <rguenther@suse.de>
2485
2486         PR tree-optimization/52028
2487         * tree-loop-distribution.c (ldist_gen): Properly update
2488         virtual SSA form.
2489
2490 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
2491
2492         PR debug/52027
2493         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
2494         set_cur_line_info_table if not emitting debug info.
2495
2496         PR tree-optimization/52046
2497         * tree-vect-patterns.c (check_bool_pattern): Give up if
2498         a comparison could throw.
2499
2500         PR debug/52048
2501         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
2502
2503 2012-01-30  Richard Guenther  <rguenther@suse.de>
2504
2505         PR tree-optimization/52045
2506         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
2507         SSA form if cfgcleanup did anything.
2508
2509 2012-01-30  Richard Guenther  <rguenther@suse.de>
2510
2511         PR tree-optimization/52045
2512         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
2513         before computing final todo.
2514
2515 2012-01-30  Richard Guenther  <rguenther@suse.de>
2516
2517         PR tree-optimization/51528
2518         * tree-sra.c (sra_modify_assign): Re-factor in preparation
2519         for PR51528 fix.
2520
2521 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
2522
2523         * df-problems.c (df_kill_notes): Check that the use refers
2524         to the note under examination.
2525
2526 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
2527
2528         PR target/51920
2529         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
2530         parameter and use short-lived pseudos.
2531         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
2532         (sparc_expand_vector_init): Const-ify local variables and adjust
2533         calls to above functions.
2534
2535 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
2536
2537         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
2538
2539 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
2540
2541         * doc/invoke.texi: Make usage of "compile time" and
2542         "run time"/"runtime" consistent throughout the file.
2543
2544 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
2545
2546         * config/alpha/alpha.c (alpha_option_override): Default to
2547         full IEEE compliance mode for Go language.
2548
2549 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
2550
2551         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
2552         (LINK_SSP_SPEC): Define.
2553
2554 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2555
2556         PR target/51871
2557         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
2558         stubs.
2559
2560 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
2561
2562         * doc/invoke.texi: Correct hyphenation of "floating point",
2563         "double precision", and related terminology throughout the file.
2564
2565 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
2566
2567         PR target/52006
2568         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
2569         arm_general_register_operand predicate for operand 2 instead of
2570         register_operand.
2571
2572 2012-01-27  Ian Lance Taylor  <iant@google.com>
2573
2574         PR go/47656
2575         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
2576         * builtins.c (expand_builtin_init_trampoline): Add onstack
2577         parameter.  Change caller.
2578         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
2579         * tree.c (build_common_builtin_nodes): Declare
2580         __builtin_init_heap_trampoline.
2581
2582 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
2583
2584         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
2585         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
2586         * config/avr/avr.c: Ditto.
2587         (avr_regnames): Remove because unused.
2588         * config/avr/avr.md (*cpse.ne): New peephole.
2589         (*cpse.eq): New peephole from former cpse peepholes.
2590
2591 2012-01-27  Michael Eager  <eager@eagercon.com>
2592
2593         * config/microblaze.c (microblaze_emit_compare): Correct
2594         test after pcmp instruction.
2595
2596 2012-01-27  Richard Guenther  <rguenther@suse.de>
2597
2598         PR tree-optimization/52020
2599         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
2600
2601 2012-01-27  Richard Guenther  <rguenther@suse.de>
2602
2603         * ipa-pure-const.c (check_stmt): Clobbers do not make a
2604         function non-const/pure.
2605
2606 2012-01-27  Richard Guenther  <rguenther@suse.de>
2607
2608         PR tree-optimization/50444
2609         * tree-sra.c (build_ref_for_offset): Properly adjust the
2610         MEM_REF type for unaligned accesses.
2611
2612 2012-01-27  Richard Guenther  <rguenther@suse.de>
2613
2614         PR tree-optimization/50444
2615         * expr.c (mem_ref_refers_to_non_mem_p): New function.
2616         (expand_assignment): Use it.  Properly handle misaligned
2617         bases when expanding stores to component references.
2618         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
2619         refactor that case.
2620
2621 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
2622
2623         PR middle-end/51389
2624         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
2625         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
2626         * tree-data-ref.c (find_data_references_in_loop): Make static.
2627         (compute_all_dependences): Change return type to bool.  Bail out
2628         for too many datarefs in a loop.  Move the hunk resetting the data
2629         dependences vector from ...
2630         (compute_data_dependences_for_loop): ... here.  Account for
2631         compute_all_dependences returning false.
2632         (compute_data_dependences_for_bb): Likewise.
2633         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
2634         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
2635
2636 2012-01-27  Richard Guenther  <rguenther@suse.de>
2637
2638         PR middle-end/51959
2639         * expr.c (store_field): Use the alias-set of the scratch memory
2640         for storing to it.
2641
2642 2012-01-27  Tom de Vries  <tom@codesourcery.com>
2643
2644         PR tree-optimization/51990
2645         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2646         WITH_SIZE_EXPR.
2647         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
2648
2649 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
2650
2651         PR debug/52001
2652         * var-tracking.c (reverse_op): Don't add any reverse operation
2653         if V already has any constant locations.
2654
2655 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
2656
2657         * doc/invoke.texi: Correct usage of "command line" (noun)
2658         vs "command-line" (adjective) throughout.
2659
2660 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
2661
2662         * doc/invoke.texi (Language Independent Options): Move
2663         -Wcoverage-mismatch blurb from here....
2664         (Warning Options): ...to here.
2665
2666 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
2667
2668         * config/rs6000/rs6000.c (rs6000_option_override_internal):
2669         Set rs6000_always_hint to false for 476.
2670
2671 2012-01-27  Matthias Klose  <doko@ubuntu.com>
2672
2673         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
2674           system root.
2675         * incpath.c (add_standard_paths): Likewise.
2676
2677 2012-01-27  Richard Henderson  <rth@redhat.com>
2678
2679         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
2680         * config/m68k/sync.md (atomic_test_and_set): Rename from
2681         sync_test_and_setqi and adjust the operands.
2682         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
2683         and unconditionally enable.
2684
2685 2012-01-27  Richard Henderson  <rth@redhat.com>
2686
2687         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
2688         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
2689         (ldstub): Rename from ldstubqi.
2690         (ldstub<I24MODE>): Remove.
2691
2692 2012-01-27  Richard Henderson  <rth@redhat.com>
2693
2694         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
2695         * c-cppbuiltin.c (cpp_atomic_builtins): Define
2696         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
2697         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
2698         * doc/tm.texi: Rebuild.
2699
2700 2012-01-27  Richard Henderson  <rth@redhat.com>
2701
2702         * optabs.c (gen_atomic_test_and_set): Remove default.
2703         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
2704
2705 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
2706
2707         PR rtl-optimization/51978
2708         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
2709         (combine_reaching_defs): Likewise.
2710         (struct re_info): Remove.
2711         (add_removable_extension): Remove x and data arguments,
2712         add insn, insn_list and def_map.  Use the arguments directly
2713         instead of using struct re_info.
2714         (find_removable_extensions): Don't call add_removable_extension
2715         through note_stores, instead just call it with single_set
2716         result if non-NULL.
2717         (find_and_remove_re): Pass curr_cand->expr instead of
2718         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
2719
2720 2012-01-26  Michael Matz  <matz@suse.de>
2721
2722         PR tree-optimization/46590
2723         * cfgexpand.c: Revert last change (r183305).
2724         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
2725         regs.
2726         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
2727         checking for emptiness.
2728
2729 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR middle-end/51895
2732         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
2733         non-addressable non-BLKmode base correctly.
2734
2735 2012-01-26  Michael Matz  <matz@suse.de>
2736
2737         PR tree-optimization/48794
2738         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
2739         regions referenced from RESX/EH_DISPATCH.
2740
2741 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2742
2743         * config/s390/s390.h: Make BRANCH_COST an option.
2744         * config/s390/s390.opt: New option -mbranch-cost.
2745
2746 2012-01-26  Richard Henderson  <rth@redhat.com>
2747
2748         Revert 2012-01-24 change:
2749         * trans-mem.c (requires_barrier): Do not instrument thread local
2750         variables and emit save/restore for them.
2751
2752 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
2753
2754         PR middle-end/51986
2755         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
2756         for pat == 0.
2757
2758 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
2759
2760         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
2761         ASM_OPERANDS.
2762
2763 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
2764
2765         PR target/49868
2766         Rename __pgm to __flash.
2767         Rename __pgm1 to __flash1.
2768         Rename __pgm2 to __flash2.
2769         Rename __pgm3 to __flash3.
2770         Rename __pgm4 to __flash4.
2771         Rename __pgm5 to __flash5.
2772         Rename __pgmx to __memx.
2773         * doc/extend.texi (AVR Named Address Spaces)
2774         Rename address space names as indicated above.
2775         * config/avr/avr.c (avr_addrspace): Ditto.
2776
2777         * config/avr/avr-protos.h
2778         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
2779         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
2780         * config/avr/predicates.md: Ditto.
2781         * config/avr/avr.c Ditto, and
2782         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
2783         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
2784
2785         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
2786         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
2787         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
2788         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
2789         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
2790         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
2791         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
2792         * config/avr/avr.c: Ditto.
2793         * config/avr/avr.md: Ditto.
2794
2795 2012-01-25  Jason Merrill  <jason@redhat.com>
2796
2797         PR c++/51992
2798         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
2799
2800 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
2801
2802         PR tree-optimization/51987
2803         * tree-data-ref.c (get_references_in_stmt): Handle references in
2804         non-volatile GIMPLE_ASM.
2805
2806 2012-01-25  Richard Guenther  <rguenther@suse.de>
2807
2808         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
2809         bases are dereferenced.
2810
2811 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
2812
2813         PR rtl-optimization/48374
2814         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
2815
2816 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
2817
2818         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
2819         compute_data_dependences_for_loop returns false.
2820         * tree-parloops.c (loop_parallel_p): Likewise.
2821
2822 2012-01-25  Richard Guenther  <rguenther@suse.de>
2823
2824         * tree.h (get_pointer_alignment_1): Declare.
2825         * builtins.c (get_pointer_alignment_1): New function.
2826         (get_pointer_alignment): Use it.
2827
2828 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2829
2830         PR rtl-optimization/48308
2831         * combine.c (enum undo_kind): Add UNDO_LINKS.
2832         (struct undo): Add member l to other_contents and where.
2833         (do_SUBST_LINK): New.
2834         (SUBST_LINK): New.
2835         (try_combine): Handle LOG_LINKS for the dummy i1 case.
2836         (undo_all): Handle UNDO_LINKS.
2837
2838 2012-01-25  Richard Henderson  <rth@redhat.com>
2839
2840         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
2841         mem inputs.
2842
2843 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
2844
2845         * optabs.c (gen_atomic_test_and_set): Use each argument.
2846
2847 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
2848
2849         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
2850         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
2851         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
2852         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
2853         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
2854         TARGET_PAIRED_SINGLE_FLOAT.
2855
2856 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
2857
2858         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
2859         (in_struct, return_val): Remove MEM documentation.
2860         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
2861         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
2862         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
2863         and MEM_SCALAR.
2864         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2865         * cfgexpand.c (add_alias_set_conflicts): Likewise.
2866         * expr.c (store_field): Likewise.
2867         * function.c (assign_stack_temp_for_type): Likewise.
2868         * ifcvt.c (noce_try_cmove_arith): Likewise.
2869         * reload1.c (reload): Likewise.
2870         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
2871         (alpha_set_memflags): Likewise.
2872         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
2873
2874 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
2875
2876         * rtl.h (true_dependence, canon_true_dependence): Remove varies
2877         parameter.
2878         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
2879         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
2880         (true_dependence_1, true_dependence, canon_true_dependence): Remove
2881         varies parameter.
2882         * cselib.c (cselib_rtx_varies_p): Delete.
2883         (cselib_invalidate_mem): Update call to canon_true_dependence.
2884         * dse.c (record_store, check_mem_read_rtx): Likewise.
2885         (scan_reads_nospill): Likewise.
2886         * cse.c (check_dependence): Likewise.
2887         (cse_rtx_varies_p): Delete.
2888         * expr.c (safe_from_p): Update call to true_dependence.
2889         * ira.c (validate_equiv_mem_from_store): Likewise.
2890         (memref_referenced_p): Likewise.
2891         * postreload-gcse.c (find_mem_conflicts): Likewise.
2892         * sched-deps.c (sched_analyze_2): Likewise.
2893         * store-motion.c (load_kills_store): Likewise.
2894         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
2895         * gcse.c (mems_conflict_for_gcse_p): Likewise.
2896         (compute_transp): Update call to canon_true_dependence.
2897
2898 2012-01-25  Richard Henderson  <rth@redhat.com>
2899
2900         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
2901         (maybe_emit_atomic_test_and_set): New.
2902         (expand_sync_lock_test_and_set): Use it.
2903         (expand_atomic_test_and_set): Likewise.
2904         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
2905         the implementation; clarify implementation defined details.
2906         * doc/md.texi (atomic_test_and_set): Document.
2907
2908 2012-01-25  Richard Henderson  <rth@redhat.com>
2909
2910         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
2911
2912 2012-01-25  Richard Henderson  <rth@redhat.com>
2913
2914         PR target/51968
2915         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
2916         to effect no-op split.
2917
2918 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
2919
2920         PR lto/51698
2921         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
2922         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
2923         (BT_FN_VOID_PTR_INT_SIZE): New.
2924         (BT_FN_UINT_UINT_VAR): Remove.
2925         (BT_FN_UINT32_UINT32_VAR): New.
2926         (BT_FN_DOUBLE_VPTR): Remove.
2927         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
2928
2929         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
2930         (_ITM_changeTransactionMode): Same.
2931         (_ITM_memmoveRtWt): Change return type to void.
2932         (_ITM_memcpyRtWt): Same.
2933         (_ITM_memsetW): Same.
2934         (_ITM_RaRD): Change types to double.
2935         (_ITM_RD): Same.
2936         (_ITM_RaWD): Same.
2937         (_ITM_RfWD): Same.
2938
2939         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
2940
2941 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
2942             Patrick Marlier  <patrick.marlier@gmail.com>
2943
2944         * trans-mem.c (requires_barrier): Do not instrument thread local
2945         variables and emit save/restore for them.
2946
2947 2012-01-24  Jason Merrill  <jason@redhat.com>
2948
2949         PR c++/51812
2950         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
2951         output static aliases.
2952
2953 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
2954
2955         PR driver/47249
2956         * common.opt (-pie, -shared, pie, shared): Change from Common to
2957         Driver.
2958         * gcc.c (display_help): Display help for -pie and -shared.
2959
2960 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
2961
2962         PR target/49868
2963         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
2964         Remove note on size/offset limitation.
2965         (AVR Variable Attributes): Add example how to read data located
2966         with progmem.  Refer to named address spaces.
2967         * doc/invoke.texi (AVR Options): Fix typo.
2968
2969 2012-01-24  Richard Guenther  <rguenther@suse.de>
2970
2971         Forward-port to trunk
2972         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
2973
2974         PR middle-end/45678
2975         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
2976         op0 isn't sufficiently aligned and there is movmisalignM
2977         insn for mode, use it to load op0 into a temporary register.
2978
2979 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
2980
2981         PR target/51957
2982         * target.def (const_not_ok_for_debug_p): New hook.
2983         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
2984         documentation.
2985         * doc/tm.texi: Regenerated.
2986         * dwarf2out.c (const_ok_for_output_1): If
2987         targetm.const_not_ok_for_debug_p returns true, fail.
2988         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
2989         function.
2990         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
2991
2992 2012-01-23  Kai Tietz  <ktietz@redhat.com>
2993
2994         PR target/51900
2995         * config/i386/predicates.md (symbolic_operand): Allow
2996         UNSPEC_PCREL as PIC expression for lea.
2997         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
2998         * config/i386/i386.c (ix86_delegitimize_address): Handle
2999         UNSPEC_PCREL for none-MEM, too.
3000
3001 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
3002
3003         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
3004         (ipa_tm_create_version_alias): Same.
3005
3006 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
3007
3008         PR libitm/51830
3009         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
3010         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
3011
3012 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
3013             Patrick Marlier  <patrick.marlier@gmail.com>
3014             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
3015
3016         PR lto/51916
3017         * lto-wrapper.c (run_gcc): Pass the LTO section name to
3018         simple_object_start_read.
3019
3020 2012-01-23  Richard Guenther  <rguenther@suse.de>
3021
3022
3023         PR tree-optimization/51895
3024         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
3025         parameter decomposition into BLKmode components.
3026
3027 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
3028
3029         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
3030         fake variables for restrict-qualified pointers whose pointed-to type
3031         contains a placeholder.
3032
3033 2012-01-23  Richard Guenther  <rguenther@suse.de>
3034
3035         PR tree-optimization/51949
3036         * ipa-split.c (execute_split_functions): Do not split malloc functions.
3037
3038 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
3039
3040         PR rtl-optimization/51933
3041         * ree.c (transform_ifelse): Return true right away if dstreg is
3042         already wider or equal to cand->mode.
3043         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
3044         (make_defs_and_copies_lists): Remove defs_list and copies_list
3045         arguments, add state argument, just truncate state->work_list
3046         instead of always allocating and freeing the vector.  Assert that
3047         get_defs succeeds instead of returning 2.  Changed return type to bool.
3048         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
3049         have ext_src_mode, see if it has been modified already with the
3050         right kind of extension and has been extended before from the
3051         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
3052         just return true.  Remember the original mode in state->modified array.
3053         (combine_reaching_defs): Add state argument.  Don't allocate and
3054         free here def_list, copied_list and vec vectors, instead just
3055         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
3056         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
3057         Add state variable, clear vectors in it, initialize state.modified
3058         if needed.  Free all the vectors at the end and state.modified too.
3059         Don't skip a candidate if the extension expression has been modified.
3060
3061 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
3062
3063         PR target/47096
3064         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
3065          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
3066         (extra_options) interix.opt -> i386/interix.opt"
3067         (extra_objs):Add winnt-stubs.o
3068         * configure.ac: Add interix to target_os .comm on PE check.
3069         * configure: Regenerate.
3070         * config/interix3.h: Delete and move bits to..
3071         * config/interix.h: Delete and move bits to..
3072         * config/i386/i386-interix3.h: Delete and move bits to..
3073         * config/i386/i386-interix.h: ..here.
3074         (TARGET_CPU_DEFAULT): Remove redefinition.
3075         (TARGET_ASM_CONSTRUCTOR): Undefine.
3076         (SUBTARGET_SWITCHES): Define for ms-bitfields.
3077         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
3078         (PTRDIFF_TYPE): Define.
3079         (LONG_DOUBLE_TYPE_SIZE): Define.
3080         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
3081         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3082         (TARGET_SECTION_TYPE_FLAGS): Define.
3083         (ASM_DECLARE_FUNCTION_NAME): Define.
3084         (ASM_OUTPUT_EXTERNAL): Define.
3085         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
3086         (ASM_OUTPUT_ALIGNED_BSS): Define.
3087         (PCC_BITFIELD_TYPE_MATTERS): Define.
3088         (USE_CONST_SECTION): Define.
3089         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
3090         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
3091         (SUPPORTS_ONE_ONLY): Remove.
3092         (I386_PE_STRIP_ENCODING): Define.
3093         * config/interix.opt: Delete and move bits to..
3094         * config/i386/interix.opt: ..here. New.
3095         (mpe-aligned-commons): Add.
3096         * config/i386/t-interix: Add copyright header.
3097         (winnt-stubs.o): Add rule.
3098
3099 2012-01-22  Jason Merrill  <jason@redhat.com>
3100
3101         PR c++/51832
3102         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
3103         for extra name aliases.
3104
3105 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
3106
3107         PR rtl-optimization/51924
3108         * ree.c (combine_set_extension): Improve debugging message.
3109         (combine_reaching_defs): Likewise.
3110         (get_defs): Rename confusingly named variable.
3111         (find_and_remove_re): Skip a candidate if the extension expression has
3112         been modified.
3113
3114 2012-01-21  Robert Millan  <rmh@gnu.org>
3115             Gerald Pfeifer  <gerald@pfeifer.com>
3116
3117         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
3118         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
3119
3120 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
3121
3122         PR tree-optimization/51914
3123         * tree-vect-stmts.c (vectorizable_conversion): For
3124         cvt_type && modifier == WIDEN, put temporary with cvt_type
3125         at the beginning of vec_dsts and set vec_dest to temporary
3126         with vectype_out.
3127
3128 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
3129
3130         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
3131
3132 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
3133
3134         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
3135         * config/rs6000/rs6000.c: Likewise.
3136
3137 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
3138
3139         PR target/51915
3140         * config/arm/arm.c (arm_count_output_move_double_insns): Call
3141         output_move_double on a copy of operands array.
3142
3143 2012-01-20  Cary Coutant  <ccoutant@google.com>
3144             Dodji Seketeli  <dodji@redhat.com>
3145
3146         PR debug/45682
3147         * dwarf2out.c (copy_declaration_context): Return ref to parent
3148         of declaration DIE, if necessary.
3149         (remove_child_or_replace_with_skeleton): Add new parameter; update
3150         caller.  Place skeleton DIE under parent DIE of original declaration.
3151         Move call to copy_declaration_context to here ...
3152         (break_out_comdat_types): ... from here.
3153
3154 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3155
3156         PR rtl-optimization/51856
3157         * reload.c (find_reloads_subreg_address): Set the address_reloaded
3158         flag to reloaded.
3159
3160 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3161
3162         PR target/51819
3163         * config/arm/arm.c (arm_print_operand): Correct output of alignment
3164         hints for neon loads and stores.
3165
3166 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
3167
3168         PR target/49868
3169         PR target/50887
3170         * doc/extend.texi (Named Address Spaces): Split into subsections.
3171         (AVR Named Address Spaces): New subsection.
3172         (M32C Named Address Spaces): New subsection.
3173         (RL78 Named Address Spaces): New subsection.
3174         (SPU Named Address Spaces): New subsection.
3175         (Variable Attributes): New anchor "AVR Variable Attributes".
3176         (AVR Variable Attributes): Rewrite and avoid wording
3177         "address space" in this context.
3178         * doc/invoke.texi (AVR Options): Rewrite and add documentation
3179         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
3180         (AVR Built-in Macros): New subsubsection therein.
3181         * doc/md.texi (AVR constraints): Remove "C04", "R".
3182
3183 2012-01-20  Richard Guenther  <rguenther@suse.de>
3184
3185         PR tree-optimization/51903
3186         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
3187         when removing stmts.
3188
3189 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3190
3191         PR target/50313
3192         * config/arm/arm.c (arm_load_pic_register): Use
3193         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
3194         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
3195         (arm_pic_static_addr): Likewise.
3196         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
3197         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
3198         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
3199         (pic_load_addr_unified): New.
3200
3201 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
3202
3203         PR target/51106
3204         * function.c (instantiate_virtual_regs_in_insn): Use
3205         delete_insn_and_edges when removing a wrong asm insn.
3206
3207 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
3208
3209         PR rtl-optimization/40761
3210         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
3211         Add new member loop_num.
3212         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
3213         (ira_build): Remove the parameter.
3214
3215         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
3216         (ira.c): Do not build CFG loops for one region allocation.  Remove
3217         argument from ira_build call.
3218
3219         * ira-build.c (init_loop_tree_node): New function.
3220         (create_loop_tree_nodes): Use it.  Separate the case when CFG
3221         loops are not built.
3222         (more_one_region_p): Check current_loops.
3223         (finish_loop_tree_nodes): Separate the case when CFG loops are not
3224         built.
3225         (add_loop_to_tree): Process loop equal to NULL too.
3226         (form_loop_tree): Separate the case when CFG loops are not built.
3227         Use explicitly number for the root.
3228         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
3229         an assertion.
3230         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
3231         instead of loop->num.
3232         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
3233         (mark_all_loops_for_removal): Ditto.
3234         (remove_unnecessary_regions): Separate the case when CFG loops
3235         are not built.
3236         (ira_build): Remove the parameter.  Use explicit number of regions
3237         when CFG loops are not built.
3238
3239         * ira-color.c (print_loop_title): Separate the case for the root node.
3240         Use loop_num instead of loop->num.
3241         (move_spill_restore): Use loop_num instead of loop->num.
3242
3243         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
3244         (change_loop): Ditto.
3245         (change_loop): Use loop_num instead of loop->num.
3246
3247         * ira-lives.c (process_bb_node_lives): Ditto.
3248
3249         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
3250
3251         * ira-conflicts.c (print_allocno_conflicts): Ditto.
3252
3253 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
3254
3255         PR libmudflap/40778
3256         * tree-mudflap.c (mf_artificial): New function.
3257         (execute_mudflap_function_ops, execute_mudflap_function_decls,
3258         mx_register_decls, mudflap_enqueue_decl): Use it.
3259
3260         PR target/51876
3261         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
3262         numbers in the insn pattern.
3263
3264 2012-01-19  Michael Matz  <matz@suse.de>
3265
3266         PR tree-optimization/46590
3267         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
3268         use it in remembering which conflicts we already created.
3269         (add_scope_conflicts): Adjust call to above, (de)allocate helper
3270         bitmap.
3271
3272 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
3273
3274         PR lto/51280
3275         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
3276         (merge_and_complain): Same.
3277
3278 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
3279
3280         PR bootstrap/50237
3281         * config/initfini-array.h: Guard content of the header
3282         with #ifdef HAVE_INITFINI_ARRAY.
3283         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
3284         Add initfini-array.h to tm_file here.
3285         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
3286         * config.gcc: Don't add initfini-array.h to tm_file here.
3287         * configure: Regenerated.
3288
3289 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
3290
3291         PR rtl-optimization/51505
3292         * df-problems.c (df_kill_notes): New parameter live. Update comment.
3293         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
3294         (df_note_bb_compute): Update the call to df_kill_notes.
3295
3296 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
3297
3298         * trans-mem.c (requires_barrier): Remove call to is_global_var.
3299
3300 2012-01-18  Richard Guenther  <rguenther@suse.de>
3301
3302         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
3303         of conversions to void *.
3304
3305 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3306             Richard Sandiford  <rdsandiford@googlemail.com>
3307
3308         PR middle-end/50325
3309         PR middle-end/51192
3310         * optabs.h (simplify_expand_binop): Declare.
3311         * optabs.c (simplify_expand_binop): Make global.
3312         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
3313         endian targets if the source cannot be exactly covered by word
3314         mode chunks.
3315
3316 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
3317
3318         PR bootstrap/51872
3319         * hard-reg-set.h (struct hard_reg_set_container): New type.
3320         * target.h (struct hard_reg_set_container): Forward declare.
3321         * target.def (set_up_by_prologue): New target hook.
3322         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
3323         * doc/tm.texi: Regenerated.
3324         * function.c (thread_prologue_and_epilogue_insns): Change
3325         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
3326         Call targetm.set_up_by_prologue on it.
3327         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
3328         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
3329
3330 2012-01-17  Nick Clifton  <nickc@redhat.com>
3331
3332         * config/rx/rx.c (rx_can_use_simple_return): New function.
3333         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
3334         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
3335
3336 2012-01-17  Richard Guenther  <rguenther@suse.de>
3337
3338         PR middle-end/51782
3339         * expr.c (expand_assignment): Take address-space information
3340         from the address operand of MEM_REF and TARGET_MEM_REF.
3341         (expand_expr_real_1): Likewise.
3342
3343 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3344
3345         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
3346         reload dump is requested.
3347
3348 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
3349
3350         PR other/51165
3351         * trans-mem.c (requires_barrier): Call may_be_aliased.
3352
3353 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
3354
3355         PR tree-optimization/51877
3356         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
3357         call arguments and fndecls compare equal, instead return false if they
3358         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
3359         both SSA_NAMEs that are valueized the same, or they satisfy
3360         operand_equal_p.
3361
3362 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3363
3364         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
3365         Solaris 11+.
3366         * configure: Regenerate.
3367
3368 2012-01-16  Jan Hubicka  <jh@suse.cz>
3369
3370         PR c/12245
3371         PR c++/14179
3372         * convert.c (convert_to_integer): Use fold_convert for
3373         converting an INTEGER_CST to integer type.
3374
3375 2012-01-16  Jason Merrill  <jason@redhat.com>
3376
3377         PR c++/14179
3378         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
3379
3380 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
3381
3382         PR bootstrap/51860
3383         * config/s390/s390.c (s390_chunkify_start): Don't skip
3384         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
3385         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
3386         If insn is followed by NOTE_INSN_VAR_LOCATION or
3387         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
3388         Don't use location of note insns.
3389
3390         PR tree-optimization/51865
3391         * tree-inline.c (tree_function_versioning): Call remap_decl
3392         on DECL_RESULT whenever it has VOID_TYPE_P type.
3393
3394 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
3395
3396         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
3397         for calls to locally-binding MIPS16 functions if only the return
3398         type uses float regs.
3399
3400 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
3401             Richard Sandiford  <rdsandiford@googlemail.com>
3402
3403         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
3404         (SYMBOL_32_HIGH): Likewise.
3405         (mips_output_tls_reloc_directive): Declare.
3406         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
3407         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
3408         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
3409         (mips_lo_relocs, mips_hi_relocs): Make extern.
3410         (mips16_stub_function): Move up file.
3411         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
3412         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
3413         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
3414         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
3415         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
3416         (mips_get_tp): Add MIPS16 support.
3417         (mips_legitimize_tls_address): Remove MIPS16 sorry().
3418         Generalize DTPREL and TPREL handling.
3419         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
3420         Add MIPS16 TLS support.
3421         (mips_output_tls_reloc_directive): New function.
3422         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
3423         * config/mips/predicates.md (symbolic_operand_with_high)
3424         (tls_reloc_operand): New predicates.
3425         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
3426         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
3427         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
3428         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
3429         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
3430         (*tls_get_tp_mips16_call_<mode>): Likewise.
3431
3432 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
3433
3434         PR rtl-optimization/51821
3435         * recog.c (peep2_find_free_register): Determine clobbered registers
3436         from insn pattern.
3437
3438 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
3439
3440         PR target/50925
3441         * config/avr/avr-protos.h: Revert change of 2012-01-09.
3442         * config/avr/avr.c: Likewise.
3443         * config/avr/avr.h: Likewise.
3444
3445 2012-01-13  Ian Lance Taylor  <iant@google.com>
3446
3447         PR c++/50012
3448         * tree.h (TYPE_QUALS): Add cast to int.
3449         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
3450
3451 2012-01-13  Ian Lance Taylor  <iant@google.com>
3452
3453         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
3454         comparing param_index to VEC_length result.
3455
3456 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
3457
3458         * c-decl.c: Do not include tree-mudflap.h
3459         * tree-optimize.c: Likewise.
3460         * Makefile.in: Update dependencies.
3461
3462 2012-01-13  Richard Guenther  <rguenther@suse.de>
3463
3464         PR middle-end/8081
3465         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
3466         variable-sized result always use RSO.
3467
3468 2012-01-12  DJ Delorie  <dj@redhat.com>
3469
3470         * cfgexpand.c (convert_debug_memory_address): Allow any valid
3471         pointer type, not just the default pointer type.
3472
3473 2012-01-09  Richard Henderson  <rth@redhat.com>
3474             Denis Chertykov  <chertykov@gmail.com>
3475
3476         PR target/50925
3477         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
3478         * config/avr/avr.c (avr_can_eliminate): Simplify.
3479         (avr_initial_elimination_offset): Likewise.
3480         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
3481         (expand_epilogue): Likewise.
3482         (avr_legitimize_address): Gut.
3483         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
3484         (avr_hard_regno_nregs): New.
3485         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
3486         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
3487         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
3488         add soft frame pointer.
3489         (CALL_USED_REGISTERS): Likewise.
3490         (REG_CLASS_CONTENTS): Likewise.
3491         (REGISTER_NAMES): Likewise.
3492         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
3493         (HARD_FRAME_POINTER_REGNUM): New.
3494         (FRAME_POINTER_REGNUM): Use soft frame pointer.
3495         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
3496         remove the HARD_FRAME_POINTER self-elimination.
3497
3498 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
3499
3500         PR target/51756
3501         * config/avr/avr.c (avr_encode_section_info): Test for absence of
3502         DECL_EXTERNAL when checking for initializers of progmem variables.
3503
3504 2012-01-12  Ira Rosen  <irar@il.ibm.com>
3505
3506         PR tree-optimization/51799
3507         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
3508         that the last operation is a type demotion.
3509
3510 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
3511
3512         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
3513         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
3514
3515 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
3516
3517         PR bootstrap/51796
3518         * combine.c (distribute_notes): If i3 is a noreturn call,
3519         allow old_size to be equal to args_size and make sure the
3520         noreturn call gets REG_ARGS_SIZE note.
3521         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
3522         on noreturn calls even when the delta is 0.
3523
3524 2012-01-11  Nathan Sidwell  <nathan@acm.org>
3525
3526         * gcov.c (STRING_SIZE): Remove.
3527         (generate_results): Erase annotations for source files with no
3528         coverage information.
3529         (read_line): New.
3530         (output_lines): Use it.
3531
3532 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
3533
3534         * gimple.h (gimplify_body): Remove first argument.
3535         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
3536         pointer set here, instead just pass DATA to walk_tree.
3537         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
3538         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
3539         (unvisit_body): Likewise, but with unmark_visited.
3540         (gimplify_body): Remove BODY_P argument and adjust.
3541         (gimplify_function_tree): Adjust call to gimplify_body.
3542         * omp-low.c (finalize_task_copyfn): Likewise.
3543
3544 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
3545
3546         * tree.h (build_function_decl_skip_args): Add boolean parameter.
3547         (build_function_type_skip_args): Delete.
3548         * tree.c (build_function_type_skip_args): Make static and add
3549         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
3550         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
3551         pass it to build_function_type_skip_args.
3552         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
3553         (tree_function_versioning): Likewise.
3554         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
3555         build_function_decl_skip_args.
3556         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
3557         and pass it to build_function_decl_skip_args/tree_function_versioning.
3558         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
3559         * ipa-inline-transform.c (save_inline_function_body): Likewise.
3560         * trans-mem.c (ipa_tm_create_version): Likewise.
3561         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
3562         * tree-inline.c (declare_return_variable): Remove always-true test.
3563         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
3564         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
3565         * ipa-split.c (split_function): Skip the return value for the split
3566         part if it doesn't return.
3567
3568 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3569
3570         PR tree-optimization/49642
3571         * ipa-split.c (forbidden_dominators): New variable.
3572         (check_forbidden_calls): New function.
3573         (dominated_by_forbidden): Likewise.
3574         (consider_split): Check for forbidden dominators.
3575         (execute_split_functions): Initialize and free forbidden
3576         dominators info; call check_forbidden_calls.
3577
3578 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3579
3580         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
3581
3582 2012-01-11  Nick Clifton  <nickc@redhat.com>
3583
3584         * config/rx/rx.md (return): Define pattern.
3585
3586 2012-01-11  Richard Guenther  <rguenther@suse.de>
3587
3588         * doc/extend.texi (malloc attribute): Adjust according to
3589         implementation.
3590
3591 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
3592             Patrick Marlier  <patrick.marlier@gmail.com>
3593
3594         PR middle-end/51516
3595         * trans-mem.c (get_cg_data): Traverse aliases if requested.
3596         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
3597         (ipa_tm_note_irrevocable): Same.
3598         (ipa_tm_scan_irr_block): Same.
3599         (ipa_tm_decrement_clone_counts): Same.
3600         (ipa_tm_scan_irr_function): Same.
3601         (ipa_tm_create_version_alias): Same.
3602         (ipa_tm_create_version): Same.
3603         (ipa_tm_transform_calls_redirect): Same.
3604         (ipa_tm_transform_calls): Same.
3605         (ipa_tm_transform_transaction): Same.
3606         (ipa_tm_execute): Same.
3607
3608 2012-01-10  Richard Guenther  <rguenther@suse.de>
3609
3610         PR middle-end/51806
3611         * opts.c (common_handle_option): Handle -Werror.
3612
3613 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
3614
3615         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
3616         operand number.
3617
3618 2012-01-10  Jason Merrill  <jason@redhat.com>
3619
3620         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
3621         information.
3622
3623 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3624
3625         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
3626         supports R_386_TLS_GD_PLT reloc.
3627         (gcc_cv_as_ix86_tlsldmplt): Check if linker
3628         supports R_386_TLS_LDM_PLT reloc.
3629         * configure: Regenerate.
3630         * config.in: Regenerate.
3631
3632 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
3633
3634         PR target/49868
3635         Extend __pgmx semantics to linearize memory.
3636         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
3637         determine if code comes inline or from libgcc.
3638         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
3639         (movmem_qi, movmem_qi): Set constraint #2 to "n".
3640         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
3641         (movmemx_qi, movmemx_hi): New insns.
3642         (xload_<mode>_libgcc): Rewrite to new insn condition.
3643         (xload_<mode>): Remove insns.
3644         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
3645         cases that don't satisfy avr_xload_libgcc_p().
3646         (avr_addr_space_convert): Allow converting in any direction.
3647         (avr_addr_space_subset_p): Return always true.
3648         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
3649         (avr_emit_movmemhi): Ditto.
3650         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
3651         (avr_out_movmem): Ditto.
3652         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
3653         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
3654         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
3655         (avr_encode_section_info): Encode 'progmem' in symbol flags.
3656         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
3657
3658 2012-01-10  Richard Guenther  <rguenther@suse.de>
3659
3660         PR tree-optimization/50913
3661         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
3662         Require data-refs to be representable by Graphite with respect
3663         to any loop nest.
3664
3665 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
3666
3667         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
3668         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
3669
3670 2012-01-10  Tom de Vries  <tom@codesourcery.com>
3671
3672         PR rtl-optimization/51271
3673         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
3674         handling annulled branch.
3675
3676 2012-01-10  Richard Henderson  <rth@redhat.com>
3677
3678         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
3679         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
3680         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
3681         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
3682         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
3683         arm_expand_vec_perm_const): New.
3684         * config/arm/arm-protos.h: Update.
3685         * config/arm/neon.md (UNSPEC_VCONCAT): New.
3686         (*neon_vswp<VDQX>): New.
3687         (neon_vcombine<VDX>): Use neon_split_vcombine.
3688         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
3689         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
3690         (vec_perm<VE>): New.
3691
3692 2012-01-10  Richard Henderson  <rth@redhat.com>
3693
3694         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
3695         use it if reload_completed.
3696         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
3697         arm_output_asm_insn, arm_process_output_memory_barrier,
3698         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
3699         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
3700         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
3701         arm_process_output_sync_insn, arm_output_sync_insn,
3702         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
3703         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
3704         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
3705         (emit_unlikely_jump): New.
3706         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
3707         (arm_split_atomic_op): New.
3708         * config/arm/arm-protos.h: Update.
3709         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
3710         (struct arm_sync_generator): Remove.
3711         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
3712         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
3713         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
3714         (VUNSPEC_LL, VUNSPEC_SC): New.
3715         (sync_result, sync_memory, sync_required_value, sync_new_value,
3716         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
3717         (attr length): Don't use arm_sync_loop_insns.
3718         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
3719         (movsfcc, movdfcc): Likewise.
3720         * config/arm/constraints.md (Ua): New.
3721         * config/arm/prediates.md (mem_noofs_operand): New.
3722         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
3723         (sync_clobber, sync_t2_reqd): Remove.
3724         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
3725         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
3726         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
3727         (arm_sync_compare_and_swap<SIDI>): Remove.
3728         (arm_sync_compare_and_swap<NARROW>): Remove.
3729         (arm_sync_lock_test_and_set<SIDI>): Remove.
3730         (arm_sync_lock_test_and_set<NARROW>): Remove.
3731         (arm_sync_new_<syncop><SIDI>): Remove.
3732         (arm_sync_new_<syncop><NARROW>): Remove.
3733         (arm_sync_new_nand<SIDI>): Remove.
3734         (arm_sync_new_nand<NARROW>): Remove.
3735         (arm_sync_old_<syncop><SIDI>): Remove.
3736         (arm_sync_old_<syncop><NARROW>): Remove.
3737         (arm_sync_old_nand<SIDI>): Remove.
3738         (arm_sync_old_nand<NARROW>): Remove.
3739         (*memory_barrier): Merge arm_output_memory_barrier.
3740         (atomic_compare_and_swap<QHSD>): New.
3741         (atomic_compare_and_swap<NARROW>_1): New.
3742         (atomic_compare_and_swap<SIDI>_1): New.
3743         (atomic_exchange<QHSD>): New.
3744         (cas_cmp_operand, cas_cmp_str): New.
3745         (atomic_op_operand, atomic_op_str): New.
3746         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
3747         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
3748         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
3749         (arm_load_exclusive<NARROW>): New.
3750         (arm_load_exclusivesi, arm_load_exclusivedi): New.
3751         (arm_store_exclusive<QHSD>): New.
3752
3753 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3754
3755         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
3756         reload patterns if -mvsx-scalar-memory.
3757
3758         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
3759         generated, even -mno-vsx-scalar-double was used.
3760         (vsx_xscvdpsp_scalar): Likewise.
3761         (vsx_xscvspdp_scalar2): Likewise.
3762
3763 2012-01-09  Tom de Vries  <tom@codesourcery.com>
3764             Andrew Pinski  <apinski@cavium.com>
3765
3766         PR debug/51471
3767         * reorg.c (fill_slots_from_thread): Don't speculate
3768         frame-related insns.
3769
3770 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
3771
3772         * sched-int.h (bb_note): Move to...
3773         * basic-block.h: ...here.
3774         * haifa-sched.c (bb_note): Move to...
3775         * cfgrtl.c: ...here.
3776         * function.c (next_block_for_reg): New function.
3777         (move_insn_for_shrink_wrap): Likewise.
3778         (prepare_shrink_wrap): Rewrite to use the above.
3779
3780 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
3781
3782         * gimple.c (is_gimple_non_addressable): Remove.
3783         * gimple.h: Remove is_gimple_non_addressable.
3784         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
3785         is_gimple_non_addressable.
3786         * trans-mem.c (expand_assign_tm): Same.
3787
3788 2012-01-09  Richard Guenther  <rguenther@suse.de>
3789
3790         PR tree-optimization/51775
3791         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
3792         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
3793
3794 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3795
3796         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
3797         tuning parameters.
3798         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
3799
3800 2012-01-09  Richard Guenther  <rguenther@suse.de>
3801
3802         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
3803
3804 2012-01-08  Jan Hubicka  <jh@suse.cz>
3805
3806         PR tree-optimize/51680
3807         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
3808         on when known_vals needs to be computed; cleanup.
3809
3810 2012-01-08  Jan Hubicka  <jh@suse.cz>
3811
3812         PR tree-optimize/51694
3813         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
3814
3815 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
3816
3817         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
3818         for -std=c++98 and -std=c++11 too.
3819
3820 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
3821
3822         * cfgloop.c (cancel_loop): Add free() of bbs array.
3823
3824 2012-01-07  Jan Hubicka  <jh@suse.cz>
3825
3826         PR tree-optimization/51600
3827         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
3828         that benefits small functions.
3829
3830 2012-01-07  Jan Hubicka  <jh@suse.cz>
3831
3832         * ipa-inline.c (want_inline_small_function_p): Fix formating.
3833
3834 2012-01-07  Jan Hubicka  <jh@suse.cz>
3835
3836         PR tree-optimization/51680
3837         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
3838         whose inlining reduce unit size.
3839
3840 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
3841
3842         PR bootstrap/51725
3843         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
3844         Add canonical node to containing_mem chain after the non-canonical
3845         one, even if there weren't any locs to propagate.
3846         (remove_useless_values): Keep only canonical values.
3847         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
3848         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
3849         canonicalize mem_chain elements that are not discarded.
3850
3851 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
3852
3853         PR target/47333
3854         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
3855         before emitting functions.
3856
3857         PR gcov-profile/50127
3858         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
3859         clear_aux_for_blocks.
3860
3861 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
3862
3863         PR debug/51746
3864         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
3865
3866 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
3867
3868         * c-decl.c (ext_block): Moved up.
3869         (collect_all_refs, for_each_global_decl): Take ext_block into account.
3870
3871 2012-01-06  Han Shen  <shenhan@google.com>
3872
3873         Translate built-in include paths for sysroot.
3874         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
3875         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
3876
3877         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
3878         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
3879
3880         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
3881         control whether sysroot should be prepended to gxx include dir.
3882
3883         * configure: Regenerate.
3884
3885 2012-01-06  Torvald Riegel  <triegel@redhat.com>
3886
3887         PR rtl-optimization/51771
3888         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
3889         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
3890
3891 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
3892
3893         PR tree-optimization/51315
3894         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
3895         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
3896
3897 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
3898
3899         PR target/51681
3900         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
3901         for shrp pattern.  Correctly handle and fixup shift variable.
3902         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
3903
3904 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
3905
3906         PR debug/51762
3907         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
3908         note when !ACCUMULATE_OUTGOING_ARGS.
3909
3910 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
3911
3912         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
3913         condition.
3914         (extract_range_from_unary_expr_1): Avoid useless computations.
3915
3916 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
3917
3918         PR rtl-optimization/51767
3919         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
3920         of jump_block and add an extra edge for degenerated asm gotos.
3921
3922         PR middle-end/51768
3923         * stmt.c (check_unique_operand_names): Don't ICE during error
3924         reporting if i is from labels chain.
3925
3926         PR middle-end/44777
3927         * profile.c (branch_prob): Split bbs that have exit edge
3928         and need a fake entry edge too.
3929
3930 2012-01-05  Jan Hubicka  <jh@suse.cz>
3931
3932         PR middle-end/49710
3933         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
3934         unlooping loops.
3935
3936 2012-01-05  Richard Guenther  <rguenther@suse.de>
3937
3938         PR lto/50490
3939         * tree-streamer-out.c (write_ts_optimization): New function.
3940         (streamer_write_tree_body): Call it.
3941         * tree-streamer-in.c (lto_input_ts_optimization): New function.
3942         (streamer_read_tree_body): Call it.
3943         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
3944
3945 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
3946
3947         PR middle-end/51761
3948         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
3949         * gimplify.c (gimplify_cleanup_point_expr): Save and set
3950         in_cleanup_point_expr before gimplify_stmt call and restore it
3951         afterwards.
3952         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
3953         in_cleanup_point_expr is false.
3954
3955 2012-01-05  Richard Guenther  <rguenther@suse.de>
3956
3957         PR middle-end/51764
3958         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
3959         to c.opt.
3960         * toplev.c (process_options): Reject combining mudflap and LTO.
3961         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
3962
3963 2012-01-05  Richard Guenther  <rguenther@suse.de>
3964
3965         PR tree-optimization/51760
3966         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
3967         not VARYING.
3968         (bit_value_unop): Handle UNDEFINED operands.
3969         (bit_value_binop): Likewise.
3970
3971 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
3972
3973         * config/avr/avr.c (avr_replace_prefix): Remove.
3974         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
3975         (avr_asm_function_rodata_section): Ditto.
3976         (avr_asm_select_section): Ditto.
3977
3978 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3979
3980         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
3981         insertion.
3982
3983 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
3984
3985         PR bootstrap/51648
3986         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
3987         calls that have any non-fake successor edges.
3988
3989         PR debug/51746
3990         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
3991
3992 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
3993
3994         PR tree-optimization/51624
3995         * tree-sra.c (build_ref_for_model): When replicating a chain of
3996         COMPONENT_REFs, stop as soon as the offset would become negative.
3997
3998 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
3999
4000         PR debug/51695
4001         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
4002         in .debug_loc on the floor.
4003
4004 2012-01-04  Andrew Pinski  <apinski@cavium.com>
4005
4006         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
4007
4008 2012-01-04  Andrew Pinski  <apinski@cavium.com>
4009             Adam Nemet  <anemet@caviumnetworks.com>
4010
4011         * config/mips/mips.md (size): Add SI and DI.
4012         (SIZE): New mode attribute.
4013         (U): New code attribute.
4014         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
4015         (mips_lbux_<mode>): Delete.
4016         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
4017         (mips_lhx): Use gen_mips_lhx_extsi.
4018         (mips_lhx_<mode>): Delete.
4019         (mips_lwx): Delete.
4020         (mips_l<size>x): New expand.
4021         (mips_lwx_<mode>): Delete.
4022         (mips_l<GPR:size>x_<P:mode>): New pattern.
4023         (*mips_lw<u>x_<P:mode>_ext): Likewise.
4024         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
4025         * config/mips/mips.c (mips_lx_address_p): New function.
4026         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
4027         (dsp64): New availability predicate.
4028         (mips_builtins): Add an entry for __builtin_mips_ldx.
4029         * config/mips/mips.h (ISA_HAS_LBX): New define.
4030         (ISA_HAS_LBUX): Likewise.
4031         (ISA_HAS_LHX): Likewise.
4032         (ISA_HAS_LHUX): Likewise.
4033         (ISA_HAS_LWX): Likewise.
4034         (ISA_HAS_LWUX): Likewise.
4035         (ISA_HAS_LDX): Likewise.
4036         * doc/extend.texi (__builtin_mips_ldx): Document.
4037
4038 2012-01-04  Tristan Gingold  <gingold@adacore.com>
4039
4040         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
4041         when long pointers are used.
4042         * config.build (*-*-*vms*): Handle all OpenVMS targets.
4043         (alpha64-dec-*vms*, alpha*-dec-*vms*)
4044         (ia64-hp-*vms*): Remove.
4045         * config/vms/xm-vms64.h: Delete.
4046
4047 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
4048
4049         PR middle-end/51472
4050         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
4051
4052 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
4053
4054         * opts.c (finish_options): Remove duplicate sorry.
4055
4056 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
4057
4058         PR middle-end/51696
4059         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
4060         correctly.
4061
4062 2012-01-04  Richard Guenther  <rguenther@suse.de>
4063
4064         PR middle-end/51750
4065         * tree.c (size_low_cst): New function.
4066         * tree.h (size_low_cst): Declare.
4067         * fold-const.c (fold_comparison): Use it to extract the low
4068         part of the POINTER_PLUS_EXPR offset.
4069
4070 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
4071
4072         Fix clearing ZERO_REG
4073         * config/avr/avr.md (cc): Add alternative "ldi".
4074         (movqi_insn): Use it in cc attribute.
4075         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
4076         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
4077         (output_reload_insisf): Use ZERO_REG to pre-clear register.
4078
4079 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4080
4081         * configure: Regenerate.
4082
4083 2012-01-04  Richard Guenther  <rguenther@suse.de>
4084
4085         PR tree-optimization/49651
4086         * tree-ssa-structalias.c (type_can_have_subvars): New function.
4087         (var_can_have_subvars): Use it.
4088         (get_constraint_for_1): Only consider subfields if there can be any.
4089
4090 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
4091
4092         PR bootstrap/51725
4093         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
4094         to its new canonical_cselib_val and the cselib_val was in
4095         first_containing_mem chain, but the canonical_cselib_val was not,
4096         add the latter into the chain.
4097         (cselib_invalidate_mem): Compare canonical_cselib_val of
4098         addr_list chain elt with v.
4099
4100         PR pch/51722
4101         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
4102         dwarf2out_undef): Allocate e.info using ggc_strdup instead
4103         of xstrdup.
4104         (output_macinfo_op): Don't ggc_strdup fd->filename.
4105         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
4106         then ggc_strdup it.  Don't free inc->info or cur->info.
4107         (output_macinfo): Don't free ref->info or file->info.
4108
4109 2012-01-03  Ira Rosen  <irar@il.ibm.com>
4110
4111         PR tree-optimization/51269
4112         * tree-vect-loop-manip.c (set_prologue_iterations): Make
4113         first_niters a pointer.
4114         (slpeel_tree_peel_loop_to_edge): Likewise.
4115         (vect_do_peeling_for_loop_bound): Update call to
4116         slpeel_tree_peel_loop_to_edge.
4117         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
4118         here.  Remove it from the parameters list.
4119         (vect_do_peeling_for_alignment): Update calls and compute
4120         wide_prolog_niters.
4121
4122 2012-01-03  Richard Guenther  <rguenther@suse.de>
4123
4124         PR tree-optimization/51070
4125         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
4126         Properly handle calls.
4127
4128 2012-01-03  Richard Guenther  <rguenther@suse.de>
4129
4130         PR tree-optimization/51692
4131         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
4132         the LHS of allocation stmts.
4133
4134 2012-01-03  Olivier Hainque  <hainque@adacore.com>
4135
4136         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
4137
4138 2012-01-03  Olivier Hainque  <hainque@adacore.com>
4139
4140         * collect2.c (main): In AIX specific computations for vector
4141         insertions, use CONST_CAST2 to cast from char ** to const char **.
4142
4143 2012-01-03  Richard Guenther  <rguenther@suse.de>
4144
4145         PR debug/51650
4146         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
4147         the context of a limbo DIE when it does not already exist.
4148
4149 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
4150
4151         PR tree-optimization/51719
4152         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
4153         but direct call is, clear direct call's lhs and don't add fallthrough
4154         edge from dcall_bb to join_bb and PHIs.
4155
4156 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4157
4158         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
4159         the instructions emitted by the pattern.
4160         ("*TDC_insn_<mode>"): Add comment.
4161
4162 2012-01-03  Richard Guenther  <rguenther@suse.de>
4163
4164         PR middle-end/51730
4165         * fold-const.c (fold_comparison): Properly canonicalize
4166         tree offset and HOST_WIDE_INT bit position.
4167
4168 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
4169
4170         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
4171         operands for extzv pattern.
4172
4173 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
4174
4175         PR bootstrap/51725
4176         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
4177         on mem_elt first.
4178
4179 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
4180
4181         * doc/invoke.texi (-flto and related options): Copy-edit.
4182
4183 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4184
4185         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
4186
4187 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
4188
4189         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
4190         New patterns.
4191
4192 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4193
4194         * expr.h (move_by_pieces_ninsns): Declare.
4195         * expr.c (move_by_pieces_ninsns): Make external.
4196         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
4197         (mips_store_by_pieces_p): Likewise.
4198         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
4199         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
4200         * config/mips/mips.c (mips_move_by_pieces_p): New function.
4201         (mips_store_by_pieces_p): Likewise.
4202
4203 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
4204
4205         * passes.c (register_one_dump_file): Free full_name.
4206
4207         * reload1.c (reload): Don't allocate reg_max_ref_width here.
4208         (calculate_elim_costs_all_insns): Free offsets_at and
4209         offsets_known_at at the end and clear the pointers.
4210
4211 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
4212
4213         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
4214         this option introduced in r180739.
4215
4216 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
4217
4218         PR target/51345
4219         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
4220         (tmake_file target=avr): Add avr/t-multilib.
4221
4222         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
4223         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
4224         * config/avr/genmultilib.awk: New file.
4225         * config/avr/t-multilib: New auto-generated file.
4226         * config/avr/multilib.h: New auto-generated file.
4227         * config/avr/t-avr (AVR_MCUS): New variable.
4228         (genopt.sh): Use it.
4229         (s-mlib): Depend on t-multilib.
4230         (t-multilib, multilib.h): New dependencies.
4231         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
4232         (MULTILIB_OPTIONS): Remove.
4233         (MULTILIB_MATCHES): Remove.
4234         (MULTILIB_DIRNAMES): Remove.
4235         (MULTILIB_EXCEPTIONS): Remove:
4236         * config/avr/genopt.sh: Don't use hard coded file name;
4237         pass AVR_MCUS from t-avr instead.
4238
4239 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
4240
4241         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
4242
4243 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
4244
4245         Implement light-weight DImode support.
4246         * config/avr/avr-dimode.md: New file.
4247         * config/avr/avr.md: Include it.
4248         (adjust_len): Add plus64, compare64.
4249         (HIDI): Remove code iterator.
4250         (code_stdname): New code attribute.
4251         (rotx, rotsmode): Remove DI.
4252         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
4253         as code iterator.
4254         * config/avr/avr-protos.h (avr_have_dimode): New.
4255         (avr_out_plus64, avr_out_compare64): New.
4256         * config/avr/avr.c (avr_out_compare): Handle DImode.
4257         (avr_have_dimode): New variable definition and initialization.
4258         (avr_out_compare64, avr_out_plus64): New functions.
4259         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
4260         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
4261         (avr_compare_pattern): Skip DImode comparisons.
4262
4263 2012-01-02  Revital Eres  <revital.eres@linaro.org>
4264
4265         * ddg.c (def_has_ccmode_p): New function.
4266         (add_cross_iteration_register_deps,
4267         create_ddg_dep_from_intra_loop_link): Call it.
4268
4269 2012-01-02  Richard Guenther  <rguenther@suse.de>
4270
4271         PR other/51679
4272         * invoke.texi (fassociative-math): Remove spurious paranthesis.
4273
4274 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
4275
4276         * gcc.c (process_command): Update copyright notice dates.
4277         * gcov.c (print_version): Likewise.
4278         * gcov-dump.c (print_version): Likewise.
4279         * mips-tfile.c (main): Likewise.
4280         * mips-tdump.c (main): Likewise.
4281
4282 2012-01-01  Ira Rosen  <irar@il.ibm.com>
4283
4284         PR tree-optimization/51704
4285         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
4286         a use is inside the basic block or loop before accessing its vect info.
4287
4288 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
4289
4290         PR rtl-optimization/51069
4291         * cfgloopmanip.c (remove_path): Removing path making irreducible
4292         region unconditional makes BB part of the region.
4293
4294 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
4295
4296         PR tree-optimization/51683
4297         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
4298         calls with side-effects.
4299         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
4300 \f
4301 Copyright (C) 2012 Free Software Foundation, Inc.
4302
4303 Copying and distribution of this file, with or without modification,
4304 are permitted in any medium without royalty provided the copyright
4305 notice and this notice are preserved.