OSDN Git Service

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