OSDN Git Service

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