OSDN Git Service

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