OSDN Git Service

* collect2.c (main): In AIX specific computations for vector
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-01-03  Olivier Hainque  <hainque@adacore.com>
2
3         * collect2.c (main): In AIX specific computations for vector
4         insertions, use CONST_CAST2 to cast from char ** to const char **.
5
6 2012-01-03  Richard Guenther  <rguenther@suse.de>
7
8         PR debug/51650
9         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
10         the context of a limbo DIE when it does not already exist.
11
12 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
13
14         PR tree-optimization/51719
15         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
16         but direct call is, clear direct call's lhs and don't add fallthrough
17         edge from dcall_bb to join_bb and PHIs.
18
19 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20
21         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
22         the instructions emitted by the pattern.
23         ("*TDC_insn_<mode>"): Add comment.
24
25 2012-01-03  Richard Guenther  <rguenther@suse.de>
26
27         PR middle-end/51730
28         * fold-const.c (fold_comparison): Properly canonicalize
29         tree offset and HOST_WIDE_INT bit position.
30
31 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
32
33         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
34         operands for extzv pattern.
35
36 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
37
38         PR bootstrap/51725
39         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
40         on mem_elt first.
41
42 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
43
44         * doc/invoke.texi (-flto and related options): Copy-edit.
45
46 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
47
48         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
49
50 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
51
52         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
53         New patterns.
54
55 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
56
57         * expr.h (move_by_pieces_ninsns): Declare.
58         * expr.c (move_by_pieces_ninsns): Make external.
59         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
60         (mips_store_by_pieces_p): Likewise.
61         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
62         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
63         * config/mips/mips.c (mips_move_by_pieces_p): New function.
64         (mips_store_by_pieces_p): Likewise.
65
66 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
67
68         * passes.c (register_one_dump_file): Free full_name.
69
70         * reload1.c (reload): Don't allocate reg_max_ref_width here.
71         (calculate_elim_costs_all_insns): Free offsets_at and
72         offsets_known_at at the end and clear the pointers.
73
74 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
75
76         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
77         this option introduced in r180739.
78
79 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
80
81         PR target/51345
82         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
83         (tmake_file target=avr): Add avr/t-multilib.
84
85         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
86         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
87         * config/avr/genmultilib.awk: New file.
88         * config/avr/t-multilib: New auto-generated file.
89         * config/avr/multilib.h: New auto-generated file.
90         * config/avr/t-avr (AVR_MCUS): New variable.
91         (genopt.sh): Use it.
92         (s-mlib): Depend on t-multilib.
93         (t-multilib, multilib.h): New dependencies.
94         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
95         (MULTILIB_OPTIONS): Remove.
96         (MULTILIB_MATCHES): Remove.
97         (MULTILIB_DIRNAMES): Remove.
98         (MULTILIB_EXCEPTIONS): Remove:
99         * config/avr/genopt.sh: Don't use hard coded file name;
100         pass AVR_MCUS from t-avr instead.
101
102 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
103
104         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
105
106 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
107
108         Implement light-weight DImode support.
109         * config/avr/avr-dimode.md: New file.
110         * config/avr/avr.md: Include it.
111         (adjust_len): Add plus64, compare64.
112         (HIDI): Remove code iterator.
113         (code_stdname): New code attribute.
114         (rotx, rotsmode): Remove DI.
115         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
116         as code iterator.
117         * config/avr/avr-protos.h (avr_have_dimode): New.
118         (avr_out_plus64, avr_out_compare64): New.
119         * config/avr/avr.c (avr_out_compare): Handle DImode.
120         (avr_have_dimode): New variable definition and initialization.
121         (avr_out_compare64, avr_out_plus64): New functions.
122         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
123         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
124         (avr_compare_pattern): Skip DImode comparisons.
125
126 2012-01-02  Revital Eres  <revital.eres@linaro.org>
127
128         * ddg.c (def_has_ccmode_p): New function.
129         (add_cross_iteration_register_deps,
130         create_ddg_dep_from_intra_loop_link): Call it.
131
132 2012-01-02  Richard Guenther  <rguenther@suse.de>
133
134         PR other/51679
135         * invoke.texi (fassociative-math): Remove spurious paranthesis.
136
137 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
138
139         * gcc.c (process_command): Update copyright notice dates.
140         * gcov.c (print_version): Likewise.
141         * gcov-dump.c (print_version): Likewise.
142         * mips-tfile.c (main): Likewise.
143         * mips-tdump.c (main): Likewise.
144
145 2012-01-01  Ira Rosen  <irar@il.ibm.com>
146
147         PR tree-optimization/51704
148         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
149         a use is inside the basic block or loop before accessing its vect info.
150
151 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
152
153         PR rtl-optimization/51069
154         * cfgloopmanip.c (remove_path): Removing path making irreducible
155         region unconditional makes BB part of the region.
156
157 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
158
159         PR tree-optimization/51683
160         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
161         calls with side-effects.
162         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
163
164 2011-12-31  Alexandre Oliva  <aoliva@redhat.com>
165
166         * cselib.h (cselib_add_permanent_equiv): Declare.
167         (canonical_cselib_val): New.
168         * cselib.c (new_elt_loc_list): Rework to support value
169         equivalences.  Adjust all callers.
170         (preserve_only_constants): Retain value equivalences.
171         (references_value_p): Retain preserved values.
172         (rtx_equal_for_cselib_1): Handle value equivalences.
173         (cselib_invalidate_regno): Use canonical value.
174         (cselib_add_permanent_equiv): New.
175         * alias.c (find_base_term): Reset locs lists while recursing.
176         * var-tracking.c (val_bind): New.  Don't add equivalences
177         present in cselib table, compared with code moved from...
178         (val_store): ... here.
179         (val_resolve): Use val_bind.
180         (VAL_EXPR_HAS_REVERSE): Drop.
181         (add_uses): Do not create MOps for addresses.  Do not mark
182         non-REG non-MEM expressions as requiring resolution.
183         (reverse_op): Record reverse as a cselib equivalence.
184         (add_stores): Use it.  Do not create MOps for addresses.
185         Do not require resolution for non-REG non-MEM expressions.
186         Simplify support for reverse operations.
187         (compute_bb_dataflow): Drop reverse support.
188         (emit_notes_in_bb): Likewise.
189         (create_entry_value): Rename to...
190         (record_entry_value): ... this.  Use cselib equivalences.
191         (vt_add_function_parameter): Adjust.
192
193 2011-12-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
194
195         * config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko
196         in setting options via target #pragma or attribute.
197
198 2011-12-30  Anatoly Sokolov  <aesok@post.ru>
199
200         * config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
201         * config/bfin/bfin-protos.h (bfin_register_move_cost,
202         bfin_memory_move_cost): Remove.
203         * config/bfin/bfin.c (bfin_register_move_cost,
204         bfin_memory_move_cost): Make static. Change arguments type from
205         enum reg_class to reg_class_t and from int to bool.
206         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
207
208 2011-12-30  Nathan Sidwell  <nathan@acm.org>
209
210         * gcov.c (total_lines, total_executed): New global vars.
211         (generate_results): Call executed_summary.
212         (executed_summary): New function, broken out of ...
213         (function_summary): ... here.  Call it.
214         * coverage.c (coverage_finish): Also check for local_tick == -1.
215         * gcov-dump (tag_function): Correct labelling typo.
216
217 2011-12-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
218
219         PR target/51623
220         * config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check
221         for an initialized pointer being in a text section with
222         -mrelocatable, since it should never happen.
223
224 2011-12-29  Michael Eager  <eager@eagercon.com>
225
226         * config/microblaze/microblaze.md: Add expander for simple_return,
227         return, add return_internal and simple_return_internal insns.
228
229 2011-12-29  Oleg Endo  <olegendo@gcc.gnu.org>
230
231         * config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable.
232         * config/sh/sh.c (sh_option_override): Simplify sh_branch_cost
233         expression.
234
235 2011-12-28  Ian Lance Taylor  <iant@google.com>
236
237         * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go.
238
239 2011-12-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
240
241         PR target/51623
242         * config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call
243         unlikely_text_section_p.  Instead check for being in a code section.
244
245 2011-12-28  Ira Rosen  <irar@il.ibm.com>
246
247         PR tree-optimization/51684
248         * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original
249         statement in case of a pattern.
250         (vect_schedule_slp): Likewise.
251
252 2011-12-27  Eric Botcazou  <ebotcazou@adacore.com>
253
254         PR rtl-optimization/51667
255         * ree.c (insn_merge_code): Delete.
256         (is_insn_merge_attempted): Likewise.
257         (get_insn_status): Likewise.
258         (set_insn_status): Likewise.
259         (struct ext_cand): Add CODE and MODE fields.
260         (combine_set_extend): Rename to...
261         (combine_set_extension): ...this.  Use above fields and tidy up.
262         (transform_ifelse): Likewise.
263         (get_defs): Return the chain of definitions.
264         (is_this_a_cmove): Merge into...
265         (is_cond_copy_insn): ...this.  Return bool.
266         (make_defs_and_copies_lists): Adjust calls to get_defs and simplify.
267         (merge_def_and_ext): Adjust call to combine_set_extend.
268         (combine_reaching_defs): Remove calls to {g|s}et_insn_status.
269         (struct extend_info): Rename to...
270         (struct re_info): ...this.  Add DEF_MAP field.
271         (add_ext_candidate): Merge into...
272         (add_removable_extension): ...this.  Adjust calls to get_defs.  Ensure
273         reaching definitions are associated with only one kind of extension.
274         (find_removable_extensions): Create and destroy the definition map.
275         (find_and_remove_re): Return void.  Change 'long' variables to 'int'.
276         Do not deal with is_insn_merge_attempted.
277
278 2011-12-25  Jan Hubicka  <jh@suse.cz>
279
280         PR middle-end/48641
281         * tree-ssa-threadupdate.c (redirect_edges): Watch for overflow.
282
283 2011-12-26  Oleg Endo  <oleg.endo@t-online.de>
284
285         * config/sh/sync.md: Add soft atomics ABI description.
286         (fetchop_name): Use 'or' instead of 'ior'.
287         (fetchop_insn): Remove.
288         (atomic_compare_and_swap<mode>_soft):
289         Don't insert aligning nop after the write-back instruction.  Fix
290         multi-line asm output formatting style.
291         (atomic_fetch_<fetchop_name><mode>_soft): Likewise.
292         (atomic_fetch_nand<mode>_soft): Likewise.
293         (atomic_<fetchop_name>_fetch<mode>_soft): Likewise.
294         (atomic_nand_fetch<mode>_soft): Likewise.
295
296 2011-12-23  Richard Henderson  <rth@redhat.com>
297
298         * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove.
299         * cfgexpand.c (expand_debug_expr): Don't handle them.
300         * expr.c (expand_expr_real_2): Likewise.
301         * fold-const.c (fold_binary_loc): Likewise.
302         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
303         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
304         * tree-inline.c (estimate_operator_cost): Likewise.
305         * tree-pretty-print.c (dump_generic_node): Likewise.
306         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
307         * optabs.c (optab_for_tree_code): Likewise.
308         (can_vec_perm_for_code_p): Remove.
309         (expand_binop): Don't try it.
310         (init_optabs): Don't init vec_extract_even/odd_optab.
311         * genopinit.c (optabs): Likewise.
312         * optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove.
313         (vec_extract_even_optab, vec_extract_odd_optab): Remove.
314         * tree-vect-data-refs.c (vect_strided_store_supported): Tidy code.
315         (vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of
316         GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of
317         asserting vect_strided_store_supported.
318         (vect_strided_load_supported): Use can_vec_perm_p.
319         (vect_permute_load_chain): Use VEC_PERM_EXPR.
320
321         * doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove.
322         (VEC_EXTRACT_ODD_EXPR): Remove.
323         * doc/md.texi (vec_extract_even, vec_extract_odd): Remove.
324
325 2011-12-23  Anatoly Sokolov  <aesok@post.ru>
326
327         * config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
328         * config/score/score-protos.h (score_register_move_cost): Remove.
329         * config/score/score.c (TARGET_REGISTER_MOVE_COST): Define.
330         (score_register_move_cost): Make static. Change arguments type from
331         enum reg_class to reg_class_t.
332
333 2011-12-23  Jakub Jelinek  <jakub@redhat.com>
334             Richard Henderson  <rth@redhat.com>
335
336         * tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove.
337         * gimple-pretty-print.c (dump_binary_rhs): Don't handle
338         VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
339         * expr.c (expand_expr_real_2): Likewise.
340         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
341         * cfgexpand.c (expand_debug_expr): Likewise.
342         * tree-inline.c (estimate_operator_cost): Likewise.
343         * tree-pretty-print.c (dump_generic_node): Likewise.
344         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
345         * fold-const.c (fold_binary_loc): Likewise.
346         * doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR,
347         VEC_INTERLEAVE_LOW_EXPR): Remove documentation.
348         * optabs.c (optab_for_tree_code): Don't handle
349         VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
350         (expand_binop, init_optabs): Remove vec_interleave_high_optab
351         and vec_interleave_low_optab.
352         * genopinit.c (optabs): Likewise.
353         * optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove.
354         (vec_interleave_high_optab, vec_interleave_low_optab): Remove.
355         * doc/md.texi (vec_interleave_high, vec_interleave_low): Remove
356         documentation.
357         * tree-vect-stmts.c (gen_perm_mask): Renamed to...
358         (vect_gen_perm_mask): ... this.  No longer static.
359         (perm_mask_for_reverse, vectorizable_load): Adjust callers.
360         * tree-vectorizer.h (vect_gen_perm_mask): New prototype.
361         * tree-vect-data-refs.c (vect_strided_store_supported): Don't try
362         VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of
363         can_vec_perm_for_code_p.
364         (vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving
365         masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
366         * config/i386/i386.c (expand_vec_perm_interleave2): If
367         expand_vec_perm_interleave3 would handle it, return false.
368         (expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab.
369
370 2011-12-23  Richard Henderson  <rth@redhat.com>
371
372         * config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0,
373         UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2,
374         UNSPEC_LOONGSON_PINSR_3): Replace with...
375         (UNSPEC_LOONGSON_PINSRH): ... this.
376         (UNSPEC_LOONGSON_VINIT): New.
377         (UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New.
378         (VWB): New mode iterator.
379         (V_inner): New mode attribute.
380         (loongson_vec_init1_<VHB>): New.
381         (*vec_concatv2si): New.
382         (and<VWHB>3, ior<VWHB>3, xor<VWHB>3, one_cmpl<VWHB>2): New.
383         (*loongson_nor): New.
384         (loongson_pextrh): Un-macro-ify.
385         (loongson_pmaddhw): Likewise.
386         (smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise.
387         (loongson_pinsrh_0): Represent with vec_select+vec_concat.
388         (loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise.
389         (*vec_setv4hi, vec_setv4hi): New.
390         (sdot_prodv4hi): New.
391         (smax<VWB>3, smin<VWB>3): New.
392         (reduc_uplus_v8qi): New.
393         (loongson_pshufh): Remove destination matching input.
394         (ashl<VWH>3, ashr<VWH>3, lshr<VWH>3): Fix type attribute.
395         (vec_interleave_high<VWHB>, vec_interleave_low<VWHB>): Remove.
396         (loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi,
397         loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi,
398         loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi,
399         loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi,
400         vec_perm_const<VWHB>, vec_unpacks_lo_<VHB>, vec_unpacks_hi_<VHB>,
401         vec_unpacku_lo_<VHB>, vec_unpacku_hi_<VHB>, vec_shl_<VWHBDI>,
402         vec_shr_<VWHBDI>, reduc_uplus_<VWH>, reduc_splus_<VWHB>,
403         reduc_smax_<VWHB>, reduc_smin_<VWHB>, reduc_umax_<VWHB>,
404         reduc_umin_<VB>): New.
405         * config/mips/mips-ps-3d.md (vec_perm_const_ps): New.
406         (mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in
407         terms of vec_perm_const_ps.
408         (vec_perm_constv2sf): New.
409         (vec_initv2sf): Use mips_expand_vector_init.
410         (vec_concatv2sf): Rename from vec_initv2sf_internal.
411         (vec_setv2sf): Use vec_perm_const_ps.
412         (reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New.
413         * config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to
414         the builtin.
415         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes.
416         * config/mips/mips-protos.h: Update.
417         * config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all
418         MODE_VECTOR_FLOAT.
419         (mips_return_mode_in_fpr_p): Likewise.
420         (mips_cannot_change_mode_class): Allow 8-byte integral mode changes.
421         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw,
422         CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh,
423         CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove.
424         (mips_builtins): Remove first operand for loongson pshufh builtins.
425         (MAX_VECT_LEN, struct expand_vec_perm_d): New.
426         (mips_expand_vselect, mips_expand_vselect_vconcat,
427         mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh,
428         mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1,
429         mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok,
430         mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast,
431         mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh,
432         mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax,
433         TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
434         (mips_expand_vector_init): Rewrite.
435         * config/mips/predicates.md (const_2_or_3_operand): New.
436         (const_0_to_3_operand): New.
437
438 2011-12-23  Dmitry Plotnikov  <dplotnikov@ispras.ru>
439
440         * config/arm/neon.md (float<mode><V_cvtto>2): New.
441         (floatuns<mode><V_cvtto>2): New.
442         (fix_trunc<mode><V_cvtto>2): New.
443         (fix_truncuns<mode><V_cvtto>2): New.
444         * config/arm/iterators.md (V_cvtto): New iterator.
445
446 2011-12-23  Richard Guenther  <rguenther@suse.de>
447
448         PR rtl-optimization/50396
449         * simplify-rtx.c (simplify_binary_operation_1): Properly
450         guard code that only works for integers.
451
452 2011-12-23  Tristan Gingold  <gingold@adacore.com>
453
454         * config/vms/vms-crtlmap.map (log10): Fix typo.
455
456 2011-12-23  Tristan Gingold  <gingold@adacore.com>
457
458         * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define.
459
460 2011-12-22  Bin Cheng  <bin.cheng@arm.com>
461         Richard Guenther  <rguenther@suse.de>
462
463         PR tree-optimization/43491
464         * tree-ssa-pre.c (eliminate): Don't replace global register
465         variable when it is the RHS of a single assign.
466
467 2011-12-22  Joey Ye  <joey.ye@arm.com>
468
469         * toplev.c (process_options): Fix typo.
470
471 2011-12-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
472
473         PR middle-end/51252
474         * config/pa/pa.c (pa_som_tm_clone_table_section): New function.
475         (som_tm_clone_table_section): Declare.
476         (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace.
477         (pa_som_asm_init_sections): Init som_tm_clone_table_section.
478         * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
479
480 2011-12-22  Richard Sandiford  <rdsandiford@googlemail.com>
481
482         * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook.
483         * doc/tm.texi: Regenerate.
484         * target.def (prepare_pch_save): New hook.
485         * c-family/c-pch.c (c_common_write_pch): Call it.
486         * config/mips/mips.c (was_mips16_pch_p): Delete.
487         (mips_set_mips16_mode): Don't refer to was_mips16_pch_p.
488         (mips_prepare_pch_save): New function.
489         (TARGET_PREPARE_PCH_SAVE): Define.
490
491 2011-12-22  Aldy Hernandez  <aldyh@redhat.com>
492
493         PR middle-end/51212
494         * opts.c (finish_options): Call sorry on -fgnu-tm and
495         -fnon-call-exceptions combination.
496
497 2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
498
499         * doc/invoke.texi (C++ Dialect Options): Add missing options and
500         move -Wzero-as-null-pointer-constant to ...
501         (Warning Options): ... here.
502
503 2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
504
505         PR target/47643
506         * doc/invoke.texi (i386 and x86-64 Options): Fix description of
507         -mtune without -march.
508
509 2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
510
511         PR target/51643
512         * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
513         change.
514
515 2011-12-22  Tristan Gingold  <gingold@adacore.com>
516
517         * config/ia64/ia64.c (ia64_promote_function_mode): Remove.
518         (TARGET_PROMOTE_FUNCTION_MODE): Remove.
519         (ia64_function_value): Call promote_function_mode instead of
520         ia64_promote_function_mode.
521         * config/ia64/vms.h (PROMOTE_MODE): Define.
522         (TARGET_PROMOTE_FUNCTION_MODE): Define.
523
524 2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
525
526         PR target/27468
527         * common/config/alpha/alpha-common.c (alpha_option_optimization_table):
528         Enable flag_ree at -O2 or higher.
529
530 2011-12-22  Richard Guenther  <rguenther@suse.de>
531
532         PR lto/51650
533         * lto.c (uniquify_nodes): Register TYPE_DECLs with the
534         debuginfo machinery.
535
536 2011-12-22  Bernd Schmidt  <bernds@codesourcery.com>
537
538         * tree-pass.h (pass_reload): Declare.
539         * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
540         New global variables, moved out of ira.
541         (do_reload): New static function, split off from the second half
542         of ...
543         (ira): ... here.
544         (gate_ira): Remove.
545         (pass_ira): Use TV_IRA, set gate to NULL, and set flags to
546         TODO_dump_func.
547         (rest_of_handle_reload): New static function.
548         (pass_reload): New.
549
550 2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
551
552         * common/config/i386/i386-common.c (ix86_option_optimization_table):
553         Move OPT_free processing from ...
554         * config/i386/i386.c (ix86_option_override_internal):  ... here.
555
556 2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
557
558         PR target/51643
559         * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
560         weak function on bare-metal EABI targets.
561
562 2011-12-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
563             Jim Avera  <james_avera@yahoo.com>
564
565         * doc/extend.texi (__builtin_expect): Improve example.
566
567 2011-12-21  Uros Bizjak  <ubizjak@gmail.com>
568
569         * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
570         also for 32bit targets.
571
572 2011-12-21  Richard Henderson  <rth@redhat.com>
573
574         PR target/51552
575         * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code...
576         (scan_trace): ... here.
577
578 2011-12-21  Jason Merrill  <jason@redhat.com>
579
580         * doc/standards.texi (C++ language): Update for C++11.
581
582 2011-12-21  Jakub Jelinek  <jakub@redhat.com>
583
584         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
585         *op0 and *op1 to NULL_TREE first to avoid warnings.
586         * calls.c (initialize_argument_information): Initialize base to avoid
587         warnings.
588
589         PR middle-end/51644
590         PR middle-end/51647
591         * tree-eh.c (decide_copy_try_finally): At -O0, return true
592         even when ndests is not 1, if there are only gimple_clobber_p
593         (or debug) stmts in the finally sequence.
594         * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
595         stmts.
596
597 2011-12-21  Aldy Hernandez  <aldyh@redhat.com>
598
599         PR middle-end/51472
600         * trans-mem.c (tm_log_add): Use create_tmp_var_reg.
601
602 2011-12-21  Martin Jambor  <mjambor@suse.cz>
603
604         * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
605         (rewrite_update_enter_block): Likewise.
606         (dump_update_ssa): Likewise.
607         (update_ssa): Likewise but also dump a newline at the beginning.
608
609 2011-12-21  Enkovich Ilya  <ilya.enkovich@intel.com>
610
611         PR target/50038
612         * implicit-zee.c: Delete.
613         * ree.c: New file.
614         * Makefile.in: Replace implicit-zee.c with ree.c.
615         * config/i386/i386.c (ix86_option_override_internal): Rename
616         flag_zee to flag_ree.
617         * common.opt (fzee): Ignored.
618         (free): New.
619         * passes.c (init_optimization_passes): Replace pass_implicit_zee
620         with pass_ree.
621         * tree-pass.h (pass_implicit_zee): Delete.
622         (pass_ree): New.
623         * timevar.def (TV_ZEE): Delete.
624         (TV_REE): New.
625         * doc/invoke.texi: Add -free description.
626
627 2011-12-21  Tristan Gingold  <gingold@adacore.com>
628
629         * config/vms/vms-protos.h (vms_function_section): New prototype.
630         * config/vms/vms.c (vms_function_section): New function.
631         * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
632
633 2011-12-21  Richard Guenther  <rguenther@suse.de>
634
635         PR lto/41159
636         * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
637         mode of the pseudo as destination mode.  Only assert that
638         is equal to the promoted mode of the decl if it is a REG.
639
640 2011-12-21  Tristan Gingold  <gingold@adacore.com>
641
642         * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define.
643
644 2011-12-20  Richard Henderson  <rth@redhat.com>
645
646         * config/ia64/ia64.c (MAX_VECT_LEN): New.
647         (struct expand_vec_perm_d): New.
648         (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
649         (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1.
650         (expand_vselect, expand_vselect_vconcat): New.
651         (expand_vec_perm_identity, expand_vec_perm_shrp): New.
652         (expand_vec_perm_1, expand_vec_perm_broadcast): New.
653         (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New.
654         (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New.
655         (ia64_vectorize_vec_perm_const_ok): New.
656         (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New.
657         * config/ia64/ia64-protos.h: Update.
658         * config/ia64/vect.md (VEC): New mode iterator.
659         (vecint): New mode attribute.
660         (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'.
661         (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise.
662         (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise.
663         (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise.
664         (mix1_even, mix1_odd, mux1_alt): Likewise.
665         (mux1_brcst_qi): Remove '*' from name.
666         (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove.
667         (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove.
668         (vec_extract_evenv2si, vec_extract_oddv2si): Remove.
669         (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
670         (vec_extract_evenodd_helper): Remove.
671         (vec_setv2sf): Use ia64_expand_vec_setv2sf.
672         (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd.
673         (vec_pack_trunc_v2si): Likewise.
674         (vec_perm_const<VEC>): New.
675
676 2011-12-20  Richard Henderson  <rth@redhat.com>
677
678         * tree-vect-generic.c (expand_vector_operations_1): Correct tests
679         for vector types -- use the type not the mode.  Fix optab selection
680         for vector shifts by a scalar.  Handle over-large integer modes
681         like BLKmode.
682
683 2011-12-20  Richard Henderson  <rth@redhat.com>
684
685         * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
686         post-reload splitting.
687
688         * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
689         * config/arm/arm.c (arm_select_cc_mode): Use it.
690
691 2011-12-20  Richard Sandiford  <rdsandiford@googlemail.com>
692
693         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
694         handling of signedness differences to integer types.  Only build
695         a new optype if type1 isn't correct.
696
697 2011-12-20  Vladimir Makarov  <vmakarov@redhat.com>
698
699         PR target/49865
700         * ira-costs.c (find_costs_and_classes): Prefer registers even
701         if the memory cost is the same.
702
703 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
704
705         * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
706         (finish_struct): Refer to C11 in comments.  Use flag_isoc11.
707         * c-parser.c (c_parser_static_assert_declaration)
708         (c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
709         (c_parser_alignas_specifier, c_parser_alignof_expression): Refer
710         to C11 in comments.  Use flag_isoc11.
711         * c-typeck.c (comptypes_check_different_types): Refer to C11 in
712         comment.
713         * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
714         * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
715         to -std=c1x and -std=gnu1x.
716         * doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
717         (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
718         instead of -std=c1x and C1X.
719         * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
720         preference to -std=c1x.
721         (-std=gnu11): Document in preference to -std=gnu1x.
722         * doc/standards.texi: Document C11 instead of C1X.  Document C11
723         as actual standard.  Document headers required from freestanding
724         C11 implementations.
725         * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
726         201112L for C11.  Update comments to refer to C11.
727
728 2011-12-20  Andreas Schwab  <schwab@linux-m68k.org>
729
730         * configure: Regenerate.
731
732 2011-12-20  Bernd Schmidt  <bernds@codesourcery.com>
733
734         PR middle-end/51200
735         * expr.c (store_field): Avoid a direct store if the mode is larger
736         than the size of the bit field.
737         * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
738         treat non-volatile bit fields like volatile ones.
739         * toplev.c (process_options): Disallow combination of
740         -fstrict-volatile-bitfields and ABI versions less than 2.
741         * config/arm/arm.c (arm_option_override): Don't enable
742         flag_strict_volatile_bitfields if the ABI version is less than 2.
743         * config/h8300/h8300.c (h8300_option_override): Likewise.
744         * config/rx/rx.c (rx_option_override): Likewise.
745         * config/m32c/m32c.c (m32c_option_override): Likewise.
746         * config/sh/sh.c (sh_option_override): Likewise.
747
748 2011-12-20  Richard Guenther  <rguenther@suse.de>
749
750         PR lto/46796
751         * dwarf2out.c (modified_type_die): When the type variant
752         chain is corrupt use the types name, if available, instead
753         of __unknown__.
754
755 2011-12-20  Tristan Gingold  <gingold@adacore.com>
756
757         * config/alpha/alpha.c (alpha_start_function): Adjust condition to
758         create VMS trampoline entry point.
759
760 2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
761
762         PR rtl-optimization/42839
763         * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND
764         optimization if the source register is already extended.
765
766 2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
767
768         * lower-subreg.c (can_decompose_p): Check every word of a hard
769         register.
770
771 2011-12-19  Sandra Loosemore  <sandra@codesourcery.com>
772             Tom de Vries <tom@codesourcery.com>
773
774         PR rtl-opt/50380
775         * cse.c (find_comparison_args): Detect fixed point and
776         bail early.
777
778 2011-12-19  Aldy Hernandez  <aldyh@redhat.com>
779
780         PR middle-end/51411
781         * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK.
782
783 2011-12-19  Quentin Neill  <quentin.neill@amd.com>
784
785         PR target/48743
786         * config/i386/driver-i386.c (host_detect_local_cpu): Also check
787         family to distinguish PROCESSOR_ATHLON.
788
789 2011-12-19  Richard Guenther  <rguenther@suse.de>
790
791         PR lto/51573
792         * streamer-hooks.h (struct streamer_hooks): Add second
793         ref_p parameter to write_tree.
794         (stream_write_tree): Adjust.
795         (stream_write_tree_shallow_non_ref): New define.
796         * lto-streamer.h (lto_output_tree): Adjust.
797         * lto-streamer-out.c (lto_output_tree): Likewise.
798         * tree-streamer-out.c (streamer_write_chain): Only
799         force the immediate tree to be streamed as non-reference.
800
801 2011-12-19  Martin Jambor  <mjambor@suse.cz>
802
803         PR tree-optimization/51583
804         * tree-sra.c (load_assign_lhs_subreplacements): Call
805         force_gimple_operand_gsi when necessary also in case of no
806         corresponding replacement on the RHS.
807
808 2011-12-19  Jakub Jelinek  <jakub@redhat.com>
809
810         * gimple.h (gimplify_seq_add_stmt): Rename to...
811         (gimple_seq_add_stmt_without_update): ... this.
812         * gimplify.c (gimplify_seq_add_stmt): Rename to...
813         (gimple_seq_add_stmt_without_update): ... this.
814         (gimplify_seq_add_stmt): New inline wrapper for it.
815         * tree-vect-patterns.c (append_pattern_def_seq): Use
816         gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
817
818         PR tree-optimization/51596
819         * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges
820         when needed.
821
822         PR middle-end/51590
823         PR tree-optimization/51606
824         * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq):
825         New inline functions.
826         (vect_recog_over_widening_pattern,
827         vect_recog_vector_vector_shift_pattern,
828         vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern,
829         adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them.
830
831 2011-12-19  Richard Guenther  <rguenther@suse.de>
832
833         PR lto/51572
834         * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL
835         from TYPE_FIELDS.
836         (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS.
837         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do
838         not stream TREE_CHAIN.
839         (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
840         using streamer_write_chain.
841         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
842         Do not stream TREE_CHAIN.
843         (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
844         using streamer_read_chain.
845         * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs.
846         * gimple.c (gimple_canonical_types_compatible_p): Properly
847         handle trailing non-FIELD_DECLs in TYPE_FIELDS.
848
849 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
850
851         * configure: Regenerate.
852
853 2011-12-19  Bernd Schmidt  <bernds@codesourcery.com>
854
855         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for
856         partial integer modes.
857
858 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
859
860         PR target/51532
861         * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define.
862         * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS.
863         * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 ||
864         TARGET_68040).
865
866 2011-12-18  Anatoly Sokolov  <aesok@post.ru>
867
868         * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
869         LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP,
870         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
871         * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
872         (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg,
873         ia64_legitimate_address_disp, ia64_legitimate_address_p): New
874         functions.
875
876 2011-12-17  Tom de Vries  <tom@codesourcery.com>
877
878         PR tree-optimization/51491
879         * tree-ssa-ccp.c (insert_clobber_before_stack_restore)
880         (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function.
881         (ccp_fold_stmt): Use insert_clobbers_for_var after a successful
882         fold_builtin_alloca_with_align.
883         (ccp_visit_stmt): Calculate and free dominator info.
884
885 2011-12-16  Eric Botcazou  <ebotcazou@adacore.com>
886
887         * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
888         (frame_blockage): New expander.
889         (frame_blockage<P:mode>): New instruction.
890         * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
891         instructions establishing the frame isn't atomic, emit frame blockage.
892
893 2011-12-16  Tristan Gingold  <gingold@adacore.com>
894
895         * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define.
896
897 2011-12-16  Tristan Gingold  <gingold@adacore.com>
898
899         * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias.
900         (alpha_write_one_linkage): Use assemble_name to emit linkage name.
901
902 2011-12-16  Tristan Gingold  <gingold@adacore.com>
903
904         * config/vms/t-vms (vms.o, vms-c.o): Force output filename.
905
906 2011-12-16  Tristan Gingold  <gingold@adacore.com>
907
908         * config/vms/vms.c (VMS_CRTL_GLOBAL): Define.
909         (vms_patch_builtins): Handle.
910         * config/vms/vms-crtlmap.map: Add an entry for environ.
911
912 2011-12-16  Jakub Jelinek  <jakub@redhat.com>
913
914         PR debug/51557
915         * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes
916         other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND.
917
918         PR tree-optimization/51576
919         * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt
920         even if fold_stmt didn't change anything.
921
922 2011-12-16  Richard Guenther  <rguenther@suse.de>
923
924         PR lto/51572
925         * dwarf2out.c (gen_type_die_with_usage): Use the context of
926         the TYPE_DECL as well if it is file-scope.
927
928 2011-12-15  DJ Delorie  <dj@redhat.com>
929
930         * config/rl78/rl78.md (return): Rename to rl78_return.
931         * config/rl78/rl78.c (rl78_expand_epilogue): Use new name.
932         (rl78_expand_eh_epilogue): Use new name.
933         (rl78_calculate_death_notes): Likewise.
934
935 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
936
937         * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt
938         field, add pattern_def_seq.
939         (STMT_VINFO_PATTERN_DEF_STMT): Remove.
940         (STMT_VINFO_PATTERN_DEF_SEQ): Define.
941         (NUM_PATTERNS): Bump to 10.
942         * tree-vect-loop.c (vect_determine_vectorization_factor,
943         vect_transform_loop): Adjust for pattern def changing from a single
944         gimple stmt to gimple_seq.
945         * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info,
946         free_stmt_vec_info): Likewise.
947         * tree-vect-patterns.c (vect_recog_over_widening_pattern,
948         vect_recog_vector_vector_shift_pattern,
949         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
950         adjust_bool_pattern, vect_mark_pattern_stmts): Likewise.
951         (vect_recog_sdivmod_pow2_pattern): New function.
952         (vect_vect_recog_func_ptrs): Add it.
953
954         * config/i386/sse.md (vcond<V_256:mode><VI_256:mode>,
955         vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di):
956         Use general_operand instead of nonimmediate_operand for
957         operand 5 and no predicate for operands 1 and 2.
958         * config/i386/i386.c (ix86_expand_int_vcond): Optimize
959         x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic
960         resp. logical shift.
961
962 2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
963
964         * config/avr/avr-protos.h (print_operand): Remove.
965         (print_operand_address): Remove.
966         * config/avr/avr.h (PRINT_OPERAND): Remove.
967         (PRINT_OPERAND_ADDRESS): Remove.
968         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
969         * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define.
970         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
971         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
972         (print_operand_address): Rename to...
973         (avr_print_operand_address): ...this and make static.
974         (print_operand): Rename to...
975         (avr_print_operand): ...this and make static.
976         (avr_print_operand_punct_valid_p): New static function.
977
978 2011-12-15  Andreas Tobler  <andreast@fgznet.ch>
979
980         * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
981
982 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
983
984         PR c/51360
985         * c-parser.c (c_parser_omp_clause_num_threads,
986         c_parser_omp_clause_schedule): Call mark_exp_read.
987
988 2011-12-15  Romain Geissler  <romain.geissler@gmail.com>
989
990         * builtins.def (BUILT_IN_STPNCPY_CHK): New definition.
991         * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning):
992         Add BUILT_IN_STPNCPY_CHK case.
993         * gimple-fold.c (gimple_fold_builtin): Likewise.
994         * tree-object-size.c (pass_through_call): Likewise.
995         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
996         call_may_clobber_ref_p_1): Likewise.
997         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
998         find_func_clobbers): Likewise.
999         * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk
1000         * builtins.c (fold_builtin_strncpy_chk): Likewise.
1001         Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is
1002         ignored.
1003
1004 2011-12-15  Richard Guenther  <rguenther@suse.de>
1005
1006         PR lto/51567
1007         * gimple.c (compare_type_names_p): Also compare the TREE_CODE.
1008         (iterative_hash_name): Also hash the TREE_CODE.
1009         (gimple_types_compatible_p_1): For types with a TYPE_DECL
1010         name and a type DECL_CONTEXT recurse to that type.
1011         (iterative_hash_gimple_type): Likewise.
1012
1013 2011-12-15  Iain Sandoe  <iains@gcc.gnu.org>
1014
1015         * config/rs6000/rs6000.c  (rs6000_emit_prologue): Move update of
1016         VRSave mask to save_world() when that is in use.
1017
1018 2011-12-15  Richard Guenther  <rguenther@suse.de>
1019
1020         * lto-wrapper.c (run_gcc): In non-parallel mode remove
1021         ltrans inputs immediately after processing them.  In parallel
1022         mode truncate the ltrans inputs in the make rule that processes
1023         them if temporary files are not to be preserved.
1024
1025 2011-12-15  Anatoly Sokolov  <aesok@post.ru>
1026
1027         * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1028         * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
1029         New functions.
1030         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1031
1032 2011-12-15  Richard Guenther  <rguenther@suse.de>
1033
1034         PR lto/51564
1035         * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
1036         STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
1037         uses documentation.
1038         (TREE_ASM_WRITTEN): Update documentation to mention its use
1039         on TYPE_DECLs from debug info generation.
1040         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
1041         TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
1042         all other types.
1043
1044 2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
1045
1046         PR target/51050
1047         * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
1048         (avr_prologue_setup_frame): Ditto.
1049
1050 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
1051
1052         PR debug/51517
1053         * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
1054         !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
1055
1056 2012-12-15  Richard Guenther  <rguenther@suse.de>
1057
1058         Revert
1059         PR lto/48437
1060         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1061         extern declarations.
1062
1063         PR lto/48508
1064         PR lto/48437
1065         * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
1066         VAR_DECLs and FUNCTION_DECLs locally.
1067
1068 2011-12-14  Richard Henderson  <rth@redhat.com>
1069
1070         * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
1071         (*compare_negsi_si, *compare_addsi2_op0): Likewise.
1072         (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
1073         (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
1074
1075 2011-12-14  Richard Guenther  <rguenther@suse.de>
1076
1077         * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
1078         propagating all kinds of constants.
1079
1080 2011-12-14  Richard Guenther  <rguenther@suse.de>
1081
1082         PR lto/51497
1083         * lto-streamer-in.c (lto_read_body): Fixup local types
1084         TYPE_CANONICAL and variant chain.
1085
1086 2011-12-14  Richard Guenther  <rguenther@suse.de>
1087
1088         * tree.c (free_lang_data_in_type): Do not clear fields
1089         dependent on debuginfo level setting.
1090         (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
1091         * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
1092
1093 2011-12-14  Georg-Johann Lay  <avr@gjlay.de>
1094
1095         PR target/50931
1096         * config/avr/avr.md (mulpsi3): New expander.
1097         (*umulqihipsi3, *umulhiqipsi3): New insns.
1098         (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
1099         (mulsqipsi3, *mulpsi3): New insn-and-splits.
1100         (ashlpsi3): Turn to expander.  Move insn code to...
1101         (*ashlpsi3): ...this new insn.
1102
1103 2011-12-14  Richard Guenther  <rguenther@suse.de>
1104
1105         * tree-cfg.c (replace_uses_by): Only mark blocks altered
1106         that will make a difference.  Only recompute ADDR_EXPR
1107         invariantness if it could possibly have changed.  Do so
1108         before folding the statement.
1109
1110 2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1111
1112         * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
1113         * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
1114         * lto-streamer-in.c (lto_read_body): Likewise.
1115         (lto_input_toplevel_asms): Likewise.
1116         * lto-section-in.c (lto_create_simple_input_block): Likewise.
1117         * ipa-inline-analysis.c (inline_read_section): Likewise.
1118         * ipa-prop.c (ipa_prop_read_section): Likewise.
1119
1120         * df.h (DF_NOTE): Fix typo in comment.
1121
1122 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
1123
1124         * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
1125         DECL_LANG_SPECIFIC.
1126
1127 2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1128
1129         * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
1130
1131 2011-12-13  Andrew Pinski  <apinski@cavium.com>
1132             Adam Nemet  <anemet@caviumnetworks.com>
1133
1134         * config/mips/mips-cpus.def: Add Octeon2.
1135         * config/mips/mips-tables.opt: Regenerate.
1136         * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
1137         * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
1138         * config/mips/octeon.md (octeon_arith): Add Octeon2.
1139         (octeon_condmove): Likewise.
1140         (octeon_load): Rename to ..
1141         (octeon_load_o1): this.
1142         (octeon_load_o2): New reserve.
1143         (octeon_cop_o2): New reserve.
1144         (octeon_store):  Match Octeon2 also.
1145         (octeon_brj): Rename to ..
1146         (octeon_brj_o1): this.
1147         (octeon_brj_o2): New reserve.
1148         (octeon_imul3): Rename to ...
1149         (octeon_imul3_o1): this.
1150         (octeon_imul3_o2): New reserve.
1151         (octeon_imul): Rename to ...
1152         (octeon_imul_o1): this.
1153         (octeon_imul_o2): New reserve.
1154         (octeon_mfhilo): Rename to ...
1155         (octeon_mfhilo_o1): This.
1156         (octeon_mfhilo_o2): New reserve.
1157         (octeon_imadd): Rename to ...
1158         (octeon_imadd_o1): this.
1159         (octeon_imadd_o2): New reserve.
1160         (octeon_idiv): Rename to ..
1161         (octeon_idiv_o1): This.
1162         (octeon_idiv_o2_si): New reserve.
1163         (octeon_idiv_o2_di): Likewise.
1164         (octeon_unknown): Match Octeon2 also.
1165         * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
1166         (mips_issue_rate): Octeon2 can issue 2 at a time.
1167         * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
1168         (TARGET_OCTEON2): New define.
1169         (TUNE_OCTEON): Match Octeon2 also.
1170
1171 2011-12-13  Richard Henderson  <rth@redhat.com>
1172
1173         * config/sparc/tso.h: New file.
1174         * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
1175         * config/sparc/sparc.c (sparc_option_override): Honor
1176         SUBTARGET_DEFAULT_MEMORY_MODEL.
1177         * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
1178
1179 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
1180
1181         PR middle-end/51443
1182         * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
1183         (diagnose_tm_1): Same.
1184         (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
1185         (ipa_tm_scan_irr_function): Return gracefully when no
1186         DECL_STRUCT_FUNCTION.
1187         (ipa_tm_scan_irr_block): Believe the user on TM attributes.
1188
1189 2011-12-13  Martin Jambor  <mjambor@suse.cz>
1190
1191         PR middle-end/50628
1192         * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
1193         sub-accesses of scalar accesses.
1194
1195 2011-12-13  Martin Jambor  <mjambor@suse.cz>
1196
1197         PR tree-optimization/51362
1198         * ipa-cp.c (estimate_local_effects): When estimated size of a
1199         specialized clone is zero, bump it to one.
1200
1201 2011-12-13  Richard Guenther  <rguenther@suse.de>
1202
1203         PR lto/48354
1204         * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
1205         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
1206         Stream DECL_ORIGINAL_TYPE.
1207         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
1208         Likewise.
1209
1210 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
1211
1212         Revert
1213         2011-12-12  Jakub Jelinek  <jakub@redhat.com>
1214
1215         PR tree-optimization/51481
1216         * gimple-fold.c (gimple_fold_call): Call
1217         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
1218         edges, but gimple_fold_builtin result can't throw.
1219
1220 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
1221             Michael Matz  <matz@suse.de>
1222
1223         PR tree-optimization/51117
1224         * tree-eh.c (sink_clobbers): New function.
1225         (execute_lower_eh_dispatch): Call it for BBs ending with
1226         internally throwing RESX.
1227         * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
1228         at the first real instruction.
1229
1230 2011-12-13  Tristan Gingold  <gingold@adacore.com>
1231
1232         * final.c (final_scan_insn): Guard the call to begin_epilogue
1233         debug hook.
1234
1235 2011-12-13  Tristan Gingold  <gingold@adacore.com>
1236
1237         * vmsdbgout.c (vmsdbgout_write_source_line): New function.
1238         (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
1239         (vmsdbgout_begin_epilogue): Likewise.
1240         (vmsdbgout_end_epilogue): Likewise.
1241         (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
1242
1243 2011-12-13  Richard Guenther  <rguenther@suse.de>
1244
1245         PR middle-end/51481
1246         * tree-cfg.c (replace_uses_by): Pass proper arguments to
1247         maybe_clean_or_replace_eh_stmt.
1248
1249 2011-12-13  Richard Guenther  <rguenther@suse.de>
1250
1251         PR tree-optimization/51519
1252         * ipa-inline.c (edge_badness): Use edge growth in non-guessed
1253         branch probability case as well.
1254
1255 2011-12-13  Revital Eres  <revital.eres@linaro.org>
1256
1257         * modulo-sched.c (mark_loop_unsched): Free bbs.
1258
1259 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
1260
1261         PR rtl-optimization/51495
1262         * function.c (thread_prologue_and_epilogue_insns): Don't add
1263         to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
1264         from basic blocks not needing prologue.
1265
1266         PR tree-optimization/51481
1267         * gimple-fold.c (gimple_fold_call): Call
1268         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
1269         edges, but gimple_fold_builtin result can't throw.
1270
1271 2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>
1272
1273         PR rtl-optimization/21617
1274         * ira-color.c (bucket_allocno_compare_func): Don't compare
1275         allocno classes.  Compare number of hard registers needed.
1276
1277 2011-12-12  Eric Botcazou  <ebotcazou@adacore.com>
1278
1279         PR tree-optimization/50569
1280         * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
1281         in the expression of MODEL instead of just the last one.
1282
1283 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
1284
1285         PR middle-end/51510
1286         * calls.c (internal_arg_pointer_based_exp_scan): Don't use
1287         VEC_safe_grow_cleared if idx is smaller than VEC_length.
1288
1289 2011-12-12  Richard Sandiford  <richard.sandiford@linaro.org>
1290
1291         PR middle-end/50873
1292         * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
1293         instead of force_reg.  Do nothing if the address is already a
1294         non-virtual pseudo register.
1295
1296 2011-12-12  Torvald Riegel  <triegel@redhat.com>
1297
1298         * gimplify.c (voidify_wrapper_expr): Add default handling for
1299         outermost wrapper.
1300
1301 2011-12-12  Torvald Riegel  <triegel@redhat.com>
1302
1303         * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
1304         commits as equal.
1305
1306 2011-12-12  Iain Sandoe  <iains@gcc.gnu.org>
1307
1308         * config/darwin-sections.def (zobj_const_data_section): Fix over-
1309         length section name.
1310
1311 2011-12-11  Richard Henderson  <rth@redhat.com>
1312
1313         * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
1314         BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
1315
1316 2011-12-11  Jakub Jelinek  <jakub@redhat.com>
1317
1318         PR tree-optimization/51485
1319         * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
1320         DRs in call stmts.
1321
1322 2011-12-11  Patrick Marlier  <patrick.marlier@gmail.com>
1323
1324         * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
1325
1326 2011-12-10  Richard Henderson  <rth@redhat.com>
1327
1328         * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
1329         vec_select + vec_concat.
1330         (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
1331         altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
1332         (vec_perm_constv16qi): New.
1333         (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
1334         vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
1335         vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
1336         * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
1337         vec_select + vec_concat.
1338         (paired_merge10, paired_merge01, paired_merge11): Likewise.
1339         (vec_perm_constv2sf): New.
1340         (vec_interleave_highv2sf, vec_interleave_lowv2sf,
1341         vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
1342         * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
1343         vec_select + vec_concat.
1344         (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
1345         (vec_perm_constv2si): New.
1346         * config/rs6000/vector.md (vec_interleave_highv4sf,
1347         vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
1348         vec_interleave_low<VEC_64>): Remove.
1349         * config/rs6000/vsx.md (VS_double): New mode attribute.
1350         (UNSPEC_VSX_XXPERMDI): Remove.
1351         (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
1352         (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
1353         (vsx_xxpermdi_<VSX_L>): Change to expander.
1354         (vec_perm_const<VSX_D>): New.
1355         (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
1356         * config/rs6000/predicates.md (const_0_to_1_operand): New.
1357         (const_2_to_3_operand): New.
1358         * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
1359         (altivec_expand_vec_perm_const): New.
1360         (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
1361         (rs6000_vectorize_vec_perm_const_ok): New.
1362         (rs6000_do_expand_vec_perm): New.
1363         (rs6000_expand_extract_even, rs6000_expand_interleave): New.
1364         * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
1365         * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
1366         * config/rs6000/rs6000-protos.h: Update.
1367
1368 2011-12-10  Richard Henderson  <rth@redhat.com>
1369
1370         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
1371         CONST_INT to expand_vec_perm as the selector.
1372         * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
1373
1374 2011-12-10  Richard Henderson  <rth@redhat.com>
1375
1376         * genmodes.c (struct mode_data): Remove wider_2x member.
1377         (blank_mode): Adjust initializer.
1378         (calc_wider_mode): Use XALLOCAVEC.
1379         (emit_move_wider): Select double-width same-element vectors for
1380         2xwider vectors.
1381         * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
1382         * config/i386/i386.c (doublesize_vector_mode): Remove.
1383         (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
1384
1385 2011-12-10  Joern Rennecke  <joern.rennecke@embecosm.com>
1386
1387         * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
1388         (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
1389         (USE_STORE_POST_DECREMENT): Likewise.
1390
1391         * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
1392         broken out of ..
1393         (INCOMING_RETURN_ADDR_RTX) .. this.  Use EPIPHANY_RETURN_REGNO.
1394         (DWARF_FRAME_RETURN_COLUMN): New macro.
1395
1396         * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
1397         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
1398         Split "timer" value into "timer0" and "timer1".
1399         Handle page_miss, message and wand.  Don't handle static_flag.
1400         Adjust warning text.
1401         (epiphany_start_function): New function.
1402         (epiphany_compute_function_type): Split "timer" value into "timer0"
1403         and "timer1".  Handle page_miss, message and wand.
1404         Don't handle static_flag.
1405         (epiphany_expand_epilogue): Don't use frame_insn for status / iret
1406         restore.
1407         * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
1408         (enum epiphany_function_type):
1409         Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
1410         and EPIPHANY_FUNCTION_TIMER1.
1411         Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
1412         Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
1413         Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
1414
1415 2011-12-10  Nathan Sidwell  <nathan@acm.org>
1416
1417         PR gcov-profile/51449
1418         * coverage.c (coverage_end_function): Always process the coverage
1419         variables.
1420
1421 2011-12-09  Aldy Hernandez  <aldyh@redhat.com>
1422
1423         PR/51291
1424         * tree.c (build_common_builtin_nodes): Do not use TM_PURE
1425         attribute unless language has support for TM.
1426         * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
1427         the absence of TM builtins.
1428
1429 2011-12-09  Eric Botcazou  <ebotcazou@adacore.com>
1430
1431         * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
1432         Also check the TYPE_MODE to recognize useless pointer conversions.
1433
1434 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
1435
1436         PR tree-optimization/51117
1437         * tree-eh.c (optimize_clobbers): Don't remove just one
1438         clobber, but all consecutive clobbers before RESX.
1439         Use gimple_clobber_p predicate.
1440
1441 2011-12-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1442
1443         * config/rs6000/rs6000.c (altivec_expand_builtin): Call
1444         expand_call to return a valid funciton instead of return
1445         cosnt0_rtx/NULL_RTX if there was an error with the builtin.
1446         (altivec_expand_ld_builtin): Ditto.
1447         (rs6000_inner_target_options): If VSX is selected as a target
1448         attribute or pragma, enable ALTIVEC also.
1449         (rs6000_pragma_target_parse): Call rs6000_option_override_internal
1450         to do all of the standard processing when switching options,
1451         including redefining appropriate macros.
1452
1453         PR rtl-optimization/51469
1454         * varasm.c (default_binds_local_p_1): If the symbol is a gnu
1455         indirect function, mark the symbol as non-local.
1456
1457 2011-12-09  H.J. Lu  <hongjiu.lu@intel.com>
1458
1459         PR bootstrap/51479
1460         * Makefile.in (errors.o): Restored.
1461
1462 2011-12-09  Richard Guenther  <rguenther@suse.de>
1463
1464         PR lto/48042
1465         * tree.c (free_lang_data_in_decl): Remove freeing conditional
1466         on debuginfo level.
1467
1468 2011-12-09  Joern Rennecke  <joern.rennecke@embecosm.com>
1469
1470         PR middle-end/40154
1471         * emit-rtl.c (set_dst_reg_note): New function.
1472         * rtl.h (set_dst_reg_note): Declare.
1473         * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
1474         (emit_libcall_block, expand_fix): Likewise.
1475         * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
1476         * expmed.c (expand_mult_const, expand_divmod): Likewise.
1477         * reload1.c (gen_reload): Likewise.
1478
1479         * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
1480         * expmed.c (expand_divmod): Likewise.
1481         * combine.c (simplify_if_then_else): Likewise.
1482
1483 2011-12-09  Kai Tietz  <ktietz@redhat.com>
1484
1485         * ira-color.c (print_hard_regs_subforest): Use
1486         HOST_WIDEST_INT_PRINT_DEC instead of %lld.
1487         (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
1488         (add_allocno_hard_regs): Change type of argument cost
1489         to HOST_WIDEST_INT.
1490         * ira-conflict.c (build_conflict_bit_table): Replace use
1491         of long-long by HOST_WIDEST_INT.
1492
1493 2011-12-09  Georg-Johann Lay  <avr@gjlay.de>
1494
1495         PR target/51425
1496         * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
1497         zero_extract:QIHI instead of zero_extract:HI.
1498
1499 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
1500             Andrew Pinski  <apinski@cavium.com>
1501
1502         PR tree-optimization/51117
1503         * tree-eh.c (optimize_clobbers): New function.
1504         (execute_lower_eh_dispatch): Call it.
1505
1506 2011-12-09  Richard Guenther  <rguenther@suse.de>
1507
1508         PR tree-optimization/51482
1509         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1510         Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
1511
1512 2011-12-09  Kai Tietz  <ktietz@redhat.com>
1513
1514         * implicit-zee.c (num_realized): Change type to long.
1515         (num_ze_opportunities): Likewise.
1516
1517 2011-12-08  Andrew Pinski  <apinski@cavium.com>
1518
1519         * config/mips/mips-cpus.def (octeon+): New CPU.
1520         * config/mips/mips-tables.opt: Regenerate.
1521         * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
1522
1523 2011-12-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1524
1525         PR middle-end/39976
1526         * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
1527         (struct hashable_expr): Add struct phi field.
1528         (initialize_hash_element): Handle phis; change to use XCNEWVEC.
1529         (hashable_expr_equal_p): Handle phis.
1530         (iterative_hash_hashable_expr): Likewise.
1531         (print_expr_hash_elt): Likewise.
1532         (free_expr_hash_elt): Likewise.
1533         (dom_opt_enter_block): Create equivalences from redundant phis.
1534         (eliminate_redundant_computations): Handle redundant phis.
1535         (lookup_avail_expr): Handle phis.
1536
1537 2011-12-08  Jakub Jelinek  <jakub@redhat.com>
1538
1539         PR tree-optimization/51466
1540         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
1541         TREE_SIDE_EFFECTS.
1542
1543 2011-12-08  Richard Guenther  <rguenther@suse.de>
1544
1545         * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
1546         volatile when processing operands of an ADDR_EXPR.
1547         (get_indirect_ref_operands): Likewise.
1548         (get_tmr_operands): Likewise.
1549         (get_expr_operands): Likewise.
1550
1551 2011-12-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1552
1553         PR target/50395
1554         * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
1555         the literal pool as jump insn.
1556
1557 2011-12-08  Richard Guenther  <rguenther@suse.de>
1558
1559         PR tree-optimization/49772
1560         * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
1561
1562 2011-12-08  Richard Guenther  <rguenther@suse.de>
1563
1564         PR lto/50747
1565         * lto-streamer-out.c (produce_symtab): Remove asserts.
1566
1567 2011-12-08  Richard Guenther  <rguenther@suse.de>
1568
1569         PR lto/49945
1570         * lto-streamer-out.c (tree_is_indexable): Localize variably
1571         modified types and their FIELD_DECLs.
1572
1573 2011-12-08  Eric Botcazou  <ebotcazou@adacore.com>
1574
1575         PR tree-optimization/51315
1576         * tree.h (get_object_or_type_alignment): Declare.
1577         * expr.c (get_object_or_type_alignment): Move to...
1578         * builtins.c (get_object_or_type_alignment): ...here.  Add assertion.
1579         * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
1580         (tree_non_aligned_mem_p): ...this.  Add ALIGN parameter.  Look into
1581         MEM_REFs and use get_object_or_type_alignment for them.
1582         (build_accesses_from_assign): Adjust for above change.
1583         (access_precludes_ipa_sra_p): Likewise.
1584
1585 2011-12-08  Richard Guenther  <rguenther@suse.de>
1586
1587         PR lto/48437
1588         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1589         extern declarations.
1590
1591 2011-12-07  Andrew Pinski  <apinski@cavium.com>
1592
1593         PR middle-end/45416
1594         * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
1595         SSA-expand.
1596
1597 2011-12-07  Richard Guenther  <rguenther@suse.de>
1598
1599         PR tree-optimization/50823
1600         * ipa-inline.c (edge_badness): Do not account for the number of
1601         remaining calls.
1602
1603 2011-12-07  Martin Jambor  <mjambor@suse.cz>
1604
1605         PR tree-optimization/50744
1606         * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive,
1607         compute evaluation in HOST_WIDEST_INT.
1608         (safe_add): New function
1609         (propagate_effects): Use safe_add to accumulate effects.
1610
1611 2011-12-06  Joel Sherrill <joel.sherrill@oarcorp.com>
1612
1613         * config/rs6000/rtems.h: Switch to using global_options_set
1614         in SUBSUBTARGET_OVERRIDE_OPTIONS.
1615
1616 2011-12-06  David S. Miller  <davem@davemloft.net>
1617
1618         * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
1619
1620 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1621
1622         * config/avr/avr.c (avr_file_start): Fix missing ,
1623
1624 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
1625
1626         PR target/51354
1627         * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
1628         unconditionally.
1629
1630 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1631
1632         Forward-port from gcc-4_6-branch r181936 2011-12-02.
1633         * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
1634         AT86RF401 have a 16-bit SP (their manual is bogus).
1635
1636 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1637
1638         Forward-port from gcc-4_6-branch r181936 2011-12-02.
1639
1640         PR target/51002
1641         * config/avr/avr.md (movhi_sp_r): Set insn condition to
1642         !AVR_HAVE_8BIT_SP.
1643         * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
1644         %B0,__SP_H__" if AVR_HAVE_8BIT_SP.
1645         (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
1646
1647 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1648
1649         PR target/51409
1650         PR target/49868
1651         * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
1652         ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
1653         ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
1654         (avr_addrspace_t): New typedef.
1655         (avr_addrspace): New declaration.
1656         * config/avr/avr-c.c (avr_toupper): New static function.
1657         (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
1658         avr_addrspace to get address space information.
1659         * config/avr/avr.c (avr_addrspace): New variable.
1660         (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
1661         avr_asm_named_section, avr_section_type_flags,
1662         avr_asm_select_section, avr_addr_space_address_mode,
1663         avr_addr_space_convert, avr_emit_movmemhi): Use it.
1664         (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
1665         (avr_pgm_segment): Remove.
1666
1667 2011-12-06  Richard Guenther  <rguenther@suse.de>
1668
1669         PR middle-end/50601
1670         * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
1671         quirk adjustjment ...
1672         * passes.c (rest_of_decl_compilation): ... here.
1673
1674 2011-12-06  Richard Guenther  <rguenther@suse.de>
1675
1676         PR middle-end/51436
1677         * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
1678         for the fact we do not have virtual operands when not optimizing.
1679
1680 2011-12-06  Richard Guenther  <rguenther@suse.de>
1681
1682         PR tree-optimization/51245
1683         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
1684         New function.
1685         (vn_reference_lookup_3): Use it.  Properly valueize all refs we create.
1686
1687 2011-12-06  Iain Sandoe  <iains@gcc.gnu.org>
1688
1689         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
1690         rs6000_current_abi.
1691
1692 2011-12-06  Richard Guenther  <rguenther@suse.de>
1693
1694         PR tree-optimization/51363
1695         * gimple.c (gimple_rhs_has_side_effects): Remove.
1696         * gimple.h (gimple_rhs_has_side_effects): Likewise.
1697         * tree-ssa-dom.c (optimize_stmt): Simplify conditional.
1698
1699 2011-12-06  Alan Modra  <amodra@gmail.com>
1700
1701         PR target/50906
1702         * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
1703         Do not mark r11 setup as frame-related.  Pass correct offset to
1704         rs6000_emit_savres_rtx.  Correct out-of-line rs6000_frame_related
1705         arguments.  Correct sp_offset.  Remove "offset" fudge from
1706         in-line rs6000_frame_related call.  Rename misleading variable.
1707         Fix comments and whitespace.  Tidy some expressions.
1708         (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
1709         to r11 in out-of-line case.  Correct sp_offset.  Pass correct
1710         offset to rs6000_emit_savres_rtx.  Rename misleading variable.
1711         Fix comments and whitespace.  Tidy some expressions.
1712         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
1713         adjustment when !saving_GPRs_inline.  Correct register mode
1714         used in address calcs.
1715         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
1716         !restoring_GPRs_inline.
1717
1718 2011-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1719
1720         * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
1721         formatting character for vmov.f64 case.
1722
1723 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
1724
1725         PR tree-optimization/51396
1726         * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
1727         if MUL_RESULT has zero uses.
1728
1729         PR debug/51410
1730         * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
1731         for debug info if scope is file_scope.
1732
1733         PR c/51339
1734         * c-decl.c (c_finish_incomplete_decl, finish_decl): Call
1735         relayout_decl instead of layout_decl.
1736
1737 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
1738
1739         * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
1740         if there is in epilogue.
1741
1742 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
1743
1744         * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
1745         to emit_library_call_value.
1746         (expand_atomic_compare_and_swap): Likewise.
1747
1748 2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
1749
1750         PR other/50775
1751         * ira-int.h (struct ira_object): Remove add_data.
1752         (OBJECT_ADD_DATA): Remove.
1753
1754         * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
1755         initialization.
1756
1757         * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
1758         allocno_hard_regs_t, allocno_hard_regs.
1759         (object_hard_regs_node_t, object_hard_regs_node): Rename to
1760         allocno_hard_regs_node_t and allocno_hard_regs_node.
1761         (struct allocno_color_data): Add new member last_process.  Move
1762         profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
1763         from object_color_data.
1764         (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove.
1765         (curr_allocno_process): New static variable.
1766         (object_hard_regs_eq, object_hard_regs_htab): Rename to
1767         allocno_hard_regs_eq and allocno_hard_regs_htab.
1768         (init_object_hard_regs, finish_object_hard_regs): Rename to
1769         init_allocno_hard_regs and finish_allocno_hard_regs.
1770         (object_hard_regs_compare, object_hard_regs_node_t): Rename to
1771         allocno_hard_regs_compare and allocno_hard_regs_node_t.
1772         (create_new_object_hard_regs_node): Rename to
1773         create_new_allocno_hard_regs_node.
1774         (add_new_object_hard_regs_node_to_forest): Rename to
1775         add_new_allocno_hard_regs_node_to_forest.
1776         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
1777         Rename to add_allocno_hard_regs_to_forest and
1778         collect_allocno_hard_regs_cover.
1779         (setup_object_hard_regs_nodes_parent): Rename to
1780         setup_allocno_hard_regs_nodes_parent.
1781         (remove_unused_object_hard_regs_nodes): Rename to
1782         remove_unused_allocno_hard_regs_nodes.
1783         (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
1784         Rename to enumerate_allocno_hard_regs_nodes and
1785         allocno_hard_regs_nodes_num.
1786         (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
1787         allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
1788         (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
1789         allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
1790         (object_hard_regs_subnode_index): Rename to
1791         allocno_hard_regs_subnode_index.
1792         (setup_object_hard_regs_subnode_index): Rename to
1793         setup_allocno_hard_regs_subnode_index.
1794         (get_object_hard_regs_subnodes_num): Rename to
1795         get_allocno_hard_regs_subnodes_num.
1796         (form_object_hard_regs_nodes_forest): Rename to
1797         form_allocno_hard_regs_nodes_forest.
1798         (finish_object_hard_regs_nodes_tree): Rename to
1799         form_allocno_hard_regs_nodes_forest
1800         (finish_object_hard_regs_nodes_forest): Rename to
1801         finish_allocno_hard_regs_nodes_forest.
1802         (setup_left_conflict_sizes_p): Use allocno data instead of object ones.
1803         Process conflict allocnos once.
1804         (update_left_conflict_sizes_p): Use allocno data instead of object
1805         ones.  Change prototype signature.
1806         (empty_profitable_hard_regs): Use allocno data instead of object ones.
1807         (setup_profitable_hard_regs): Ditto.
1808         (get_conflict_profitable_regs): Rename to
1809         get_conflict_and_start_profitable_regs.  Use allocno data for
1810         profitable regs calculation.
1811         (check_hard_reg_p): Change prototype signature.  Check profitable
1812         regs for allocno not the objects.
1813         (assign_hard_reg): Process conflict allocnos only once for
1814         updating conflict costs.
1815         (setup_allocno_available_regs_num): Use allocno data instead of
1816         object ones.  Modify debug output.
1817         (color_pass): Remove initialization and finalization of object
1818         color data.
1819
1820 2011-12-05  Kazu Hirata  <kazu@codesourcery.com>
1821
1822         PR target/51408
1823         * config/arm/arm.md (*minmax_arithsi): Always require the else
1824         clause in the MINUS case.
1825
1826 2011-12-05  Richard Guenther  <rguenther@suse.de>
1827
1828         PR tree-optimization/50904
1829         * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
1830         (MEM_ANALYZABLE): New.
1831         (memory_references): Remove clobbered_vops and vop_ref_map
1832         members, add all_refs_stored_in_loop member.
1833         (memref_free): Adjust.
1834         (mem_ref_alloc): Likewise.
1835         (gather_mem_refs_stmt): Do not record clobbers, instead
1836         record refs for unanalyzable stmts.
1837         (gather_mem_refs_in_loops): Do not propagate clobbers.
1838         (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
1839         record_vop_access, get_vop_accesses, get_vop_stores,
1840         add_vop_ref_mapping): Remove.
1841         (create_vop_ref_mapping_loop): Adjust to simply record all stores.
1842         (analyze_memory_references): Adjust.
1843         (refs_independent_p): Check for not analyzable refs.
1844         (can_sm_ref_p): Likewise.
1845         (ref_indep_loop_p_1): Simplify.
1846         (tree_ssa_lim_finalize): Adjust.
1847
1848         * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
1849         rather than magic constants.  Assign zero cost to PAREN_EXPR
1850         and SSA_NAME copies.  Assign cost proportional to the vector
1851         size for vector constructors.
1852
1853 2011-12-05  Richard Guenther  <rguenther@suse.de>
1854
1855         * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
1856         * tree-ssa-alias.c (ao_ref_init): Initialize it.
1857         (ao_ref_init_from_ptr_and_size): Likewise.
1858         (refs_may_alias_p_1): Two volatile accesses conflict.
1859         (ref_maybe_used_by_call_p_1): Likewise.
1860         (call_may_clobber_ref_p_1): Likewise.
1861         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
1862         volatile_p field.
1863
1864 2011-12-05  Richard Guenther  <rguenther@suse.de>
1865
1866         * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA
1867         names.  Remove SSA operand checking, call verify_ssa_operands.
1868         * tree-ssa-operands.h (verify_ssa_operands): Declare.
1869         * tree-ssa-operands.c (verify_ssa_operands): New function.
1870
1871 2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1872
1873         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
1874         * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
1875         * config/arm/constraints.md ("Dt"): New constraint.
1876         * config/arm/predicates.md
1877         (const_double_vcvt_power_of_two_reciprocal): New.
1878         * config/arm/vfp.md (FCVTI32typename): New.
1879         (FCVT): New iterator.
1880         (*combine_vcvt_f32_<FCVTI32typename>): New.
1881         (*combine_vcvt_f64_<FCVTI32typename>): New.
1882
1883 2011-12-05  Richard Guenther  <rguenther@suse.de>
1884
1885         * cgraph.c (cgraph_create_edge_1): Initialize
1886         call_stmt_cannot_inline_p from the stmt if possible.
1887         (cgraph_make_edge_direct): Likewise.
1888         * gimple-streamer-in.c (input_gimple_stmt): Do not
1889         call gimple_call_set_cannot_inline.
1890         * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
1891         (gimple_call_set_cannot_inline): Remove.
1892         (gimple_call_cannot_inline_p): Likewise.
1893         * ipa-inline-analysis.c (initialize_inline_failed): Look
1894         at the edge call_stmt_cannot_inline_p flag.
1895         * ipa-inline.c (can_inline_edge_p): Likewise.
1896         (early_inliner): Only update the edge flag.
1897         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
1898         (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
1899         * cgraphunit.c (assemble_thunk): Likewise.
1900         * gimple-fold.c (gimple_fold_call): Likewise.
1901
1902         * tree.h (CALL_CANNOT_INLINE_P): Remove.
1903         * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
1904         * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
1905         alloca calls inline.
1906         * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
1907         * gimple.c (gimple_build_call_from_tree): Do not read
1908         CALL_CANNOT_INLINE_P.
1909         * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
1910
1911 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
1912             Eric Botcazou  <ebotcazou@adacore.com>
1913
1914         PR middle-end/51323
1915         PR middle-end/50074
1916         * calls.c (internal_arg_pointer_exp_state): New variable.
1917         (internal_arg_pointer_based_exp_1,
1918         internal_arg_pointer_exp_scan): New functions.
1919         (internal_arg_pointer_based_exp): New function.
1920         (mem_overlaps_already_clobbered_arg_p): Use it.
1921         (expand_call): Free internal_arg_pointer_exp_state.cache vector
1922         and clear internal_arg_pointer_exp_state.scan_start.
1923
1924 2011-12-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1925
1926         * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
1927         * config/sh/sync.md: New file.
1928         * config/sh/sh.md: Include sync.md.
1929         * config/sh/sh.opt (msoft-atomic): New option.
1930         * doc/invoke.texi (SH Options): Document it.
1931
1932 2011-12-04  Nathan Sidwell  <nathan@acm.org>
1933
1934         * gcov-io.h (struct gcov_info): Replace trailing array with
1935         pointer to array.
1936         * profile.c (branch_prob): Only call renamed
1937         coverage_begin_function once.
1938         * coverage.h (coverage_begin_output): Rename to ...
1939         (coverage_begin_function): ... here.
1940         * coverage.c (struct function_list): Rename to ...
1941         (struct coverage_data): ... this.  Update all uses.
1942         (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
1943         (bbg_file_opened, bbg_function_announced): Remove.
1944         (get_coverage_counts): Adjust message.
1945         (coverage_begin_ouput): Rename to ...
1946         (coverage_begin_function): ... here.  Move file opening to
1947         coverage_init.  Adjust for being called only once.
1948         (coverage_end_function): Remove bbg file and inhibit further
1949         output here on error.
1950         (build_info_type): Adjust for change to pointer to array.
1951         (build_info): Receive array of function pointers and adjust.
1952         (create_coverage): Break into ...
1953         (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
1954         ... these, and adjust.
1955         (coverage_init): Open the notes file here.  Tidy.
1956         (coverage_finish): Call coverage_obj_init etc.
1957
1958 2011-12-04  Ira Rosen  <ira.rosen@linaro.org>
1959
1960         PR middle-end/51285
1961         * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
1962         phi nodes for outer loop in case of double reduction.
1963
1964 2011-12-04  Jérémie Detrey  <Jeremie.Detrey@loria.fr>
1965
1966         PR target/51393
1967         * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
1968         parameter as long long.
1969
1970 2011-12-04  Richard Sandiford  <rdsandiford@googlemail.com>
1971
1972         PR middle-end/51351
1973         * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
1974         in the external names.
1975
1976 2011-12-03  Jack Howarth <howarth@bromo.med.uc.edu>
1977
1978         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
1979         non-PIC code when targeting 10.7 or later.
1980
1981 2011-12-03  Iain Sandoe  <iains@gcc.gnu.org>
1982
1983         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
1984         Darwin >= 10.
1985         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
1986         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
1987
1988 2011-12-03  Jakub Jelinek  <jakub@redhat.com>
1989
1990         * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
1991         VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
1992         VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
1993         (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
1994         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
1995         and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
1996
1997         PR debug/50317
1998         * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
1999         vars that aren't referenced.
2000         (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
2001         of unreferenced local vars.
2002         * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
2003         TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
2004
2005 2011-12-03  Anatoly Sokolov  <aesok@post.ru>
2006
2007         * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
2008         * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
2009         * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2010         (arm_libcall_value_1, arm_function_value_regno_p): New function.
2011         (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
2012         (aapcs_libcall_value): Make static.
2013         (arm_libcall_value): Add static qualifier.
2014
2015 2011-12-02  Jakub Jelinek  <jakub@redhat.com>
2016
2017         PR target/51387
2018         * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
2019         V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
2020         permutation instead of extract even permutation.
2021
2022 2011-12-02  Nathan Sidwell  <nathan@acm.org>
2023
2024         * gcov.c (struct arc_info): Add is_throw field.
2025         (struct (block_info): Add exceptional field, reduce flags size to
2026         account for it.
2027         (struct function_info): Add has_catch field.
2028         (struct line_info): Add unexceptional field.
2029         (process_file): Call find_exception_blocks if necessary.
2030         (read_graph_file): Adjust.  Note if an exceptional edge is seen.
2031         (find_exception_blocks): New.
2032         (add_line_counts): Set line's unexceptional flag if not exceptional.
2033         (output_branch_count): Note exceptional arcs, lines and blocks.
2034         * gcov-dump.c (tag_arcs): Decode arc flags.
2035         * doc/gcov.texi: Document '=====' lines.
2036
2037 2011-12-02  Anatoly Sokolov  <aesok@post.ru>
2038
2039         * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2040         PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
2041         * config/ia64/ia64-protos.h (ia64_print_operand,
2042         ia64_print_operand_address): Remove.
2043         * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
2044         TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
2045         Define.
2046         (ia64_print_operand_punct_valid_p): New function.
2047         (ia64_print_operand, ia64_print_operand_address): Make static.
2048
2049 2011-12-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2050
2051         PR target/51390
2052         * config/rs6000/rs6000.c (def_builtin): Use the correct field to
2053         figure out the function's attributes.
2054         (struct builtin_description): Mark mask field as const since we no
2055         longer need to modify it for SPE and PAIRED builtins.
2056
2057 2011-12-02  Joseph Myers  <joseph@codesourcery.com>
2058
2059         Revert:
2060
2061         2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2062
2063         PR rtl-opt/37451
2064         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2065         zero extend count after the correction to it is done.
2066         (doloop_optimize): Update call to doloop_modify, don't zero extend
2067         count before call.
2068
2069         2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2070
2071         PR rtl-opt/37782
2072         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2073         mode count is in.
2074         (doloop_optimize): Update call to doloop_modify.
2075
2076 2011-12-02  Richard Guenther  <rguenther@suse.de>
2077
2078         PR lto/47259
2079         * ipa.c (varpool_externally_visible_p): Register variables
2080         are always externally visible.
2081
2082 2011-12-02  Sameera Deshpande  <sameera.deshpande@arm.com>
2083
2084         * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
2085           non-NULL.
2086
2087 2011-12-02  Martin Jambor  <mjambor@suse.cz>
2088
2089         PR tree-optimization/50622
2090         * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
2091         if both lacc and racc are grp_partial_lhs.
2092
2093 2011-12-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2094
2095         PR target/50814.
2096         * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
2097         TARGET_SH3.
2098         (shl_sext_kind): Likewise.
2099         * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
2100         * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
2101         (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
2102         (ashlsi3): Likewise.
2103         (ashrsi3_d): Likewise.
2104         (lshrsi3_d): Likewise.
2105         (lshrsi3): Likewise.
2106
2107 2011-12-01  Diego Novillo  <dnovillo@google.com>
2108
2109         PR bootstrap/51346
2110         * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
2111         use the statement's inline indicator instead of E's.
2112         Remove consistency check.
2113
2114 2011-12-01  Diego Novillo  <dnovillo@google.com>
2115
2116         PR bootstrap/51346
2117         Revert
2118
2119         2011-11-29  Diego Novillo  <dnovillo@google.com>
2120
2121         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
2122         Update field call_stmt_cannot_inline_p from call
2123         graph edge, if needed.
2124         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2125
2126 2011-12-01  Nathan Sidwell  <nathan@acm.org>
2127
2128         PR gcov-profile/51113
2129         * coverage.c (build_var): Keep coverage variables static.
2130
2131 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
2132
2133         PR tree-optimization/51356
2134         * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
2135         vectype doesn't have VECTOR_MODE_P.
2136
2137         PR debug/50317
2138         * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
2139         as unnecessary a store to a variable with gimple reg type.
2140         * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
2141         on local unreferenced variables.
2142         * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
2143         for !target_for_debug_bind variables.
2144
2145 2011-12-01  Patrick Marlier  <patrick.marlier@gmail.com>
2146
2147         PR middle-end/51273
2148         * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
2149         * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
2150         * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
2151
2152 2011-12-01  Andrew Pinski  <apinski@cavium.com>
2153
2154         PR lto/51198
2155         * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
2156         DECL_INITIAL also.
2157
2158 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
2159
2160         PR tree-optimization/51246
2161         * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
2162
2163         PR rtl-optimization/51014
2164         * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
2165         both from bb and orig_bb.
2166
2167 2011-12-01  Joern Rennecke  <joern.rennecke@embecosm.com>
2168
2169         PR tree-optimization/50802
2170         * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
2171         considering what happens to ranges during sign changes and/or
2172         intermediate narrowing conversions.
2173
2174 2011-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2175
2176         PR middle-end/50283
2177         * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
2178         (in_nullified_branch_delay): Likewise.
2179         (in_call_delay): Likewise.
2180
2181 2011-11-30  Richard Henderson  <rth@redhat.com>
2182
2183         * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
2184         boolean return is true.
2185
2186 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
2187
2188         PR rtl-optimization/51044
2189         * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
2190         rather than just insn body.
2191
2192         PR target/50725
2193         * function.c (thread_prologue_and_epilogue_insns): If
2194         stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
2195         regset.
2196
2197         PR middle-end/51089
2198         * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
2199         avoid creating duplicate edges here.
2200         (cleanup_empty_eh_unsplit): And remove it in the caller.
2201
2202 2011-11-30  Andrew Pinski  <apinski@cavium.com>
2203
2204         PR c/51321
2205         * c-parser.c (c_parser_postfix_expression): Check groktypename results
2206         before looking at the main variant.
2207
2208 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
2209
2210         PR rtl-optimization/48721
2211         * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
2212         reg_pending_barrier to TRUE_BARRIER.
2213
2214         PR rtl-optimization/48721
2215         * sched-ebb.c (begin_move_insn): Insert empty unreachable
2216         block after BARRIER if insn is followed by it.
2217
2218 2011-11-30  Richard Henderson  <rth@redhat.com>
2219
2220         * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
2221         * config/sparc/sparc.opt (mmemory-model=): New option.
2222         * doc/invoke.texi (Sparc Options): Document it.
2223         * config/sparc/sparc.c (sparc_option_override): Provide default
2224         for sparc_memory_model.
2225         (sparc_emit_membar_for_model): Omit barrier combinations that are
2226         implied by the memory model.
2227
2228 2011-11-30  Richard Henderson  <rth@redhat.com>
2229
2230         * config/sparc/sync.md (I124MODE): New mode iterator.
2231         (memory_barrier): Remove.
2232         (atomic_exchangesi): New.
2233         (swapsi): Rename from *swapsi.
2234         (atomic_test_and_set<I124MODE>): New.
2235         (ldstubqi): Rename from *ldstubqi, merge with expander.
2236         (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
2237         (sync_lock_test_and_setsi): Remove.
2238         (sync_lock_test_and_set<I12MODE>): Remove.
2239
2240 2011-11-30  Richard Henderson  <rth@redhat.com>
2241
2242         * config/sparc/constraints.md ("w"): New.
2243         * config/sparc/predicates.md (mem_noofs_operand): New.
2244         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
2245         Generate the boolean result of the atomic_compare_exchange.
2246         (sparc_expand_compare_and_swap): New.
2247         * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
2248         (atomic_compare_and_swap<I48MODE>_1): Rename from
2249         *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
2250         (*atomic_compare_and_swapdi_v8plus): Rename from
2251         *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
2252         (sync_compare_and_swap<I12MODE>): Remove.
2253         (sync_compare_and_swap<I48MODE>): Remove.
2254
2255 2011-11-30  Richard Henderson  <rth@redhat.com>
2256
2257         * config/sparc/predicates.md (register_or_v9_zero_operand): New.
2258         * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
2259         * config/sparc/sync.md (atomic_load<I>): New.
2260         (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
2261
2262 2011-11-30  Richard Henderson  <rth@redhat.com>
2263
2264         * config/sparc/predicates.md (zero_or_v7_operand): New.
2265         * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
2266         * config/sparc/sparc-protos.h: Update.
2267         * config/sparc/sync.md (mem_thread_fence): New.
2268         (memory_barrier): Use sparc_emit_membar_for_model.
2269         (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
2270         (*membar_v8): Accept and ignore the membar mask.
2271         (*membar): Accept and print the membar mask.
2272
2273 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2274
2275         * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
2276         * config/arm/arm.md (mul64): New attribute.
2277         (generic_sched): Cortex-A15 is not scheduled generically.
2278         (cortex-a15.md): Include.
2279         * config/arm/cortex-a15.md: New machine description.
2280         * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
2281
2282 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2283
2284         * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
2285
2286 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
2287
2288         * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
2289         * doc/tm.texi: Regenerate.
2290         * flags.h (flag_next_runtime): Remove references.
2291         * toplev.c: Likewise.
2292         * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
2293         * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
2294         * config/darwin.c (darwin_override_options): Provide default
2295         Objective-C abi settings and target conflict checks.
2296         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
2297         code. Adjust indenting.
2298
2299 2011-11-29  Joseph Myers  <joseph@codesourcery.com>
2300
2301         * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
2302         (REG_CLASS_CONTENTS): Add NON_SP_REGS.
2303         (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
2304         * config/sh/constraints.md (u): New constraint.
2305
2306 2011-11-29  Oleg Endo  <oleg.endo@t-online.de>
2307
2308         PR target/51337
2309         * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
2310         register is being loaded from a pseudo in memory.
2311
2312 2011-11-29  DJ Delorie  <dj@redhat.com>
2313
2314         * config.gcc (rl78-*-elf): New case.
2315         * doc/extend.texi: Add RL78 documentation.
2316         * doc/invoke.texi: Likewise.
2317         * doc/md.texi: Likewise.
2318         * doc/contrib.texi: Add RL78.
2319         * doc/install.texi: Add rl78-*-elf.
2320         * config/rl78: New directory for the Renesas RL78.
2321
2322 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
2323
2324         PR tree-optimization/51247
2325         * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
2326         types instead of adding 1 subtract -1 and instead of subtracting 1
2327         add -1 to avoid overflows.
2328
2329 2011-11-29  Andrew MacLeod  <amacleod@redhat.com>
2330
2331         PR target/50123
2332         * optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
2333         instructions for a FECTH_OP or OP_FECTH sequence.
2334         (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
2335
2336 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
2337
2338         * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
2339         (movdi_via_fpu): Remove.
2340         (loaddi_via_fpu): New insn pattern.
2341         (storedi_via_fpu): Ditto.
2342         (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
2343         (atomic_storedi_fpu): Ditto.
2344         * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
2345         (subst_stack_regs_pat): Handle UNSPEC_STA.
2346
2347 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
2348
2349         * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
2350         allocate scratch memory for alternative 0.
2351
2352 2011-11-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
2353
2354         * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
2355         handling to centralize more of the builtins in this file.  Change
2356         some builtin enumerations to be more consistant.  Use a new mask
2357         to hold the current builtins, including SPE and PAIRED builtins
2358         which no longer are set via target_flags masks.  Add
2359         -mdebug=builtin debug support.  For power machines, define all
2360         Altivec and VSX buitins when the compiler starts, but don't allow
2361         the use of a builtin unless the appropriate switch is used, or
2362         #pragma GCC target is used to change the options.  If the user
2363         uses #pragma GCC target, update the appropriate hardware macros.
2364         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
2365         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
2366         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
2367         (rs6000_define_or_undefine_macro): Ditto.
2368         (rs6000_target_modify_macros): Ditto.
2369         (rs6000_cpu_cpp_builtins): Ditto.
2370         (altivec_overloaded_builtins): Ditto.
2371         (altivec_build_resolved_builtin): Ditto.
2372         * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
2373         (rs6000_builtin_info): Ditto.
2374         (def_builtin): Ditto.
2375         (enable_mask_for_builtins): Ditto.
2376         (DEBUG_FMT_X): Ditto.
2377         (rs6000_debug_reg_global): Ditto.
2378         (rs6000_builtin_mask_calculate): Ditto.
2379         (rs6000_option_override_internal): Ditto.
2380         (rs6000_builtin_conversion): Ditto.
2381         (rs6000_builtin_vectorized_function): Ditto.
2382         (bdesc_3arg): Ditto.
2383         (bdesc_dst): Ditto.
2384         (bdesc_2arg): Ditto.
2385         (builtin_description_predicates): Ditto.
2386         (bdesc_altivec_preds): Ditto.
2387         (bdesc_spe_predicates): Ditto.
2388         (bdesc_spe_evsel): Ditto.
2389         (bdesc_paired_preds): Ditto.
2390         (bdesc_abs): Ditto.
2391         (bdesc_1arg): Ditto.
2392         (rs6000_overloaded_builtin_p): Ditto.
2393         (rs6000_expand_unop_builtin): Ditto.
2394         (bdesc_2arg_spe): Ditto.
2395         (spe_expand_builtin): Ditto.
2396         (rs6000_invalid_builtin): Ditto.
2397         (rs6000_expand_builtin): Ditto.
2398         (rs6000_init_builtins): Ditto.
2399         (spe_init_builtins): Ditto.
2400         (paired_init_builtins): Ditto.
2401         (altivec_init_builtins): Ditto.
2402         (builtin_function_type): Ditto.
2403         (rs6000_common_init_builtins): Ditto.
2404         (rs6000_builtin_reciprocal): Ditto.
2405         (rs6000_builtin_mask_names): Ditto.
2406         (rs6000_pragma_target_parse): Ditto.
2407         (rs6000_function_specific_print): Ditto.
2408         * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
2409         (MASK_DEBUG_ALL): Ditto.
2410         (TARGET_DEBUG_BUILTIN): Ditto.
2411         (TARGET_EXTRA_BUILTINS): Ditto.
2412         (REGISTER_TARGET_PRAGMAS): Ditto.
2413         (enum rs6000_btc): Ditto.
2414         (RS6000_BTC_*): Ditto.
2415         (RS6000_BTM_*): Ditto.
2416         (enum rs6000_builtins): Ditto.
2417         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
2418         (rs6000_target_modify_macros): Ditto.
2419         (rs6000_target_modify_macros_ptr): Ditto.
2420
2421         * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
2422         standard name for converting vector unsigned values to floating
2423         point.  Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
2424         is handled by machine independent code.
2425         * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
2426         (rs6000_builtin_conversion): Ditto.
2427
2428 2011-11-29  Dodji Seketeli  <dodji@redhat.com>
2429
2430         * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
2431         (maybe_unwind_expanded_macro_loc): Adjust.
2432
2433 2011-11-29  David Edelsohn  <dje.gcc@gmail.com>
2434             Aldy Hernandez  <aldyh@redhat.com>
2435
2436         * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
2437         if DECL_ONE_ONLY.
2438         (ipa_tm_create_version): Same.
2439
2440 2011-11-29  Bernd Schmidt  <bernds@codesourcery.com>
2441
2442         * haifa-sched.c (recompute_todo_spec): Simplify and correct the
2443         code checking for a clobber of a condition register when deciding
2444         whether to predicate.
2445
2446 2011-11-29  Diego Novillo  <dnovillo@google.com>
2447
2448         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
2449         Update field call_stmt_cannot_inline_p from call graph edge, if needed.
2450         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2451
2452 2011-11-29  Sameera Deshpande  <sameera.deshpande@arm.com>
2453
2454         * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
2455         (movdf_soft_insn): Likewise.
2456         * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
2457         * config/arm/neon.md (neon_mov<mode>): Likewise.
2458         * config/arm/vfp.md (movdi_vfp): Likewise.
2459         (movdi_vfp_cortexa8): Likewise.
2460         (movdf_vfp): Likewise.
2461
2462 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
2463
2464         PR middle-end/50074
2465         * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
2466         EXPAND_SUM modifier.
2467
2468 2011-11-29  Ira Rosen  <ira.rosen@linaro.org>
2469
2470         PR tree-optimization/51301
2471         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
2472         the last statement doesn't convert to a bigger type than the original
2473         type of the computation.
2474
2475 2011-11-28  Richard Henderson  <rth@redhat.com>
2476
2477         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
2478         Handle overlap between retval and oldval.  Always compute boolval
2479         from CR0 EQ value.
2480
2481 2011-11-28  Jakub Jelinek  <jakub@redhat.com>
2482
2483         PR debug/50317
2484         * tree-ssa.c (execute_update_addresses_taken): Remove
2485         var ={v} {CLOBBER} stmts instead of rewriting them into
2486         var_N ={v} {CLOBBER}.
2487
2488         PR middle-end/50907
2489         * function.c (convert_jumps_to_returns): When redirecting an edge
2490         succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
2491
2492         PR tree-optimization/50078
2493         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
2494         TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
2495
2496         PR tree-optimization/50682
2497         * tree-eh.c (maybe_remove_unreachable_handlers): New function.
2498         * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
2499         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
2500
2501 2011-11-28  Georg-Johann Lay  <avr@gjlay.de>
2502
2503         * doc/extend.texi (AVR Built-in Functions): Add documentation for
2504         __builtin_avr_map8 and __builtin_avr_map16.
2505
2506         * config/avr/avr.md: Document new %t and %T asm output codes.
2507         (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
2508         (adjust_len): Add map_bits.
2509         (map_bitsqi, map_bitshi): New insns.
2510         * config/avr/avr-protos.h (avr_out_map_bits): New.
2511         * config/avr/avr-protos.c (print_operand): Implement %t and %T.
2512         (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
2513         (avr_double_int_push_digit): New function.
2514         (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
2515         (avr_sig_map, avr_map_hamming_byte): New functions.
2516         (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
2517         avr_out_map_bits): New functions.
2518         (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2519         (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
2520         (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
2521         (avr_expand_builtin): ...and expand them.
2522         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
2523         __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2524
2525 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2526
2527         PR target/51278
2528         * config/mips/mips.c (mips_rtx_costs): Handle baddu.
2529
2530 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2531
2532         * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
2533
2534 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2535
2536         * config/mips/mips-protos.h (mips_emit_binary): Declare.
2537         * config/mips/mips.c (mips_emit_binary): Make global.
2538         (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
2539         (mips_conditional_register_usage): Don't treat LO and HI as
2540         register operands in MIPS16 mode.
2541         (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
2542         for MIPS16 code.
2543         * config/mips/predicates.md (muldiv_target_operand): New predicate.
2544         (move_operand): Allow hilo_operand.
2545         * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
2546         target of MIPS16 multiplies, then move it into the target register.
2547         (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
2548         (<u>mulsidi3_32bit_mips16): New expander.
2549         (<u>mulsidi3_32bit): Use muldiv_target_operand.
2550         (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
2551         (<u>mulsidi3_64bit): Require !TARGET_MIPS16.  Split into
2552         <u>mulsidi3_64bit_split.
2553         (<u>mulsidi3_64bit_mips16): New expander.
2554         (<u>mulsidi3_64bit_split): Likewise, using expansions from
2555         two previous define_splits.
2556         (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
2557         muldiv_target_operand.
2558         (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
2559         (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
2560         Split into <su>mulsi3_highpart_split.
2561         (<su>mulsi3_highpart_split): New expander.
2562         (<su>muldi3_highpart): Turn into a define_expand.
2563         Use <su>muldi3_highpart_split for MIPS16 code.
2564         (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
2565         Require !TARGET_MIPS16.  Split into <su>muldi3_highpart_split.
2566         (<su>muldi3_highpart_split): New expander.
2567         (<u>mulditi3): Explicitly specify LO as the target of MIPS16
2568         multiplies, then move it into the target register.
2569         (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
2570         (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
2571         Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
2572         move LO into operand 0.
2573         (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
2574         from <u>divmod<mode>4.  Use muldiv_target_operand.
2575         Require !TARGET_MIPS16.  Split into <u>divmod<mode>4_split.
2576         (<u>divmod<mode>4_split): New expander.
2577         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
2578         (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
2579
2580 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2581
2582         * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
2583         and x_operand_reg_set.
2584         (accessible_reg_set, operand_reg_set): New macros.
2585         * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
2586         operand_reg_set.
2587         (saved_accessible_reg_set, saved_operand_reg_set): New variables.
2588         (save_register_info): Save them.
2589         (restore_register_info): Restore them.
2590         (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
2591         Remove NO_REGS registers from operand_reg_set.  Treat members
2592         of operand_reg_set as fixed.
2593         * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
2594         (register_operand, nonmemory_operand): Likewise.
2595         * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
2596         register variables.  Check accessible_reg_set and operand_reg_set.
2597         * config/mips/mips.c (mips_conditional_register_usage): Remove
2598         inaccessible register from accessible_reg_set, rather than just
2599         making them fixed.
2600
2601 2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
2602
2603         * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
2604
2605 2011-11-26  Richard Henderson  <rth@redhat.com>
2606
2607         * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
2608         for Linux.
2609
2610 2011-11-26  Richard Henderson  <rth@redhat.com>
2611
2612         * optabs.c (expand_atomic_fetch_op): Always return result.
2613
2614         * optabs.c (init_sync_libfuncs_1): Include max in iteration.
2615
2616         * omp-low.c (expand_omp_atomic): Assume anything aligned to
2617         BIGGEST_ALIGNMENT is aligned.
2618
2619 2011-11-26  Richard Henderson  <rth@redhat.com>
2620
2621         * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
2622         (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
2623         (I): New mode iterator.
2624         (xz): New mode attribute.
2625         * config/m68k/sync.md: New file.
2626
2627         * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
2628         * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
2629
2630 2011-11-26  Nathan Sidwell  <nathan@acm.org>
2631
2632         PR gcov-profile/51297
2633         * gcov.c (main): Allocate initial names and sources arrays.
2634         (find_source): Don't check for null name or source arrays here.
2635
2636 2011-11-26  Jakub Jelinek  <jakub@redhat.com>
2637
2638         PR rtl-optimization/49912
2639         * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
2640         when counting n_branch.
2641
2642 2011-11-26  Uros Bizjak  <ubizjak@gmail.com>
2643
2644         * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
2645
2646 2011-11-26  Joern Rennecke  <joern.rennecke@embecosm.com>
2647
2648         PR middle-end/50074
2649         * calls.c (mem_overlaps_already_clobbered_arg_p):
2650         Return false if no outgoing arguments have been stored so far.
2651
2652 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
2653
2654         * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
2655
2656 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
2657
2658         PR other/51011
2659         * tree.h (is_builtin_name): No longer external.
2660         * builtins.c (is_builtin_name): Make static.
2661         * varasm.c (incorporeal_function_p): __sync and __atomic external calls
2662         are not incorporeal and may need asm label processing.
2663
2664 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
2665
2666         PR target/50566
2667         * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
2668         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2669         Don't bypass TARGET_ALL_DEBUG.  Print self-info with ?.
2670         (avr_log_vadump): Support %D and %X to print double_int.
2671         (avr_double_int_pop_digit): New static function.
2672         (avr_dump_double_int_hex): New static function.
2673
2674 2011-11-24  Enkovich Ilya  <ilya.enkovich@intel.com>
2675
2676         PR target/51287
2677         * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
2678         attr check.
2679
2680 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
2681
2682         * optab.c (maybe_emit_atomic_exchange): New.  Try to emit an
2683         atomic_exchange pattern.
2684         (maybe_emit_sync_lock_test_and_set): New.  Try to emit an exchange
2685         using __sync_lock_test_and_set.
2686         (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
2687         exchange using a compare_and_swap loop.
2688         (expand_sync_lock_test_and_set): New.  Expand sync_lock_test_and_set.
2689         (expand_atomic_test_and_set): New.  Expand test_and_set operation.
2690         (expand_atomic_exchange): Use new maybe_emit_* functions.
2691         (expand_atomic_store): Use new maybe_emit_* functions.
2692         * builtins.c (expand_builtin_sync_lock_test_and_set): Call
2693         expand_sync_lock_test_and_set routine.
2694         (expand_builtin_atomic_exchange): Remove parameter from call.
2695         (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
2696         (expand_builtin_atomic_test_and_set): Add target and simply call
2697         expand_atomic_test_and_set.
2698         (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
2699         * expr.h (expand_atomic_exchange): Add parameter.
2700         (expand_sync_lock_test_and_set): New prototype.
2701         (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
2702
2703 2011-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2704
2705         PR target/51134
2706         * config/i386/i386.h (processor_costs): Revert revision 181357.
2707         * config/i386/i386.c (cost models): Likewise.
2708         (core_cost): Likewise.
2709         (promote_duplicated_reg): Likewise.
2710         (promote_duplicated_reg_to_size): Likewise.
2711         (processor_target): Likewise.
2712         (expand_set_or_movmem_via_loop_with_iter): Likewise.
2713         (expand_set_or_movmem_via_loop): Likewise.
2714         (emit_strset): Likewise.
2715         (expand_movmem_epilogue): Likewise.
2716         (expand_setmem_epilogue): Likewise.
2717         (expand_movmem_prologue): Likewise.
2718         (expand_setmem_prologue): Likewise.
2719         (expand_constant_movmem_prologue): Likewise.
2720         (expand_constant_setmem_prologue): Likewise.
2721         (decide_alg): Likewise.
2722         (decide_alignment): Likewise.
2723         (ix86_expand_movmem): Likewise.
2724         (ix86_expand_setmem): Likewise.
2725         (ix86_slow_unaligned_access): Likewise.
2726         * config/i386/i386.md (strset): Likewise.
2727         * config/i386/sse.md (vec_dupv4si): Likewise.
2728         (vec_dupv2di): Likewise.
2729
2730 2011-11-24  Georg-Johann Lay  <avr@gjlay.de>
2731
2732         * config/avr/avr.md (*rotlhi2.15): Set length to 4.
2733
2734 2011-11-24  Razya Ladelsky  <razya@il.ibm.com>
2735
2736         * tree-data-ref.c (initialize_data_dependence_relation): Update
2737         comment for the self dependence case.
2738         (compute_self_dependence): Remove.
2739         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
2740         compute_self_dependenc.
2741
2742 2011-11-24  Alan Modra  <amodra@gmail.com>
2743
2744         * c-decl.c (warn_if_shadowing): Don't warn if shadowed
2745         identifier is from system header.
2746
2747 2011-11-23  Jakub Jelinek  <jakub@redhat.com>
2748
2749         PR target/51261
2750         * config/i386/i386.c (decide_alg): Initialize *dynamic_check
2751         even if !optimize.
2752
2753 2011-11-23  Vladimir Makarov  <vmakarov@redhat.com>
2754
2755         PR rtl-optimization/48455
2756         * doc/invoke.texi (-fira-region): Document default values.
2757
2758         * flags-types.h (enum ira_region): Add new value
2759         IRA_REGION_AUTODETECT.
2760
2761         * common.opt (fira-region): Set up initial value to
2762         IRA_REGION_AUTODETECT.
2763
2764         * toplev.c (process_options): Set up flag_ira_region depending on
2765         -O options.
2766
2767         * ira.c (ira.c): Remove optimize guard for ira_build.
2768
2769 2011-11-23  Chung-Lin Tang  <cltang@codesourcery.com>
2770
2771         PR rtl-optimization/50496
2772         * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
2773         only after epilogue is created. Add comments.
2774
2775 2011-11-22  Richard Henderson  <rth@redhat.com>
2776
2777         * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
2778         Generate the barrier required for the memory model.
2779         (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
2780         * config/ia64/ia64-protos.h: Update.
2781         * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
2782         (UNSPEC_CMPXCHG_REL): New.
2783         * config/ia64/sync.md (mem_thread_fence): New.
2784         (atomic_load<IMODE>, atomic_store<IMODE>): New.
2785         (atomic_compare_and_swap<IMODE>): New.
2786         (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
2787         (atomic_exchange<IMODE>): New.
2788         (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
2789         (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
2790         (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
2791         (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
2792         (fetchadd_rel_<I48MODE>): New.
2793         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
2794         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
2795         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
2796         (sync_compare_and_swap<IMODE>): Remove.
2797         (sync_lock_release<IMODE>): Remove.
2798
2799         * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
2800         and UNSPECV_* constants.
2801
2802 2011-11-22  Tom de Vries  <tom@codesourcery.com>
2803
2804         PR rtl-optimization/50764
2805         * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
2806         not moved past preceding jump.
2807
2808 2011-11-22  Jeff Law  <law@redhat.com>
2809
2810         * doc/contrib.texi: Add entry for David Binderman.
2811
2812 2011-11-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2813
2814         * postreload.c (reload_combine): Mark reg_state as invalid at
2815         volatile insns if there has been a use already.
2816
2817 2011-11-21  Aldy Hernandez  <aldyh@redhat.com>
2818
2819         * opts.c (finish_options): Do not fail for -fgnu-tm.
2820         * gimple-streamer-out.c (output_gimple_stmt): Handle
2821         GIMPLE_TRANSACTION.
2822         * gimple-streamer-in.c (input_gimple_stmt): Same.
2823         * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
2824         (lto_output_node): Write tm_clone bit.
2825
2826 2011-11-22  Ian Lance Taylor  <iant@google.com>
2827
2828         * doc/install.texi (Configuration): Correct doc of
2829         --enable-build-poststage1-with-cxx: it is not experimental.
2830
2831 2011-11-22  Jakub Jelinek  <jakub@redhat.com>
2832
2833         PR tree-optimization/51074
2834         * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
2835         handling for BYTES_BIG_ENDIAN.
2836         * optabs.c (can_vec_perm_for_code_p): Likewise.
2837
2838 2011-11-22  Michael Matz  <matz@suse.de>
2839
2840         PR other/51125
2841         * trans-mem.c (expand_block_tm): Ignore clobbers.
2842
2843 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
2844
2845         *  config/darwin.h (ENDFILE_SPEC): New.
2846         (DARWIN_CRT1_SPEC): Add crttms.o.
2847         (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
2848         * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
2849
2850 2011-11-22  Michael Matz  <matz@suse.de>
2851
2852         PR c++/51264
2853         * tree.c (iterative_hash_expr): Remove break after return.
2854
2855 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
2856
2857         * target.def (tm_clone_table_section): New hook.
2858         * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
2859         * doc/tm.texi: Regenerate.
2860         * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
2861         * output.h (default_clone_table_section): New prototype.
2862         * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
2863         * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
2864         * config/darwin.c (darwin_tm_clone_table_section): New.
2865
2866 2011-11-21  Torvald Riegel  <triegel@redhat.com>
2867
2868         * trans-mem.c (diagnose_tm_1): Print an expression instead of a
2869         declaration in error messages for indirect calls.
2870
2871 2011-11-21  David S. Miller  <davem@davemloft.net>
2872
2873         * config/sparc/sparc.c (sparc_regmode_natural_size): New function
2874         implementing REGMODE_NATURAL_SIZE taking into consideration vector
2875         modes.
2876         (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
2877         * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
2878         sparc_modes_tieable_p): Declare.
2879         * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
2880         MODES_TIEABLE_P): Use new helper functions.
2881
2882         Revert
2883         2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2884
2885         PR middle-end/50325
2886         * expmed.c (store_bit_field_1): Use extract_bit_field on big
2887         endian targets if the source cannot be exactly covered by word
2888         mode chunks.
2889
2890 2011-11-21  Jakub Jelinek  <jakub@redhat.com>
2891
2892         PR debug/50827
2893         * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
2894         macro instead of XEXP.
2895
2896 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
2897
2898         * configure: Regenerate.
2899
2900 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
2901
2902         * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
2903         must not affect cc0.
2904         * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
2905         register does not change cc0. Same for any constant to ld-register.
2906
2907 2011-11-21  Uros Bizjak  <ubizjak@gmail.com>
2908
2909         * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
2910         UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
2911         Move from config/i386/i386.md
2912         (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
2913         * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
2914         UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
2915         UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
2916         UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
2917         UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
2918         UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
2919         UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
2920         UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
2921         UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
2922         UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
2923         UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
2924         UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
2925         (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
2926         UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
2927         Ditto.
2928         * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
2929         UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
2930         (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
2931         UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
2932         (sse2_lfence): Move from config/i386/sse.md.
2933         (*sse2_lfence): Ditto.
2934         (sse_sfence): Ditto.
2935         (*sse_sfence): Ditto.
2936         (sse2_mfence): Ditto.
2937         (mfence_sse2): Ditto.  Rename from *sse2_mfence.  Enable also
2938         for TARGET_64BIT.
2939         (mem_thread_fence): Use mfence_sse2.
2940
2941 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
2942
2943         * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
2944         * config/avr/avr-devices.c: Ditto. And initialize it.
2945         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
2946         __AVR_SFR_OFFSET__.
2947         * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
2948         (out_movhi_r_mr, out_movhi_mr_r): Remove.
2949         (out_movsi_r_mr, out_movsi_mr_r): Remove.
2950         * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
2951         (*insv.io, *insv.not.io): Ditto.
2952         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
2953         (print_operand): Implement "%i" to print address as I/O address.
2954         (output_movqi): Clean up call of out_movqi_mr_r.
2955         (output_movhi): Clean up call of out_movhi_mr_r.
2956         (avr_file_start): Use avr_current_arch->sfr_offset instead of
2957         magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
2958         (avr_out_sbxx_branch): Use %i instead of %m-0x20.
2959         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
2960         (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
2961         (out_shift_with_cnt): Clean up code: Use avr_asm_len.
2962         (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
2963         (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
2964         Clean up call of avr_out_store_psi.
2965         (output_reload_in_const): Don't cut symbols longer than 2 bytes.
2966         (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
2967         try if setting pre-cleared register is advantageous.
2968         (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
2969
2970 2011-11-20  Joey Ye  <joey.ye@arm.com>
2971
2972         * expr.c (expand_expr_real_1): Correctly handle strict volatile
2973         bitfield loads smaller than mode size.
2974
2975 2011-11-20  Richard Henderson  <rth@redhat.com>
2976
2977         * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
2978
2979 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
2980
2981         PR target/51235
2982         * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
2983         patterns for supported mode only.
2984
2985         PR target/51236
2986         * config/i386/i386.c (ix86_expand_builtin)
2987         <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
2988
2989 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
2990
2991         * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
2992         (UNSPEC_MOVNTQ): New unspec.
2993         * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
2994         Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
2995         * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
2996         UNSPEC_MOVNTI.
2997         (STORENT_MODE): Add DI and V4DI modes.
2998
2999 2011-11-20  Nathan Sidwell  <nathan@acm.org>
3000
3001         PR gcov-profile/51113
3002         * coverage.c (build_var): Propagate visibility for public
3003         decls.  Use make_decl_one_only for PIC correctness.
3004
3005         testsuite/
3006         * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
3007         * gcc.misc-tests/gcov-16.c: New.
3008         * gcc.misc-tests/gcov-17.c: New.
3009         * g++.dg/gcov/gcov-8.C: New.
3010         * g++.dg/gcov/gcov-9.C: New.
3011         * g++.dg/gcov/gcov-10.C: New.
3012
3013 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
3014
3015         PR rtl-optimization/51187
3016         * reorg.c (relax_delay_slots): Do not consider a jump useless if there
3017         is a barrier between the jump and its target label.
3018
3019 2011-11-19  Patrick Marlier  <patrick.marlier@gmail.com>
3020
3021         PR middle-end/51211
3022         * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
3023
3024 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
3025
3026         * expmed.c (store_bit_field_1): Revert bogus formatting change.
3027
3028 2011-11-19  Richard Earnshaw  <rearnsha@arm.com>
3029
3030         PR target/50493
3031         * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
3032         overlap of src and dest operands.
3033
3034 2011-11-19  Iain Sandoe  <iains@gcc.gnu.org>
3035
3036         * config/darwin.h (ASM_DEBUG_SPEC): New.
3037         * config/darwin9.h (ASM_DEBUG_SPEC): New.
3038
3039 2011-11-18  Jan Hubicka  <jh@suse.cz>
3040
3041         * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
3042         issues are fixed.
3043
3044 2011-11-18  Anatoly Sokolov  <aesok@post.ru>
3045
3046         * config/cris/cris.c (cris_function_value_regno_p): Make static.
3047         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3048         * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
3049         * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
3050
3051 2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>
3052
3053         PR target/33944
3054         * doc/extend.texi: Document __builtin_ia32_movnti64.
3055
3056         * config/i386/emmintrin.h (_mm_stream_si64): New.
3057
3058         * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
3059
3060         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
3061         (bdesc_special_args): Update __builtin_ia32_movnti.  Add
3062         __builtin_ia32_movnti64.
3063         (ix86_expand_special_args_builtin): Handle
3064         VOID_FTYPE_PLONGLONG_LONGLONG.
3065
3066         * config/i386/i386.md (UNSPEC_MOVNTI): New.
3067
3068         * config/i386/sse.md (sse2_movntsi): Renamed to ...
3069         (sse2_movnti<mode>): This.
3070
3071 2011-11-18  Georg-Johann Lay  <avr@gjlay.de>
3072
3073         PR target/49868
3074         * config/avr/avr.h (base_arch_s): Add field n_segments.
3075         (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
3076         ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
3077         (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
3078         (INIT_EXPANDERS): New define.
3079         * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
3080         (avr_init_expanders): New.
3081         (avr_emit_movmemhi, avr_out_movmem): New.
3082         (avr_xload_libgcc_p): New.
3083         * config/avr/avr-c.c (avr_register_target_pragmas): Register
3084         address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
3085         (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
3086         __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
3087         * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
3088
3089         * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
3090         3 bits instead of just 1.
3091         (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
3092         (progmem_section): Change from section to array of sections.
3093         (progmem_section_prefix): New static variable.
3094         (avr_file_start): Print set for __RAMPZ__
3095         (avr_option_override): Move initialization of RTXes from here...
3096         (avr_init_expanders): ...to this new function.
3097         (avr_pgm_segment): New static function.
3098         (avr_decl_pgm_p): Handle error_mark_node.
3099         (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
3100         (avr_out_xload, avr_find_unused_d_reg): New static functions.
3101         (expand_prologue, expand_epilogue): Use rampz_rtx.
3102         (print_operand): Hande CONST_STRING.
3103         (avr_xload_libgcc_p): New static function.
3104         (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
3105         (avr_progmem_p): Return 2 for 24-bit flash address space.
3106         (avr_out_sbxx_branch): Clean-up code from ASn macros.
3107         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
3108         address and print symbolically.
3109         (avr_asm_named_section, avr_section_type_flags,
3110         avr_encode_section_info, avr_asm_select_section,
3111         avr_addr_space_address_mode, avr_addr_space_pointer_mode,
3112         avr_addr_space_legitimate_address_p, avr_addr_space_convert,
3113         avr_addr_space_legitimize_address): Handle new address spaces.
3114         (avr_output_progmem_section_asm_op): New static function.
3115         (avr_asm_init_sections): Initialize progmem_section[].
3116         (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
3117         (avr_const_address_lo16): New static function.
3118         (avr_assemble_integer): Use it to handle 3-byte integers.
3119         (avr_emit_movmemhi, avr_out_movmem): New functions.
3120
3121         * config/avr/predicates.md (nox_general_operand): Handle new
3122         address spaces.
3123         * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
3124         (adjust_len): Add xload, movmem.
3125         (SP_ADDR): New define_constants.
3126         (isa): Add "lpm", "lpmx", "elpm", "elpmx".
3127         (enabled): Handle them.
3128         (load<mode>_libgcc): New expander.
3129         (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
3130         (xload8_A, xload<mode>_A): New insn-and-splits.
3131         (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
3132         (mov<mode>): Handle new address spaces.
3133         (movmemhi): Rewrite using avr_emit_movmemhi.
3134         (MOVMEM_r_d): New mode attribute.
3135         (movmem_<mode>, movmem_qi_elpm): New insns.
3136         (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
3137         C-code.  Use label instead of hard-coded instrunction lengths.
3138
3139 2011-11-18  Martin Jambor  <mjambor@suse.cz>
3140
3141         PR tree-optimization/50605
3142         * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
3143         of IPA invariant decls.
3144
3145 2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3146
3147         * tree-outof-ssa.c (insert_back_edge_copies):  Add call to
3148         mark_dfs_back_edges.
3149
3150 2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>
3151
3152         PR target/49992
3153         * configure.ac: Remove ranlib special-casing for Darwin.
3154         * configure: Regenerate.
3155
3156 2011-11-18  Uros Bizjak  <ubizjak@gmail.com>
3157
3158         PR tree-optimization/51118
3159         * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
3160         before using TREE_TYPE accessor on expr.
3161
3162 2011-11-17  Jan Hubicka  <jh@suse.cz>
3163
3164         PR bootstrap/51134
3165         * i386.c (atom_cost): Fix 32bit memset description.
3166         (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
3167         for epilogue loops.
3168         (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
3169         byte loop.
3170         (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
3171         when not optimizing always use rep movsb or lincall; do not produce
3172         word sized loops when optimizing memset for size (to avoid need
3173         for large constants).
3174         (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
3175         choose unroll factors better; always do 128bit moves when producing
3176         SSE loops; do not produce loopy epilogue when size is too small.
3177         (promote_duplicated_reg_to_size): Do not look into desired alignments
3178         when doing vector expansion.
3179         (ix86_expand_setmem): Track better when promoted value is available;
3180         choose unroll factors more sanely. Output loopy epilogue only
3181         when needed.
3182
3183 2011-11-17  Steve Ellcey  <sje@cup.hp.com>
3184
3185         PR middle-end/51144
3186         * output.h (fprint_w): Remove.
3187         * final.c (fprint_w): Remove.
3188         (output_addr_const): Change fprint_w back to fprintf.
3189
3190 2011-11-17  Andrew Pinski  <apinski@cavium.com>
3191
3192         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
3193
3194 2011-11-17  Andrew MacLeod  <amacleod@redhat.com>
3195
3196         * builtins.c (expand_builtin): Remove 4th parameter representing
3197         weak/strong mode when __atomic_compare_exchange becomes a library call.
3198
3199 2011-11-17  Richard Henderson  <rth@redhat.com>
3200
3201         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
3202         new pseudo for target after convert_modes.
3203         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
3204
3205 2011-11-17  Richard Henderson  <rth@redhat.com>
3206
3207         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
3208         new pseudo for target after convert_modes.
3209         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
3210
3211 2011-11-17  Richard Henderson  <rth@redhat.com>
3212
3213         * builtins.c (expand_builtin_mem_thread_fence): Remove.
3214         (expand_builtin_mem_signal_fence): Remove.
3215         (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
3216         (expand_builtin_sync_synchronize): Likewise.
3217         (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
3218         * optabs.c (expand_asm_memory_barrier): Split out from
3219         expand_builtin_mem_signal_fence.
3220         (expand_mem_thread_fence): New, a combination of code from
3221         expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
3222         (expand_mem_signal_fence): Moved and renamed from
3223         expand_builtin_mem_signal_fence.
3224         (expand_atomic_exchange): Use expand_mem_thread_fence.
3225         (expand_atomic_load, expand_atomic_store): Likewise.
3226         * expr.h, optabs.h: Update decls.
3227
3228 2011-11-17  Bin Cheng  <bin.cheng@arm.com>
3229
3230         PR rtl-optimization/50663
3231         * cprop.c (implicit_set_indexes): New global variable.
3232         (insert_set_in_table): Add additional parameter and record implicit
3233         set information.
3234         (hash_scan_set): Add additional parameter and pass it to above.
3235         (hash_scan_insn): Pass false to hash_scan_set.
3236         (compute_hash_table_work): Pass true to hash_scan_set.
3237         (compute_cprop_data): Add implicit set to AVIN of block which the
3238         implicit set is recorded for.
3239         (one_cprop_pass): Handle implicit_set_indexes array.
3240
3241 2011-11-17  Michael Matz  <matz@suse.de>
3242
3243         PR middle-end/50644
3244         PR middle-end/50741
3245         * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
3246         current function.
3247         (remove_unused_locals): Ditto.
3248
3249 2011-11-16  Richard Henderson  <rth@redhat.com>
3250
3251         * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
3252         ALIAS_SET_MEMORY_BARRIER when creating a new memory.
3253         (alpha_split_atomic_exchange_12): Likewise.
3254         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
3255
3256 2011-11-16  Joseph Myers  <joseph@codesourcery.com>
3257
3258         * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
3259
3260 2011-11-16  David Edelsohn  <dje.gcc@gmail.com>
3261
3262         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
3263         Default to minimum alignment if decl is NULL.
3264
3265 2011-11-16  Uros Bizjak  <ubizjak@gmail.com>
3266
3267         * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
3268         sequence for AVX.
3269         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3270
3271 2011-11-16  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3272
3273         * doc/invoke.texi: Document AMD bdver1 and btver1.
3274
3275 2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
3276             Bernd Schmidt <bernds@coudesourcery.com>
3277             Sebastian Huber <sebastian.huber@embedded-brains.de>
3278
3279         PR target/49641
3280         * config/arm/arm.c (store_multiple_sequence): Avoid cases where
3281         the base reg is stored iff compiling for Thumb1.
3282
3283 2011-11-16  Razya Ladelsky  <razya@il.ibm.com>
3284
3285         PR tree-optimization/49960
3286         * tree-data-ref.c (initialize_data_dependence_relation): Add
3287         initializations.
3288         Remove call to compute_self_dependence.
3289         (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
3290         (compute_self_dependence): Remove old code. Add call to
3291         compute_affine_dependence.
3292         (compute_all_dependences): Remove call to compute_self_dependence.
3293         Add call to compute_affine_dependence.
3294
3295 2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3296
3297         PR middle-end/50325
3298         * expmed.c (store_bit_field_1): Use extract_bit_field on big
3299         endian targets if the source cannot be exactly covered by word
3300         mode chunks.
3301
3302 2011-11-15  Joseph Myers  <joseph@codesourcery.com>
3303
3304         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
3305         ELF_STRING_LIMIT.
3306
3307 2011-11-15  Richard Henderson  <rth@redhat.com>
3308
3309         * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
3310         (alpha_post_atomic_barrier): New.
3311         (alpha_split_atomic_op): New memmodel argument; honor it.
3312         (alpha_split_compare_and_swap): Take array of operands.  Honor
3313         memmodel; always set bool output
3314         (alpha_expand_compare_and_swap_12): Similarly.
3315         (alpha_split_compare_and_swap_12): Similarly.
3316         (alpha_split_atomic_exchange): Similarly.  Rename from
3317         alpha_split_lock_test_and_set.
3318         (alpha_expand_atomic_exchange_12): Similarly.  Rename from
3319         alpha_expand_lock_test_and_set_12.
3320         (alpha_split_atomic_exchange_12): Similarly.  Rename from
3321         alpha_split_lock_test_and_set_12.
3322         * config/alpha/alpha-protos.h: Update.
3323         * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
3324         * config/alpha/constraints.md ("w"): New.
3325         * config/alpha/predicates.md (mem_noofs_operand): New.
3326         * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
3327         sync_compare_and_swap<mode>; add the new parameters.
3328         (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
3329         (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
3330         (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
3331         (atomic_<op><mode>): Update from sync_<op><mode>.
3332
3333 2011-11-16  Tom de Vries  <tom@codesourcery.com>
3334
3335         * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
3336
3337 2011-11-16  Alan Modra  <amodra@gmail.com>
3338
3339         PR rtl-optimization/51051
3340         PR bootstrap/51086
3341         * function.c (thread_prologue_and_epilogue_insns): Guard
3342         emitting return with single_succ_p test.
3343
3344 2011-11-15  Joern Rennecke  <joern.rennecke@embecosm.com>
3345
3346         * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
3347         get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
3348
3349 2011-11-15  Uros Bizjak  <ubizjak@gmail.com>
3350
3351         * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
3352         (vec_pack_sfix_trunc_v2df): Ditto.
3353         (vec_pack_sfix_v2df): Ditto.
3354         (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
3355         avx_vec_concatv8si patterns.
3356         (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
3357         avx_vec_concatv8si patterns.
3358
3359 2011-11-15  Torvald Riegel  <triegel@redhat.com>
3360
3361         * c-parser.c (c_parser_transaction_expression): Require parentheses
3362         when parsing transaction expressions.
3363
3364 2011-11-15  Tristan Gingold  <gingold@adacore.com>
3365
3366         * incpath.c (get_added_cpp_dirs): New function.
3367         * incpath.h (get_added_cpp_dirs): Declare.
3368         * config/vms/vms-c.c (vms_c_register_includes): New function.
3369         (vms_std_modules): New variable.
3370         * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
3371         (vms_c_register_includes): Declare.
3372
3373 2011-11-15  Tristan Gingold  <gingold@adacore.com>
3374
3375         * c-family/c-pragma.h (pragma_extern_prefix): Declare.
3376         * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
3377         * config/vms/vms-c.c (saved_extern_prefix): New variable.
3378         (vms_pragma_extern_prefix): New function.
3379         (vms_c_register_pragma): Register vms_pragma_extern_prefix.
3380
3381 2011-11-15  Georg-Johann Lay  <avr@gjlay.de>
3382
3383         PR target/49868
3384         * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
3385         (REGISTER_TARGET_PRAGMAS): New define.
3386         * config/avr/avr-protos.h (avr_mem_pgm_p): New.
3387         (avr_load_libgcc_p): New.
3388         (avr_register_target_pragmas): New.
3389         (asm_output_external_libcall): Remove.
3390         (avr_log_t): Add field "progmem".  Order alphabetically.
3391         * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
3392         * config/avr/avr-c.c (langhooks.h): New include.
3393         (avr_register_target_pragmas): New function. Register address
3394         space __pgm.
3395         (avr_cpu_cpp_builtins): Add built-in define __PGM.
3396
3397         * config/avr/avr.c: Include "c-family/c-common.h".
3398         (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
3399         (TARGET_LEGITIMIZE_ADDRESS): Remove define.
3400         (TARGET_ADDR_SPACE_SUBSET_P): Define to...
3401         (avr_addr_space_subset_p): ...this new static function.
3402         (TARGET_ADDR_SPACE_CONVERT): Define to...
3403         (avr_addr_space_convert): ...this new static function.
3404         (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
3405         (avr_addr_space_address_mode): ...this new static function.
3406         (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
3407         (avr_addr_space_pointer_mode): ...this new static function.
3408         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
3409         (avr_addr_space_legitimate_address_p): ...this new static function.
3410         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
3411         (avr_addr_space_legitimize_address): ...this new static function.
3412         (avr_mode_code_base_reg_class): Handle address spaces.
3413         (avr_regno_mode_code_ok_for_base_p): Ditto.
3414         (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
3415         (avr_option_override): Initialize them.
3416         (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
3417         variables.
3418         (avr_pgm_segment): New static function.
3419         (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
3420         (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
3421         (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
3422         avr_out_lpm to handle loads from progmem.
3423         (avr_load_libgcc_p): New static function.
3424         (avr_progmem_p): Test if decl is in flash.
3425         (avr_pgm_pointer_const_p): New static function.
3426         (avr_nonconst_pointer_addrspace): New static function.
3427         (avr_pgm_check_var_decl): New static function.
3428         (avr_insert_attributes): Use it.  Change error message to report
3429         cause (progmem or address space) when code wants to write to flash.
3430         (avr_section_type_flags): Unset section flag SECTION_BSS for
3431         data in progmem.
3432
3433         * config/avr/predicates.md (nop_general_operand): New predicate.
3434         (nox_general_operand): New predicate.
3435         * config/avr/avr.md (LPM_REGNO): New define_constant.
3436         (load<mode>_libgcc): New expander.
3437         (*load.<mode>.libgcc): New insn.
3438         (mov<mode>): Handle loads from non-generic AS.
3439         (movmemhi): Ditto.  Propagate address space information to newly
3440         created MEM.
3441         (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
3442         to nox_general_operand.
3443         (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
3444         nop_general_operand.
3445         (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
3446         (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
3447         (split-lpmx): New split.
3448         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
3449         *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
3450
3451 2011-11-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3452
3453         * ipa-cp.c (ipa_value_from_jfunc): Make global.