OSDN Git Service

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