OSDN Git Service

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