OSDN Git Service

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