OSDN Git Service

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