OSDN Git Service

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