OSDN Git Service

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