OSDN Git Service

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