OSDN Git Service

a297cce69e68b89a043fbd24ddd26886f4b6923c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-12-14  Richard Guenther  <rguenther@suse.de>
2
3         * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
4         propagating all kinds of constants.
5
6 2011-12-14  Richard Guenther  <rguenther@suse.de>
7
8         PR lto/51497
9         * lto-streamer-in.c (lto_read_body): Fixup local types
10         TYPE_CANONICAL and variant chain.
11
12 2011-12-14  Richard Guenther  <rguenther@suse.de>
13
14         * tree.c (free_lang_data_in_type): Do not clear fields
15         dependent on debuginfo level setting.
16         (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
17         * tree.h (TYPE_STUB_DECL): Properly check that we access
18         a type.
19
20 2011-12-14  Georg-Johann Lay  <avr@gjlay.de>
21
22         PR target/50931
23         * config/avr/avr.md (mulpsi3): New expander.
24         (*umulqihipsi3, *umulhiqipsi3): New insns.
25         (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
26         (mulsqipsi3, *mulpsi3): New insn-and-splits.
27         (ashlpsi3): Turn to expander.  Move insn code to...
28         (*ashlpsi3): ...this new insn.
29
30 2011-12-14  Richard Guenther  <rguenther@suse.de>
31
32         * tree-cfg.c (replace_uses_by): Only mark blocks altered
33         that will make a difference.  Only recompute ADDR_EXPR
34         invariantness if it could possibly have changed.  Do so
35         before folding the statement.
36
37 2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
38
39         * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
40         * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
41         * lto-streamer-in.c (lto_read_body): Likewise.
42         (lto_input_toplevel_asms): Likewise.
43         * lto-section-in.c (lto_create_simple_input_block): Likewise.
44         * ipa-inline-analysis.c (inline_read_section): Likewise.
45         * ipa-prop.c (ipa_prop_read_section): Likewise.
46
47         * df.h (DF_NOTE): Fix typo in comment.
48
49 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
50
51         * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
52         DECL_LANG_SPECIFIC.
53
54 2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
55
56         * regmove.c (fixup_match_2): Only access call_used_regs with hard
57         regs.
58
59 2011-12-13  Andrew Pinski  <apinski@cavium.com>
60             Adam Nemet  <anemet@caviumnetworks.com>
61
62         * config/mips/mips-cpus.def: Add Octeon2.
63         * config/mips/mips-tables.opt: Regenerate.
64         * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
65         * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
66         * config/mips/octeon.md (octeon_arith): Add Octeon2.
67         (octeon_condmove): Likewise.
68         (octeon_load): Rename to ..
69         (octeon_load_o1): this.
70         (octeon_load_o2): New reserve.
71         (octeon_cop_o2): New reserve.
72         (octeon_store):  Match Octeon2 also.
73         (octeon_brj): Rename to ..
74         (octeon_brj_o1): this.
75         (octeon_brj_o2): New reserve.
76         (octeon_imul3): Rename to ...
77         (octeon_imul3_o1): this.
78         (octeon_imul3_o2): New reserve.
79         (octeon_imul): Rename to ...
80         (octeon_imul_o1): this.
81         (octeon_imul_o2): New reserve.
82         (octeon_mfhilo): Rename to ...
83         (octeon_mfhilo_o1): This.
84         (octeon_mfhilo_o2): New reserve.
85         (octeon_imadd): Rename to ...
86         (octeon_imadd_o1): this.
87         (octeon_imadd_o2): New reserve.
88         (octeon_idiv): Rename to ..
89         (octeon_idiv_o1): This.
90         (octeon_idiv_o2_si): New reserve.
91         (octeon_idiv_o2_di): Likewise.
92         (octeon_unknown): Match Octeon2 also.
93         * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
94         (mips_issue_rate): Octeon2 can issue 2 at a time.
95         * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
96         (TARGET_OCTEON2): New define.
97         (TUNE_OCTEON): Match Octeon2 also.
98
99 2011-12-13  Richard Henderson  <rth@redhat.com>
100
101         * config/sparc/tso.h: New file.
102         * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
103         * config/sparc/sparc.c (sparc_option_override): Honor
104         SUBTARGET_DEFAULT_MEMORY_MODEL.
105         * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
106
107 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
108
109         PR middle-end/51443
110         * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
111         (diagnose_tm_1): Same.
112         (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
113         (ipa_tm_scan_irr_function): Return gracefully when no
114         DECL_STRUCT_FUNCTION.
115         (ipa_tm_scan_irr_block): Believe the user on TM attributes.
116
117 2011-12-13  Martin Jambor  <mjambor@suse.cz>
118
119         PR middle-end/50628
120         * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
121         sub-accesses of scalar accesses.
122
123 2011-12-13  Martin Jambor  <mjambor@suse.cz>
124
125         PR tree-optimization/51362
126         * ipa-cp.c (estimate_local_effects): When estimated size of a
127         specialized clone is zero, bump it to one.
128
129 2011-12-13  Richard Guenther  <rguenther@suse.de>
130
131         PR lto/48354
132         * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
133         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
134         Stream DECL_ORIGINAL_TYPE.
135         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
136         Likewise.
137
138 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
139
140         Revert
141         2011-12-12  Jakub Jelinek  <jakub@redhat.com>
142
143         PR tree-optimization/51481
144         * gimple-fold.c (gimple_fold_call): Call
145         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
146         edges, but gimple_fold_builtin result can't throw.
147
148 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
149             Michael Matz  <matz@suse.de>
150
151         PR tree-optimization/51117
152         * tree-eh.c (sink_clobbers): New function.
153         (execute_lower_eh_dispatch): Call it for BBs ending with
154         internally throwing RESX.
155         * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
156         at the first real instruction.
157
158 2011-12-13  Tristan Gingold  <gingold@adacore.com>
159
160         * final.c (final_scan_insn): Guard the call to begin_epilogue
161         debug hook.
162
163 2011-12-13  Tristan Gingold  <gingold@adacore.com>
164
165         * vmsdbgout.c (vmsdbgout_write_source_line): New function.
166         (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
167         (vmsdbgout_begin_epilogue): Likewise.
168         (vmsdbgout_end_epilogue): Likewise.
169         (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
170
171 2011-12-13  Richard Guenther  <rguenther@suse.de>
172
173         PR middle-end/51481
174         * tree-cfg.c (replace_uses_by): Pass proper arguments to
175         maybe_clean_or_replace_eh_stmt.
176
177 2011-12-13  Richard Guenther  <rguenther@suse.de>
178
179         PR tree-optimization/51519
180         * ipa-inline.c (edge_badness): Use edge growth in non-guessed
181         branch probability case as well.
182
183 2011-12-13  Revital Eres  <revital.eres@linaro.org>
184
185         * modulo-sched.c (mark_loop_unsched): Free bbs.
186
187 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
188
189         PR rtl-optimization/51495
190         * function.c (thread_prologue_and_epilogue_insns): Don't add
191         to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
192         from basic blocks not needing prologue.
193
194         PR tree-optimization/51481
195         * gimple-fold.c (gimple_fold_call): Call
196         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
197         edges, but gimple_fold_builtin result can't throw.
198
199 2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>
200
201         PR rtl-optimization/21617
202         * ira-color.c (bucket_allocno_compare_func): Don't compare
203         allocno classes.  Compare number of hard registers needed.
204
205 2011-12-12  Eric Botcazou  <ebotcazou@adacore.com>
206
207         PR tree-optimization/50569
208         * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
209         in the expression of MODEL instead of just the last one.
210
211 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
212
213         PR middle-end/51510
214         * calls.c (internal_arg_pointer_based_exp_scan): Don't use
215         VEC_safe_grow_cleared if idx is smaller than VEC_length.
216
217 2011-12-12  Richard Sandiford  <richard.sandiford@linaro.org>
218
219         PR middle-end/50873
220         * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
221         instead of force_reg.  Do nothing if the address is already a
222         non-virtual pseudo register.
223
224 2011-12-12  Torvald Riegel  <triegel@redhat.com>
225
226         * gimplify.c (voidify_wrapper_expr): Add default handling for
227         outermost wrapper.
228
229 2011-12-12  Torvald Riegel  <triegel@redhat.com>
230
231         * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
232         commits as equal.
233
234 2011-12-12  Iain Sandoe  <iains@gcc.gnu.org>
235
236         * config/darwin-sections.def (zobj_const_data_section): Fix over-
237         length section name.
238
239 2011-12-11  Richard Henderson  <rth@redhat.com>
240
241         * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
242         BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
243
244 2011-12-11  Jakub Jelinek  <jakub@redhat.com>
245
246         PR tree-optimization/51485
247         * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
248         DRs in call stmts.
249
250 2011-12-11  Patrick Marlier  <patrick.marlier@gmail.com>
251
252         * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
253         edge.
254
255 2011-12-10  Richard Henderson  <rth@redhat.com>
256
257         * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
258         vec_select + vec_concat.
259         (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
260         altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
261         (vec_perm_constv16qi): New.
262         (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
263         vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
264         vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
265         * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
266         vec_select + vec_concat.
267         (paired_merge10, paired_merge01, paired_merge11): Likewise.
268         (vec_perm_constv2sf): New.
269         (vec_interleave_highv2sf, vec_interleave_lowv2sf,
270         vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
271         * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
272         vec_select + vec_concat.
273         (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
274         (vec_perm_constv2si): New.
275         * config/rs6000/vector.md (vec_interleave_highv4sf,
276         vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
277         vec_interleave_low<VEC_64>): Remove.
278         * config/rs6000/vsx.md (VS_double): New mode attribute.
279         (UNSPEC_VSX_XXPERMDI): Remove.
280         (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
281         (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
282         (vsx_xxpermdi_<VSX_L>): Change to expander.
283         (vec_perm_const<VSX_D>): New.
284         (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
285         * config/rs6000/predicates.md (const_0_to_1_operand): New.
286         (const_2_to_3_operand): New.
287         * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
288         (altivec_expand_vec_perm_const): New.
289         (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
290         (rs6000_vectorize_vec_perm_const_ok): New.
291         (rs6000_do_expand_vec_perm): New.
292         (rs6000_expand_extract_even, rs6000_expand_interleave): New.
293         * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
294         * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
295         * config/rs6000/rs6000-protos.h: Update.
296
297 2011-12-10  Richard Henderson  <rth@redhat.com>
298
299         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
300         CONST_INT to expand_vec_perm as the selector.
301         * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
302
303 2011-12-10  Richard Henderson  <rth@redhat.com>
304
305         * genmodes.c (struct mode_data): Remove wider_2x member.
306         (blank_mode): Adjust initializer.
307         (calc_wider_mode): Use XALLOCAVEC.
308         (emit_move_wider): Select double-width same-element vectors for
309         2xwider vectors.
310         * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
311         * config/i386/i386.c (doublesize_vector_mode): Remove.
312         (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
313
314 2011-12-10  Joern Rennecke  <joern.rennecke@embecosm.com>
315
316         * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
317         (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
318         (USE_STORE_POST_DECREMENT): Likewise.
319
320         * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
321         broken out of ..
322         (INCOMING_RETURN_ADDR_RTX) .. this.  Use EPIPHANY_RETURN_REGNO.
323         (DWARF_FRAME_RETURN_COLUMN): New macro.
324
325         * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
326         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
327         Split "timer" value into "timer0" and "timer1".
328         Handle page_miss, message and wand.  Don't handle static_flag.
329         Adjust warning text.
330         (epiphany_start_function): New function.
331         (epiphany_compute_function_type): Split "timer" value into "timer0"
332         and "timer1".  Handle page_miss, message and wand.
333         Don't handle static_flag.
334         (epiphany_expand_epilogue): Don't use frame_insn for status / iret
335         restore.
336         * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
337         (enum epiphany_function_type):
338         Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
339         and EPIPHANY_FUNCTION_TIMER1.
340         Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
341         Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
342         Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
343
344 2011-12-10  Nathan Sidwell  <nathan@acm.org>
345
346         PR gcov-profile/51449
347         * coverage.c (coverage_end_function): Always process the coverage
348         variables.
349
350 2011-12-09  Aldy Hernandez  <aldyh@redhat.com>
351
352         PR/51291
353         * tree.c (build_common_builtin_nodes): Do not use TM_PURE
354         attribute unless language has support for TM.
355         * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
356         the absence of TM builtins.
357
358 2011-12-09  Eric Botcazou  <ebotcazou@adacore.com>
359
360         * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
361         Also check the TYPE_MODE to recognize useless pointer conversions.
362
363 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
364
365         PR tree-optimization/51117
366         * tree-eh.c (optimize_clobbers): Don't remove just one
367         clobber, but all consecutive clobbers before RESX.
368         Use gimple_clobber_p predicate.
369
370 2011-12-09  Michael Meissner  <meissner@the-meissners.org>
371
372         * config/rs6000/rs6000.c (altivec_expand_builtin): Call
373         expand_call to return a valid funciton instead of return
374         cosnt0_rtx/NULL_RTX if there was an error with the builtin.
375         (altivec_expand_ld_builtin): Ditto.
376         (rs6000_inner_target_options): If VSX is selected as a target
377         attribute or pragma, enable ALTIVEC also.
378         (rs6000_pragma_target_parse): Call rs6000_option_override_internal
379         to do all of the standard processing when switching options,
380         including redefining appropriate macros.
381
382         PR rtl-optimization/51469
383         * varasm.c (default_binds_local_p_1): If the symbol is a gnu
384         indirect function, mark the symbol as non-local.
385
386 2011-12-09  H.J. Lu  <hongjiu.lu@intel.com>
387
388         PR bootstrap/51479
389         * Makefile.in (errors.o): Restored.
390
391 2011-12-09  Richard Guenther  <rguenther@suse.de>
392
393         PR lto/48042
394         * tree.c (free_lang_data_in_decl): Remove freeing conditional
395         on debuginfo level.
396
397 2011-12-09  Joern Rennecke  <joern.rennecke@embecosm.com>
398
399         PR middle-end/40154
400         * emit-rtl.c (set_dst_reg_note): New function.
401         * rtl.h (set_dst_reg_note): Declare.
402         * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
403         (emit_libcall_block, expand_fix): Likewise.
404         * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
405         * expmed.c (expand_mult_const, expand_divmod): Likewise.
406         * reload1.c (gen_reload): Likewise.
407
408         * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
409         * expmed.c (expand_divmod): Likewise.
410         * combine.c (simplify_if_then_else): Likewise.
411
412 2011-12-09  Kai Tietz  <ktietz@redhat.com>
413
414         * ira-color.c (print_hard_regs_subforest): Use
415         HOST_WIDEST_INT_PRINT_DEC instead of %lld.
416         (allocno_hard_regs): Change type of cost member
417         to HOST_WIDEST_INT.
418         (add_allocno_hard_regs): Change type of argument cost
419         to HOST_WIDEST_INT.
420         * ira-conflict.c (build_conflict_bit_table): Replace use
421         of long-long by HOST_WIDEST_INT.
422
423 2011-12-09  Georg-Johann Lay  <avr@gjlay.de>
424
425         PR target/51425
426         * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
427         zero_extract:QIHI instead of zero_extract:HI.
428
429 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
430             Andrew Pinski  <apinski@cavium.com>
431
432         PR tree-optimization/51117
433         * tree-eh.c (optimize_clobbers): New function.
434         (execute_lower_eh_dispatch): Call it.
435
436 2011-12-09  Richard Guenther  <rguenther@suse.de>
437
438         PR tree-optimization/51482
439         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
440         Make sure to only create REAL_TYPE and INTEGER_TYPE component
441         vectors.
442
443 2011-12-09  Kai Tietz  <ktietz@redhat.com>
444
445         * implicit-zee.c (num_realized): Change type to long.
446         (num_ze_opportunities): Likewise.
447
448 2011-12-08  Andrew Pinski  <apinski@cavium.com>
449
450         * config/mips/mips-cpus.def (octeon+): New CPU.
451         * config/mips/mips-tables.opt: Regenerate.
452         * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
453
454 2011-12-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
455
456         PR middle-end/39976
457         * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
458         (struct hashable_expr): Add struct phi field.
459         (initialize_hash_element): Handle phis; change to use XCNEWVEC.
460         (hashable_expr_equal_p): Handle phis.
461         (iterative_hash_hashable_expr): Likewise.
462         (print_expr_hash_elt): Likewise.
463         (free_expr_hash_elt): Likewise.
464         (dom_opt_enter_block): Create equivalences from redundant phis.
465         (eliminate_redundant_computations): Handle redundant phis.
466         (lookup_avail_expr): Handle phis.
467
468 2011-12-08  Jakub Jelinek  <jakub@redhat.com>
469
470         PR tree-optimization/51466
471         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
472         TREE_SIDE_EFFECTS.
473
474 2011-12-08  Richard Guenther  <rguenther@suse.de>
475
476         * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
477         volatile when processing operands of an ADDR_EXPR.
478         (get_indirect_ref_operands): Likewise.
479         (get_tmr_operands): Likewise.
480         (get_expr_operands): Likewise.
481
482 2011-12-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
483
484         PR target/50395
485         * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
486         the literal pool as jump insn.
487
488 2011-12-08  Richard Guenther  <rguenther@suse.de>
489
490         PR tree-optimization/49772
491         * tree-inline.c (optimize_inline_calls): Remove bail out
492         on errors.
493
494 2011-12-08  Richard Guenther  <rguenther@suse.de>
495
496         PR lto/50747
497         * lto-streamer-out.c (produce_symtab): Remove asserts.
498
499 2011-12-08  Richard Guenther  <rguenther@suse.de>
500
501         PR lto/49945
502         * lto-streamer-out.c (tree_is_indexable): Localize variably
503         modified types and their FIELD_DECLs.
504
505 2011-12-08  Eric Botcazou  <ebotcazou@adacore.com>
506
507         PR tree-optimization/51315
508         * tree.h (get_object_or_type_alignment): Declare.
509         * expr.c (get_object_or_type_alignment): Move to...
510         * builtins.c (get_object_or_type_alignment): ...here.  Add assertion.
511         * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
512         (tree_non_aligned_mem_p): ...this.  Add ALIGN parameter.  Look into
513         MEM_REFs and use get_object_or_type_alignment for them.
514         (build_accesses_from_assign): Adjust for above change.
515         (access_precludes_ipa_sra_p): Likewise.
516
517 2011-12-08  Richard Guenther  <rguenther@suse.de>
518
519         PR lto/48437
520         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
521         extern declarations.
522
523 2011-12-07  Andrew Pinski  <apinski@cavium.com>
524
525         PR middle-end/45416
526         * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
527         SSA-expand.
528
529 2011-12-07  Richard Guenther  <rguenther@suse.de>
530
531         PR tree-optimization/50823
532         * ipa-inline.c (edge_badness): Do not account for the number of
533         remaining calls.
534
535 2011-12-07  Martin Jambor  <mjambor@suse.cz>
536
537         PR tree-optimization/50744
538         * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive,
539         compute evaluation in HOST_WIDEST_INT.
540         (safe_add): New function
541         (propagate_effects): Use safe_add to accumulate effects.
542
543 2011-12-06  Joel Sherrill <joel.sherrill@oarcorp.com>
544
545         * config/rs6000/rtems.h: Switch to using global_options_set
546         in SUBSUBTARGET_OVERRIDE_OPTIONS.
547
548 2011-12-06  David S. Miller  <davem@davemloft.net>
549
550         * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
551
552 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
553
554         * config/avr/avr.c (avr_file_start): Fix missing ,
555
556 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
557
558         PR target/51354
559         * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
560         unconditionally.
561
562 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
563
564         Forward-port from gcc-4_6-branch r181936 2011-12-02.
565         * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
566         AT86RF401 have a 16-bit SP (their manual is bogus).
567
568 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
569
570         Forward-port from gcc-4_6-branch r181936 2011-12-02.
571
572         PR target/51002
573         * config/avr/avr.md (movhi_sp_r): Set insn condition to
574         !AVR_HAVE_8BIT_SP.
575         * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
576         %B0,__SP_H__" if AVR_HAVE_8BIT_SP.
577         (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
578
579 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
580
581         PR target/51409
582         PR target/49868
583         * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
584         ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
585         ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
586         (avr_addrspace_t): New typedef.
587         (avr_addrspace): New declaration.
588         * config/avr/avr-c.c (avr_toupper): New static function.
589         (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
590         avr_addrspace to get address space information.
591         * config/avr/avr.c (avr_addrspace): New variable.
592         (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
593         avr_asm_named_section, avr_section_type_flags,
594         avr_asm_select_section, avr_addr_space_address_mode, 
595         avr_addr_space_convert, avr_emit_movmemhi): Use it.
596         (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
597         (avr_pgm_segment): Remove.
598
599 2011-12-06  Richard Guenther  <rguenther@suse.de>
600
601         PR middle-end/50601
602         * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
603         quirk adjustjment ...
604         * passes.c (rest_of_decl_compilation): ... here.
605
606 2011-12-06  Richard Guenther  <rguenther@suse.de>
607
608         PR middle-end/51436
609         * gimple-fold.c (gimplify_and_update_call_from_tree): Guard
610         vdef check for the fact we do not have virtual operands when
611         not optimizing.
612
613 2011-12-06  Richard Guenther  <rguenther@suse.de>
614
615         PR tree-optimization/51245
616         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
617         New function.
618         (vn_reference_lookup_3): Use it.  Properly valueize all refs
619         we create.
620
621 2011-12-06  Iain Sandoe  <iains@gcc.gnu.org>
622
623         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
624         rs6000_current_abi.
625
626 2011-12-06  Richard Guenther  <rguenther@suse.de>
627
628         PR tree-optimization/51363
629         * gimple.c (gimple_rhs_has_side_effects): Remove.
630         * gimple.h (gimple_rhs_has_side_effects): Likewise.
631         * tree-ssa-dom.c (optimize_stmt): Simplify conditional.
632
633 2011-12-06  Alan Modra  <amodra@gmail.com>
634
635         PR target/50906
636         * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
637         Do not mark r11 setup as frame-related.  Pass correct offset to
638         rs6000_emit_savres_rtx.  Correct out-of-line rs6000_frame_related
639         arguments.  Correct sp_offset.  Remove "offset" fudge from
640         in-line rs6000_frame_related call.  Rename misleading variable.
641         Fix comments and whitespace.  Tidy some expressions.
642         (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
643         to r11 in out-of-line case.  Correct sp_offset.  Pass correct
644         offset to rs6000_emit_savres_rtx.  Rename misleading variable.
645         Fix comments and whitespace.  Tidy some expressions.
646         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
647         adjustment when !saving_GPRs_inline.  Correct register mode
648         used in address calcs.
649         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
650         !restoring_GPRs_inline.
651
652 2011-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
653
654         * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
655         formatting character for vmov.f64 case.
656
657 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
658
659         PR tree-optimization/51396
660         * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
661         if MUL_RESULT has zero uses.
662
663         PR debug/51410
664         * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
665         for debug info if scope is file_scope.
666
667         PR c/51339
668         * c-decl.c (c_finish_incomplete_decl, finish_decl): Call
669         relayout_decl instead of layout_decl.
670
671 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
672
673         * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
674         if there is in epilogue.
675
676 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
677
678         * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
679         to emit_library_call_value.
680         (expand_atomic_compare_and_swap): Likewise.
681
682 2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
683
684         PR other/50775
685         * ira-int.h (struct ira_object): Remove add_data.
686         (OBJECT_ADD_DATA): Remove.
687
688         * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
689         initialization.
690
691         * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
692         allocno_hard_regs_t, allocno_hard_regs.
693         (object_hard_regs_node_t, object_hard_regs_node): Rename to
694         allocno_hard_regs_node_t and allocno_hard_regs_node.
695         (struct allocno_color_data): Add new member last_process.  Move
696         profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
697         from object_color_data.
698         (object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
699         Remove.
700         (curr_allocno_process): New static variable.
701         (object_hard_regs_eq, object_hard_regs_htab): Rename to
702         allocno_hard_regs_eq and allocno_hard_regs_htab.
703         (init_object_hard_regs, finish_object_hard_regs): Rename to
704         init_allocno_hard_regs and finish_allocno_hard_regs.
705         (object_hard_regs_compare, object_hard_regs_node_t): Rename to
706         allocno_hard_regs_compare and allocno_hard_regs_node_t.
707         (create_new_object_hard_regs_node): Rename to
708         create_new_allocno_hard_regs_node.
709         (add_new_object_hard_regs_node_to_forest): Rename to
710         add_new_allocno_hard_regs_node_to_forest.
711         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
712         Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
713         (setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
714         (remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
715         (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
716         Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
717         (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
718         allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
719         (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
720         allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
721         (object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
722         (setup_object_hard_regs_subnode_index): Rename to
723         setup_allocno_hard_regs_subnode_index.
724         (get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
725         (form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
726         (finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
727         (finish_object_hard_regs_nodes_forest): Rename to
728         finish_allocno_hard_regs_nodes_forest.
729         (setup_left_conflict_sizes_p): Use allocno data instead of object
730         ones.  Process conflict allocnos once.
731         (update_left_conflict_sizes_p): Use allocno data instead of object
732         ones.  Change prototype signature.
733         (empty_profitable_hard_regs): Use allocno data instead of object
734         ones.
735         (setup_profitable_hard_regs): Ditto.
736         (get_conflict_profitable_regs): Rename to
737         get_conflict_and_start_profitable_regs.  Use allocno data for
738         profitable regs calculation.
739         (check_hard_reg_p): Change prototype signature.  Check profitable
740         regs for allocno not the objects.
741         (assign_hard_reg): Process conflict allocnos only once for
742         updating conflict costs.
743         (setup_allocno_available_regs_num): Use allocno data instead of
744         object ones.  Modify debug output.
745         (color_pass): Remove initialization and finalization of object
746         color data.
747
748 2011-12-05  Kazu Hirata  <kazu@codesourcery.com>
749
750         PR target/51408
751         * config/arm/arm.md (*minmax_arithsi): Always require the else
752         clause in the MINUS case.
753
754 2011-12-05  Richard Guenther  <rguenther@suse.de>
755
756         PR tree-optimization/50904
757         * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
758         (MEM_ANALYZABLE): New.
759         (memory_references): Remove clobbered_vops and vop_ref_map
760         members, add all_refs_stored_in_loop member.
761         (memref_free): Adjust.
762         (mem_ref_alloc): Likewise.
763         (gather_mem_refs_stmt): Do not record clobbers, instead
764         record refs for unanalyzable stmts.
765         (gather_mem_refs_in_loops): Do not propagate clobbers.
766         (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
767         record_vop_access, get_vop_accesses, get_vop_stores,
768         add_vop_ref_mapping): Remove.
769         (create_vop_ref_mapping_loop): Adjust to simply record all
770         stores.
771         (analyze_memory_references): Adjust.
772         (refs_independent_p): Check for not analyzable refs.
773         (can_sm_ref_p): Likewise.
774         (ref_indep_loop_p_1): Simplify.
775         (tree_ssa_lim_finalize): Adjust.
776
777         * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
778         rather than magic constants.  Assign zero cost to PAREN_EXPR
779         and SSA_NAME copies.  Assign cost proportional to the vector
780         size for vector constructors.
781
782 2011-12-05  Richard Guenther  <rguenther@suse.de>
783
784         * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
785         * tree-ssa-alias.c (ao_ref_init): Initialize it.
786         (ao_ref_init_from_ptr_and_size): Likewise.
787         (refs_may_alias_p_1): Two volatile accesses conflict.
788         (ref_maybe_used_by_call_p_1): Likewise.
789         (call_may_clobber_ref_p_1): Likewise.
790         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
791         volatile_p field.
792
793 2011-12-05  Richard Guenther  <rguenther@suse.de>
794
795         * tree-ssa.c (verify_ssa): Verify SSA names in the loop
796         over all SSA names.  Remove SSA operand checking, call
797         verify_ssa_operands.
798         * tree-ssa-operands.h (verify_ssa_operands): Declare.
799         * tree-ssa-operands.c (verify_ssa_operands): New function.
800
801 2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
802
803         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
804         * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
805         * config/arm/constraints.md ("Dt"): New constraint.
806         * config/arm/predicates.md
807         (const_double_vcvt_power_of_two_reciprocal): New.
808         * config/arm/vfp.md (FCVTI32typename): New.
809         (FCVT): New iterator.
810         (*combine_vcvt_f32_<FCVTI32typename>): New.
811         (*combine_vcvt_f64_<FCVTI32typename>): New.
812
813 2011-12-05  Richard Guenther  <rguenther@suse.de>
814
815         * cgraph.c (cgraph_create_edge_1): Initialize
816         call_stmt_cannot_inline_p from the stmt if possible.
817         (cgraph_make_edge_direct): Likewise.
818         * gimple-streamer-in.c (input_gimple_stmt): Do not
819         call gimple_call_set_cannot_inline.
820         * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift
821         values.
822         (gimple_call_set_cannot_inline): Remove.
823         (gimple_call_cannot_inline_p): Likewise.
824         * ipa-inline-analysis.c (initialize_inline_failed): Look
825         at the edge call_stmt_cannot_inline_p flag.
826         * ipa-inline.c (can_inline_edge_p): Likewise.
827         (early_inliner): Only update the edge flag.
828         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
829         (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
830         * cgraphunit.c (assemble_thunk): Likewise.
831         * gimple-fold.c (gimple_fold_call): Likewise.
832
833         * tree.h (CALL_CANNOT_INLINE_P): Remove.
834         * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
835         * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
836         alloca calls inline.
837         * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
838         * gimple.c (gimple_build_call_from_tree): Do not read
839         CALL_CANNOT_INLINE_P.
840         * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
841
842 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
843             Eric Botcazou  <ebotcazou@adacore.com>
844
845         PR middle-end/51323
846         PR middle-end/50074
847         * calls.c (internal_arg_pointer_exp_state): New variable.
848         (internal_arg_pointer_based_exp_1,
849         internal_arg_pointer_exp_scan): New functions.
850         (internal_arg_pointer_based_exp): New function.
851         (mem_overlaps_already_clobbered_arg_p): Use it.
852         (expand_call): Free internal_arg_pointer_exp_state.cache vector
853         and clear internal_arg_pointer_exp_state.scan_start.
854
855 2011-12-04  Kaz Kojima  <kkojima@gcc.gnu.org>
856
857         * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
858         * config/sh/sync.md: New file.
859         * config/sh/sh.md: Include sync.md.
860         * config/sh/sh.opt (msoft-atomic): New option.
861         * doc/invoke.texi (SH Options): Document it.
862
863 2011-12-04  Nathan Sidwell  <nathan@acm.org>
864
865         * gcov-io.h (struct gcov_info): Replace trailing array with
866         pointer to array.
867         * profile.c (branch_prob): Only call renamed
868         coverage_begin_function once.
869         * coverage.h (coverage_begin_output): Rename to ...
870         (coverage_begin_function): ... here.
871         * coverage.c (struct function_list): Rename to ...
872         (struct coverage_data): ... this.  Update all uses.
873         (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New
874         globals.
875         (bbg_file_opened, bbg_function_announced): Remove.
876         (get_coverage_counts): Adjust message.
877         (coverage_begin_ouput): Rename to ...
878         (coverage_begin_function): ... here.  Move file opening to
879         coverage_init.  Adjust for being called only once.
880         (coverage_end_function): Remove bbg file and inhibit further
881         output here on error.
882         (build_info_type): Adjust for change to pointer to array.
883         (build_info): Receive array of function pointers and adjust.
884         (create_coverage): Break into ...
885         (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
886         ... these, and adjust.
887         (coverage_init): Open the notes file here.  Tidy.
888         (coverage_finish): Call coverage_obj_init etc.
889
890 2011-12-04  Ira Rosen  <ira.rosen@linaro.org>
891
892         PR middle-end/51285
893         * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
894         phi nodes for outer loop in case of double reduction.
895
896 2011-12-04  Jérémie Detrey  <Jeremie.Detrey@loria.fr>
897
898         PR target/51393
899         * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
900         parameter as long long.
901
902 2011-12-04  Richard Sandiford  <rdsandiford@googlemail.com>
903
904         PR middle-end/51351
905         * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
906         in the external names.
907
908 2011-12-03  Jack Howarth <howarth@bromo.med.uc.edu>
909
910         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
911         non-PIC code when targeting 10.7 or later.
912
913 2011-12-03  Iain Sandoe  <iains@gcc.gnu.org>
914
915         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
916         Darwin >= 10.
917         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
918         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
919
920 2011-12-03  Jakub Jelinek  <jakub@redhat.com>
921
922         * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
923         VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
924         VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
925         (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
926         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
927         and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
928
929         PR debug/50317
930         * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
931         vars that aren't referenced.
932         (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
933         of unreferenced local vars.
934         * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
935         TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
936
937 2011-12-03  Anatoly Sokolov  <aesok@post.ru>
938
939         * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
940         * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
941         * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
942         (arm_libcall_value_1, arm_function_value_regno_p): New function.
943         (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
944         (aapcs_libcall_value): Make static.
945         (arm_libcall_value): Add static qualifier.
946
947 2011-12-02  Jakub Jelinek  <jakub@redhat.com>
948
949         PR target/51387
950         * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
951         V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
952         permutation instead of extract even permutation.
953
954 2011-12-02  Nathan Sidwell  <nathan@acm.org>
955
956         * gcov.c (struct arc_info): Add is_throw field.
957         (struct (block_info): Add exceptional field, reduce flags size to
958         account for it.
959         (struct function_info): Add has_catch field.
960         (struct line_info): Add unexceptional field.
961         (process_file): Call find_exception_blocks if necessary.
962         (read_graph_file): Adjust.  Note if an exceptional edge is seen.
963         (find_exception_blocks): New.
964         (add_line_counts): Set line's unexceptional flag if not
965         exceptional.
966         (output_branch_count): Note exceptional arcs, lines and blocks.
967         * gcov-dump.c (tag_arcs): Decode arc flags.
968         * doc/gcov.texi: Document '=====' lines.
969
970 2011-12-02  Anatoly Sokolov  <aesok@post.ru>
971
972         * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
973         PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
974         * config/ia64/ia64-protos.h (ia64_print_operand,
975         ia64_print_operand_address): Remove.
976         * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
977         TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
978         Define.
979         (ia64_print_operand_punct_valid_p): New function.
980         (ia64_print_operand, ia64_print_operand_address): Make static.
981
982 2011-12-02  Michael Meissner  <meissner@the-meissners.org>
983
984         PR target/51390
985         * config/rs6000/rs6000.c (def_builtin): Use the correct field to
986         figure out the function's attributes.
987         (struct builtin_description): Mark mask field as const since we no
988         longer need to modify it for SPE and PAIRED builtins.
989
990 2011-12-02  Joseph Myers  <joseph@codesourcery.com>
991
992         Revert:
993
994         2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
995
996         PR rtl-opt/37451
997         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
998         zero extend count after the correction to it is done.
999         (doloop_optimize): Update call to doloop_modify, don't zero extend
1000         count before call.
1001
1002         2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1003
1004         PR rtl-opt/37782
1005         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1006         mode count is in.
1007         (doloop_optimize): Update call to doloop_modify.
1008
1009 2011-12-02  Richard Guenther  <rguenther@suse.de>
1010
1011         PR lto/47259
1012         * ipa.c (varpool_externally_visible_p): Register variables
1013         are always externally visible.
1014
1015 2011-12-02  Sameera Deshpande  <sameera.deshpande@arm.com>
1016
1017         * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
1018           non-NULL.
1019
1020 2011-12-02  Martin Jambor  <mjambor@suse.cz>
1021
1022         PR tree-optimization/50622
1023         * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
1024         if both lacc and racc are grp_partial_lhs.
1025
1026 2011-12-01  Kaz Kojima  <kkojima@gcc.gnu.org>
1027
1028         PR target/50814.
1029         * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
1030         TARGET_SH3.
1031         (shl_sext_kind): Likewise.
1032         * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
1033         * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
1034         (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
1035         (ashlsi3): Likewise.
1036         (ashrsi3_d): Likewise.
1037         (lshrsi3_d): Likewise.
1038         (lshrsi3): Likewise.
1039
1040 2011-12-01  Diego Novillo  <dnovillo@google.com>
1041
1042         PR bootstrap/51346
1043         * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
1044         use the statement's inline indicator instead of E's.
1045         Remove consistency check.
1046
1047 2011-12-01  Diego Novillo  <dnovillo@google.com>
1048
1049         PR bootstrap/51346
1050         Revert
1051
1052         2011-11-29  Diego Novillo  <dnovillo@google.com>
1053
1054         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1055         Update field call_stmt_cannot_inline_p from call
1056         graph edge, if needed.
1057         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
1058
1059 2011-12-01  Nathan Sidwell  <nathan@acm.org>
1060
1061         PR gcov-profile/51113
1062         * coverage.c (build_var): Keep coverage variables static.
1063
1064 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
1065
1066         PR tree-optimization/51356
1067         * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
1068         vectype doesn't have VECTOR_MODE_P.
1069
1070         PR debug/50317
1071         * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
1072         as unnecessary a store to a variable with gimple reg type.
1073         * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
1074         on local unreferenced variables.
1075         * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
1076         for !target_for_debug_bind variables.
1077
1078 2011-12-01  Patrick Marlier  <patrick.marlier@gmail.com>
1079
1080         PR middle-end/51273
1081         * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
1082         * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
1083         * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
1084
1085 2011-12-01  Andrew Pinski  <apinski@cavium.com>
1086
1087         PR lto/51198
1088         * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
1089         DECL_INITIAL also.
1090
1091 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
1092
1093         PR tree-optimization/51246
1094         * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
1095
1096         PR rtl-optimization/51014
1097         * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
1098         both from bb and orig_bb.
1099
1100 2011-12-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1101
1102         PR tree-optimization/50802
1103         * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
1104         considering what happens to ranges during sign changes and/or
1105         intermediate narrowing conversions.
1106
1107 2011-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1108
1109         PR middle-end/50283
1110         * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
1111         (in_nullified_branch_delay): Likewise.
1112         (in_call_delay): Likewise.
1113
1114 2011-11-30  Richard Henderson  <rth@redhat.com>
1115
1116         * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
1117         boolean return is true.
1118
1119 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
1120
1121         PR rtl-optimization/51044
1122         * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
1123         rather than just insn body.
1124
1125         PR target/50725
1126         * function.c (thread_prologue_and_epilogue_insns): If
1127         stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
1128         regset.
1129
1130         PR middle-end/51089
1131         * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
1132         avoid creating duplicate edges here.
1133         (cleanup_empty_eh_unsplit): And remove it in the caller.
1134
1135 2011-11-30  Andrew Pinski  <apinski@cavium.com>
1136
1137         PR c/51321
1138         * c-parser.c (c_parser_postfix_expression): Check groktypename results
1139         before looking at the main variant.
1140
1141 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
1142
1143         PR rtl-optimization/48721
1144         * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
1145         reg_pending_barrier to TRUE_BARRIER.
1146
1147         PR rtl-optimization/48721
1148         * sched-ebb.c (begin_move_insn): Insert empty unreachable
1149         block after BARRIER if insn is followed by it.
1150
1151 2011-11-30  Richard Henderson  <rth@redhat.com>
1152
1153         * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
1154         * config/sparc/sparc.opt (mmemory-model=): New option.
1155         * doc/invoke.texi (Sparc Options): Document it.
1156         * config/sparc/sparc.c (sparc_option_override): Provide default
1157         for sparc_memory_model.
1158         (sparc_emit_membar_for_model): Omit barrier combinations that are
1159         implied by the memory model.
1160
1161 2011-11-30  Richard Henderson  <rth@redhat.com>
1162
1163         * config/sparc/sync.md (I124MODE): New mode iterator.
1164         (memory_barrier): Remove.
1165         (atomic_exchangesi): New.
1166         (swapsi): Rename from *swapsi.
1167         (atomic_test_and_set<I124MODE>): New.
1168         (ldstubqi): Rename from *ldstubqi, merge with expander.
1169         (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
1170         (sync_lock_test_and_setsi): Remove.
1171         (sync_lock_test_and_set<I12MODE>): Remove.
1172
1173 2011-11-30  Richard Henderson  <rth@redhat.com>
1174
1175         * config/sparc/constraints.md ("w"): New.
1176         * config/sparc/predicates.md (mem_noofs_operand): New.
1177         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
1178         Generate the boolean result of the atomic_compare_exchange.
1179         (sparc_expand_compare_and_swap): New.
1180         * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
1181         (atomic_compare_and_swap<I48MODE>_1): Rename from
1182         *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
1183         (*atomic_compare_and_swapdi_v8plus): Rename from
1184         *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
1185         (sync_compare_and_swap<I12MODE>): Remove.
1186         (sync_compare_and_swap<I48MODE>): Remove.
1187
1188 2011-11-30  Richard Henderson  <rth@redhat.com>
1189
1190         * config/sparc/predicates.md (register_or_v9_zero_operand): New.
1191         * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
1192         * config/sparc/sync.md (atomic_load<I>): New.
1193         (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
1194
1195 2011-11-30  Richard Henderson  <rth@redhat.com>
1196
1197         * config/sparc/predicates.md (zero_or_v7_operand): New.
1198         * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
1199         * config/sparc/sparc-protos.h: Update.
1200         * config/sparc/sync.md (mem_thread_fence): New.
1201         (memory_barrier): Use sparc_emit_membar_for_model.
1202         (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
1203         (*membar_v8): Accept and ignore the membar mask.
1204         (*membar): Accept and print the membar mask.
1205
1206 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1207
1208         * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
1209         * config/arm/arm.md (mul64): New attribute.
1210         (generic_sched): Cortex-A15 is not scheduled generically.
1211         (cortex-a15.md): Include.
1212         * config/arm/cortex-a15.md: New machine description.
1213         * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
1214
1215 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1216
1217         * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
1218
1219 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
1220
1221         * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
1222         * doc/tm.texi: Regenerate.
1223         * flags.h (flag_next_runtime): Remove references.
1224         * toplev.c: Likewise.
1225         * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
1226         * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
1227         * config/darwin.c (darwin_override_options): Provide default
1228         Objective-C abi settings and target conflict checks.
1229         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
1230         code. Adjust indenting.
1231
1232 2011-11-29  Joseph Myers  <joseph@codesourcery.com>
1233
1234         * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
1235         (REG_CLASS_CONTENTS): Add NON_SP_REGS.
1236         (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
1237         * config/sh/constraints.md (u): New constraint.
1238
1239 2011-11-29  Oleg Endo  <oleg.endo@t-online.de>
1240
1241         PR target/51337
1242         * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
1243         register is being loaded from a pseudo in memory.
1244
1245 2011-11-29  DJ Delorie  <dj@redhat.com>
1246
1247         * config.gcc (rl78-*-elf): New case.
1248         * doc/extend.texi: Add RL78 documentation.
1249         * doc/invoke.texi: Likewise.
1250         * doc/md.texi: Likewise.
1251         * doc/contrib.texi: Add RL78.
1252         * doc/install.texi: Add rl78-*-elf.
1253         * config/rl78: New directory for the Renesas RL78.
1254
1255 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
1256
1257         PR tree-optimization/51247
1258         * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
1259         types instead of adding 1 subtract -1 and instead of subtracting 1
1260         add -1 to avoid overflows.
1261
1262 2011-11-29  Andrew MacLeod  <amacleod@redhat.com>
1263
1264         PR target/50123
1265         * optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
1266         instructions for a FECTH_OP or OP_FECTH sequence.
1267         (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
1268
1269 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
1270
1271         * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
1272         (movdi_via_fpu): Remove.
1273         (loaddi_via_fpu): New insn pattern.
1274         (storedi_via_fpu): Ditto.
1275         (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
1276         (atomic_storedi_fpu): Ditto.
1277         * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
1278         (subst_stack_regs_pat): Handle UNSPEC_STA.
1279
1280 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
1281
1282         * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
1283         allocate scratch memory for alternative 0.
1284
1285 2011-11-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1286
1287         * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
1288         handling to centralize more of the builtins in this file.  Change
1289         some builtin enumerations to be more consistant.  Use a new mask
1290         to hold the current builtins, including SPE and PAIRED builtins
1291         which no longer are set via target_flags masks.  Add
1292         -mdebug=builtin debug support.  For power machines, define all
1293         Altivec and VSX buitins when the compiler starts, but don't allow
1294         the use of a builtin unless the appropriate switch is used, or
1295         #pragma GCC target is used to change the options.  If the user
1296         uses #pragma GCC target, update the appropriate hardware macros.
1297         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
1298         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
1299         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
1300         (rs6000_define_or_undefine_macro): Ditto.
1301         (rs6000_target_modify_macros): Ditto.
1302         (rs6000_cpu_cpp_builtins): Ditto.
1303         (altivec_overloaded_builtins): Ditto.
1304         (altivec_build_resolved_builtin): Ditto.
1305         * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
1306         (rs6000_builtin_info): Ditto.
1307         (def_builtin): Ditto.
1308         (enable_mask_for_builtins): Ditto.
1309         (DEBUG_FMT_X): Ditto.
1310         (rs6000_debug_reg_global): Ditto.
1311         (rs6000_builtin_mask_calculate): Ditto.
1312         (rs6000_option_override_internal): Ditto.
1313         (rs6000_builtin_conversion): Ditto.
1314         (rs6000_builtin_vectorized_function): Ditto.
1315         (bdesc_3arg): Ditto.
1316         (bdesc_dst): Ditto.
1317         (bdesc_2arg): Ditto.
1318         (builtin_description_predicates): Ditto.
1319         (bdesc_altivec_preds): Ditto.
1320         (bdesc_spe_predicates): Ditto.
1321         (bdesc_spe_evsel): Ditto.
1322         (bdesc_paired_preds): Ditto.
1323         (bdesc_abs): Ditto.
1324         (bdesc_1arg): Ditto.
1325         (rs6000_overloaded_builtin_p): Ditto.
1326         (rs6000_expand_unop_builtin): Ditto.
1327         (bdesc_2arg_spe): Ditto.
1328         (spe_expand_builtin): Ditto.
1329         (rs6000_invalid_builtin): Ditto.
1330         (rs6000_expand_builtin): Ditto.
1331         (rs6000_init_builtins): Ditto.
1332         (spe_init_builtins): Ditto.
1333         (paired_init_builtins): Ditto.
1334         (altivec_init_builtins): Ditto.
1335         (builtin_function_type): Ditto.
1336         (rs6000_common_init_builtins): Ditto.
1337         (rs6000_builtin_reciprocal): Ditto.
1338         (rs6000_builtin_mask_names): Ditto.
1339         (rs6000_pragma_target_parse): Ditto.
1340         (rs6000_function_specific_print): Ditto.
1341         * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
1342         (MASK_DEBUG_ALL): Ditto.
1343         (TARGET_DEBUG_BUILTIN): Ditto.
1344         (TARGET_EXTRA_BUILTINS): Ditto.
1345         (REGISTER_TARGET_PRAGMAS): Ditto.
1346         (enum rs6000_btc): Ditto.
1347         (RS6000_BTC_*): Ditto.
1348         (RS6000_BTM_*): Ditto.
1349         (enum rs6000_builtins): Ditto.
1350         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
1351         (rs6000_target_modify_macros): Ditto.
1352         (rs6000_target_modify_macros_ptr): Ditto.
1353
1354         * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
1355         standard name for converting vector unsigned values to floating
1356         point.  Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
1357         is handled by machine independent code.
1358         * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
1359         (rs6000_builtin_conversion): Ditto.
1360
1361 2011-11-29  Dodji Seketeli  <dodji@redhat.com>
1362
1363         * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
1364         (maybe_unwind_expanded_macro_loc): Adjust.
1365
1366 2011-11-29  David Edelsohn  <dje.gcc@gmail.com>
1367             Aldy Hernandez  <aldyh@redhat.com>
1368
1369         * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
1370         if DECL_ONE_ONLY.
1371         (ipa_tm_create_version): Same.
1372
1373 2011-11-29  Bernd Schmidt  <bernds@codesourcery.com>
1374
1375         * haifa-sched.c (recompute_todo_spec): Simplify and correct the
1376         code checking for a clobber of a condition register when deciding
1377         whether to predicate.
1378
1379 2011-11-29  Diego Novillo  <dnovillo@google.com>
1380
1381         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1382         Update field call_stmt_cannot_inline_p from call graph edge, if needed.
1383         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
1384
1385 2011-11-29  Sameera Deshpande  <sameera.deshpande@arm.com>
1386
1387         * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
1388         (movdf_soft_insn): Likewise.
1389         * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
1390         * config/arm/neon.md (neon_mov<mode>): Likewise.
1391         * config/arm/vfp.md (movdi_vfp): Likewise.
1392         (movdi_vfp_cortexa8): Likewise.
1393         (movdf_vfp): Likewise.
1394
1395 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
1396
1397         PR middle-end/50074
1398         * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
1399         EXPAND_SUM modifier.
1400
1401 2011-11-29  Ira Rosen  <ira.rosen@linaro.org>
1402
1403         PR tree-optimization/51301
1404         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
1405         the last statement doesn't convert to a bigger type than the original
1406         type of the computation.
1407
1408 2011-11-28  Richard Henderson  <rth@redhat.com>
1409
1410         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
1411         Handle overlap between retval and oldval.  Always compute boolval
1412         from CR0 EQ value.
1413
1414 2011-11-28  Jakub Jelinek  <jakub@redhat.com>
1415
1416         PR debug/50317
1417         * tree-ssa.c (execute_update_addresses_taken): Remove
1418         var ={v} {CLOBBER} stmts instead of rewriting them into
1419         var_N ={v} {CLOBBER}.
1420
1421         PR middle-end/50907
1422         * function.c (convert_jumps_to_returns): When redirecting an edge
1423         succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
1424
1425         PR tree-optimization/50078
1426         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
1427         TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
1428
1429         PR tree-optimization/50682
1430         * tree-eh.c (maybe_remove_unreachable_handlers): New function.
1431         * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
1432         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
1433
1434 2011-11-28  Georg-Johann Lay  <avr@gjlay.de>
1435
1436         * doc/extend.texi (AVR Built-in Functions): Add documentation for
1437         __builtin_avr_map8 and __builtin_avr_map16.
1438
1439         * config/avr/avr.md: Document new %t and %T asm output codes.
1440         (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
1441         (adjust_len): Add map_bits.
1442         (map_bitsqi, map_bitshi): New insns.
1443         * config/avr/avr-protos.h (avr_out_map_bits): New.
1444         * config/avr/avr-protos.c (print_operand): Implement %t and %T.
1445         (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
1446         (avr_double_int_push_digit): New function.
1447         (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
1448         (avr_sig_map, avr_map_hamming_byte): New functions.
1449         (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
1450         avr_out_map_bits): New functions.
1451         (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
1452         (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
1453         (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
1454         (avr_expand_builtin): ...and expand them.
1455         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
1456         __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
1457
1458 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
1459
1460         PR target/51278
1461         * config/mips/mips.c (mips_rtx_costs): Handle baddu.
1462
1463 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
1464
1465         * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
1466
1467 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
1468
1469         * config/mips/mips-protos.h (mips_emit_binary): Declare.
1470         * config/mips/mips.c (mips_emit_binary): Make global.
1471         (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
1472         (mips_conditional_register_usage): Don't treat LO and HI as
1473         register operands in MIPS16 mode.
1474         (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
1475         for MIPS16 code.
1476         * config/mips/predicates.md (muldiv_target_operand): New predicate.
1477         (move_operand): Allow hilo_operand.
1478         * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
1479         target of MIPS16 multiplies, then move it into the target register.
1480         (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
1481         (<u>mulsidi3_32bit_mips16): New expander.
1482         (<u>mulsidi3_32bit): Use muldiv_target_operand.
1483         (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
1484         (<u>mulsidi3_64bit): Require !TARGET_MIPS16.  Split into
1485         <u>mulsidi3_64bit_split.
1486         (<u>mulsidi3_64bit_mips16): New expander.
1487         (<u>mulsidi3_64bit_split): Likewise, using expansions from
1488         two previous define_splits.
1489         (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
1490         muldiv_target_operand.
1491         (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
1492         (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
1493         Split into <su>mulsi3_highpart_split.
1494         (<su>mulsi3_highpart_split): New expander.
1495         (<su>muldi3_highpart): Turn into a define_expand.
1496         Use <su>muldi3_highpart_split for MIPS16 code.
1497         (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
1498         Require !TARGET_MIPS16.  Split into <su>muldi3_highpart_split.
1499         (<su>muldi3_highpart_split): New expander.
1500         (<u>mulditi3): Explicitly specify LO as the target of MIPS16
1501         multiplies, then move it into the target register.
1502         (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
1503         (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
1504         Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
1505         move LO into operand 0.
1506         (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
1507         from <u>divmod<mode>4.  Use muldiv_target_operand.
1508         Require !TARGET_MIPS16.  Split into <u>divmod<mode>4_split.
1509         (<u>divmod<mode>4_split): New expander.
1510         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
1511         (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
1512
1513 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
1514
1515         * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
1516         and x_operand_reg_set.
1517         (accessible_reg_set, operand_reg_set): New macros.
1518         * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
1519         operand_reg_set.
1520         (saved_accessible_reg_set, saved_operand_reg_set): New variables.
1521         (save_register_info): Save them.
1522         (restore_register_info): Restore them.
1523         (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
1524         Remove NO_REGS registers from operand_reg_set.  Treat members
1525         of operand_reg_set as fixed.
1526         * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
1527         (register_operand, nonmemory_operand): Likewise.
1528         * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
1529         register variables.  Check accessible_reg_set and operand_reg_set.
1530         * config/mips/mips.c (mips_conditional_register_usage): Remove
1531         inaccessible register from accessible_reg_set, rather than just
1532         making them fixed.
1533
1534 2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
1535
1536         * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
1537
1538 2011-11-26  Richard Henderson  <rth@redhat.com>
1539
1540         * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
1541         for Linux.
1542
1543 2011-11-26  Richard Henderson  <rth@redhat.com>
1544
1545         * optabs.c (expand_atomic_fetch_op): Always return result.
1546
1547         * optabs.c (init_sync_libfuncs_1): Include max in iteration.
1548
1549         * omp-low.c (expand_omp_atomic): Assume anything aligned to
1550         BIGGEST_ALIGNMENT is aligned.
1551
1552 2011-11-26  Richard Henderson  <rth@redhat.com>
1553
1554         * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
1555         (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
1556         (I): New mode iterator.
1557         (xz): New mode attribute.
1558         * config/m68k/sync.md: New file.
1559
1560         * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
1561         * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
1562
1563 2011-11-26  Nathan Sidwell  <nathan@acm.org>
1564
1565         PR gcov-profile/51297
1566         * gcov.c (main): Allocate initial names and sources arrays.
1567         (find_source): Don't check for null name or source arrays here.
1568
1569 2011-11-26  Jakub Jelinek  <jakub@redhat.com>
1570
1571         PR rtl-optimization/49912
1572         * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
1573         when counting n_branch.
1574
1575 2011-11-26  Uros Bizjak  <ubizjak@gmail.com>
1576
1577         * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
1578
1579 2011-11-26  Joern Rennecke  <joern.rennecke@embecosm.com>
1580
1581         PR middle-end/50074
1582         * calls.c (mem_overlaps_already_clobbered_arg_p):
1583         Return false if no outgoing arguments have been stored so far.
1584
1585 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
1586
1587         * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
1588
1589 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
1590
1591         PR other/51011
1592         * tree.h (is_builtin_name): No longer external.
1593         * builtins.c (is_builtin_name): Make static.
1594         * varasm.c (incorporeal_function_p): __sync and __atomic external calls
1595         are not incorporeal and may need asm label processing.
1596
1597 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
1598
1599         PR target/50566
1600         * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
1601         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
1602         Don't bypass TARGET_ALL_DEBUG.  Print self-info with ?.
1603         (avr_log_vadump): Support %D and %X to print double_int.
1604         (avr_double_int_pop_digit): New static function.
1605         (avr_dump_double_int_hex): New static function.
1606
1607 2011-11-24  Enkovich Ilya  <ilya.enkovich@intel.com>
1608
1609         PR target/51287
1610         * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
1611         attr check.
1612
1613 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
1614
1615         * optab.c (maybe_emit_atomic_exchange): New.  Try to emit an
1616         atomic_exchange pattern.
1617         (maybe_emit_sync_lock_test_and_set): New.  Try to emit an exchange
1618         using __sync_lock_test_and_set.
1619         (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
1620         exchange using a compare_and_swap loop.
1621         (expand_sync_lock_test_and_set): New.  Expand sync_lock_test_and_set.
1622         (expand_atomic_test_and_set): New.  Expand test_and_set operation.
1623         (expand_atomic_exchange): Use new maybe_emit_* functions.
1624         (expand_atomic_store): Use new maybe_emit_* functions.
1625         * builtins.c (expand_builtin_sync_lock_test_and_set): Call
1626         expand_sync_lock_test_and_set routine.
1627         (expand_builtin_atomic_exchange): Remove parameter from call.
1628         (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
1629         (expand_builtin_atomic_test_and_set): Add target and simply call
1630         expand_atomic_test_and_set.
1631         (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
1632         * expr.h (expand_atomic_exchange): Add parameter.
1633         (expand_sync_lock_test_and_set): New prototype.
1634         (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
1635
1636 2011-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1637
1638         PR target/51134
1639         * config/i386/i386.h (processor_costs): Revert revision 181357.
1640         * config/i386/i386.c (cost models): Likewise.
1641         (core_cost): Likewise.
1642         (promote_duplicated_reg): Likewise.
1643         (promote_duplicated_reg_to_size): Likewise.
1644         (processor_target): Likewise.
1645         (expand_set_or_movmem_via_loop_with_iter): Likewise.
1646         (expand_set_or_movmem_via_loop): Likewise.
1647         (emit_strset): Likewise.
1648         (expand_movmem_epilogue): Likewise.
1649         (expand_setmem_epilogue): Likewise.
1650         (expand_movmem_prologue): Likewise.
1651         (expand_setmem_prologue): Likewise.
1652         (expand_constant_movmem_prologue): Likewise.
1653         (expand_constant_setmem_prologue): Likewise.
1654         (decide_alg): Likewise.
1655         (decide_alignment): Likewise.
1656         (ix86_expand_movmem): Likewise.
1657         (ix86_expand_setmem): Likewise.
1658         (ix86_slow_unaligned_access): Likewise.
1659         * config/i386/i386.md (strset): Likewise.
1660         * config/i386/sse.md (vec_dupv4si): Likewise.
1661         (vec_dupv2di): Likewise.
1662
1663 2011-11-24  Georg-Johann Lay  <avr@gjlay.de>
1664
1665         * config/avr/avr.md (*rotlhi2.15): Set length to 4.
1666
1667 2011-11-24  Razya Ladelsky  <razya@il.ibm.com>
1668
1669         * tree-data-ref.c (initialize_data_dependence_relation): Update
1670         comment for the self dependence case.
1671         (compute_self_dependence): Remove.
1672         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
1673         compute_self_dependenc.
1674
1675 2011-11-24  Alan Modra  <amodra@gmail.com>
1676
1677         * c-decl.c (warn_if_shadowing): Don't warn if shadowed
1678         identifier is from system header.
1679
1680 2011-11-23  Jakub Jelinek  <jakub@redhat.com>
1681
1682         PR target/51261
1683         * config/i386/i386.c (decide_alg): Initialize *dynamic_check
1684         even if !optimize.
1685
1686 2011-11-23  Vladimir Makarov  <vmakarov@redhat.com>
1687
1688         PR rtl-optimization/48455
1689         * doc/invoke.texi (-fira-region): Document default values.
1690
1691         * flags-types.h (enum ira_region): Add new value
1692         IRA_REGION_AUTODETECT.
1693
1694         * common.opt (fira-region): Set up initial value to
1695         IRA_REGION_AUTODETECT.
1696
1697         * toplev.c (process_options): Set up flag_ira_region depending on
1698         -O options.
1699
1700         * ira.c (ira.c): Remove optimize guard for ira_build.
1701
1702 2011-11-23  Chung-Lin Tang  <cltang@codesourcery.com>
1703
1704         PR rtl-optimization/50496
1705         * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
1706         only after epilogue is created. Add comments.
1707
1708 2011-11-22  Richard Henderson  <rth@redhat.com>
1709
1710         * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
1711         Generate the barrier required for the memory model.
1712         (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
1713         * config/ia64/ia64-protos.h: Update.
1714         * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
1715         (UNSPEC_CMPXCHG_REL): New.
1716         * config/ia64/sync.md (mem_thread_fence): New.
1717         (atomic_load<IMODE>, atomic_store<IMODE>): New.
1718         (atomic_compare_and_swap<IMODE>): New.
1719         (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
1720         (atomic_exchange<IMODE>): New.
1721         (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
1722         (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
1723         (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
1724         (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
1725         (fetchadd_rel_<I48MODE>): New.
1726         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
1727         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
1728         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
1729         (sync_compare_and_swap<IMODE>): Remove.
1730         (sync_lock_release<IMODE>): Remove.
1731
1732         * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
1733         and UNSPECV_* constants.
1734
1735 2011-11-22  Tom de Vries  <tom@codesourcery.com>
1736
1737         PR rtl-optimization/50764
1738         * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
1739         not moved past preceding jump.
1740
1741 2011-11-22  Jeff Law  <law@redhat.com>
1742
1743         * doc/contrib.texi: Add entry for David Binderman.
1744
1745 2011-11-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1746
1747         * postreload.c (reload_combine): Mark reg_state as invalid at
1748         volatile insns if there has been a use already.
1749
1750 2011-11-21  Aldy Hernandez  <aldyh@redhat.com>
1751
1752         * opts.c (finish_options): Do not fail for -fgnu-tm.
1753         * gimple-streamer-out.c (output_gimple_stmt): Handle
1754         GIMPLE_TRANSACTION.
1755         * gimple-streamer-in.c (input_gimple_stmt): Same.
1756         * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
1757         (lto_output_node): Write tm_clone bit.
1758
1759 2011-11-22  Ian Lance Taylor  <iant@google.com>
1760
1761         * doc/install.texi (Configuration): Correct doc of
1762         --enable-build-poststage1-with-cxx: it is not experimental.
1763
1764 2011-11-22  Jakub Jelinek  <jakub@redhat.com>
1765
1766         PR tree-optimization/51074
1767         * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
1768         handling for BYTES_BIG_ENDIAN.
1769         * optabs.c (can_vec_perm_for_code_p): Likewise.
1770
1771 2011-11-22  Michael Matz  <matz@suse.de>
1772
1773         PR other/51125
1774         * trans-mem.c (expand_block_tm): Ignore clobbers.
1775
1776 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
1777
1778         *  config/darwin.h (ENDFILE_SPEC): New.
1779         (DARWIN_CRT1_SPEC): Add crttms.o.
1780         (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
1781         * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
1782
1783 2011-11-22  Michael Matz  <matz@suse.de>
1784
1785         PR c++/51264
1786         * tree.c (iterative_hash_expr): Remove break after return.
1787
1788 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
1789
1790         * target.def (tm_clone_table_section): New hook.
1791         * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
1792         * doc/tm.texi: Regenerate.
1793         * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
1794         * output.h (default_clone_table_section): New prototype.
1795         * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
1796         * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
1797         * config/darwin.c (darwin_tm_clone_table_section): New.
1798
1799 2011-11-21  Torvald Riegel  <triegel@redhat.com>
1800
1801         * trans-mem.c (diagnose_tm_1): Print an expression instead of a
1802         declaration in error messages for indirect calls.
1803
1804 2011-11-21  David S. Miller  <davem@davemloft.net>
1805
1806         * config/sparc/sparc.c (sparc_regmode_natural_size): New function
1807         implementing REGMODE_NATURAL_SIZE taking into consideration vector
1808         modes.
1809         (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
1810         * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
1811         sparc_modes_tieable_p): Declare.
1812         * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
1813         MODES_TIEABLE_P): Use new helper functions.
1814
1815         Revert
1816         2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1817
1818         PR middle-end/50325
1819         * expmed.c (store_bit_field_1): Use extract_bit_field on big
1820         endian targets if the source cannot be exactly covered by word
1821         mode chunks.
1822
1823 2011-11-21  Jakub Jelinek  <jakub@redhat.com>
1824
1825         PR debug/50827
1826         * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
1827         macro instead of XEXP.
1828
1829 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1830
1831         * configure: Regenerate.
1832
1833 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
1834
1835         * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
1836         must not affect cc0.
1837         * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
1838         register does not change cc0. Same for any constant to ld-register.
1839
1840 2011-11-21  Uros Bizjak  <ubizjak@gmail.com>
1841
1842         * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
1843         UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
1844         Move from config/i386/i386.md
1845         (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
1846         * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
1847         UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
1848         UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
1849         UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
1850         UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
1851         UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
1852         UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
1853         UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
1854         UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
1855         UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
1856         UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
1857         UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
1858         (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
1859         UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
1860         Ditto.
1861         * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
1862         UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
1863         (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
1864         UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
1865         (sse2_lfence): Move from config/i386/sse.md.
1866         (*sse2_lfence): Ditto.
1867         (sse_sfence): Ditto.
1868         (*sse_sfence): Ditto.
1869         (sse2_mfence): Ditto.
1870         (mfence_sse2): Ditto.  Rename from *sse2_mfence.  Enable also
1871         for TARGET_64BIT.
1872         (mem_thread_fence): Use mfence_sse2.
1873
1874 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
1875
1876         * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
1877         * config/avr/avr-devices.c: Ditto. And initialize it.
1878         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
1879         __AVR_SFR_OFFSET__.
1880         * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
1881         (out_movhi_r_mr, out_movhi_mr_r): Remove.
1882         (out_movsi_r_mr, out_movsi_mr_r): Remove.
1883         * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
1884         (*insv.io, *insv.not.io): Ditto.
1885         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
1886         (print_operand): Implement "%i" to print address as I/O address.
1887         (output_movqi): Clean up call of out_movqi_mr_r.
1888         (output_movhi): Clean up call of out_movhi_mr_r.
1889         (avr_file_start): Use avr_current_arch->sfr_offset instead of
1890         magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
1891         (avr_out_sbxx_branch): Use %i instead of %m-0x20.
1892         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
1893         (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
1894         (out_shift_with_cnt): Clean up code: Use avr_asm_len.
1895         (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
1896         (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
1897         Clean up call of avr_out_store_psi.
1898         (output_reload_in_const): Don't cut symbols longer than 2 bytes.
1899         (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
1900         try if setting pre-cleared register is advantageous.
1901         (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
1902
1903 2011-11-20  Joey Ye  <joey.ye@arm.com>
1904
1905         * expr.c (expand_expr_real_1): Correctly handle strict volatile
1906         bitfield loads smaller than mode size.
1907
1908 2011-11-20  Richard Henderson  <rth@redhat.com>
1909
1910         * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
1911
1912 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
1913
1914         PR target/51235
1915         * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
1916         patterns for supported mode only.
1917
1918         PR target/51236
1919         * config/i386/i386.c (ix86_expand_builtin)
1920         <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
1921
1922 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
1923
1924         * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
1925         (UNSPEC_MOVNTQ): New unspec.
1926         * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
1927         Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
1928         * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
1929         UNSPEC_MOVNTI.
1930         (STORENT_MODE): Add DI and V4DI modes.
1931
1932 2011-11-20  Nathan Sidwell  <nathan@acm.org>
1933
1934         PR gcov-profile/51113
1935         * coverage.c (build_var): Propagate visibility for public
1936         decls.  Use make_decl_one_only for PIC correctness.
1937
1938         testsuite/
1939         * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
1940         * gcc.misc-tests/gcov-16.c: New.
1941         * gcc.misc-tests/gcov-17.c: New.
1942         * g++.dg/gcov/gcov-8.C: New.
1943         * g++.dg/gcov/gcov-9.C: New.
1944         * g++.dg/gcov/gcov-10.C: New.
1945
1946 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1947
1948         PR rtl-optimization/51187
1949         * reorg.c (relax_delay_slots): Do not consider a jump useless if there
1950         is a barrier between the jump and its target label.
1951
1952 2011-11-19  Patrick Marlier  <patrick.marlier@gmail.com>
1953
1954         PR middle-end/51211
1955         * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
1956
1957 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1958
1959         * expmed.c (store_bit_field_1): Revert bogus formatting change.
1960
1961 2011-11-19  Richard Earnshaw  <rearnsha@arm.com>
1962
1963         PR target/50493
1964         * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
1965         overlap of src and dest operands.
1966
1967 2011-11-19  Iain Sandoe  <iains@gcc.gnu.org>
1968
1969         * config/darwin.h (ASM_DEBUG_SPEC): New.
1970         * config/darwin9.h (ASM_DEBUG_SPEC): New.
1971
1972 2011-11-18  Jan Hubicka  <jh@suse.cz>
1973
1974         * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
1975         issues are fixed.
1976
1977 2011-11-18  Anatoly Sokolov  <aesok@post.ru>
1978
1979         * config/cris/cris.c (cris_function_value_regno_p): Make static.
1980         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1981         * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
1982         * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
1983
1984 2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>
1985
1986         PR target/33944
1987         * doc/extend.texi: Document __builtin_ia32_movnti64.
1988
1989         * config/i386/emmintrin.h (_mm_stream_si64): New.
1990
1991         * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
1992
1993         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
1994         (bdesc_special_args): Update __builtin_ia32_movnti.  Add
1995         __builtin_ia32_movnti64.
1996         (ix86_expand_special_args_builtin): Handle
1997         VOID_FTYPE_PLONGLONG_LONGLONG.
1998
1999         * config/i386/i386.md (UNSPEC_MOVNTI): New.
2000
2001         * config/i386/sse.md (sse2_movntsi): Renamed to ...
2002         (sse2_movnti<mode>): This.
2003
2004 2011-11-18  Georg-Johann Lay  <avr@gjlay.de>
2005
2006         PR target/49868
2007         * config/avr/avr.h (base_arch_s): Add field n_segments.
2008         (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
2009         ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
2010         (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
2011         (INIT_EXPANDERS): New define.
2012         * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
2013         (avr_init_expanders): New.
2014         (avr_emit_movmemhi, avr_out_movmem): New.
2015         (avr_xload_libgcc_p): New.
2016         * config/avr/avr-c.c (avr_register_target_pragmas): Register
2017         address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
2018         (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
2019         __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
2020         * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
2021
2022         * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
2023         3 bits instead of just 1.
2024         (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
2025         (progmem_section): Change from section to array of sections.
2026         (progmem_section_prefix): New static variable.
2027         (avr_file_start): Print set for __RAMPZ__
2028         (avr_option_override): Move initialization of RTXes from here...
2029         (avr_init_expanders): ...to this new function.
2030         (avr_pgm_segment): New static function.
2031         (avr_decl_pgm_p): Handle error_mark_node.
2032         (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
2033         (avr_out_xload, avr_find_unused_d_reg): New static functions.
2034         (expand_prologue, expand_epilogue): Use rampz_rtx.
2035         (print_operand): Hande CONST_STRING.
2036         (avr_xload_libgcc_p): New static function.
2037         (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
2038         (avr_progmem_p): Return 2 for 24-bit flash address space.
2039         (avr_out_sbxx_branch): Clean-up code from ASn macros.
2040         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
2041         address and print symbolically.
2042         (avr_asm_named_section, avr_section_type_flags,
2043         avr_encode_section_info, avr_asm_select_section,
2044         avr_addr_space_address_mode, avr_addr_space_pointer_mode,
2045         avr_addr_space_legitimate_address_p, avr_addr_space_convert,
2046         avr_addr_space_legitimize_address): Handle new address spaces.
2047         (avr_output_progmem_section_asm_op): New static function.
2048         (avr_asm_init_sections): Initialize progmem_section[].
2049         (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
2050         (avr_const_address_lo16): New static function.
2051         (avr_assemble_integer): Use it to handle 3-byte integers.
2052         (avr_emit_movmemhi, avr_out_movmem): New functions.
2053
2054         * config/avr/predicates.md (nox_general_operand): Handle new
2055         address spaces.
2056         * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
2057         (adjust_len): Add xload, movmem.
2058         (SP_ADDR): New define_constants.
2059         (isa): Add "lpm", "lpmx", "elpm", "elpmx".
2060         (enabled): Handle them.
2061         (load<mode>_libgcc): New expander.
2062         (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
2063         (xload8_A, xload<mode>_A): New insn-and-splits.
2064         (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
2065         (mov<mode>): Handle new address spaces.
2066         (movmemhi): Rewrite using avr_emit_movmemhi.
2067         (MOVMEM_r_d): New mode attribute.
2068         (movmem_<mode>, movmem_qi_elpm): New insns.
2069         (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
2070         C-code.  Use label instead of hard-coded instrunction lengths.
2071
2072 2011-11-18  Martin Jambor  <mjambor@suse.cz>
2073
2074         PR tree-optimization/50605
2075         * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
2076         of IPA invariant decls.
2077
2078 2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2079
2080         * tree-outof-ssa.c (insert_back_edge_copies):  Add call to
2081         mark_dfs_back_edges.
2082
2083 2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>
2084
2085         PR target/49992
2086         * configure.ac: Remove ranlib special-casing for Darwin.
2087         * configure: Regenerate.
2088
2089 2011-11-18  Uros Bizjak  <ubizjak@gmail.com>
2090
2091         PR tree-optimization/51118
2092         * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
2093         before using TREE_TYPE accessor on expr.
2094
2095 2011-11-17  Jan Hubicka  <jh@suse.cz>
2096
2097         PR bootstrap/51134
2098         * i386.c (atom_cost): Fix 32bit memset description.
2099         (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
2100         for epilogue loops.
2101         (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
2102         byte loop.
2103         (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
2104         when not optimizing always use rep movsb or lincall; do not produce
2105         word sized loops when optimizing memset for size (to avoid need
2106         for large constants).
2107         (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
2108         choose unroll factors better; always do 128bit moves when producing
2109         SSE loops; do not produce loopy epilogue when size is too small.
2110         (promote_duplicated_reg_to_size): Do not look into desired alignments
2111         when doing vector expansion.
2112         (ix86_expand_setmem): Track better when promoted value is available;
2113         choose unroll factors more sanely. Output loopy epilogue only
2114         when needed.
2115
2116 2011-11-17  Steve Ellcey  <sje@cup.hp.com>
2117
2118         PR middle-end/51144
2119         * output.h (fprint_w): Remove.
2120         * final.c (fprint_w): Remove.
2121         (output_addr_const): Change fprint_w back to fprintf.
2122
2123 2011-11-17  Andrew Pinski  <apinski@cavium.com>
2124
2125         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
2126
2127 2011-11-17  Andrew MacLeod  <amacleod@redhat.com>
2128
2129         * builtins.c (expand_builtin): Remove 4th parameter representing
2130         weak/strong mode when __atomic_compare_exchange becomes a library call.
2131
2132 2011-11-17  Richard Henderson  <rth@redhat.com>
2133
2134         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
2135         new pseudo for target after convert_modes.
2136         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
2137
2138 2011-11-17  Richard Henderson  <rth@redhat.com>
2139
2140         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
2141         new pseudo for target after convert_modes.
2142         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
2143
2144 2011-11-17  Richard Henderson  <rth@redhat.com>
2145
2146         * builtins.c (expand_builtin_mem_thread_fence): Remove.
2147         (expand_builtin_mem_signal_fence): Remove.
2148         (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
2149         (expand_builtin_sync_synchronize): Likewise.
2150         (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
2151         * optabs.c (expand_asm_memory_barrier): Split out from
2152         expand_builtin_mem_signal_fence.
2153         (expand_mem_thread_fence): New, a combination of code from
2154         expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
2155         (expand_mem_signal_fence): Moved and renamed from
2156         expand_builtin_mem_signal_fence.
2157         (expand_atomic_exchange): Use expand_mem_thread_fence.
2158         (expand_atomic_load, expand_atomic_store): Likewise.
2159         * expr.h, optabs.h: Update decls.
2160
2161 2011-11-17  Bin Cheng  <bin.cheng@arm.com>
2162
2163         PR rtl-optimization/50663
2164         * cprop.c (implicit_set_indexes): New global variable.
2165         (insert_set_in_table): Add additional parameter and record implicit
2166         set information.
2167         (hash_scan_set): Add additional parameter and pass it to above.
2168         (hash_scan_insn): Pass false to hash_scan_set.
2169         (compute_hash_table_work): Pass true to hash_scan_set.
2170         (compute_cprop_data): Add implicit set to AVIN of block which the
2171         implicit set is recorded for.
2172         (one_cprop_pass): Handle implicit_set_indexes array.
2173
2174 2011-11-17  Michael Matz  <matz@suse.de>
2175
2176         PR middle-end/50644
2177         PR middle-end/50741
2178         * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
2179         current function.
2180         (remove_unused_locals): Ditto.
2181
2182 2011-11-16  Richard Henderson  <rth@redhat.com>
2183
2184         * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
2185         ALIAS_SET_MEMORY_BARRIER when creating a new memory.
2186         (alpha_split_atomic_exchange_12): Likewise.
2187         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
2188
2189 2011-11-16  Joseph Myers  <joseph@codesourcery.com>
2190
2191         * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
2192
2193 2011-11-16  David Edelsohn  <dje.gcc@gmail.com>
2194
2195         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
2196         Default to minimum alignment if decl is NULL.
2197
2198 2011-11-16  Uros Bizjak  <ubizjak@gmail.com>
2199
2200         * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
2201         sequence for AVX.
2202         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
2203
2204 2011-11-16  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2205
2206         * doc/invoke.texi: Document AMD bdver1 and btver1.
2207
2208 2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
2209             Bernd Schmidt <bernds@coudesourcery.com>
2210             Sebastian Huber <sebastian.huber@embedded-brains.de>
2211
2212         PR target/49641
2213         * config/arm/arm.c (store_multiple_sequence): Avoid cases where
2214         the base reg is stored iff compiling for Thumb1.
2215
2216 2011-11-16  Razya Ladelsky  <razya@il.ibm.com>
2217
2218         PR tree-optimization/49960
2219         * tree-data-ref.c (initialize_data_dependence_relation): Add
2220         initializations.
2221         Remove call to compute_self_dependence.
2222         (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
2223         (compute_self_dependence): Remove old code. Add call to
2224         compute_affine_dependence.
2225         (compute_all_dependences): Remove call to compute_self_dependence.
2226         Add call to compute_affine_dependence.
2227
2228 2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2229
2230         PR middle-end/50325
2231         * expmed.c (store_bit_field_1): Use extract_bit_field on big
2232         endian targets if the source cannot be exactly covered by word
2233         mode chunks.
2234
2235 2011-11-15  Joseph Myers  <joseph@codesourcery.com>
2236
2237         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
2238         ELF_STRING_LIMIT.
2239
2240 2011-11-15  Richard Henderson  <rth@redhat.com>
2241
2242         * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
2243         (alpha_post_atomic_barrier): New.
2244         (alpha_split_atomic_op): New memmodel argument; honor it.
2245         (alpha_split_compare_and_swap): Take array of operands.  Honor
2246         memmodel; always set bool output
2247         (alpha_expand_compare_and_swap_12): Similarly.
2248         (alpha_split_compare_and_swap_12): Similarly.
2249         (alpha_split_atomic_exchange): Similarly.  Rename from
2250         alpha_split_lock_test_and_set.
2251         (alpha_expand_atomic_exchange_12): Similarly.  Rename from
2252         alpha_expand_lock_test_and_set_12.
2253         (alpha_split_atomic_exchange_12): Similarly.  Rename from
2254         alpha_split_lock_test_and_set_12.
2255         * config/alpha/alpha-protos.h: Update.
2256         * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
2257         * config/alpha/constraints.md ("w"): New.
2258         * config/alpha/predicates.md (mem_noofs_operand): New.
2259         * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
2260         sync_compare_and_swap<mode>; add the new parameters.
2261         (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
2262         (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
2263         (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
2264         (atomic_<op><mode>): Update from sync_<op><mode>.
2265
2266 2011-11-16  Tom de Vries  <tom@codesourcery.com>
2267
2268         * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
2269
2270 2011-11-16  Alan Modra  <amodra@gmail.com>
2271
2272         PR rtl-optimization/51051
2273         PR bootstrap/51086
2274         * function.c (thread_prologue_and_epilogue_insns): Guard
2275         emitting return with single_succ_p test.
2276
2277 2011-11-15  Joern Rennecke  <joern.rennecke@embecosm.com>
2278
2279         * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
2280         get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
2281
2282 2011-11-15  Uros Bizjak  <ubizjak@gmail.com>
2283
2284         * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
2285         (vec_pack_sfix_trunc_v2df): Ditto.
2286         (vec_pack_sfix_v2df): Ditto.
2287         (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
2288         avx_vec_concatv8si patterns.
2289         (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
2290         avx_vec_concatv8si patterns.
2291
2292 2011-11-15  Torvald Riegel  <triegel@redhat.com>
2293
2294         * c-parser.c (c_parser_transaction_expression): Require parentheses
2295         when parsing transaction expressions.
2296
2297 2011-11-15  Tristan Gingold  <gingold@adacore.com>
2298
2299         * incpath.c (get_added_cpp_dirs): New function.
2300         * incpath.h (get_added_cpp_dirs): Declare.
2301         * config/vms/vms-c.c (vms_c_register_includes): New function.
2302         (vms_std_modules): New variable.
2303         * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
2304         (vms_c_register_includes): Declare.
2305
2306 2011-11-15  Tristan Gingold  <gingold@adacore.com>
2307
2308         * c-family/c-pragma.h (pragma_extern_prefix): Declare.
2309         * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
2310         * config/vms/vms-c.c (saved_extern_prefix): New variable.
2311         (vms_pragma_extern_prefix): New function.
2312         (vms_c_register_pragma): Register vms_pragma_extern_prefix.
2313
2314 2011-11-15  Georg-Johann Lay  <avr@gjlay.de>
2315
2316         PR target/49868
2317         * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
2318         (REGISTER_TARGET_PRAGMAS): New define.
2319         * config/avr/avr-protos.h (avr_mem_pgm_p): New.
2320         (avr_load_libgcc_p): New.
2321         (avr_register_target_pragmas): New.
2322         (asm_output_external_libcall): Remove.
2323         (avr_log_t): Add field "progmem".  Order alphabetically.
2324         * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
2325         * config/avr/avr-c.c (langhooks.h): New include.
2326         (avr_register_target_pragmas): New function. Register address
2327         space __pgm.
2328         (avr_cpu_cpp_builtins): Add built-in define __PGM.
2329
2330         * config/avr/avr.c: Include "c-family/c-common.h".
2331         (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
2332         (TARGET_LEGITIMIZE_ADDRESS): Remove define.
2333         (TARGET_ADDR_SPACE_SUBSET_P): Define to...
2334         (avr_addr_space_subset_p): ...this new static function.
2335         (TARGET_ADDR_SPACE_CONVERT): Define to...
2336         (avr_addr_space_convert): ...this new static function.
2337         (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
2338         (avr_addr_space_address_mode): ...this new static function.
2339         (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
2340         (avr_addr_space_pointer_mode): ...this new static function.
2341         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
2342         (avr_addr_space_legitimate_address_p): ...this new static function.
2343         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
2344         (avr_addr_space_legitimize_address): ...this new static function.
2345         (avr_mode_code_base_reg_class): Handle address spaces.
2346         (avr_regno_mode_code_ok_for_base_p): Ditto.
2347         (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
2348         (avr_option_override): Initialize them.
2349         (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
2350         variables.
2351         (avr_pgm_segment): New static function.
2352         (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
2353         (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
2354         (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
2355         avr_out_lpm to handle loads from progmem.
2356         (avr_load_libgcc_p): New static function.
2357         (avr_progmem_p): Test if decl is in flash.
2358         (avr_pgm_pointer_const_p): New static function.
2359         (avr_nonconst_pointer_addrspace): New static function.
2360         (avr_pgm_check_var_decl): New static function.
2361         (avr_insert_attributes): Use it.  Change error message to report
2362         cause (progmem or address space) when code wants to write to flash.
2363         (avr_section_type_flags): Unset section flag SECTION_BSS for
2364         data in progmem.
2365
2366         * config/avr/predicates.md (nop_general_operand): New predicate.
2367         (nox_general_operand): New predicate.
2368         * config/avr/avr.md (LPM_REGNO): New define_constant.
2369         (load<mode>_libgcc): New expander.
2370         (*load.<mode>.libgcc): New insn.
2371         (mov<mode>): Handle loads from non-generic AS.
2372         (movmemhi): Ditto.  Propagate address space information to newly
2373         created MEM.
2374         (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
2375         to nox_general_operand.
2376         (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
2377         nop_general_operand.
2378         (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
2379         (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
2380         (split-lpmx): New split.
2381         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
2382         *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
2383
2384 2011-11-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2385
2386         * ipa-cp.c (ipa_value_from_jfunc): Make global.
2387         (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
2388         (get_indirect_edge_target): Rename, make global.
2389         (devirtualization_time_bonus, estimate_local_effects,)
2390         (ipcp_discover_new_direct_edges): Update.
2391         * ipa-inline-analysis.c (evaluate_conditions_for_edge):
2392         Generalize to also handle types.  Rename to ...
2393         (evaluate_properties_for_edge): Use instead of
2394         evaluate_conditions_for_edge.
2395         (estimate_edge_devirt_benefit): New function.
2396         (estimate_calls_size_and_time): Use it.
2397         (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
2398         (inline_merge_summary): Update.
2399         (do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
2400         parameter information at the call site and pass it on to subroutines.
2401         * tree-inline.c (estimate_num_insns): Distinguish between direct and
2402         indirect calls.
2403         (init_inline_once): Set size and time costs or indirect calls.
2404         * tree-inline.h (eni_weights): Add indirect_call_cost.
2405
2406 2011-11-15  Tom de Vries  <tom@codesourcery.com>
2407
2408         PR tree-optimization/51005
2409         * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
2410         mark_basic_block_deleted.
2411         (update_worklist): Inline purge_bbs.
2412         (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
2413         (delete_block_update_dominator_info): Remove.
2414         (replace_block_by): Remove update_vops parameter.  Partially evaluate
2415         for update_vops == false.
2416         (apply_clusters): Remove update_vops parameter.  Remove update_vops
2417         argument in replace_block_by call.
2418         (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
2419         (tail_merge_optimize): Remove update_vops argument to apply_clusters.
2420         Remove call to purge_bbs.  Add calls to calculate_dominance_info and
2421         free_dominance_info.  Add MAY_HAVE_DEBUG_STMTS  before calling
2422         update_debug_stmts.  Mark vop var for renaming, if necessary.
2423
2424 2011-11-15  Bernd Schmidt  <bernds@codesourcery.com>
2425
2426         PR rtl-optimization/51051
2427         * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
2428         move would cause fallthrough into the exit block.
2429
2430 2011-11-14  Richard Henderson  <rth@redhat.com>
2431
2432         * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
2433         handled.
2434         (emit_store_conditional): Likewise.
2435         (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
2436         (rs6000_adjust_atomic_subword): New.
2437         (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
2438         (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
2439         for pre-reload expansion.
2440         (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
2441         rs6000_expand_compare_and_swapqhi): Merge into ...
2442         (rs6000_expand_atomic_compare_and_swap): ... here.  New function.
2443         rs6000_split_lock_test_and_set; expand immediately.  Handle
2444         QImode and HImode.
2445         * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
2446         from UNSPECV_LWSYNC.
2447         * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
2448         (mem_thread_fence): New.
2449         (hwsync): Rename from memory_barrier.
2450         (*hwsync): Rename from *sync_internal.
2451         (lwsync, *lwsync): Mirror hwsync implementation.
2452         (isync): Don't reference memory.
2453         (loadsync): New.
2454         (atomic_load<INT>, atomic_store<INT>): New.
2455         (ATOMIC): New mode iterator.
2456         (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
2457         (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
2458         (sync_compare_and_swap<GPR>): Remove.
2459         (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
2460         (sync_compare_and_swapqhi_internal): Remove.
2461         (sync_lock_test_and_set<GPR>): Remove.
2462         (sync_<FETCHOP><INT1>): Remove.
2463         (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
2464         (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
2465         (sync_old_<FETCHOP><GPR>): Remove.
2466         (*sync_old_<FETCHOP>si_internal): Remove.
2467         (*sync_old_<FETCHOP>di_internal): Remove.
2468         (sync_old_nand<INT1>): Remove.
2469         (*sync_old_nand<GPR>_internal): Remove.
2470         (sync_new_<FETCHOP><GPR>): Remove.
2471         (*sync_new_<FETCHOP>si_internal): Remove.
2472         (*sync_new_<FETCHOP>di_internal): Remove.
2473         (sync_new_nand<INT1>): Remove.
2474         (*sync_new_nand<GPR>_internal): Remove.
2475         (*atomic_andsi, *atomic_anddi): Remove.
2476         (*sync_addshort_internal, *sync_subshort_internal): Remove.
2477         (*sync_andsi_internal, *sync_boolsi_internal): Remove.
2478         (*sync_boolcshort_internal): Remove.
2479         (sync_lock_release<INT1>): Remove.
2480         (atomic_compare_and_swap<INT1>): New.
2481         (atomic_exchange<INT1>): New.
2482         (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
2483         (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
2484         (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
2485
2486 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
2487
2488         * config/i386/sse.md (round<mode>2): Use register_operand for
2489         operand 1 predicate.
2490         (round<mode>2_sfix): Ditto.
2491         (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
2492
2493 2011-11-14  Nathan Sidwell  <nathan@acm.org>
2494
2495         * gcov.c (canonicalize_name): Protect use of S_ISLNK.
2496
2497 2011-11-14  Jan Hubicka  <jh@suse.cz>
2498
2499         PR target/51126
2500         * config/i386/i386.c (core cost model): Correct pasto.
2501
2502 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
2503
2504         * config/i386/sse.md (round<mode>2_sfix): New expander.
2505         (round<mode>2_vec_pack_sfix): Ditto.
2506         (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
2507         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
2508         * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
2509         V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
2510         V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
2511         * config/i386/i386.c (ix86_builtins): Add
2512         IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
2513         IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
2514         (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
2515         __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
2516         __builtin_ia32_{floorps,ceilps}_sfix{,256}and
2517         __builtin_ia32_roundps_az_sfix{,256} descriptions.
2518         (ix86_expand_sse_round_vec_pack_sfix): New.
2519         (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
2520         V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
2521         V8SI_FTYPE_V4DF_V4DF_ROUND types.  Check last argument of
2522         CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
2523         CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
2524         (ix86_builtin_vectorized_function): Handle
2525         BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
2526         BUILT_IN_{I,L,LL}ROUND{,F}
2527
2528 2011-11-14  Jan Hubicka  <jh@suse.cz>
2529
2530         PR middle-end/50598
2531         * cgraph.h (varpool_externally_visible_p): Declare.
2532         (varpool_add_new_variable): Declare.
2533         * tree-emultls.c (get_emutls_init_templ_addr,
2534         new_emutls_decl): Use varpool_add_new_variable.
2535         * ipa.c (varpool_externally_visible_p): Export.
2536         * varpool.c (varpool_add_new_variable): New function.
2537
2538 2011-11-14  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
2539             Jan Hubicka  <jh@suse.cz>
2540
2541         * config/i386/i386.h (processor_costs): Add second dimension to
2542         stringop_algs array.
2543         * config/i386/i386.c (cost models): Initialize second dimension of
2544         stringop_algs arrays.
2545         (core_cost): New costs based on generic64 costs with updated stringop
2546         values.
2547         (promote_duplicated_reg): Add support for vector modes, add
2548         declaration.
2549         (promote_duplicated_reg_to_size): Likewise.
2550         (processor_target): Set core costs for core variants.
2551         (expand_set_or_movmem_via_loop_with_iter): New function.
2552         (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
2553         different loops, produced by this function.
2554         (emit_strset): New function.
2555         (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
2556         use SSE-moves where possible.
2557         (expand_setmem_epilogue): Likewise.
2558         (expand_movmem_prologue): Likewise for prologue.
2559         (expand_setmem_prologue): Likewise.
2560         (expand_constant_movmem_prologue): Likewise.
2561         (expand_constant_setmem_prologue): Likewise.
2562         (decide_alg): Add new argument align_unknown.  Fix algorithm of
2563         strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
2564         (decide_alignment): Update desired alignment according to chosen move
2565         mode.
2566         (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
2567         (ix86_expand_setmem): Likewise.
2568         (ix86_slow_unaligned_access): Implementation of new hook
2569         slow_unaligned_access.
2570         * config/i386/i386.md (strset): Enable half-SSE moves.
2571         * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
2572         (vec_dupv2di): Add expand for vec_dupv2di.
2573
2574 2011-11-14  Dimitrios Apostolou  <jimis@gmx.net>
2575
2576         PR bootstrap/51094
2577         PR middle-end/51116
2578         * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
2579         * varasm.c (default_elf_internal_label): Remove.
2580
2581 2011-11-14  Kai Tietz  <ktietz@redhat.com>
2582
2583         * gcov.c (generate_results): Add missing semicolon and correct indent.
2584
2585 2011-11-14  Ira Rosen  <ira.rosen@linaro.org>
2586
2587         PR bootstrap/51112
2588         * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
2589
2590 2011-11-14  Mingjie Xing  <mingjie.xing@gmail.com>
2591
2592         * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
2593         to @pxref{Function Attributes}.
2594
2595 2011-11-13  Oleg Endo  <oleg.endo@t-online.de>
2596
2597         PR target/50694
2598         * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
2599         New macros.
2600         (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
2601         taking the default configuration into account.
2602
2603 2011-11-13  Jonathan Wakely  <jwakely.gcc@gmail.com>
2604
2605         * doc/install.texi (Specific): Fix anchor for
2606         x86_64-*-solaris2.1[0-9]*.
2607
2608 2011-11-13  Nathan Sidwell  <nathan@acm.org>
2609
2610         * gcov.c (source_prefix, source_length): New globals.
2611         (flag_relative_only): Likewise.
2612         (print_usage, options, process_args): Update.
2613         (generate_results): Use coverage.name, check
2614         flag_relative_only. Adjust messages.
2615         (find_source): Check source_prefix.
2616         (output_lines): Use coverage.name, adjust messages.
2617         * doc/gcov.texi (Invoking Gcov): Document new options.
2618
2619 2011-11-12  Jason Merrill  <jason@redhat.com>
2620
2621         PR c++/51060
2622         * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
2623         (gimplify_modify_expr): Don't try to simplify it.
2624
2625 2011-11-12  Dimitrios Apostolou  <jimis@gmx.net>
2626
2627         PR bootstrap/51094
2628         * config/elfos.h (STRING_ASM_OP): Define.
2629         * varasm.c (default_elf_asm_output_limited_string): Use it.
2630
2631         PR bootstrap/51094
2632         * gcc/configure.ac: Check for stpcpy declaration.
2633         * system.h: Declare it if not.
2634         * config.in, configure: Regenerate.
2635
2636 2011-11-12  Richard Henderson  <rth@redhat.com>
2637
2638         * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
2639         nonimmediate_operand for the destination.
2640         (fixuns_trunc<SFDF>si2_stfiwx): Likewise.
2641
2642         * builtins.c (expand_builtin_compare_and_swap): If target is const0,
2643         don't pass the target to expand_atomic_compare_and_swap.
2644         (expand_builtin_atomic_compare_exchange): Likewise.
2645
2646         * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
2647         * config/sh/sh.c (sh_init_sync_libfuncs): New.
2648
2649         * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
2650         * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
2651         * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
2652
2653 2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
2654
2655         PR target/45233
2656         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2657         Only expand a symbol ref. into an access when the entity is defined
2658         in the TU.
2659
2660 2011-11-12  Jan Hubicka  <jh@suse.cz>
2661
2662         PR bootstrap/50822
2663         * cgraphunit.c (output_weakrefs): Output really only weakrefs.
2664
2665 2011-11-12  Nathan Sidwell  <nathan@acm.org>
2666
2667         * gcov.c (struct name_map): New.
2668         (names, n_names, a_names): New global vars.
2669         (print_usage): Adjust usage.
2670         (generate_results): Canonicalize main file name.
2671         (release_structures): Adjust.
2672         (name_search, name_sort): New callbacks.
2673         (find_source): Look for and create a canonical name.
2674         (canonicalize_name): New.
2675         (make_gcov_file_name): Reimplement and fix mangling.
2676         (mangle_name): New.
2677         * doc/gcov.texi: Update documentation about path preservation.
2678
2679 2011-11-11  David S. Miller  <davem@davemloft.net>
2680
2681         * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
2682         * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
2683
2684 2011-11-11  Jakub Jelinek  <jakub@redhat.com>
2685
2686         * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
2687         New prototype.
2688         * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
2689         function.
2690         (ix86_expand_epilogue): Use it.
2691         * config/i386/i386.md (return, simple_return): Call it in the
2692         expanders.
2693
2694         PR tree-optimization/51091
2695         * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
2696         rhs also in the va_list_simple_ptr case.
2697
2698         PR tree-optimization/51058
2699         * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
2700         (vect_schedule_slp): Call it.
2701         * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
2702         don't replace scalar calls with setting of their lhs to zero here.
2703
2704         PR tree-optimization/51074
2705         * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
2706         (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
2707         VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
2708         VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
2709         (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
2710         CONSTRUCTOR operands.
2711         * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
2712         expressions.
2713         * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
2714         to 0 .. 2 * elements - 1.
2715
2716 2011-11-11  Richard Henderson  <rth@redhat.com>
2717
2718         * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
2719         (dump_gimple_omp_atomic_store): Likewise.
2720         * optabs.c (can_atomic_exchange_p): New.
2721         * optabs.h (can_atomic_exchange_p): Declare.
2722         * omp-low.c (expand_omp_atomic_load): Implement.
2723         (expand_omp_atomic_store): Likewise.
2724         (expand_omp_atomic): Update for new arguments to load/store.
2725
2726 2011-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2727
2728         * cprop.c: Adjust outdated comments throughout.
2729         (hash_scan_set): Rename PAT parameter into SET.
2730         (cprop_pavloc): Rename into...
2731         (cprop_avloc): ...this.
2732         (cprop_absaltered): Rename into...
2733         (cprop_kill): ...this.
2734         (alloc_cprop_mem): Adjust for above renaming.
2735         (free_cprop_mem): Likewise.
2736         (compute_cprop_data): Likewise.
2737         (compute_local_properties): Rename TRANSP parameter into KILL and
2738         adjust throughout.  Rework comments.
2739         (try_replace_reg): Fix long line.
2740         (cprop_jump): Likewise.
2741         (constprop_register): Fix prototype and take INSN last.
2742         (cprop_insn): Adjust calls to above function.  Fix long lines.
2743         (bypass_block): Likewise.
2744         (one_cprop_pass): Likewise.
2745
2746 2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
2747
2748         * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
2749         (ELF_STRING_LIMIT): Rename from STRING_LIMIT.
2750
2751 2011-11-11  Jason Merrill  <jason@redhat.com>
2752
2753         * varasm.c (default_elf_asm_output_limited_string): #ifdef
2754         ELF_ASCII_ESCAPES.
2755         (default_elf_asm_output_ascii): Likewise.
2756
2757 2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
2758
2759         PR target/50762
2760         * config/i386/constraints.md (j): New address constraint.
2761         * config/i386/predicates.md (lea_address_operand): Redefine as
2762         special predicate.
2763         * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
2764         (*lea_4_zext): Ditto.
2765
2766 2011-11-11  David S. Miller  <davem@davemloft.net>
2767
2768         Revert
2769         2011-11-05  David S. Miller  <davem@davemloft.net>
2770
2771         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
2772         (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
2773         (*zero_extend_v8qi_<P:mode>_insn,
2774         *zero_extend_v4hi_<P:mode>_insn): New insns.
2775         * config/sparc/sparc.c (vector_init_move_words,
2776         vector_init_prepare_elts, sparc_expand_vector_init_vis2,
2777         sparc_expand_vector_init_vis1): New functions.
2778         (vector_init_bshuffle): Rewrite to handle more cases and make use
2779         of locs[] array prepared by vector_init_prepare_elts.
2780         (vector_init_fpmerge, vector_init_faligndata): Delete.
2781         (sparc_expand_vector_init): Rewrite using new infrastructure.
2782
2783 2011-11-11  Jakub Jelinek  <jakub@redhat.com>
2784
2785         * opts-common.c (generate_canonical_option): Free opt_text
2786         it it has been allocated here and not stored anywhere.
2787
2788         * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
2789         vector.
2790         (vect_create_new_slp_node): Don't allocate node before checking stmt
2791         type.
2792         (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
2793         free def_stmts vectors and additionally free oprnd_info.
2794         (vect_build_slp_tree): Adjust callers.  Call it even if
2795         stop_recursion.  If vect_create_new_slp_node or
2796         vect_build_slp_tree fails, properly handle freeing memory.
2797         If it succeeded, clear def_stmts in oprnd_info.
2798
2799 2011-11-11  Dimitrios Apostolou  <jimis@gmx.net>
2800
2801         * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
2802         multiple lines for readability.
2803         * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
2804         (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
2805         * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
2806         dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
2807         dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
2808         * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
2809         fprintf.
2810         * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
2811         serving as fast replacements for fprintf integer to string conversions.
2812         (sprint_ul_rev): Internal helper for the above.
2813         (output_addr_const) <CONST_INT>: Don't use fprintf.
2814         * varasm.c: Fix some whitespace inconsistencies.
2815         (default_elf_asm_output_limited_string): New.
2816         (default_elf_asm_output_ascii): Likewise.
2817         (default_elf_internal_label): Likewise.
2818         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
2819         stpcpy instead of sprintf.
2820         (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
2821         (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
2822         STRING_LIMIT macros.
2823         (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
2824         provide the same functionality.
2825         * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
2826
2827 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
2828
2829         * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
2830
2831 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
2832
2833         PR middle-end/51038
2834         * builtins.c (expand_builtin_atomic_clear): New.  Expand atomic_clear.
2835         (expand_builtin_atomic_test_and_set): New.  Expand atomic test_and_set.
2836         (expand_builtin): Add cases for test_and_set and clear.
2837         * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
2838         (BUILT_IN_ATOMIC_CLEAR): New.
2839
2840 2011-11-10  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
2841
2842         PR debug/50983
2843         * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
2844         value in the current line table.
2845
2846 2011-11-10  Nathan Sidwell  <nathan@acm.org>
2847
2848         * gcov.c (struct function_info): Make src an index, not a pointer.
2849         (struct source_info): Remove index and next source fields.
2850         (fn_end): New static var.
2851         (sources_index): Remove.
2852         (sources): Now a pointer to an array, not a list.
2853         (n_sources, a_sources): New.
2854         (process_file): Adjust for changes to read_graph_file. Insert
2855         functions into source lists and check line numbers here.
2856         (generate_results): Only allocate lines for sources with
2857         contents.  Adjust for source array.
2858         (release_structures): Likewise.
2859         (find_source): Return source index, adjust for source array.
2860         (read_graph_file): Return function list.  Don't insert into source
2861         lists here.
2862         (read_count_file): Take list of functions.
2863         (solve_flow_graph): Reverse the arc lists here.
2864         (add_line_counts): Adjust for source array.
2865
2866 2011-11-10  Jakub Jelinek  <jakub@redhat.com>
2867
2868         PR middle-end/51077
2869         * tree-object-size.c (addr_object_size): Check TREE_CODE of
2870         MEM_REF's operand rather than code of the MEM_REF itself.
2871
2872 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
2873
2874         PR rtl-optimization/51040
2875         * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should
2876         be AND followed by NOT.
2877         * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
2878         should be AND followed by NOT.
2879
2880 2011-11-10  Jakub Jelinek  <jakub@redhat.com>
2881
2882         * vec.h (VEC_BASE): If base is at offset 0 in the structure,
2883         use &(P)->base even if P is NULL.
2884
2885         PR rtl-optimization/51023
2886         * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
2887         val_signbit_known_clear_p for signed comparison narrowing
2888         optimization.  Don't check for non-VOIDmode, use
2889         HWI_COMPUTABLE_MODE_P macro.
2890         <case ZERO_EXTEND>: Don't check for non-VOIDmode.
2891         Optimize even when const_op is equal to GET_MODE_MASK (mode),
2892         don't optimize if const_op is negative.
2893
2894 2011-11-10  Richard Guenther  <rguenther@suse.de>
2895
2896         PR tree-optimization/51042
2897         * tree-ssa-pre.c (phi_translate_1): Avoid recursing on
2898         self-referential expressions.  Refactor code to avoid duplication.
2899
2900 2011-11-10  Richard Guenther  <rguenther@suse.de>
2901
2902         PR tree-optimization/51070
2903         * tree-loop-distribution.c (generate_builtin): Do not replace
2904         the loop with a builtin if the partition contains statements which
2905         results are used outside of the loop.
2906         (pass_loop_distribution): Verify and collect.
2907
2908 2011-11-10  Richard Guenther  <rguenther@suse.de>
2909
2910         PR tree-optimization/51030
2911         * tree-ssa-phiopt.c (jump_function_from_stmt): New function.
2912         (value_replacement): Use it to handle trivial non-empty
2913         intermediate blocks.
2914
2915 2011-11-10  Richard Guenther  <rguenther@suse.de>
2916
2917         PR middle-end/51071
2918         * gimple.c (gimple_has_side_effects): Remove checking code
2919         that doesn't belong here.
2920
2921 2011-11-10  Ira Rosen  <ira.rosen@linaro.org>
2922
2923         PR tree-optimization/51058
2924         * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
2925
2926 2011-11-10  Jakub Jelinek  <jakub@redhat.com>
2927
2928         PR tree-optimization/51000
2929         * tree-vect-patterns.c (vect_recog_bool_pattern): If adding
2930         a pattern stmt for a bool store, adjust DR_STMT too.
2931         Don't handle bool conversions to single bit precision lhs.
2932         * tree-vect-stmts.c (vect_remove_stores): If next is a pattern
2933         stmt, remove its related stmt and free its stmt_vinfo.
2934         (free_stmt_vec_info): Free also pattern stmt's vinfo and
2935         pattern def stmt's vinfo.
2936         * tree-vect-loop.c (destroy_loop_vec_info): Don't try to
2937         free pattern stmt's vinfo here.
2938         (vect_transform_loop): When calling vect_remove_stores,
2939         do gsi_next first and don't call gsi_remove.  If not strided
2940         store, free stmt vinfo for gsi_stmt (si) rather than stmt.
2941
2942 2011-11-09  Jakub Jelinek  <jakub@redhat.com>
2943
2944         PR target/50911
2945         * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
2946         V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
2947         to V4SFmode.
2948
2949         * function.h (requires_stack_frame_p): New prototype.
2950         * function.c (requires_stack_frame_p): No longer static.
2951         * config/i386/i386.c (ix86_finalize_stack_realign_flags): If
2952         stack_realign_fp was just a conservative guess for a function
2953         which doesn't use sp/fp/argp at all, clear frame_pointer_needed
2954         and stack realignment.
2955
2956 2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
2957
2958         PR preprocessor/51061
2959         * incpath.c (merge_include_chains): Make sure to not pass null
2960         pointers to free_path.
2961
2962 2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
2963
2964         * doc/invoke.texi ([Option Summary, C++ Language Options]):
2965         Add -Wzero-as-null-pointer-constant.
2966
2967 2011-11-07  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2968
2969         * config/arm/arm-cores.def: Add -mcpu=cortex-a7.
2970         * config/arm/arm-tables.opt: Regenerate.
2971         * config/arm/arm-tune.md: Likewise.
2972         * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
2973         * doc/invoke.texi: Document -mcpu=cortex-a7.
2974
2975 2011-11-09  Richard Guenther  <rguenther@suse.de>
2976
2977         Revert
2978         2011-11-09  Richard Guenther  <rguenther@suse.de>
2979
2980         * tree-cfg.c (verify_gimple_call): Verify that
2981         gimple_call_cannot_inline_p is returning a conservative
2982         correct result according to gimple_check_call_matching_types.
2983
2984 2011-11-09  Richard Guenther  <rguenther@suse.de>
2985
2986         PR tree-optimization/51039
2987         * tree-cfg.c (verify_gimple_call): Verify that
2988         gimple_call_cannot_inline_p is returning a conservative
2989         correct result according to gimple_check_call_matching_types.
2990         * ipa-inline-analysis.c (estimate_function_body_sizes): Remove
2991         code dealing with un-inlinablility.
2992         * gimple-streamer-in.c (input_gimple_stmt): Update the
2993         non-inlinable flag.
2994
2995 2011-11-09  Richard Guenther  <rguenther@suse.de>
2996
2997         PR tree-optimization/51039
2998         * tree-inline.c (setup_one_parameter): Always perform a
2999         valid gimple type change.
3000         (declare_return_variable): Likewise.
3001
3002 2011-11-09  Jakub Jelinek  <jakub@redhat.com>
3003
3004         * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
3005         vconduv4sfv4si): New patterns.
3006         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
3007         different dest_mode from comparison mode.
3008
3009 2011-11-09  Richard Guenther  <rguenther@suse.de>
3010
3011         * gimple-fold.c (canonicalize_constructor_val): Mark
3012         address-taken variables addressable.
3013
3014 2011-11-09  Ira Rosen  <ira.rosen@linaro.org>
3015
3016         PR tree-optimization/51015
3017         * tree-vect-loop.c (vect_determine_vectorization_factor): Expect
3018         vectype to be set for pattern def stmts.
3019
3020 2011-11-09  Alan Modra  <amodra@gmail.com>
3021
3022         * function.c (bb_active_p): Delete.
3023         (dup_block_and_redirect, active_insn_between): New functions.
3024         (convert_jumps_to_returns, emit_return_for_exit): New functions,
3025         split out from..
3026         (thread_prologue_and_epilogue_insns): ..here.  Delete
3027         shadowing variables.  Don't do prologue register clobber tests
3028         when shrink wrapping already failed.  Delete all last_bb_active
3029         code.  Instead compute tail block candidates for duplicating
3030         exit path.  Remove these from antic set.  Duplicate tails when
3031         reached from both blocks needing a prologue/epilogue and
3032         blocks not needing such.
3033         * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
3034         HAVE_simple_return.
3035         * bb-reorder.c (get_uncond_jump_length): Make global.
3036         * bb-reorder.h (get_uncond_jump_length): Declare.
3037         * cfgrtl.c (rtl_create_basic_block): Comment typo fix.
3038         (rtl_split_edge): Likewise.  Warning fix.
3039         (rtl_duplicate_bb): New function.
3040         (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
3041         * Makefile.in (function.o): Update dependencies.
3042
3043 2011-11-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3044             Georg-Johann Lay  <avr@gjlay.de>
3045
3046         * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
3047         argument.
3048         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3049         * doc/tm.texi: Regenerate.
3050
3051         * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
3052         space argument.
3053         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3054         * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
3055         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3056         * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
3057         argument.
3058         (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
3059         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
3060         (avr_regno_mode_code_ok_for_base_p): Ditto.
3061         * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
3062         (avr_regno_mode_code_ok_for_base_p): Ditto.
3063         (avr_reg_ok_for_addr_p): Pass AS down to
3064         avr_regno_mode_code_ok_for_base_p.
3065
3066         * addresses.h (base_reg_class): Add address space argument.
3067         Pass to MODE_CODE_BASE_REG_CLASS.
3068         (ok_for_base_p_1): Add address space argument.  Pass to
3069         REGNO_MODE_CODE_OK_FOR_BASE_P.
3070         (regno_ok_for_base_p): Add address space argument.  Pass to
3071         ok_for_base_p_1.
3072
3073         * regrename.c (scan_rtx_address): Add address space argument.
3074         Pass address space to regno_ok_for_base_p and base_reg_class.
3075         Update recursive calls.
3076         (scan_rtx): Pass address space to scan_rtx_address.
3077         (build_def_use): Likewise.
3078         * regcprop.c (replace_oldest_value_addr): Add address space
3079         argument.  Pass to regno_ok_for_base_p and base_reg_class.
3080         Update recursive calls.
3081         (replace_oldest_value_mem): Pass address space to
3082         replace_oldest_value_addr.
3083         (copyprop_hardreg_forward_1): Likewise.
3084
3085         * reload.c (find_reloads_address_1): Add address space argument.
3086         Pass address space to base_reg_class and regno_ok_for_base_p.
3087         Update recursive calls.
3088         (find_reloads_address): Pass address space to base_reg_class,
3089         regno_ok_for_base_p, and find_reloads_address_1.
3090         (find_reloads): Pass address space to base_reg_class.
3091         (find_reloads_subreg_address): Likewise.
3092
3093         * ira-costs.c (record_reg_classes): Update calls to base_reg_class.
3094         (ok_for_base_p_nonstrict): Add address space argument.  Pass to
3095         ok_for_base_p_1.
3096         (record_address_regs): Add address space argument.  Pass to
3097         base_reg_class and ok_for_base_p_nonstrict.  Update recursive calls.
3098         (record_operand_costs): Pass address space to record_address_regs.
3099         (scan_one_insn): Likewise.
3100
3101         * caller-save.c (init_caller_save): Update call to base_reg_class.
3102         * ira-conflicts.c (ira_build_conflicts): Likewise.
3103         * reload1.c (maybe_fix_stack_asms): Likewise.
3104
3105 2011-11-08  Michael Matz  <matz@suse.de>
3106
3107         * gengtype.c (write_field_root): Avoid out-of-scope access of newv.
3108
3109         * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.
3110
3111         * tree.h (TREE_CLOBBER_P): New macro.
3112         * gimple.h (gimple_clobber_p): New inline function.
3113         * gimplify.c (gimplify_bind_expr): Add clobbers for all variables
3114         that go out of scope and live in memory.
3115         * tree-ssa-operands.c (get_expr_operands): Transfer volatility also
3116         for constructors.
3117         * cfgexpand.c (decl_to_stack_part): New static variable.
3118         (add_stack_var): Allocate it, and remember mapping.
3119         (fini_vars_expansion): Deallocate it.
3120         (stack_var_conflict_p): Add early outs.
3121         (visit_op, visit_conflict, add_scope_conflicts_1,
3122         add_scope_conflicts): New static functions.
3123         (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
3124         (expand_used_vars): Add scope conflicts.
3125         (expand_gimple_stmt_1): Expand clobbers to nothing.
3126         (expand_debug_expr): Ditto.
3127
3128         * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
3129         * tree-ssa-live.c (remove_unused_locals): Remove clobbers that
3130         refer to otherwise unused locals.
3131         * tree-sra.c (build_accesses_from_assign): Ignore clobbers.
3132         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
3133         SSA names aren't necessary.
3134         (propagate_necessity): Accept and ignore constructors on the rhs, tidy.
3135         * gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
3136         * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
3137         any known value.
3138         * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
3139         don't zero-initialize something.
3140         * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
3141         clobber RHS, we don't want PHI nodes with those.
3142
3143 2011-11-08  Jakub Jelinek  <jakub@redhat.com>
3144
3145         * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
3146         if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
3147
3148 2011-11-08  Richard Guenther  <rguenther@suse.de>
3149
3150         PR tree-optimization/51012
3151         * ipa-prop.c (update_indirect_edges_after_inlining): Fixup
3152         non-inlinable state.
3153         * cgraph.c (cgraph_make_edge_direct): Likewise.
3154
3155 2011-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3156
3157         PR rtl-optimization/47698
3158         * ifcvt.c (noce_operand_ok): Move around comment.
3159
3160 2011-11-08  Richard Guenther  <rguenther@suse.de>
3161
3162         PR lto/50999
3163         * lto-opts.c (append_to_collect_gcc_options): Split out from...
3164         (lto_write_options): ... here.  Prepend frontend specific flags.
3165
3166 2011-11-08  Jakub Jelinek  <jakub@redhat.com>
3167
3168         * config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
3169         0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.
3170
3171         * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
3172         Handle vectorization of SLP calls.
3173         (vect_analyze_stmt): Adjust caller, add call to it for SLP too.
3174         (vect_transform_stmt): Adjust vectorizable_call caller, remove
3175         assertion.
3176         * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
3177         with op_idx 3.
3178         (vect_build_slp_tree): Allow CALL_EXPR.
3179
3180 2011-11-08  Richard Guenther  <rguenther@suse.de>
3181
3182         * gimple-fold.c (canonicalize_constructor_val): Make sure
3183         we have referenced vars setup before adding to them.
3184
3185 2011-11-07  Richard Henderson  <rth@redhat.com>
3186             Aldy Hernandez  <aldyh@redhat.com>
3187             Andrew MacLeod  <amacleod@redhat.com>
3188             Torvald Riegel  <triegel@redhat.com>
3189
3190         Merged from transactional-memory.
3191
3192         * gtm-builtins.def: New file.
3193         * trans-mem.c: New file.
3194         * trans-mem.h: New file.
3195
3196         * opts.c (finish_options): Error out when using -flto and -fgnu-tm.
3197
3198         * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants.
3199         (ix86_handle_tm_regparm_attribute, struct bdesc_tm,
3200         ix86_builtin_tm_load, ix86_builtin_tm_store,
3201         ix86_init_tm_builtins): New.
3202         (ix86_init_builtins): Initialize TM builtins.
3203         (struct ix86_attribute_table): Add "*tm regparm".
3204         * config/i386/i386-builtin-types.def (PV2SI): Define.
3205         (PCV2SI): Define.
3206         Define V2SI_FTYPE_PCV2SI.
3207         Define V4SF_FTYPE_PCV4SF.
3208         Define V8SF_FTYPE_PCV8SF.
3209         Define VOID_PV2SI_V2SI.
3210
3211         * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and
3212         tm-max-aggregate-size.
3213         * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and
3214         TARGET_VECTORIZE_BUILTIN_TM_STORE hooks.
3215         * doc/tm.texi: Regenerate.
3216
3217         * attribs.c (apply_tm_attr): New.
3218         (init_attributes): Allow '*' prefix for overrides.
3219         (register_attribute): Likewise.
3220         * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New.
3221         (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST,
3222         ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST,
3223         ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST,
3224         ATTR_TMPURE_NOTHROW_LIST): New.
3225         * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR,
3226         BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248],
3227         BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE,
3228         BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New.
3229         * builtins.def: Include gtm-builtins.def. Add comments regarding
3230         transactional memory synchronization.
3231         (DEF_TM_BUILTIN): New.
3232         * c-parser.c (struct c_parser): Add in_transaction.
3233         (c_parser_transaction, c_parser_transaction_expression,
3234         c_parser_transaction_cancel, c_parser_transaction_attributes): New.
3235         (c_parser_attribute_any_word): Split out from c_parser_attributes.
3236         (c_parser_statement_after_labels): Handle RID_TRANSACTION*.
3237         (c_parser_unary_expression): Same.
3238         * c-tree.h (c_finish_transaction): Declare.
3239         * c-typeck.c (c_finish_transaction): New.
3240         (build_function_call_vec): Call tm_malloc_replacement.
3241         * calls.c (is_tm_builtin): New.
3242         (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE.
3243         * cfgbuild.c (make_edges): Add edges for REG_TM notes.
3244         * cfgexpand.c (expand_call_stmt): Call
3245         mark_transaction_restart_calls.
3246         (gimple_expand_cfg): Free the tm_restart map.
3247         (mark_transaction_restart_calls): New.
3248         * cfgrtl.c (purge_dead_edges): Look for REG_TM notes.
3249         * cgraph.c (dump_cgraph_node): Handle tm_clone.
3250         * cgraph.h (struct cgraph_node): Add tm_clone field.
3251         (decl_is_tm_clone): New.
3252         (struct cgraph_local_info): Add tm_may_enter_irr.
3253         (cgraph_copy_node_for_versioning): Declare.
3254         * cgraphunit.c (cgraph_copy_node_for_versioning): Export;
3255         copy analyzed from old version.
3256         * combine.c (distribute_notes): Handle REG_TM notes.
3257         * common.opt: Add -fgnu-tm.
3258         * crtstuff.c (__TMC_LIST__, __TMC_END__): New.
3259         (__do_global_dtors_aux): Deregister clone table.
3260         (frame_dummy): Register clone table.
3261         * emit-rtl.c (try_split): Handle REG_TM. Early return if no function
3262         body.
3263         * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and
3264         GIMPLE_TRANSACTION.
3265         (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE.
3266         * gimple-pretty-print.c: Include trans-mem.h.
3267         (dump_gimple_fmt): Add %x.
3268         (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction.
3269         (dump_gimple_eh_else, dump_gimple_transaction): New.
3270         (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3271         * gimple.c (gimple_build_eh_else, gimple_build_transaction): New.
3272         (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt
3273         field.
3274         (walk_gimple_op): Handle GIMPLE_TRANSACTION.
3275         (walk_gimple_stmt): Initialize and honor removed_stmt.
3276         Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3277         (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3278         * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New.
3279         * gimple.h (struct gimple_statement_eh_else,
3280         gimple_statement_transaction, GTMA_*): New.
3281         (gimple_statement_d): Add gimple_statement_eh_else and
3282         gimple_transaction.
3283         (gimple_build_eh_else, gimple_build_transaction,
3284         gimple_fold_call, diagnose_tm_safe_errors): Declare.
3285         (get_call_expr_in): Remove prototype.
3286         (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3287         (gimple_eh_else_n_body, gimple_eh_else_e_body,
3288         gimple_eh_else_set_n_body, gimple_eh_else_set_e_body,
3289         gimple_transaction_body, gimple_transaction_label,
3290         gimple_transaction_label_ptr, gimple_transaction_subcode,
3291         gimple_transaction_set_body, gimple_transaction_set_label,
3292         gimple_transaction_set_subcode): New.
3293         (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt.
3294         * gimplify.c (create_tmp_var_name): Use clean_symbol_name.
3295         (voidify_wrapper_expr): Handle TRANSACTION_EXPR.
3296         (gimplify_transaction): New.
3297         (gimplify_expr): Handle TRANSACTION_EXPR.
3298         * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New.
3299         * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling
3300         TM pure functions.
3301         * Makefile.in: Add trans-mem.o and dependencies.
3302         (BUILTINS_DEF): Add gtm-builtins.def.
3303         (gimple-pretty-print.o): Depend on TRANS_MEM_H.
3304         (GTFILES): Add trans-mem.c.
3305         * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION.
3306         * output.h (record_tm_clone_pair, finish_tm_clone_pairs,
3307         get_tm_clone_pair): Declare.
3308         * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New.
3309         * passes.c (init_optimization_passes): Place transactional memory
3310         passes.
3311         * print-tree.c (print_node): Dump tm-clone.
3312         * recog.c (peep2_attempt): Handle REG_TM.
3313         * reg-notes.def (TM): New.
3314         * rtlanal.c (alloc_reg_note): Handle REG_TM.
3315         * target.def (builtin_tm_load, builtin_tm_store): New.
3316         * targhooks.c (default_builtin_tm_load_store): New.
3317         * targhooks.h (default_builtin_tm_load_store): Declare.
3318         * timevar.def (TV_TRANS_MEM): New.
3319         * toplev.c (compile_file): Call finish_tm_clone_pairs.
3320         * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION.
3321         (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary
3322         writes into the statements to update labels.
3323         (is_ctrl_altering_stmt): Add TM ending statements. Handle
3324         GIMPLE_TRANSACTION.
3325         (verify_gimple_transaction): New.
3326         (verify_gimple_stmt): Handle GIMPLE_TRANSACTION.
3327         (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3328         (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION.
3329         (dump_function_to_file): Display [tm-clone] if applicable.
3330         * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h.
3331         (struct_ptr_hash): Same.
3332         (collect_finally_tree): Handle GIMPLE_EH_ELSE.
3333         (replace_goto_queue_1): Likewise.
3334         (get_eh_else): New.
3335         (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE.
3336         (lower_try_finally_nofallthru): Likewise.
3337         (lower_try_finally_onedest): Likewise.
3338         (lower_try_finally_copy): Likewise.
3339         (lower_try_finally_switch): Likewise.
3340         (lower_try_finally): Likewise.
3341         (decide_copy_try_finally): Likewise.
3342         (lower_eh_constructs_2): Likewise.
3343         (refactor_eh_r): Likewise.
3344         * tree-flow.h (struct gimple_df): Add tm_restart field.
3345         Define tm_restart_node.
3346         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION.
3347         (estimate_num_insns): Likewise.
3348         (init_inline_once): Init tm_cost.
3349         * tree-inline.h (struct eni_weights_d): Add tm_cost.
3350         * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init,
3351         pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare.
3352         * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR.
3353         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3354         BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
3355         Add support for TM vector loads.  Add support for TM logging builtins.
3356         (call_may_clobber_ref_p_1): Add support for vector stores.
3357         * tree-ssa-structalias.c (find_func_aliases): Add support for TM
3358         vector stores and loads. Handle BUILT_IN_TM_MEMSET,
3359         BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
3360         * tree.c (strip_invariant_refs): Moved from gimple.c to here.
3361         (local_define_builtin): Handle ECF_TM_PURE.
3362         (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE.
3363         * tree.def (TRANSACTION_EXPR): New.
3364         * tree.h (strip_invariant_refs): Moved from gimple.h to here.
3365         (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK,
3366         TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED,
3367         BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P,
3368         CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New.
3369         (ECF_TM_PURE, ECF_TM_BUILTIN): New.
3370         (struct tree_function_decl): Add tm_clone_flag.
3371         (struct_ptr_eq, struct_ptr_hash): New.
3372         (apply_tm_attr): Declare.
3373         (is_tm_safe_or_pure): New.
3374         (build_tm_abort_call, is_tm_safe, is_tm_pure,
3375         is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement,
3376         tm_malloc_replacement): Declare.
3377         * varasm.c (tm_clone_hash): New.
3378         (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair,
3379         dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New.
3380         (struct tm_alias_pair): New.  Declare VEC types for object.
3381
3382 2011-11-07  Richard Henderson  <rth@redhat.com>
3383
3384         * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
3385         OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
3386         OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
3387         OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
3388         OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
3389         rename from the direct_optab_index enum.
3390         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
3391         sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
3392         sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
3393         sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
3394         sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
3395         from the optab_table, not the direct_optab_table.
3396         (init_sync_libfuncs): Declare.
3397         (can_compare_and_swap_p): Update parameters.
3398         * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
3399         (can_compare_and_swap_p): Add allow_libcall parameter; if true,
3400         test for the legacy compare-and-swap libcall.
3401         (expand_atomic_exchange): Use the legacy test-and-set libcall.
3402         (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
3403         (struct atomic_op_functions): Update for optab type changes.
3404         (maybe_emit_op): Likewise.
3405         (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
3406         * builtins.c (fold_builtin_atomic_always_lock_free): Update call
3407         to can_compare_and_swap_p.
3408         * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
3409         (expand_omp_atomic_pipeline): Likewise.
3410         * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
3411         sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
3412         optabs.
3413         * doc/md.texi (sync_compare_and_swap): Update docs for libcalls.
3414
3415 2011-11-07  Jakub Jelinek  <jakub@redhat.com>
3416
3417         * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
3418         * config/i386/i386.c (enum ix86_builtins): Add
3419         IX86_BUILTIN_VEC_PACK_SFIX256.
3420         (bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
3421         (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
3422         (ix86_builtin_vectorized_function): Also vectorize lrint using
3423         256-bit vectors for -mavx.
3424
3425 2011-11-07  Anatoly Sokolov  <aesok@post.ru>
3426
3427         * config/cris/constraints.md: New file.
3428         * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
3429         CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
3430         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
3431         EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
3432         EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
3433         * config/cris/cris.c: Incule "tm-constrs.h".
3434         (cris_print_operand): Use satisfies_constraint_O.
3435         (cris_normal_notice_update_cc, cris_rtx_costs): Use
3436         satisfies_constraint_I.
3437         (cris_address_cost): Use satisfies_constraint_L.
3438         * config/cris/cris.md: Include "constraints.md".
3439         (*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
3440         *mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
3441         *ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
3442         *extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
3443         *extop<mode>si_swap_side): Use satisfies_constraint_N and
3444         satisfies_constraint_J.
3445         (moversideqi movemsideqi mover2side peephole2): Use
3446         satisfies_constraint_N and satisfies_constraint_J.
3447         (andu peephole2): Use satisfies_constraint_I and
3448         satisfies_constraint_O.
3449
3450 2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
3451
3452         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
3453         BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
3454
3455 2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
3456
3457         * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
3458         SWITCHABLE_TARGET can change the values during compilation.
3459         (expand_atomic_fetch_op): Handle parameter change ripples for
3460         get_atomic_op_for_code call.
3461
3462 2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
3463
3464         * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
3465         __atomic_store.
3466         * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
3467         only when originated from that builtin.
3468         (expand_atomic_store): Expand to __sync_lock_release when originated
3469         from that builtin.
3470         * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
3471         expand_atomic_exchange call originated from here.
3472         (expand_builtin_sync_lock_release): Add flag that expand_atomic_store
3473         call originated from here.
3474         (expand_builtin_atomic_exchange): Add origination flag.
3475         (expand_builtin_atomic_store): Add origination flag.
3476         * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
3477         parameters to indicate implementation fall back options.
3478
3479 2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
3480
3481         * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
3482         now, not only CONST_INT and CONST_DOUBLE.
3483         (output_movqi): Use output_reload_in_const.
3484         (output_reload_inhi): Ditto.
3485         (output_reload_insisf): Move assertion to output_reload_in_const.
3486         (avr_out_reload_inpsi): Ditto.
3487
3488 2011-11-07  Nathan Sidwell  <nathan@acm.org>
3489
3490         * gcov.c (object_summary): Replace with ...
3491         (object_runs): ... this.
3492         (process_file): Remove functions with no data.
3493         (generate_results): Ignore files with no lines.
3494         (release_function): New helper, broken out of ...
3495         (release_structures): ... here.  Use it.
3496         (read_count_file): Adjust for new data file format.
3497         (output_lines): Use object_runs.
3498         * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
3499         (struct gcov_ctr_info): Move definition.
3500         (struct gcov_fn_info): Add key field, use gcov_ctr_info for
3501         trailing array.
3502         (struct gcov_info): Add merge function array, remove mask and
3503         counts.  Trailing array is array of pointers to function info.
3504         * coverage.c (struct function_list): Replace counter numbers with
3505         counter arrays.  Add fndecl field.  GTYify.
3506         (counts_entry): Remove chain workspace.
3507         (functions_head): GTYify.
3508         (prg_n_ctrs): Remove.
3509         (fn_v_ctrs): New.
3510         (tree_ctr_tables): Remove.
3511         (read_counts_file): Cope with blank entries and expect program
3512         summaries before functions.  Don't warn on missing entries.
3513         (coverage_counter_alloc): Allocate individual function arrays.
3514         (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
3515         for individual function arrays.
3516         (coverage_end_function): GTYify function list object. Finalize
3517         function's counter arrays.
3518         (build_var): New.  Create a counter-related variable with
3519         appropriate linkage.
3520         (build_fn_info_type): Adjust for new runtime structure.
3521         (build_fn_info_value): Rename to ...
3522         (build_fn_info): ... here.  Build new format data.
3523         (build_ctr_info_type, build_ctr_info_value): Remove.
3524         (build_info_type): New. Build new format data structure.
3525         (build_info): Adjust for new format data.
3526         (create_coverage): Likewise.
3527         * gcov-dump.c (tag_function): Recognize placeholders.
3528
3529 2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
3530
3531         * config/avr/constraints.md (Cm2): New constraint for int -2.
3532         * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
3533         (*negqihi2): New insn.
3534
3535 2011-11-07  H.J. Lu  <hongjiu.lu@intel.com>
3536
3537         * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
3538         HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18.
3539
3540 2011-11-07  Jakub Jelinek  <jakub@redhat.com>
3541
3542         * config/i386/i386.c (ix86_expand_builtin): If gather mask
3543         argument is known to have all high bits set, pass pc_rtx as
3544         second argument to the expander instead of op0.
3545         * config/i386/sse.md (*avx2_gathersi<mode>_2,
3546         *avx2_gatherdi<mode>_2): New patterns.
3547         * config/i386/avx2intrin.h (_mm256_i32gather_pd,
3548         _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
3549         _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
3550         _mm256_set1_pd.
3551
3552         PR tree-optimization/50789
3553         * tree-vect-stmts.c (process_use): Add force argument, avoid
3554         exist_non_indexing_operands_for_use_p check if true.
3555         (vect_mark_stmts_to_be_vectorized): Adjust callers.  Handle
3556         STMT_VINFO_GATHER_P.
3557         (gen_perm_mask): New function.
3558         (perm_mask_for_reverse): Use it.
3559         (reverse_vec_element): Rename to...
3560         (permute_vec_elements): ... this.  Add Y and MASK_VEC arguments,
3561         generalize for any permutations.
3562         (vectorizable_load): Adjust caller.  Handle STMT_VINFO_GATHER_P.
3563         * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
3564         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
3565         * doc/tm.texi: Regenerate.
3566         * tree-data-ref.c (initialize_data_dependence_relation,
3567         compute_self_dependence): No longer static.
3568         * tree-data-ref.h (initialize_data_dependence_relation,
3569         compute_self_dependence): New prototypes.
3570         * tree-vect-data-refs.c (vect_check_gather): New function.
3571         (vect_analyze_data_refs): Detect possible gather load data refs.
3572         * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
3573         (STMT_VINFO_GATHER_P): Define.
3574         (vect_check_gather): New prototype.
3575         * config/i386/i386-builtin-types.def: Add types for alternate
3576         gather builtins.
3577         * config/i386/sse.md (AVXMODE48P_DI): Remove.
3578         (VEC_GATHER_MODE): Rename mode_attr to...
3579         (VEC_GATHER_IDXSI): ... this.
3580         (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
3581         (avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
3582         instead of <VEC_GATHER_MODE>.
3583         (avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
3584         <AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
3585         on src and mask operands.
3586         (*avx2_gatherdi<mode>): Likewise.  Use VEC_GATHER_MODE iterator
3587         instead of AVXMODE48P_DI.
3588         (avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
3589         * config/i386/i386.c (enum ix86_builtins): Add
3590         IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
3591         IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
3592         (ix86_init_mmx_sse_builtins): Create those builtins.
3593         (ix86_expand_builtin): Handle those builtins and adjust expansions
3594         of other gather builtins.
3595         (ix86_vectorize_builtin_gather): New function.
3596         (TARGET_VECTORIZE_BUILTIN_GATHER): Define.
3597
3598 2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
3599
3600         * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check.
3601
3602 2011-11-07  Tristan Gingold  <gingold@adacore.com>
3603
3604         * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
3605         * config/vms/t-vms: Add vms-c.o rule.
3606         * config/vms/vms-c.c: New file.
3607         * config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
3608         * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
3609
3610 2011-11-07  Tristan Gingold  <gingold@adacore.com>
3611
3612         * config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
3613         TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
3614         TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
3615         POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
3616         (SUBTARGET_OS_CPP_BUILTINS): Define.
3617         (TARGET_DEFAULT): Tune according to POINTER_SIZE.
3618         (MASK_RETURN_ADDR): Define in 64 bit mode.
3619         * config/ia64/vms.h: Likewise.
3620         * config/vms/vms.h: New file.
3621         * config/vms/vms64.h: New file.
3622         * config/alpha/vms64.h: Removed.
3623         * config/ia64/vms64.h: Removed.
3624         * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
3625         Adjust for above change.
3626
3627 2011-11-07  Enkovich Ilya  <ilya.enkovich@intel.com>
3628
3629         PR target/50962
3630         * config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
3631         * config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
3632         * config/i386/i386.md (movsi_internal): Emit lea if profitable.
3633         (movdi_internal_rex64): Likewise.
3634
3635 2011-11-07  Sergey Ostanevich  <sergos.gnu@gmail.com>
3636
3637         PR rtl-optimization/47698
3638         * ifcvt.c (noce_operand_ok): Return false for mems with side effects.
3639
3640 2011-11-07  Tristan Gingold  <gingold@adacore.com>
3641
3642         * common/config/alpha/alpha-common.c (alpha_option_init_struct):
3643         New function.
3644         (TARGET_OPTION_INIT_STRUCT): Define.
3645         * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
3646         (TARGET_MAX_ANCHOR_OFFSET)
3647         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.
3648
3649 2011-11-06  Quentin Neill  <quentin.neill@amd.com>
3650
3651         Fix r180999, update ChangeLog
3652         * config.gcc: Add f16cintrin.h.
3653         * config/i386/f16cintrin.h: Add missing endif.
3654
3655 2011-11-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3656
3657         * config.gcc (arm*-*-rtemseabi*): New target.
3658         * config/arm/rtems-eabi.h: New.
3659         * config/arm/t-rtems-eabi: New.
3660
3661 2011-11-06  David S. Miller  <davem@davemloft.net>
3662
3663         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete.
3664         (zero_extend_v8qi_vis, zero_extend_v4hi_vis,
3665         *zero_extend_v8qi_<P:mode>_insn,
3666         *zero_extend_v4hi_<P:mode>_insn): Express using vec_merge
3667         and vec_duplicate instead of using an UNSPEC.
3668
3669 2011-11-07  Alan Modra  <amodra@gmail.com>
3670
3671         PR target/30282
3672         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
3673         blockage for ABI_V4.
3674
3675 2011-11-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3676
3677         * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
3678         libgcj version bump.
3679         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
3680
3681 2011-11-06  Eric Botcazou  <ebotcazou@adacore.com>
3682
3683         * gcse.c: Adjust outdated comments throughout.
3684         (struct mem_conflict_info): New structure.
3685         (mems_conflict_for_gcse_p): Use it to communicate with caller.
3686         (load_killed_in_block_p): Pass it to note_stores.
3687         (hash_expr): Remove superfluous line break.
3688         (hash_scan_set): Rename PAT parameter into SET.
3689         (hash_scan_insn): Reorder cases.
3690         (canon_list_insert): Fix long line.
3691         (edge_list): Delete.
3692         (prune_expressions): Rename E local variable into EXPR.
3693         (compute_pre_data): Return struct edge_list * object.
3694         (pre_expr_reaches_here_p_work): Fix formatting.
3695         (process_insert_insn): Move around comment.
3696         (pre_edge_insert): Fix long line.
3697         (pre_insert_copies): Likewise.
3698         (gcse_emit_move_after): Swap SRC and DEST parameters.
3699         (pre_delete): Adjust call to gcse_emit_move_after.
3700         (pre_gcse): Take struct edge_list * parameter.  Fix long line.
3701         (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines.
3702         Use a local list of edges.
3703         (hoist_code): Fix long line.  Adjust call to gcse_emit_move_after.
3704         (pre_ldst_expr_hash): Fix long line.
3705         (free_ldst_mems): Rename into...
3706         (free_ld_motion_mems): ...this.
3707         (first_ls_expr): Delete.
3708         (next_ls_expr): Likewise.
3709         (print_ldst_list): Do not use above two functions.
3710         (simple_mem): Adjust interface.
3711         (compute_ld_motion_mems): Fix formatting.
3712         (update_ld_motion_stores): Reuse local variable.
3713
3714 2011-11-06  Joseph Myers  <joseph@codesourcery.com>
3715
3716         * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas
3717         specifiers.
3718         (build_null_declspecs): Initialize align_log and alignas_p fields.
3719         (declspecs_add_alignas): New.
3720         * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS.
3721         (c_parser_declspecs): Handle _Alignas specifiers.
3722         (c_parser_alignas_specifier): New.
3723         (c_parser_alignof_expression): Diagnose alignof use for non-C1X.
3724         Diagnose _Alignof (expression).
3725         * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields.
3726         (declspecs_add_alignas): Declare.
3727         * ginclude/stddef.h (max_align_t): Define for C1X and C++11.
3728         * ginclude/stdalign.h: New.
3729         * Makefile.in (USER_H): Add stdalign.h.
3730
3731 2011-11-06  Joern Rennecke  <joern.rennecke@embecosm.com>
3732
3733         * regset.h (fixed_reg_set_regset): Declare.
3734         * dse.c: Include regset.h .
3735         (struct insn_info): Add member fixed_regs_live.
3736         (note_add_store_info): New typedef.
3737         (note_add_store): New function.
3738         (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t.
3739         Use gen_add3_insn / gen_move_insn.
3740         Check new insn for unwanted clobbers before emitting it.
3741         (check_for_inc_dec): Rename to...
3742         (check_for_inc_dec_1:) ... this.  Return bool.  Take insn_info
3743         parameter.  Changed all callers in file.
3744         (check_for_inc_dec, copy_fixed_regs): New functions.
3745         (scan_insn): Set fixed_regs_live field of insn_info.
3746         * rtl.h (check_for_inc_dec): Update prototype.
3747         * postreload.c (reload_cse_simplify): Take new signature of
3748         check_ind_dec into account.
3749         * reginfo.c (fixed_reg_set_regset): New variable.
3750         (init_reg_sets_1): Initialize it.
3751
3752 2011-11-06  Jakub Jelinek  <jakub@redhat.com>
3753
3754         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove
3755         any user labels.
3756
3757 2011-11-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3758
3759         * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
3760         Remove dependence of declaration and target define on definition of
3761         HPUX_LONG_DOUBLE_LIBRARY.  Update implementation.
3762
3763 2011-11-06  Andrew Macleod  <amacleod@redhat.com>
3764             Richard Henderson  <rth@redhat.com>
3765             Aldy Hernandez  <aldyh@redhat.com>
3766
3767         Merged from cxx-mem-model.
3768
3769         * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models
3770         * coretypes.h (enum memmodel): New.  enumerated memory model type.
3771         * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H)
3772         * genopinit,c (optabs): Add atomic direct optab handlers.
3773         * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins.
3774         * builtin-types.def (BT_CONST_VOLATILE_PTR,
3775         BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
3776         BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
3777         BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT,
3778         BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
3779         BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
3780         BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types.
3781         * expr.h (expand_atomic_*): Add prototypes.
3782         (expand_{bool,val}_compare_and_swap): Remove prototypes.
3783         * c-typeck.c (build_function_call_vec): Don't reprocess __atomic
3784         parameters.
3785         * common.opt (Winvalid-memory-model): New warning flag.
3786         (finline-atomics): New. Flag to disable atomic inlining.
3787         * params.h (ALLOW_LOAD_DATA_RACES): New.
3788         (ALLOW_PACKED_LOAD_DATA_RACES): New.
3789         (ALLOW_PACKED_STORE_DATA_RACES): New.
3790         * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New.
3791         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New.
3792         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New.
3793         * builtins.c (is_builtin_name): Handle __atomic.
3794         (get_memmodel): New.  Extract memory model.
3795         (expand_expr_force_mode): New. Factor out common code for ensuring an
3796         integer argument is in the proper mode.
3797         (expand_builtin_sync_operation): Remove ignore param.  Always call
3798         expand_atomic_fetch_op instead of the old expanders.
3799         (expand_builtin_compare_and_swap,
3800         expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode,
3801         call atomic expanders instead of sync expanders.
3802         (expand_builtin_sync_lock_release): Call atomic_store expander.
3803         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
3804         expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New.
3805         (expand_builtin_atomic_exchange): New.
3806         (fold_builtin_atomic_always_lock_free,
3807         expand_builtin_atomic_always_lock_free,
3808         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
3809         New.
3810         (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence,
3811         expand_builtin_atomic_signal_fence): New.
3812         (expand_builtin_mem_signal_fence): New.
3813         (expand_builtin): Add cases for BUILT_IN_ATOMIC_*.
3814         (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE.
3815         * optabs.h (DOI_atomic_*): Define new atomics.
3816         (atomic_*_optab): Define.
3817         (can_compare_and_swap_p, expand_atomic_compare_and_swap): New
3818         prototypes.
3819         * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
3820         (expand_sync_lock_test_and_set): Remove.
3821         (expand_atomic_load, expand_atomic_store): New.
3822         (expand_atomic_exchange): New.
3823         (expand_atomic_compare_and_swap): New.  Implements
3824         atomic_compare_exchange via compare and swap.
3825         (struct atomic_op_functions): Opcode table struct for fetch ops.
3826         (get_atomic_op_for_code): New.  Return an opcode table entry.
3827         (maybe_emit_op): New.  Try to emit a fetch op.
3828         (expand_atomic_fetch_op): New.
3829         (expand_val_compare_and_swap_1): Remove.
3830         (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove.
3831         (expand_atomic_compare_and_swap): Rename from
3832         expand_atomic_compare_exchange.  Rewrite to return both success and
3833         oldval return values; expand via both atomic and sync optabs.
3834         (can_compare_and_swap_p): New.
3835         (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap.
3836         (maybe_gen_insn): Handle 7 and 8 operands.
3837         * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual
3838         fetch_op optabs, only test can_compare_and_swap_p.  Use __atomic
3839         builtins instead of __sync builtins.
3840         (expand_omp_atomic_pipeline): Use can_compare_and_swap_p.
3841         * doc/extend.texi: Document __atomic built-in functions.
3842         * doc/invoke.texi: Document data race parameters.
3843         * doc/md.texi: Document atomic patterns.
3844         * config/i386/i386.md (UNSPEC_MOVA): New.
3845         (UNSPECV_CMPXCHG): Split into ...
3846         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2,
3847         UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New.
3848         * config/i386/sync.md (ATOMIC): New mode iterator.
3849         (atomic_load<ATOMIC>, atomic_store<ATOMIC>): New.
3850         (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New.
3851         (mem_thread_fence): Rename from memory_barrier.
3852         Handle the added memory model parameter.
3853         (mfence_nosse): Rename from memory_barrier_nosse.
3854         (sync_compare_and_swap<CASMODE>): Split into ...
3855         (atomic_compare_and_swap<SWI124>): this and ...
3856         (atomic_compare_and_swap<CASMODE>): this.  Handle the new parameters.
3857         (atomic_compare_and_swap_single<SWI>): Rename from
3858         sync_compare_and_swap<SWI>; rewrite to use split unspecs.
3859         (atomic_compare_and_swap_double<DCASMODE>): Rename from
3860         sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs.
3861         (*atomic_compare_and_swap_doubledi_pic): Rename from
3862         sync_double_compare_and_swapdi_pic; rewrite to use split unspecs.
3863         (atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory
3864         model parameter.
3865         (*atomic_fetch_add_cmp<SWI>): Similarly.
3866         (atomic_add<SWI>, atomic<any_logic><SWI>): Similarly.
3867         (atomic_sub<SWI>): Similarly.  Use x86_maybe_negate_const_int.
3868         (sync_lock_test_and_set<SWI>): Merge with ...
3869         (atomic_exchange<SWI>): ... this.
3870
3871 2011-11-6  Richard Guenther  <rguenther@suse.de>
3872
3873         * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag.
3874
3875 2011-11-06  Ira Rosen  <ira.rosen@linaro.org>
3876
3877         * tree-vectorizer.h (vectorizable_condition): Add argument.
3878         * tree-vect-loop.c (vectorizable_reduction): Fail for condition
3879         in SLP.  Update calls to vectorizable_condition.
3880         * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
3881         the arguments.  Pass it to vect_is_simple_use_1.
3882         (vectorizable_condition): Add slp_node to the arguments.  Support
3883         vectorization of basic blocks.  Fail for reduction in SLP.  Update
3884         calls to vect_is_simple_cond and vect_is_simple_use.  Support SLP:
3885         call vect_get_slp_defs to get vector operands.
3886         (vect_analyze_stmt): Update calls to vectorizable_condition.
3887         (vect_transform_stmt): Likewise.
3888         * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
3889         (vect_get_and_check_slp_defs): Handle COND_EXPR.  Allow pattern
3890         def stmts.
3891         (vect_build_slp_tree): Handle COND_EXPR.
3892         (vect_analyze_slp_instance): Push pattern statements to root node.
3893         (vect_get_constant_vectors): Fix comments.  Handle COND_EXPR.
3894
3895 2011-11-05  David S. Miller  <davem@davemloft.net>
3896
3897         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
3898         (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
3899         (*zero_extend_v8qi_<P:mode>_insn,
3900         *zero_extend_v4hi_<P:mode>_insn): New insns.
3901         * config/sparc/sparc.c (vector_init_move_words,
3902         vector_init_prepare_elts, sparc_expand_vector_init_vis2,
3903         sparc_expand_vector_init_vis1): New functions.
3904         (vector_init_bshuffle): Rewrite to handle more cases and make use
3905         of locs[] array prepared by vector_init_prepare_elts.
3906         (vector_init_fpmerge, vector_init_faligndata): Delete.
3907         (sparc_expand_vector_init): Rewrite using new infrastructure.
3908
3909 2011-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>
3910
3911         * config.gcc (epiphany-*-*): New architecture.
3912         (epiphany-*-elf): New configuration.
3913         * config/epiphany, common/config/epiphany : New directories.
3914         * doc/extend.texi (disinterrupt attribute): Add Epiphany.
3915         (interrupt attribute): Add Epiphany.
3916         (long_call, short_call attribute): Add Epiphany.
3917         * doc/invoke.texi (Options): Add Epiphany options.
3918         * doc/md.texi (Machine Constraints): Add Epiphany constraints.
3919         * doc/install.texi (Options specification):
3920         Add --with-stack-offset=@var{num} description.
3921         (host/target specific issues): Add epiphany-*-elf.
3922         * doc/contrib.texi (Contributors): Mention Epiphany port.
3923
3924 2011-11-05  Jakub Jelinek  <jakub@redhat.com>
3925
3926         PR tree-optimization/50693
3927         * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
3928         non-forced user labels.
3929         (gimple_merge_blocks): Turn non-forced user labels into
3930         debug bind stmt with the label as first operand and reset value.
3931         (gimple_duplicate_bb): Don't duplicate label debug stmts.
3932         * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
3933         * final.c (final_scan_insn): Likewise.
3934         (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
3935         * var-tracking.c (debug_label_num): New variable.
3936         (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
3937         instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
3938         * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
3939         NOTE_INSN_DELETED_DEBUG_LABEL.
3940         (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
3941         * insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
3942         * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
3943         * gengtype.c (adjust_field_rtx_def): Likewise.
3944         * config/i386/i386.c (ix86_output_function_epilogue): For MachO
3945         clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
3946         if their are at the end of function and nop hasn't been emitted.
3947         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
3948
3949 2011-11-05  Georg-Johann Lay  <avr@gjlay.de>
3950
3951         PR rtl-optimization/50448
3952         * cprop.c (try_replace_reg): Also try to replace uses of FROM that
3953         appear in SET_DEST.
3954
3955 2011-11-05  Peter Dufault  <dufault@hda.com>,
3956             Sebastian Huber  <sebastian.huber@embedded-brains.de>
3957
3958         * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3959         Extend rs6000_spe handling.
3960
3961 2011-11-05  Ralf Corsépius  <ralf.corsepius@rtems.org>
3962
3963         * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
3964         Remove -mcpu=601 multilib.
3965         Remove -Dmpc8260 multilib.
3966         * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
3967         on E500 targets.
3968
3969 2011-11-05  Quentin Neill  <quentin.neill@amd.com>
3970
3971         Piledriver f16cintrin.h fix.
3972         * config/i386/f16cintrin.h: Contents moved from immintrin.h.
3973         * config/i386/immintrin.h: Include f16cintrin.h.
3974         * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h.
3975
3976
3977 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
3978
3979         PR c++/50608
3980         * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
3981         to fold_offsetof.
3982         * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
3983
3984 2011-11-04  Alan Modra  <amodra@gmail.com>
3985
3986         * reload1.c (gen_reload): Don't use REGNO on SUBREGs.
3987         * print-rtl.c (print_rtx): Don't segfault on negative regno.
3988
3989 2011-11-04  David S. Miller  <davem@davemloft.net>
3990
3991         PR target/49965
3992         * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
3993         fact that sparc_emit_float_lib_cmp modifies the comparison in
3994         operands[1].
3995
3996 2011-11-04  Ralf Corsépius  <ralf.corsepius@rtems.org>
3997
3998         * config/lm32/t-rtems: New.
3999         * config.gcc (lm32-*-rtems*): Add t-rtems.
4000
4001 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
4002
4003         PR target/50979
4004         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
4005
4006 2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>
4007
4008         PR rtl-optimization/38644
4009         * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
4010         for epilogue having stack adjustment.
4011
4012 2011-11-04  Georg-Johann Lay  <avr@gjlay.de>
4013
4014         PR target/50931
4015         * config/avr/avr-modes.def: New file defining PSImode.
4016         * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
4017         __UINT24_MAX__): New built-in defines.
4018         * config/avr/avr.md (adjust_len): Add tstpsi, mov24,  reload_in24,
4019         ashlpsi, ashrpsi, lshrpsi.
4020         (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
4021         (MOVMODE): New mode iterator.
4022         (movpsi): New expander.
4023         (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
4024         (*reload_inpsi, *movpsi): New insns.
4025         (*reload_inpsi): New RTL peephole.
4026         (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
4027         *addpsi3_sign_extend.hi): New insns.
4028         (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
4029         *subpsi3_sign_extend.hi): New insns.
4030         (divmodpsi4, udivmodpsi4): New define insn-and-split.
4031         (*divmodpsi4_call, *udivmodpsi4_call): New insns.
4032         (andpsi3, iorpsi3, xorpsi3): New insns.
4033         (*rotlpsi2.1, *rotlpsi2.23): New insns.
4034         (*rotw<mode>): Insn condition only allow even-sized modes.
4035         (*rotb<mode>): Insn condition allows odd-sized modes.
4036         (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
4037         (negpsi2, one_cmplpsi2): New insns.
4038         (extendqipsi2, extendhipsi2, extendpsisi2): New insns.
4039         (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
4040         insn-and-splits.
4041         (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
4042         (cbranchpsi4): New expander.
4043         * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
4044         * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
4045         avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
4046         avr_out_reload_inpsi): New prototypes.
4047
4048         * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
4049         (avr_scalar_mode_supported_p): ...this new static function.
4050         (avr_asm_len): Always return "".
4051         (avr_out_load_psi, avr_out_store_psi): New static functions.
4052         (avr_out_movpsi, avr_out_reload_inpsi): New functions.
4053         (avr_out_tstpsi): New function.
4054         (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
4055         (avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
4056         (avr_simplify_comparison_p): Ditto.
4057         (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
4058         ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
4059         ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
4060         (avr_rtx_costs_1): Report PSI costs.
4061         (avr_libcall_value): Handle odd-sized parameters.
4062         (avr_init_builtin_int24): New static function to define built-in
4063         24-bit types __int24 and __uint24.
4064         (avr_init_builtins): Use it.
4065
4066 2011-11-04  Thomas Doerfler <thomas.doerfler@embedded-brains.de>
4067
4068         PR target/50989
4069         * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
4070         support for VFP floating point model.
4071
4072 2011-11-04  Tristan Gingold  <gingold@adacore.com>
4073
4074         * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
4075
4076 2011-11-04  Ira Rosen  <ira.rosen@linaro.org>
4077
4078         Unrevert:
4079         2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
4080
4081         PR tree-optimization/50730
4082         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
4083         analysis if encountered unsupported data-ref.
4084
4085 2011-11-04  Jakub Jelinek  <jakub@redhat.com>
4086
4087         * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
4088         function.
4089         * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
4090         New prototype.
4091         * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
4092         For floatunsv8siv8sf2 require TARGET_AVX2.
4093
4094         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
4095         XORP argument.  Subtract 0x1p31 instead of 0x1p32.  Use normal
4096         signalling comparison instead of non-signalling.  Store into
4097         *XORP pseudo holding 0x80000000 integers if 0x1p31 has been
4098         subtracted and 0 otherwise.
4099         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
4100         Adjust prototype.
4101         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
4102         already for TARGET_SSE2.  Xor in vector initialized by
4103         ix86_expand_adjust_ufix_to_sfix_si at the end.
4104         (vec_pack_ufix_trunc_<mode>): Likewise.
4105
4106         * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
4107         not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
4108         WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
4109         vectorizable_type_demotion and vectorizable_type_promotion did.
4110         Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
4111         is {,un}signed {char,short}.
4112         (vect_create_vectorized_demotion_stmts): Fix comment typo.  For
4113         recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
4114         Push vec_dest back to the vec_dsts vector at the end.
4115         (vect_create_vectorized_promotion_stmts): Don't recurse, do just
4116         one step.  Removed multi_step_cvt, vec_dsts, slp_node and
4117         prev_stmt_info arguments, add vec_dest argument.  Push always
4118         into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
4119         with vec_tmp at the end after freeing old *vec_oprnd0 vector.
4120         (vectorizable_type_demotion, vectorizable_type_promotion): Removed.
4121         (vect_analyze_stmt): Don't call vectorizable_type_demotion and
4122         vectorizable_type_promotion.  Call vectorizable_conversion even
4123         for SLP bb vectorization.
4124         (vect_transform_stmt): Call vectorizable_conversion instead of
4125         vectorizable_type_demotion and vectorizable_type_promotion.
4126         (supportable_widening_operation): Clear *multi_step_cvt first,
4127         simplify c1/c2 computation, free *interm_types vector on failure.
4128         (supportable_narrowing_operation): Clear *multi_step_cvt first,
4129         free *interm_types vector on failure, handle multi-step
4130         FIX_TRUNC_EXPR.
4131
4132 2011-11-04  Tristan Gingold  <gingold@adacore.com>
4133
4134         * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
4135         argument.  Conditionally generate crash debug info.  Adjust
4136         for alpha_funcs_tree removal.
4137         (machine_function): Add links field.
4138         (alpha_start_function): Conditionally generate crash debug info.
4139         (alpha_end_function): Adjust call to alpha_write_linkage.
4140         (alpha_funcs): Remove.
4141         (links_kind): Remove.
4142         (alpha_links): Remove num, target and lkind field.  Add func field.
4143         (alpha_links_tree): Remove.
4144         (alpha_funcs_tree): Remove.
4145         (alpha_need_linkage): Remove.
4146         (alpha_use_linkage): Change prototype.  Adjust.
4147         (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
4148         Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
4149         * config/alpha/alpha-protos.h (alpha_use_linkage): Update.
4150         (alpha_need_linkage): Remove.
4151         * config/alpha/alpha.md: Update calls to alpha_use_linkage.
4152         Adjust calls to alpha_need_linkage.
4153
4154 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
4155
4156         * sched-vis.c (print_value): Handle STRICT_LOW_PART.
4157
4158 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
4159
4160         * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
4161         rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
4162         btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
4163
4164 2011-11-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4165
4166         PR target/50978
4167         * config/arm/t-bpabi: New file.
4168         * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for
4169         arm*-*-linux-*eabi.
4170         (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for
4171         arm*-*-uclinux*eabi.
4172         (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file
4173         for arm*-*-eabi*.
4174
4175 2011-11-03  Michael Matz  <matz@suse.de>
4176
4177         PR bootstrap/50857
4178         * configure.ac: Check for -fno-exceptions -fno-rtti.
4179         * configure: Regenerate.
4180         * Makefile.in (NOEXCEPTION_FLAGS): New flag.
4181         (ALL_CXXFLAGS): Use it.
4182
4183 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
4184
4185         * config/i386/i386.md: Use {} for multi-line preparation statements.
4186
4187 2011-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4188
4189         * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into...
4190         (movtf_insn_sp32): ...this.
4191         (movtf_insn_sp64_no_fpu): Consolidate into...
4192         (movtf_insn_sp64): ...this.
4193         (movtf_insn_sp64_hq): Do not test TARGET_FPU.
4194         * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise.
4195
4196 2011-11-03  Tristan Gingold  <gingold@adacore.com>
4197
4198         * config/vms/vms.c (vms_patch_builtins): Fix typo.
4199
4200 2011-11-03  Richard Guenther  <rguenther@suse.de>
4201
4202         PR lto/44965
4203         * lto-opts.c: Re-implement.
4204         * lto-streamer.h (lto_register_user_option): Remove.
4205         (lto_read_file_options): Likewise.
4206         (lto_reissue_options): Likewise.
4207         (lto_clear_user_options): Likewise.
4208         (lto_clear_file_options): Likewise.
4209         * opts-global.c (post_handling_callback): Remove.
4210         (set_default_handlers): Do not set post_handling_callback.
4211         (decode_options): Remove LTO specific code.
4212         * lto-wrapper.c (merge_and_complain): New function.
4213         (run_gcc): Read all input file options and
4214         prepend a merged set before the linker driver options.
4215         * gcc.c (driver_post_handling_callback): Remove.
4216         (set_option_handlers): Do not set post_handling_callback.
4217         * opts-common.c (handle_option): Do not call post_handling_callback.
4218         * opts.h (struct cl_option_handlers): Remove post_handling_callback.
4219
4220 2011-11-03  Richard Guenther  <rguenther@suse.de>
4221
4222         * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION.
4223
4224 2011-11-03  Martin Jambor  <mjambor@suse.cz>
4225
4226         * ipa-prop.c (type_change_info): New fields offset, object,
4227         known_current_type and multiple_types_encountered.
4228         (extr_type_from_vtbl_ptr_store): New function.
4229         (check_stmt_for_type_change): Use it, set multiple_types_encountered if
4230         the result is different from the previous one.
4231         (detect_type_change): Renamed to detect_type_change_1. New parameter
4232         comp_type.  Set up new fields in tci, build known type jump
4233         functions if the new type can be identified.
4234         (detect_type_change): New function.
4235         * tree.h (DECL_CONTEXT): Comment new use.
4236
4237 2011-11-03  Richard Guenther  <rguenther@suse.de>
4238
4239         PR lto/48217
4240         * lto-wrapper.c (get_options_from_collect_gcc_options): Properly
4241         decode an encoded literal '.
4242
4243 2011-11-03  Tristan Gingold  <gingold@adacore.com>
4244
4245         * collect2.c (main): Add support of -f (response file) on AIX.
4246
4247 2011-11-03  Ira Rosen  <ira.rosen@linaro.org>
4248
4249         PR tree-optimization/50912
4250         * tree-vectorizer.h (slp_void_p): New.
4251         (struct _slp_tree): Replace left and right with children.  Update
4252         documentation.
4253         (struct _slp_oprnd_info): New.
4254         (vect_get_vec_defs): Declare.
4255         (vect_get_slp_defs): Update arguments.
4256         * tree-vect-loop.c (vect_create_epilog_for_reduction): Call
4257         vect_get_vec_defs instead of vect_get_slp_defs.
4258         (vectorizable_reduction): Likewise.
4259         * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
4260         Update call to vect_get_slp_defs.
4261         (vectorizable_conversion): Update call to vect_get_vec_defs.
4262         (vectorizable_assignment, vectorizable_shift,
4263         vectorizable_operation): Likewise.
4264         (vectorizable_type_demotion): Call vect_get_vec_defs instead of
4265         vect_get_slp_defs.
4266         (vectorizable_type_promotion, vectorizable_store): Likewise.
4267         (vect_analyze_stmt): Fix typo.
4268         * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
4269         (vect_print_slp_tree, vect_mark_slp_stmts,
4270         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
4271         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
4272         vect_schedule_slp_instance): Likewise.
4273         (vect_create_new_slp_node): New.
4274         (vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
4275         (vect_get_and_check_slp_defs): Pass information about defs using
4276         oprnds_info, allow any number of operands.
4277         (vect_build_slp_tree): Likewise.  Update calls to
4278         vect_get_and_check_slp_defs.  Fix comments.
4279         (vect_analyze_slp_instance): Move node creation to
4280         vect_create_new_slp_node.
4281         (vect_get_slp_defs): Allow any number of operands.
4282
4283 2011-11-02  Peter Bergner  <bergner@vnet.ibm.com>
4284             Iain Sandoe  <iains@gcc.gnu.org>
4285
4286         * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
4287         (get_ppc476_thunk_name): Use it.
4288         (rs6000_code_end): Likewise.
4289         (macho_branch_islands): Fix typo.
4290
4291 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
4292             Jason Merrill  <jason@redhat.com>
4293
4294         PR c++/50810
4295         * configure.ac: Add -Wno-narrowing to warning options.
4296         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
4297
4298 2011-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4299
4300         PR target/50945
4301         * config/sparc/sparc.md (movsf_insn): Reindent constraints.
4302         (movdf_insn_sp32): Likewise.  Remove redundant G constraint.
4303         (movdf_insn_sp64): Likewise.
4304         (DFmode splitter): Do not test TARGET_FPU.
4305         (movtf_insn_sp32): Reindent constraints.
4306         (movtf_insn_sp32_no_fpu): Likewise.
4307         (movtf_insn_sp64): Likewise.
4308         (movtf_insn_sp64_hq): Likewise.
4309         (movtf_insn_sp64_no_fpu): Likewise.
4310
4311 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
4312
4313         PR c++/50956
4314         * builtins.c (fold_builtin_memchr): Fix cast.
4315
4316 2011-11-02  Teresa Johnson  <tejohnson@google.com>
4317
4318         * config/i386/predicates.md (promotable_binary_operator): Add minus
4319         to the list of promotable operators.
4320
4321 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4322
4323         * gthr-single.h, gthr.h: Move to ../libgcc.
4324         * gthr-aix.h: Move to ../libgcc/config/rs6000.
4325         * gthr-dce.h: Move to ../libgcc/config/pa.
4326         * gthr-lynx.h: Move to ../libgcc/config.
4327         * gthr-mipssde.h: Move to ../libgcc/config/mips.
4328         * gthr-posix.h: Move to ../libgcc/config.
4329         * gthr-rtems.h: Likewise.
4330         * gthr-tpf.h: Move to ../libgcc/config/s390.
4331         * gthr-vxworks.h: Move to ../libgcc/config.
4332         * gthr-win32.h: Move to ../libgcc/config/i386.
4333         * configure.ac (gthread_flags): Remove
4334         (gthr-default.h): Don't create.
4335         (thread_file): Don't substitute.
4336         * configure: Regenerate.
4337         * Makefile.in (GCC_THREAD_FILE): Remove.
4338         (GTHREAD_FLAGS): Remove.
4339         (libgcc.mvars): Remove GTHREAD_FLAGS.
4340         * config/t-vxworks (EXTRA_HEADERS): Remove.
4341
4342 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4343             Paolo Bonzini  <bonzini@gnu.org>
4344
4345         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
4346         * configure: Regenerate.
4347         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
4348         (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
4349         (libgcc_tm.h, cs-libgcc_tm.h): Remove.
4350         (clean): Remove libgcc_tm.h
4351         * mkconfig.sh: Don't include libgcc_tm.h in tm.h.
4352         * config.gcc (libgcc_tm_file): Remove.
4353         (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
4354         (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
4355         (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
4356         (avr-*-rtems*): Likewise.
4357         (avr-*-*): Likewise.
4358         (frv-*-elf): Likewise.
4359         (frv-*-*linux*): Likewise.
4360         (h8300-*-rtems*): Likewise.
4361         (h8300-*-elf*): Likewise.
4362         (i[34567]86-*-darwin*): Likewise.
4363         (x86_64-*-darwin*): Likewise.
4364         (rx-*-elf*): Likewise.
4365         (tic6x-*-elf): Likewise.
4366         (tic6x-*-uclinux): Likewise.
4367         (i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
4368
4369 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4370
4371         * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
4372         (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
4373         (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
4374         (INCLUDES_FOR_TARGET): Remove.
4375         (LIBGCC2_CFLAGS): Don't export.
4376         (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
4377         Remove.
4378         (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
4379         (libgcc.mvars): Likewise.
4380         Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
4381         LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
4382         TARGET_LIBGCC2_CFLAGS.
4383         Emit GTHREAD_FLAGS.
4384         * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
4385         * config/darwin-64.c: Move to ../libgcc/config.
4386         * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
4387         config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
4388         config/udivmodsi4.c: Move to ../libgcc/config.
4389         * config/gthr-posix.c: Move to ../libgcc/config/alpha.
4390         * config/memcmp.c, config/memcpy.c, config/memmove.c,
4391         config/memset.c: Move to ../libgcc/config.
4392         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
4393         * config/t-freebsd: Remove.
4394         * config/t-freebsd-thread: Move to ../libgcc/config.
4395         * config/t-libgcc-pic: Move to ../libgcc/config.
4396         * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
4397         * config/t-linux: Remove.
4398         * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
4399         Remove.
4400         * config/t-openbsd-thread: Move to ../libgcc/config.
4401         * config/t-rtems (LIBGCC2_INCLUDES): Remove.
4402         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
4403         * config/t-svr4: Remove.
4404         * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
4405         (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
4406         * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
4407         * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
4408         * config/alpha/t-alpha, config/alpha/t-ieee: Remove.
4409         * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove.
4410         * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
4411         * config/arm/bpabi.c, config/arm/unaligned-funcs.c,
4412         config/arm/fp16.c, config/arm/linux-atomic.c,
4413         config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
4414         * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
4415         (TARGET_LIBGCC2_CFLAGS): Remove.
4416         * config/arm/t-bpabi, config/arm/t-linux: Remove.
4417         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
4418         (LIB2FUNCS_STATIC_EXTRA): Remove.
4419         * config/arm/t-netbsd: Remove.
4420         * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
4421         (TARGET_LIBGCC2_CFLAGS): Remove.
4422         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
4423         * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
4424         (TARGET_LIBGCC2_CFLAGS): Remove.
4425         * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
4426         (LIBGCC, INSTALL_LIBGCC): Remove.
4427         * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
4428         * config/bfin/t-bfin-linux: Likewise.
4429         * config/bfin/t-bfin-uclinux: Likewise.
4430         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
4431         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
4432         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
4433         config/c6x/ltf.c: Move to ../libgcc/config/c6x.
4434         * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove.
4435         * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
4436         * config/cris/arit.c: Move to ../libgcc/config/cris.
4437         * config/cris/cris_abi_symbol.c: Remove.
4438         * config/cris/cris.h: Remove obsolete comment.
4439         * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
4440         * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
4441         ($(LIB2FUNCS_EXTRA)): Remove.
4442         * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
4443         (LIBGCC): Remove.
4444         * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
4445         * config/fr30/t-fr30: Remove.
4446         * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
4447         config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
4448         config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
4449         to ../libgcc/config/frv.
4450         * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
4451         (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
4452         (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
4453         * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
4454         * config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
4455         config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
4456         config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
4457         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
4458         (LIBGCC, INSTALL_LIBGCC): Remove.
4459         * config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
4460         * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
4461         * config/i386/t-cygwin: Remove.
4462         * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
4463         (LIB2FUNCS_EXCLUDE): Remove.
4464         * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
4465         (LIBGCC, INSTALL_LIBGCC): Remove.
4466         * config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
4467         * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
4468         * config/i386/t-mingw-w32: Likewise.
4469         * config/i386/t-mingw-w64: Likewise.
4470         * config/i386/t-openbsd: Likewise.
4471         * config/i386/t-nto: Remove.
4472         * config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
4473         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
4474         (quadlib.c): Remove.
4475         * config/ia64/t-ia64: Remove comment.
4476         * config/iq2000/lib2extra-funcs.c: Move to
4477         ../libgcc/config/iq2000/lib2funcs.c.
4478         * config/iq2000/t-iq2000: Remove.
4479         * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
4480         * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
4481         * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
4482         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
4483         * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
4484         (INSTALL_LIBGCC): Remove.
4485         * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
4486         * config/m68k/t-floatlib: Remove.
4487         * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
4488         * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
4489         Fix typo.
4490         (LIBGCC, INSTALL_LIBGCC): Remove.
4491         * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
4492         * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
4493         * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
4494         * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
4495         (INSTALL_LIBGCC): Remove.
4496         * config/mips/t-isa3264: Likewise.
4497         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
4498         * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
4499         (INSTALL_LIBGCC): Remove.
4500         * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
4501         * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
4502         (INSTALL_LIBGCC): Remove.
4503         * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
4504         (LIB2FUNCS_STATIC_EXTRA): Remove.
4505         * config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
4506         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
4507         * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
4508         * config/pa/fptr.c, config/pa/linux-atomic.c: Move to
4509         ../libgcc/config/pa.
4510         * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
4511         * config/pa/quadlib.c: Move to ../libgcc/config/pa.
4512         * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
4513         * config/pa/t-linux, config/pa/t-linux64: Remove.
4514         * config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
4515         config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
4516         * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
4517         Remove.
4518         * config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
4519         * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
4520         (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
4521         * config/rs6000/crtresfpr.asm: Move to
4522         ../libgcc/config/rs6000/crtresfpr.S.
4523         * config/rs6000/crtresgpr.asm: Move to
4524         ../libgcc/config/rs6000/crtresgpr.S.
4525         * config/rs6000/crtresxfpr.asm: Move to
4526         ../libgcc/config/rs6000/crtresxfpr.S.
4527         * config/rs6000/crtresxgpr.asm: Move to
4528         ../libgcc/config/rs6000/crtresxgpr.S.
4529         * config/rs6000/crtsavfpr.asm: Move to
4530         ../libgcc/config/rs6000/crtsavfpr.S.
4531         * config/rs6000/crtsavgpr.asm: Move to
4532         ../libgcc/config/rs6000/crtsavgpr.S.
4533         * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
4534         * config/rs6000/darwin-fpsave.asm: Move to
4535         ../libgcc/config/rs6000/darwin-fpsave.S.
4536         * config/rs6000/darwin-gpsave.asm: Move to
4537         ../libgcc/config/rs6000/darwin-gpsave.S.
4538         * config/rs6000/darwin-tramp.asm: Move to
4539         ../libgcc/config/rs6000/darwin-tramp.S.
4540         * config/rs6000/darwin-vecsave.asm: Move to
4541         ../libgcc/config/rs6000/darwin-vecsave.S.
4542         * config/rs6000/darwin-world.asm: Move to
4543         ../libgcc/config/rs6000/darwin-world.S.
4544         * config/rs6000/e500crtres32gpr.asm: Move to
4545         ../libgcc/config/rs6000/e500crtres32gpr.S.
4546         * config/rs6000/e500crtres64gpr.asm: Move to
4547         ../libgcc/config/rs6000/e500crtres64gpr.S.
4548         * config/rs6000/e500crtres64gprctr.asm: Move to
4549         ../libgcc/config/rs6000/e500crtres64gprctr.S.
4550         * config/rs6000/e500crtrest32gpr.asm: Move to
4551         ../libgcc/config/rs6000/e500crtrest32gpr.S.
4552         * config/rs6000/e500crtrest64gpr.asm: Move to
4553         ../libgcc/config/rs6000/e500crtrest64gpr.S.
4554         * config/rs6000/e500crtresx32gpr.asm: Move to
4555         ../libgcc/config/rs6000/e500crtresx32gpr.S.
4556         * config/rs6000/e500crtresx64gpr.asm: Move to
4557         ../libgcc/config/rs6000/e500crtresx64gpr.S.
4558         * config/rs6000/e500crtsav32gpr.asm: Move to
4559         ../libgcc/config/rs6000/e500crtsav32gpr.S.
4560         * config/rs6000/e500crtsav64gpr.asm: Move to
4561         ../libgcc/config/rs6000/e500crtsav64gpr.S.
4562         * config/rs6000/e500crtsav64gprctr.asm: Move to
4563         ../libgcc/config/rs6000/e500crtsav64gprctr.S.
4564         * config/rs6000/e500crtsavg32gpr.asm: Move to
4565         ../libgcc/config/rs6000/e500crtsavg32gpr.S.
4566         * config/rs6000/e500crtsavg64gpr.asm: Move to
4567         ../libgcc/config/rs6000/e500crtsavg64gpr.S.
4568         * config/rs6000/e500crtsavg64gprctr.asm: Move to
4569         ../libgcc/config/rs6000/e500crtsavg64gprctr.S.
4570         * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
4571         * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
4572         (TARGET_LIBGCC2_CFLAGS): Remove.
4573         * config/rs6000/t-aix52: Likewise.
4574         * config/rs6000/t-darwin: Remove.
4575         * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
4576         (LIB2FUNCS_EXTRA): Remove.
4577         * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
4578         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
4579         * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
4580         (INSTALL_LIBGCC): Remove.
4581         * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
4582         (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
4583         (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
4584         (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
4585         ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext))
4586         ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
4587         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
4588         (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
4589         * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
4590         * config/rs6000/t-vxworks: Remove comment.
4591         * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
4592         * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
4593         * config/sh/linux-atomic.asm: Move to
4594         ../libgcc/config/sh/linux-atomic.S.
4595         * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
4596         * config/sh/t-netbsd: Remove.
4597         * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
4598         Remove.
4599         * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
4600         * config/sparc/t-leon: Likewise.
4601         * config/sparc/t-leon3: Likewise.
4602         * config/sparc/t-linux64: Likewise.
4603         * config/sparc/t-netbsd64: Fix typo.
4604         Remove comment.
4605         * config/spu/divmodti4.c, config/spu/divv2df3.c,
4606         config/spu/float_disf.c, config/spu/float_unsdidf.c,
4607         config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
4608         config/spu/mfc_multi_tag_release.c,
4609         config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
4610         config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
4611         config/spu/multi3.c: Move to ../libgcc/config/spu.
4612         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
4613         (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
4614         (INSTALL_LIBGCC): Remove.
4615         * config/stormy16/stormy16-lib2.c: Move to
4616         ../libgcc/config/stormy16/lib2.c.
4617         * config/stormy16/stormy16-lib2-ashlsi3.c: Move to
4618         ../libgcc/config/stormy16/ashlsi3.c.
4619         * config/stormy16/stormy16-lib2-ashrsi3.c: Move to
4620         ../libgcc/config/stormy16/ashrsi3.c.
4621         * config/stormy16/stormy16-lib2-clzhi2.c: Move to
4622         ../libgcc/config/stormy16/clzhi2.c.
4623         * config/stormy16/stormy16-lib2-cmpsi2.c: Move to
4624         ../libgcc/config/stormy16/cmpsi2.c.
4625         * config/stormy16/stormy16-lib2-ctzhi2.c: Move to
4626         ../libgcc/config/stormy16/ctzhi2.c.
4627         * config/stormy16/stormy16-lib2-divsi3.c: Move to
4628         ../libgcc/config/stormy16/divsi3.c.
4629         * config/stormy16/stormy16-lib2-ffshi2.c: Move to
4630         ../libgcc/config/stormy16/ffshi2.c.
4631         * config/stormy16/stormy16-lib2-lshrsi3.c: Move to
4632         ../libgcc/config/stormy16/lshrsi3.c.
4633         * config/stormy16/stormy16-lib2-modsi3.c: Move to
4634         ../libgcc/config/stormy16/modsi3.c.
4635         * config/stormy16/stormy16-lib2-parityhi2.c: Move to
4636         ../libgcc/config/stormy16/parityhi2.c.
4637         * config/stormy16/stormy16-lib2-popcounthi2.c: Move to
4638         ../libgcc/config/stormy16/popcounthi2.c.
4639         * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
4640         ../libgcc/config/stormy16/ucmpsi2.c.
4641         * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
4642         ../libgcc/config/stormy16/udivmodsi4.c.
4643         * config/stormy16/stormy16-lib2-udivsi3.c: Move to
4644         ../libgcc/config/stormy16/udivsi3.c.
4645         * config/stormy16/stormy16-lib2-umodsi3.c: Move to
4646         ../libgcc/config/stormy16/umodsi3.c.
4647         * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
4648         * config/v850/t-v850 (INSTALL_LIBGCC): Remove.
4649         * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
4650         * config/xtensa/t-elf: Remove.
4651         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
4652         * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
4653         from tmake_file.
4654         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
4655         *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
4656         (*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
4657         (*-*-openbsd*): Likewise.
4658         Remove t-openbsd-thread for posix threads.
4659         (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file.
4660         (alpha*-*-freebsd*): Likewise.
4661         (alpha*-*-netbsd*): Likewise.
4662         (alpha*-*-openbsd*): Likewise.
4663         (alpha64-dec-*vms*): Likewise.
4664         (alpha*-dec-*vms*): Likewise.
4665         (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
4666         (arm*-*-linux*): Remove t-linux from tmake_file.
4667         Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
4668         (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
4669         arm*-*-uclinux*eabi.
4670         (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
4671         tmake_file for arm*-*-eabi*.
4672         (fr30-*-elf): Remove tmake_file.
4673         (hppa*64*-*-linux*): Remove tmake_file.
4674         (hppa*-*-linux*): Likewise.
4675         (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
4676         tmake_file.
4677         (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
4678         (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
4679         tmake_file.
4680         (i[34567]86-*-elf*): Remove tmake_file.
4681         (x86_64-*-elf*): Likewise.
4682         (i[34567]86-*-nto-qnx*): Likewise.
4683         (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
4684         (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
4685         from tmake_file if using win32 threads.
4686         (iq2000*-*-elf*): Remove tmake-file.
4687         (microblaze*-linux*): Likewise.
4688         (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
4689         (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
4690         (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
4691         (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
4692         sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
4693         (xtensa*-*-elf*): Remove tmake_file.
4694
4695 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4696
4697         * Makefile.in (LIB1ASMSRC): Don't export.
4698         (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
4699         * config/arm/arm.c: Update lib1funcs.asm filename.
4700         * config/arm/linux-eabi.h: Likewise.
4701         * config/arm/bpabi-v6m.S, config/arm/bpabi.S,
4702         config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
4703         ../libgcc/config/arm.
4704         * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
4705         * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4706         * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
4707         * config/arm/t-bpabi: Likewise.
4708         * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4709         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
4710         * config/arm/t-strongarm-elf: Likewise.
4711         * config/arm/t-symbian: Likewise.
4712         * config/arm/t-vxworks: Likewise.
4713         * config/arm/t-wince-pe: Likewise.
4714         * config/avr/libgcc.S: Move to ../libgcc/config/avr.
4715         * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4716         * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S.
4717         * config/bfin/t-bfin: Remove.
4718         * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4719         * config/bfin/t-bfin-linux: Likewise.
4720         * config/bfin/t-bfin-uclinux: Likewise.
4721         * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S.
4722         * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4723         * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S.
4724         * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4725         * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S.
4726         * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4727         * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
4728         * config/h8300/lib1funcs.asm: Move to
4729         ../libgcc/config/h8300/lib1funcs.S.
4730         * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4731         * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
4732         * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4733         * config/i386/t-interix: Likewise.
4734         * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S.
4735         * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
4736         * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4737         * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
4738         * config/m32c/m32c.c: Update m32c-lib1.S filename.
4739         * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
4740         * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4741         * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
4742         * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
4743         * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
4744         * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
4745         * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4746         * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
4747         * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4748         * config/mips/mips16.S: Move to ../libgcc/config/mips.
4749         * config/mips/t-libgcc-mips16: Remove.
4750         * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
4751         * config/pa/milli64.S: Move to ../libgcc/config/pa.
4752         * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
4753         * config/pa/t-linux64: Likewise.
4754         * config/picochip/libgccExtras/fake_libgcc.asm: Move to
4755         ../libgcc/config/picochip/lib1funcs.S.
4756         * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
4757         * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
4758         * config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
4759         * config/sh/sh.h: Update lib1funcs.asm filename.
4760         * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
4761         * config/sh/t-netbsd: Likewise.
4762         * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
4763         Remove.
4764         * config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
4765         * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
4766         * config/sparc/lb1spl.asm: Remove.
4767         * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4768         * config/sparc/t-leon: Likewise.
4769         * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
4770         * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
4771         * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
4772         * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
4773         * config/vax/t-linux: Remove.
4774         * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
4775         ../libgcc/config/xtensa.
4776         * config/xtensa/lib1funcs.asm: Move to
4777         ../libgcc/config/xtensa/lib1funcs.S.
4778         * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4779         * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
4780         (bfin*-*): Likewise.
4781         (mips64*-*-linux*, mipsisa64*-*-linux*): Remove
4782         mips/t-libgcc-mips16 from tmake_file.
4783         (mips*-*-linux*): Likewise.
4784         (mips*-sde-elf*): Likewise.
4785         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
4786         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
4787         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
4788         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
4789         (mips-*-elf*, mipsel-*-elf*): Likewise.
4790         (mips64-*-elf*, mips64el-*-elf*): Likewise.
4791         (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
4792         (mips*-*-rtems*): Likewise.
4793         (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
4794         (vax-*-linux*): Remove vax/t-linux from tmake_file.
4795
4796 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4797
4798         * config.gcc (extra_parts): Remove.
4799         (*-*-freebsd*): Remove extra_parts.
4800         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
4801         *-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
4802         (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
4803         Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
4804         *-*-netbsdelf[2-9]*.
4805         (*-*-openbsd*): Remove t-libc-ok from tmake_file.
4806         (alpha*-*-linux*): Remove extra_parts.
4807         (alpha*-*-freebsd*): Likewise.
4808         (bfin*-linux-uclibc*): Likewise.
4809         (fr30-*-elf): Likewise.
4810         (moxie-*-elf): Likewise.
4811         (moxie-*-uclinux*): Likewise.
4812         (h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
4813         (h8300-*-elf*): Likewise.
4814         (hppa*64*-*-hpux11*): Remove extra_parts.
4815         (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
4816         tmake_file.
4817         (x86_64-*-elf*): Likewise.
4818         (i[34567]86-*-freebsd*): Remove tmake_file.
4819         (x86_64-*-freebsd*): Likewise.
4820         (x86_64-*-netbsd*): Likewise.
4821         (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
4822         t-libc-ok from tmake_file.
4823         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4824         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4825         i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from
4826         tmake_file.
4827         Remove extra_parts.
4828         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4829         Remove i386/t-crtstuff from tmake_file.
4830         (i[34567]86-*-lynxos*): Likewise.
4831         Remove extra_parts.
4832         (ia64*-*-elf*): Remove extra_parts.
4833         (ia64*-*-freebsd*): Likewise.
4834         (ia64*-*-linux*): Likewise.
4835         (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
4836         (m32r-*-elf*): Remove extra_parts.
4837         (m32rle-*-elf*): Likewise.
4838         (m32r-*-rtems*): Likewise.
4839         (m68k-*-elf*, fido-*-elf*): Likewise.
4840         (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
4841         (m68k-*-rtems*): Remove extra_parts.
4842         (mep-*-*): Likewise.
4843         (microblaze*-linux*): Likewise.
4844         (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
4845         (mips*-*-linux*): Likewise.
4846         (powerpc-*-lynxos*): Likewise.
4847         (s390x-ibm-tpf*): Likewise.
4848         (score-*-elf): Likewise.
4849         Remove tmake_file.
4850         (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
4851         sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
4852         sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
4853         Remove sh/t-superh from tmake_file for sh*-superh-elf.
4854         Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
4855         (sh-*-rtems*): Remove sh/t-elf from tmake_file.
4856         (sh-wrs-vxworks): Likewise.
4857         (sparc-*-linux*): Remove extra_parts.
4858         (sparc64-*-linux*): Likewise.
4859         (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
4860         (xstormy16-*-elf): Likewise.
4861         (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
4862         (am33_2.0-*-linux*): Remove extra_parts.
4863         * configure.ac (extra_parts): Don't substitute.
4864         * configure: Regenerate.
4865         * crtstuff.c: Move to ../libgcc.
4866         * Makefile.in (CRTSTUFF_CFLAGS): Remove.
4867         (EXTRA_PARTS): Remove.
4868         (CRTSTUFF_T_CFLAGS): Remove.
4869         (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
4870         (GCC_EXTRA_PARTS): Remove.
4871         (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
4872         CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
4873         Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
4874         ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
4875         ($(T)crtbeginT.o): Remove.
4876         * config/alpha/t-vms (EXTRA_PARTS): Remove.
4877         ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
4878         * config/alpha/vms-dwarf2.asm: Move to
4879         ../libgcc/config/alpha/vms-dwarf2.S.
4880         * config/alpha/vms-dwarf2eh.asm: Move to
4881         ../libgcc/config/alpha/vms-dwarf2eh.S.
4882         * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
4883         * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
4884         * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
4885         ($(T)crti.o, $(T)crtn.o): Remove.
4886         * config/arm/t-linux: Remove comment.
4887         * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
4888         * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
4889         ($(T)crti.o, $(T)crtn.o): Remove.
4890         * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
4891         * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
4892         * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
4893         * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
4894         * config/bfin/t-bfin (EXTRA_PARTS): Remove.
4895         ($(T)crti.o, $(T)crtn.o): Remove.
4896         * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
4897         ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
4898         (EXTRA_MULTILIB_PARTS): Remove.
4899         * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
4900         EXTRA_MULTILIB_PARTS): Remove.
4901         * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
4902         ($(T)crtlibid.o): Remove.
4903         (EXTRA_MULTILIB_PARTS): Remove.
4904         * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
4905         * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
4906         * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
4907         (EXTRA_MULTILIB_PARTS): Remove.
4908         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
4909         * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
4910         CRTSTUFF_T_CFLAGS_S): Remove.
4911         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
4912         * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4913         * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
4914         * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
4915         * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
4916         * config/frv/frvbegin.c, config/frv/frvend.c: Move to
4917         ../libgcc/config/frv.
4918         * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
4919         (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
4920         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
4921         (CRTSTUFF_T_CFLAGS): Remove.
4922         * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
4923         * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
4924         * config/h8300/t-elf: Remove.
4925         * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
4926         Move to ../libgcc/config/i386.
4927         * config/i386/t-crtstuff: Remove.
4928         * config/i386/t-i386elf: Remove.
4929         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
4930         * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
4931         * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S.
4932         * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S.
4933         * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
4934         * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
4935         * config/ia64/t-vms: Remove.
4936         * config/ia64/vms-crtinit.asm: Move to
4937         ../libgcc/config/ia64/vms-crtinit.S.
4938         * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
4939         * config/m32r/initfini.c: Move to ../libgcc/config/m32r.
4940         * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4941         * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
4942         ($(T)crtinit.o, $(T)crtfini.o): Remove.
4943         (m32rx, m32r2): Remove.
4944         (EXTRA_MULTILIB_PARTS): Remove.
4945         * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
4946         * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
4947         * config/m68k/t-crtstuff: Remove.
4948         * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
4949         * config/m68k/t-m68kelf: Remove.
4950         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
4951         * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
4952         * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
4953         * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
4954         (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
4955         * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
4956         (EXTRA_MULTILIB_PARTS): Remove.
4957         * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
4958         * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
4959         * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
4960         EXTRA_PARTS): Remove.
4961         ($(T)crti$(objext), $(T)crtn$(objext)): Remove.
4962         * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
4963         * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
4964         * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
4965         ($(T)crti.o, $(T)crtn.o): Remove.
4966         (EXTRA_MULTILIB_PARTS): Remove.
4967         * config/mips/t-isa3264: Likewise.
4968         * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
4969         * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
4970         (CRTSTUFF_T_CFLAGS): Remove.
4971         * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
4972         ($(T)crti.o, $(T)crtn.o): Remove.
4973         (EXTRA_MULTILIB_PARTS): Remove.
4974         * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
4975         Remove.
4976         ($(T)crti.o, $(T)crtn.o): Remove.
4977         * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
4978         * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
4979         (EXTRA_MULTILIB_PARTS): Remove.
4980         ($(T)crti.o, $(T)crtn.o): Remove.
4981         * config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
4982         * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
4983         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
4984         * config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
4985         * config/pa/stublib.c: Move to libgcc/config/pa.
4986         * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4987         * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
4988         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
4989         (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
4990         (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
4991         ($(T)libgcc_stub.a): Remove.
4992         * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
4993         (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
4994         (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
4995         (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
4996         ($(T)libgcc_stub.a): Remove.
4997         * config/rs6000/eabi-cn.asm: Move to
4998         ../../../libgcc/config/rs6000/eabi-cn.S.
4999         * config/rs6000/eabi-ci.asm: Move to
5000         ../../../libgcc/config/rs6000/eabi-ci.S.
5001         * config/rs6000/sol-ci.asm: Move to
5002         ../../../libgcc/config/rs6000/sol-ci.S.
5003         * config/rs6000/sol-cn.asm: Move to
5004         ../../../libgcc/config/rs6000/sol-cn.S.
5005         * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
5006         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5007         * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
5008         Remove.
5009         (EXTRA_MULTILIB_PARTS): Remove.
5010         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
5011         (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
5012         ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
5013         ($(T)ncrtn$(objext)): Remove.
5014         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5015         * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
5016         * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
5017         * config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
5018         * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
5019         * config/score/t-score-elf: Remove.
5020         * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
5021         * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
5022         * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
5023         * config/sh/lib1funcs-4-300.asm: Move to
5024         ../../../libgcc/config/sh/lib1funcs-4-300.S.
5025         * config/sh/lib1funcs-Os-4-200.asm: Move to
5026         ../libgcc/config/sh/lib1funcs-Os-4-200.S.
5027         * config/sh/t-elf: Remove.
5028         * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
5029         * config/sh/t-linux64: Remove.
5030         * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
5031         * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
5032         (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
5033         ($(T)ic_invalidate_array_4-100.o)
5034         ($(T)libic_invalidate_array_4-100.a)
5035         ($(T)ic_invalidate_array_4-200.o)
5036         ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
5037         ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
5038         ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
5039         ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
5040         ($(T)libgcc-4-300.a): Remove.
5041         * config/sh/t-superh: Remove.
5042         * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
5043         * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
5044         * config/spu/cache.S: Move to ../libgcc/config/spu.
5045         * config/spu/cachemgr.c: Move to ../libgcc/config/spu.
5046         * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
5047         (EXTRA_MULTILIB_PARTS): Remove.
5048         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
5049         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
5050         ($(T)cache64k.o, $(T)cache128k.o): Remove.
5051         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
5052         * config/t-libc-ok: Remove.
5053         * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
5054         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
5055         * config/t-netbsd: Remove.
5056         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
5057         * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
5058         * config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
5059         ($(T)vcrt0.o, $(T)pcrt0.o): Remove.
5060         * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
5061         * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
5062         * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
5063         * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5064         (EXTRA_MULTILIB_PARTS): Remove.
5065         * config/xtensa/t-linux: Remove.
5066         * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
5067
5068 2011-11-02  Uros Bizjak  <ubizjak@gmail.com>
5069
5070         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use
5071         CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2.
5072
5073 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5074
5075         PR translation/45116
5076         * Makefile.in (slibdir): Remove, don't export.
5077         (SHLIB_NM_FLAGS): Remove.
5078         (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
5079         SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
5080         SHLIB_MAPFILES, SHLIB_NM_FLAGS.
5081         (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
5082         (gcc.o): Pass SHLIB instead of SHLIB_LINK.
5083         (gccspec.o): Likewise.
5084         (installdirs): Don't create $(DESTDIR)$(slibdir).
5085         * configure.ac (slibdir): Remove.
5086         * configure: Regenerate.
5087         * libgcc-libsystem.ver: Move to ../libgcc/config.
5088         * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
5089         * config/libgcc-glibc.ver: Move to ../libgcc/config.
5090         * config/t-libunwind (SHLIB_LC): Remove.
5091         * config/t-linux (SHLIB_MAPFILES): Remove.
5092         * config/t-slibgcc-dummy: Rename to config/t-slibgcc.
5093         * config/t-slibgcc-elf-ver: Remove.
5094         * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
5095         ../libgcc/config.
5096         * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
5097         to ../libgcc/config/alpha.
5098         * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
5099         SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
5100         SHLIB_SYMVECX2, SHLIB_LINK): Remove.
5101         * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
5102         * config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
5103         * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
5104         SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
5105         * config/arm/t-symbian (SHLIB_LC): Remove.
5106         * config/bfin/libgcc-bfin.ver: Move to
5107         ../libgcc/config/bfin/libgcc-glibc.ver.
5108         * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
5109         * config/c6x/libgcc-c6xeabi.ver: Move to
5110         ../libgcc/config/c6x/libgcc-eabi.ver.
5111         * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
5112         * config/cris/libgcc.ver: Move to
5113         ../libgcc/config/cris/libgcc-glibc.ver.
5114         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5115         * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
5116         * config/frv/t-linux (SHLIB_MAPFILES): Remove.
5117         * config/i386/darwin-libgcc.10.4.ver: Move to
5118         ../libgcc/config/i386/libgcc-darwin.10.4.ver.
5119         * config/i386/darwin-libgcc.10.5.ver: Move to
5120         ../libgcc/config/i386/libgcc-darwin.10.5.ver.
5121         * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
5122         * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
5123         SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
5124         SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
5125         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove.
5126         * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
5127         SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
5128         * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
5129         ../libgcc/config/i386.
5130         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
5131         ../libgcc/config/i386.
5132         * config/i386/t-linux: Move to ../libgcc/config/i386.
5133         * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
5134         * config/i386/t-mingw-w32 (SHLIB_LC): Remove.
5135         * config/i386/t-mingw-w64: Likewise.
5136         * config/i386/t-mingw32: Remove.
5137         * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
5138         to ../libgcc/config/ia64.
5139         * config/ia64/t-glibc: Remove.
5140         * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
5141         * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
5142         * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
5143         SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
5144         * config/ia64/vms_symvec_libgcc_s.opt: Remove.
5145         * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
5146         * config/m32r/t-linux (SHLIB_MAPFILES): Remove.
5147         * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
5148         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
5149         * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
5150         * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
5151         Move to ../libgcc/config/pa.
5152         * config/rs6000/darwin-libgcc.10.4.ver: Move to
5153         ../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
5154         * config/rs6000/darwin-libgcc.10.5.ver: Move to
5155         ../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
5156         * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
5157         SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
5158         * config/rs6000/t-aix52: Likewise.
5159         * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
5160         ../libgcc/config/sh.
5161         * config/sparc/libgcc-sparc-glibc.ver: Move to
5162         ../libgcc/config/sparc/libgcc-glibc.ver.
5163         * config/sparc/t-linux: Move to ../libgcc/config/sparc.
5164         * config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
5165         * config/xtensa/libgcc-xtensa.ver: Move to
5166         ../libgcc/config/xtensa/libgcc-glibc.ver.
5167         * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
5168         t-slibgcc in tmake_file.
5169         Remove t-slibgcc-nolc-override for *-*-freebsd[34],
5170         *-*-freebsd[34].* with pthreads.
5171         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
5172         *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
5173         t-slibgcc-elf-ver with t-slibgcc in tmake_file.
5174         (*-*-netbsd*): Likewise.
5175         (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
5176         (*-*-*vms*): Add t-slibgcc to tmake_file.
5177         (alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
5178         (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
5179         tmake_file.
5180         (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
5181         arm*-*-linux-*eabi.
5182         (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
5183         tmake_file.
5184         (crisv32-*-linux*, cris-*-linux*): Likewise.
5185         (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
5186         pa/t-slibgcc-dwarf-ver from tmake_file.
5187         (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
5188         tmake_file.
5189         Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
5190         (hppa*64*-*-hpux11*): Likewise.
5191         (hppa[12]*-*-hpux11*): Likewise.
5192         (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
5193         tmake_file.
5194         (x86_64-*-darwin*): Likewise.
5195         (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
5196         Add t-slibgcc to tmake_file.
5197         (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
5198         Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
5199         i[34567]86-w64-*.
5200         Remove i386/t-mingw-pthread from tmake_file.
5201         (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
5202         (ia64*-*-hpux*): Add t-slibgcc to tmake_file.
5203         (ia64-hp-*vms*): Likewise.
5204         (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
5205         tmake_file.
5206         (m32rle-*-linux*): Likewise.
5207         (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
5208         (microblaze*-linux*): Remove t-slibgcc-elf-ver,
5209         t-slibgcc-nolc-override from tmake_file.
5210         (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
5211         tmake_file.
5212         (powerpc-*-darwin*): Likewise.
5213         (powerpc64-*-darwin*): Likewise.
5214         (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
5215         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
5216         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
5217         t-slibgcc to tmake_file.
5218         (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
5219         (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
5220         (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
5221         (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
5222         (sparc-*-linux*): Remove sparc/t-linux from tmake_file.
5223         (sparc64-*-linux*): Likewise.
5224         (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
5225         tmake_file.
5226         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5227         x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
5228         from tmake_file.
5229
5230 2011-11-02  Richard Guenther  <rguenther@suse.de>
5231
5232         PR tree-optimization/50902
5233         * tree-vect-stmts.c (vectorizable_load): Properly convert
5234         an invariant initializer element.
5235
5236 2010-11-02  Richard Guenther  <rguenther@suse.de>
5237
5238         PR tree-optimization/50890
5239         * gimple.h (gimple_fold_call): Remove.
5240         * gimple-fold.c (fold_stmt_1): Move all call related code to ...
5241         (gimple_fold_call): ... here.  Make static.  Update the
5242         cannot-inline flag on direct calls.
5243         * ipa-inline.c (early_inliner): Copy the cannot-inline flag
5244         from the statements to the edges.
5245
5246 2011-11-01  Ian Lance Taylor  <iant@google.com>
5247
5248         * godump.c (struct macro_hash_value): Define.
5249         (macro_hash_hashval): New static function.
5250         (macro_hash_eq, macro_hash_del): New static functions.
5251         (go_define): Use macro_hash_value to store values in macro_hash.
5252         Replace an old value on a redefinition.  Don't print anything to
5253         go_dump_file.
5254         (go_undef): Delete the entry from the hash table.
5255         (go_output_typedef): For an enum, use macro_hash_value, and don't
5256         print anything to go_dump_file.
5257         (go_print_macro): New static function.
5258         (go_finish): Traverse macro_hash with go_print_macro.
5259         (dump_go_spec_init): Update macro_hash creation for macro_hash_value.
5260
5261 2011-11-02  Alan Modra  <amodra@gmail.com>
5262
5263         * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
5264
5265 2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
5266
5267         PR c++/44277
5268         * doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
5269
5270 2011-11-01  Andrew Stubbs  <ams@codesourcery.com>
5271
5272         * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
5273
5274 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
5275
5276         * config/i386/i386.md (splitters for int-float conversion): Use
5277         SUBREG_REG on SUBREGs in splitter constraints.
5278
5279 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
5280
5281         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
5282         prototype.
5283         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
5284         function.
5285         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
5286         (ssepackfltmode): New mode attr.
5287         (vec_pack_ufix_trunc_<mode>): New expander.
5288
5289 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
5290
5291         PR target/50940
5292         * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
5293         Compare <ssevecmode>mode to V4SFmode, not V4SImode.
5294
5295 2011-11-01  Peter Bergner  <bergner@vnet.ibm.com>
5296
5297         * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
5298         * config/rs6000/476.h: New file.
5299         * config/rs6000/476.opt: Likewise.
5300         * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
5301         (SET_TARGET_LINK_STACK): Likewise.
5302         (TARGET_ASM_CODE_END): Define.
5303         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
5304         TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
5305         (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
5306         code if TARGET_LINK_STACK.
5307         (rs6000_emit_load_toc_table): Likewise.
5308         (output_function_profiler): Likewise
5309         (macho_branch_islands): Likewise
5310         (machopic_output_stub): Likewise
5311         (get_ppc476_thunk_name): New function.
5312         (rs6000_code_end): Likewise.
5313         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
5314         Convert to a define_expand.
5315         (load_toc_v4_PIC_1_normal): New define_insn.
5316         (load_toc_v4_PIC_1_476): Likewise.
5317         (load_toc_v4_PIC_1b_normal): Likewise.
5318         (load_toc_v4_PIC_1b_476): Likewise.
5319
5320 2011-11-01  Georg-Johann Lay  <avr@gjlay.de>
5321
5322         PR target/50910
5323         * config/avr/avr.opt (-mbranch-cost=): New option.
5324         * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
5325         * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
5326         * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
5327         (*addhi3_zero_extend1): Remove % in constraint of operand 1.
5328         (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
5329
5330 2011-11-01  Tom de Vries  <tom@codesourcery.com>
5331
5332         PR tree-optimization/50908
5333         * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
5334         before update_vuses, test for 1 predecessor rather than two.
5335         (delete_block_update_dominator_info): New function, part of it factored
5336         out of ...
5337         (replace_block_by): Use delete_block_update_dominator_info.  Call
5338         update_vuses after deleting bb1 and updating dominator info, instead of
5339         before.
5340
5341 2011-11-01  David S. Miller  <davem@davemloft.net>
5342
5343         * config/sparc/sparc.c (vector_init_faligndata): New function.
5344         (sparc_expand_vector_init): Use it for V4HImode on VIS1.
5345
5346         * config/sparc/sparc.c (sparc_expand_vcond): New function.
5347         * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
5348         * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
5349         (vconduv8qiv8qi): Likewise.
5350
5351 2011-11-01  Alexandre Oliva  <aoliva@redhat.com>
5352
5353         PR debug/50869
5354         * cselib.c (cfa_base_preserved_regno): Initialize.
5355         (cselib_expand_value_rtx_1): Don't expand it.
5356         * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
5357         Check it's only zero if result is NULL.
5358
5359 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
5360
5361         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
5362         expander.
5363
5364         * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
5365         (sseintvecmodelower): New mode iterator.
5366         (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
5367         (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
5368         (floatunsv4siv4sf2): Macroize into...
5369         (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
5370
5371 2011-10-31  David S. Miller  <davem@davemloft.net>
5372
5373         * config/sparc/sparc.md (cmask patterns): Allow zero operand.
5374
5375         * dwarf2out.c (cached_next_real_insn): New.
5376         (dwarf2out_end_epilogue): Set it to NULL_RTX.
5377         (dwarf2out_var_location): Remove cached_next_real_insn local static.
5378
5379 2011-10-31  Richard Henderson  <rth@redhat.com>
5380
5381         * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
5382         (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
5383         (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
5384         (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
5385         (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
5386         (floatv4siv4df2): Rename from avx_cvtdq2pd256.
5387         (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
5388         (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
5389         * config/i386/i386.md (splitters for int-float conversion): Likewise.
5390         * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
5391         (bdesc_args): Likewise.
5392         (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
5393         (ix86_vectorize_builtin_conversion): Remove.
5394         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
5395
5396 2011-10-31  Martin Jambor  <mjambor@suse.cz>
5397
5398         * ipa-prop.c (mark_modified): Moved up in the file.
5399         (is_parm_modified_before_call): Renamed to
5400         is_parm_modified_before_stmt, moved up in the file.
5401         (load_from_unmodified_param): New function.
5402         (compute_complex_assign_jump_func): Also attempt to create pass
5403         through jump functions for values loaded from (addressable)
5404         parameters.
5405
5406 2011-10-31  Jakub Jelinek  <jakub@redhat.com>
5407
5408         * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
5409         in a loop and has different type from op0, cast it to op0's type
5410         before the loop first.  For slp give up.  Don't crash if op1_vectype
5411         is NULL.
5412
5413 2011-10-31  Paul Brook  <paul@codesourcery.com>
5414
5415         * cgraphunit.c: Don't mark clones as static constructors.
5416
5417 2011-10-31  David Edelsohn  <dje.gcc@gmail.com>
5418
5419         * gcc-ar: Do not include stdio.h.
5420
5421 2011-10-31  Diego Novillo  <dnovillo@google.com>
5422
5423         * tree-streamer-out.c (pack_ts_base_value_fields): Emit
5424         TYPE_ADDR_SPACE.
5425         * tree-streamer-in.c (unpack_ts_base_value_fields): Read
5426         TYPE_ADDR_SPACE.
5427
5428 2011-10-30  David S. Miller  <davem@davemloft.net>
5429
5430         * config/sparc/sparc.c (vector_init_bshuffle): New function.
5431         (vector_init_fpmerge): New function.
5432         (sparc_expand_vector_init): Use them to improve non-const cases.
5433
5434         * dwarf2out.c (dwarf2out_var_location): When processing several
5435         consecutive location notes, cache the result of next_real_insn().
5436
5437 2011-10-30  Uros Bizjak  <ubizjak@gmail.com>
5438
5439         * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
5440         avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
5441         (vec_dupv4sf): Remove expander.
5442         (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
5443         (vec_dupv2df): Remove expander.
5444         (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
5445         (*vec_concatv2df): Merge *vec_concatv2df_sse3.
5446         (*vec_dupv4si): Merge *vec_dupv4si_avx.
5447         (*vec_dupv2di): Merge *vec_dupv2di_sse3.
5448
5449 2011-10-30  Dmitry Plotnikov  <dplotnikov@ispras.ru>
5450
5451         * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
5452         * optabs.c (supportable_convert_operation): New function.
5453         * optabs.h (supportable_convert_operation): New prototype.
5454         * tree-vect-stmts.c (vectorizable_conversion): Change condition and
5455         behavior for NONE modifier case.
5456         * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
5457
5458 2011-10-30  Jakub Jelinek  <jakub@redhat.com>
5459
5460         * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
5461         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
5462         function.
5463         (vect_vect_recog_func_ptrs): Add it.
5464
5465 2011-10-30  David S. Miller  <davem@davemloft.net>
5466
5467         * reorg.c (label_before_next_insn): New function.
5468         (relax_delay_slots): Use it instead of prev_label.
5469         * rtl.h (prev_label): Delete declaration.
5470         * emit-rtl.c (prev_label): Remove.
5471
5472 2011-10-30  Revital Eres  <revital.eres@linaro.org>
5473
5474         * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
5475         as BB_DISABLE_SCHEDULE.
5476         (mark_loop_unsched): New function.
5477         (sms_schedule): Call it.
5478
5479 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5480
5481         PR target/50617
5482         * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
5483         (cmpib_comparison_operator): Likewise.
5484         (following_cal, output_and, output_ior, output_move_double,
5485         output_fp_move_double, output_block_move, output_block_clear,
5486         output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
5487         output_movb, output_parallel_movb, output_parallel_addb, output_call,
5488         output_indirect_call, output_millicode_call, output_mul_insn,
5489         output_div_insn, output_mod_insn, singlemove_string,
5490         output_arg_descriptor, output_global_address, print_operand,
5491         legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
5492         fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
5493         emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
5494         hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
5495         attr_length_indirect_call, return_addr_rtx, function_arg_padding,
5496         insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
5497         output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
5498         hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
5499         compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
5500         reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
5501         exported functions and variables with "pa_".
5502         * config/pa/predicates.md: Likewise.
5503         * config/pa/pa64-hpux.h: likewise.
5504         * config/pa/som.h: Likewise.
5505         * config/pa/elf.h: Likewise.
5506         * config/pa/pa64-linux.h: Likewise.
5507         * config/pa/pa.md: Likewise.
5508         * config/pa/pa.c: Likewise.
5509         * config/pa/pa-linux.h: Likewise.
5510         * config/pa/pa.h: Likewise.
5511         * config/pa/constraints.md: Likewise.
5512
5513 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
5514
5515         * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
5516         Update all uses.
5517         (xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
5518         * config/i386/i386.c: Update all uses.
5519
5520 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
5521
5522         * config/i386/i386.md (lshlv16qi3): Remove expander.
5523         (lshrv16qi3): New expander.
5524         (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
5525         using any_shiftrt code iterator. Cleanup.
5526         (ashlv16qi3): Cleanup.
5527         (ashrv2di3): Ditto.
5528
5529 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5530
5531         PR target/50691
5532         * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
5533         references.
5534         (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
5535         and TLS_MODEL_LOCAL_DYNAMIC symbol references.
5536
5537 2011-10-29  Georg-Johann Lay  <avr@gjlay.de>
5538
5539         PR target/50887
5540         * config/avr/avr.opt (-maccumulate-args): New option.
5541         * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
5542         avr_starting_frame_offset.
5543         (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
5544         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
5545         (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
5546         (UNSPECV_WRITE_SP): New constant.
5547         (*addhi3_sp_R): Rewrite to...
5548         (*addhi3_sp): ...this new insn.
5549         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
5550         (movhi_sp_r): ...this new insn.
5551         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
5552         (avr_starting_frame_offset): New.
5553         * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
5554         (avr_starting_frame_offset): New function.
5555         (avr_outgoing_args_size): New static function.
5556         (avr_initial_elimination_offset): Use it.
5557         (avr_simple_epilogue): Use it.
5558         (avr_asm_function_end_prologue): Use it.
5559         (expand_epilogue): Use it.
5560         (expand_prologue): Use it.  Break out code to...
5561         (avr_prologue_setup_frame): ...this new static function.
5562         (avr_can_eliminate): Allow eliminating to frame pointer if there
5563         is one.
5564         (avr_frame_pointer_required_p): Use frame pointer if target has a
5565         nonlocal label.
5566         * config/avr/constraints.md (R): Remove.
5567         (Csp): New constraint.
5568         * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
5569
5570 2011-10-29  Andi Kleen  <ak@linux.intel.com>
5571
5572         * gcc-ar.c (target_machine): Add.
5573
5574 2011-10-29  Anatoly Sokolov  <aesok@post.ru>
5575
5576         * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
5577         cris_constant_index_p, cris_base_p, cris_index_p,
5578         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
5579         cris_legitimate_address_p): New functions.
5580         (TARGET_LEGITIMATE_ADDRESS_P): Define.
5581         (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
5582         from rtx to const_rtx.
5583         (cris_print_operand_address, cris_address_cost,
5584         cris_side_effect_mode_ok):  Use
5585         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
5586         cris_biap_index_p and cris_bdap_index_p.
5587         * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
5588         BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
5589         REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
5590         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
5591         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
5592         cris_biap_index_p and cris_bdap_index_p.
5593         * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
5594         cris_base_p.
5595         * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
5596         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
5597         prototype.
5598         (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
5599
5600 2011-10-21  Andi Kleen  <ak@linux.intel.com>
5601
5602         * ggc-page (PAGE_ALIGN): Add.
5603         (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
5604         Replace ROUND_UP with PAGE_ALIGN.
5605
5606 2011-10-20  Andi Kleen  <ak@linux.intel.com>
5607
5608         * ggc-page (alloc_anon): Add check argument.
5609         (alloc_page): Add fallback to 1 page allocation.
5610         Adjust alloc_anon calls to new argument.
5611
5612 2011-10-18  Andi Kleen  <ak@linux.intel.com>
5613
5614         * ggc-page (release_pages): First free large continuous
5615         chunks in the madvise path.
5616
5617 2011-10-18  Andi Kleen  <ak@linux.intel.com>
5618
5619         * ggc-page.c (alloc_pages): Always round up entry_size.
5620
5621 2011-10-19  Andi Kleen  <ak@linux.intel.com>
5622
5623         * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
5624         (native): Add gcc-ar, gcc-nm, gcc-ranlib.
5625         (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
5626         gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
5627         (install): Depend on install-gcc-ar.
5628         (install-gcc-ar): Add.
5629         (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
5630         * gcc-ar.c: Add new file.
5631
5632 2011-10-28  Pat Haugen <pthaugen@us.ibm.com>
5633
5634         * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
5635         * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
5636         type for V2DF.
5637         (VStype_div): Use vector types for V2DF/V4SF.
5638         (VStype_sqrt): Use *sqrt types.
5639         (VS_spdp_type): Change type to vecdouble.
5640         (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
5641         vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
5642         vsx_xvcvspuxds): Likewise.
5643         (*vsx_fms<mode>4): Set type via <VStype_mul>.
5644         (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
5645         <VStype_simple>.
5646         * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
5647         (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
5648         power7-dsqrt): Correct insn latency.
5649         (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
5650         (power7-veccmp): Delete.
5651         (power7-vecfloat): Correct latency/dispatch/VSU values.
5652         (define_bypass "power7-vecfloat"): Correct latency and types.
5653         (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
5654         (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
5655
5656 2011-10-28  Uros Bizjak  <ubizjak@gmail.com>
5657
5658         * config/i386/i386.md (shift_insn): Rename code attribute from
5659         shiftrt_insn.  Also handle ashift RTX.
5660         (shift): Rename code attribute from shiftrt.  Also handle ashift RTX.
5661         (vshift): New code attribute.
5662         (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
5663         (any_lshift): Move and rename code iterator from ...
5664         * config/i386/sse.md (lshift): ... here.
5665         (lshift_insn): Remove code attribute.
5666         (lshift): Remove code attribute.
5667         (vlshr<mode>3): Use lshiftrt RTX.
5668         (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
5669         (vashl<mode>3, ashlv16qi3): Use ashift RTX.
5670         (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>.  Use
5671         any_lshift code iterator.  Update asm template.
5672         (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
5673         usign any_lshift code iterator.
5674         * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
5675         mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
5676         * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
5677
5678 2011-10-28  Georg-Johann Lay  <avr@gjlay.de>
5679
5680         PR target/49313
5681         * config/avr/avr.md (parityhi2): Expand allowing pseudos.
5682         (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
5683         to the libgcc insn.
5684         (*parityqihi2): Same for 8-bit parity.
5685
5686 2011-10-28  Julian Brown  <julian@codesourcery.com>
5687
5688         PR rtl-optimization/47918
5689         * reload1.c (set_initial_label_offsets): Use initial offsets
5690         for labels on the nonlocal_goto_handler_labels chain.
5691
5692 2011-10-28  Iain Sandoe  <iains@gcc.gnu.org>
5693
5694         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5695         Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
5696         (LIB2FUNCS_EXTRA):  Add darwin-gpsave.asm.
5697         (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
5698         config/t-darwin.
5699         * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
5700         (GP_SAVE_INLINE): Likewise.
5701         (SAVE_FP_PREFIX,  SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
5702         RESTORE_FP_SUFFIX): Set to empty strings.
5703         * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
5704         (debug_stack_info): Print savres_strategy.
5705         (rs6000_savres_routine_name): Implement for Darwin.
5706         (rs6000_make_savres_rtx): Adjust used register for Darwin.
5707         (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
5708         (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
5709         (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
5710         * config/rs6000/darwin-gpsave.asm: New file.
5711
5712 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
5713
5714         * config/i386/sse.md (VI4SD_AVX2): Removed.
5715         (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
5716         (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
5717         Add another expander using VI48_128 iterator for
5718         TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
5719         for TARGET_AVX2.
5720         (vlshr<mode>3): Likewise.  Change register_operand predicate to
5721         nonimmediate_operand on last operand in the VI12_128 expander.
5722         (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
5723         (vashrv4si3, vashrv8si3): New expanders.
5724         (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
5725         avx2_<lshift>vv2di): Removed.
5726         (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
5727         (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
5728         iterator.  Simplify pattern.
5729
5730 2010-10-28  Richard Guenther  <rguenther@suse.de>
5731
5732         PR driver/50876
5733         * lto-wrapper.c (get_options_from_collect_gcc_options):
5734         Properly count arguments.
5735         (run_gcc): Use an obstack to collect argv, properly separate
5736         switches and their arguments.
5737
5738 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
5739
5740         * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
5741         vector mode from vectype's mode.
5742
5743 2011-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
5744
5745         PR rtl-optimization/49720
5746         * simplify-rtx.c (simplify_relational_operation_1): Detect
5747         infinite recursion condition in "(eq/ne (plus x cst1) cst2)
5748         simplifies to (eq/ne x (cst2 - cst1))" case.
5749
5750 2011-10-27  David S. Miller  <davem@davemloft.net>
5751
5752         * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
5753         (*snedi_zero): Likewise.
5754         (*snedi_zero_trunc): Likewise.
5755         (snedi_special_vis3): New expander.
5756         (*snedi_zero_vis3): New insn.
5757         (*snedi_zero_trunc_vis3): Likewise.
5758         (*sltu_insn_vis3): Likewise.
5759         (*sltu_insn_vis3_trunc): Likewise.
5760         (addxc): Likewise.
5761         (*addxc_trunc_sp64_vis3): Likewise.
5762         * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
5763         gen_snedi_special_vis3 expander, and try GTU/LTU addx based
5764         sequences on DImode values.
5765
5766         * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
5767         constraint.
5768
5769         * regcprop.c (copyprop_hardreg_forward_1): Reject the
5770         transformation when we narrow the mode on big endian.
5771
5772 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
5773
5774         * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
5775         vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
5776         (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
5777
5778         * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
5779         overrides for -masm=intel memory.
5780         * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
5781         sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
5782         sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
5783         sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
5784         (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
5785         sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
5786         (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
5787
5788 2011-10-27  Martin Jambor  <mjambor@suse.cz>
5789
5790         * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
5791         to parm_ainfo.
5792         (ipa_compute_jump_functions_for_edge): Likewise.
5793         (ipa_compute_jump_functions): Likewise.
5794         (ipa_analyze_indirect_call_uses): Likewise.
5795         (ipa_analyze_call_uses): Likewise.
5796         (ipa_analyze_params_uses): Likewise.
5797         (ipa_analyze_node): Likewise.
5798
5799 2011-10-27  Uros Bizjak  <ubizjak@gmail.com>
5800
5801         PR target/50875
5802         * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
5803         constraints.  Change alternative 1 to "x,m,1".
5804
5805 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
5806
5807         * Makefile.in (build/gencheck.o): Depend on tree.def and
5808         c-family/c-common.def.
5809
5810         * tree-ssa-strlen.c: Include expr.h.
5811         (get_stridx): Don't use c_strlen, instead use string_constant
5812         and compute string length from it.
5813         * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
5814
5815 2011-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5816
5817         PR rtl-optimization/46603
5818         PR bootstrap/50879
5819         * reload.c (push_reload): In the out case, restore previous behavior
5820         for subregs that don't have word mode.
5821
5822 2011-10-27  Ian Lance Taylor  <iant@google.com>
5823
5824         * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
5825         CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
5826         (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
5827         defined.
5828
5829 2011-10-27  Richard Henderson  <rth@redhat.com>
5830
5831         * optabs.c (expand_vec_perm): Use the correct mode for scaling the
5832         selector.  Save the qimode constant selector for later use by the
5833         qimode vec_perm pattern.
5834
5835 2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
5836
5837         * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
5838         to unit_req_factor to the right enum type.
5839         (get_unit_operand_masks, reshuffle_units, try_rename_operands,
5840         hwloop_optimize): Remove unused variables.
5841
5842 2010-10-27  Richard Guenther  <rguenther@suse.de>
5843
5844         PR middle-end/50731
5845         * tree-vect-generic.c (do_binop): Handle scalar operands.
5846
5847 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
5848
5849         PR target/37191
5850         * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
5851         from different units in a single alternative.
5852
5853 2011-10-26  David S. Miller  <davem@davemloft.net>
5854
5855         * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
5856         if we're comparing DImode and comparison is other than EQ or NE.
5857
5858         * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
5859         LEU/LTU/GEU/GTU is attempted.
5860         * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
5861         and split.
5862         (*neg_seqsi_sign_extend): Likewise.
5863         (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
5864         *neg_sgeu_extend_sp64): New insns.
5865
5866         * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
5867         * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
5868         (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
5869         (*mov<I:mode>_cc_reg_sp64): Likewise.
5870         (*movsf_cc_v9): Likewise.
5871         (*movsf_cc_reg_sp64): Likewise.
5872         (*movdf_cc_v9): Likewise.
5873         (*movdf_cc_reg_sp64): Likewise.
5874         (*movtf_cc_hq_v9): Likewise.
5875         (*movtf_cc_reg_hq_sp64): Likewise.
5876         (*movtf_cc_v9): Likewise.
5877         (*movtf_cc_reg_sp64): Likewise.
5878         * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
5879         (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
5880
5881 2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
5882
5883         * reload.c (reload_inner_reg_of_subreg): Change type of return value
5884         and type of OUTPUT parameter to bool and adjust.  Document MODE and
5885         OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
5886         and improve associated comment.
5887         (push_reload): Clarify and update comments about reloading of subregs.
5888         Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
5889         for the reloading of subregs in the out case as well.
5890
5891 2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
5892
5893         PR debug/50826
5894         * var-tracking.c (rtx_debug_expr_p): New.
5895         (use_type): Don't use debug exprs to track non-VTA variables.
5896
5897 2011-10-26  Jeff Law  <law@redhat.com>
5898
5899         * doc/invoke.texi (sink-frequency-threshold): Document.
5900         * tree-ssa-sink.c: Include params.h.
5901         (select_best_block): New function.
5902         (statement_sink_location): Use it.
5903         * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
5904
5905 2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
5906
5907         PR target/48108
5908         * config/darwin.c (top level): Amend comments concerning LTO output.
5909         (lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
5910         (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
5911         (LTO_NAMES_SECTION): Rename.
5912         (darwin_asm_named_section): Record LTO section counts and switches
5913         in a vec of darwin_lto_section_e.
5914         (darwin_file_start): Remove unused code.
5915         (darwin_file_end): Put an LTO section termination label.  Handle
5916         output of the wrapped LTO sections, index and names table.
5917
5918 2011-10-26  Alan Modra  <amodra@gmail.com>
5919
5920         * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
5921         declaration.
5922         (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
5923         (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
5924         simple_return in pattern, emit instruction, and set jump_label.
5925         (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
5926         simple_return rather than return.
5927         (emit_cfa_restores): New function.
5928         (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
5929         Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
5930         when using out-of-line gpr restore.  Add missing LR and FP regs
5931         cfa_restores for out-of-line fpr restore.  Consolidate code setting
5932         up cfa_restores.  Formatting.  Use LR_REGNO define.
5933         (rs6000_output_mi_thunk): Use simple_return rather than return.
5934         * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
5935         (return_internal*): Likewise.
5936         (any_return, return_pred, return_str): New iterators.
5937         (return, conditional return insns): Provide both return and
5938         simple_return variants.
5939         * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
5940         (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
5941         Move r11 and r0 later to suit shrink-wrapping.
5942
5943 2011-10-26  Richard Guenther  <rguenther@suse.de>
5944
5945         * lto-wrapper.c (run_gcc): Properly init/free obstack.
5946
5947 2011-10-26  Jakub Jelinek  <jakub@redhat.com>
5948
5949         * config/i386/i386.md (UNSPEC_VSIBADDR): New.
5950         * config/i386/predicates.md (vsib_address_operand,
5951         vsib_mem_operator): New predicates.
5952         * config/i386/i386.c (ix86_print_operand_address): Handle
5953         UNSPEC_VSIBADDR addresses.
5954         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
5955         avx2_gatherdi<mode>256): Adjust expanders to use MEM with
5956         UNSPEC_VSIBADDR address.
5957         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
5958         Adjust insns to use MEM with UNSPEC_VSIBADDR address.
5959
5960 2011-10-26  Tom de Vries  <tom@codesourcery.com>
5961
5962         PR tree-optimization/50763
5963         * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
5964         phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
5965
5966 2011-10-26  Richard Guenther  <rguenther@suse.de>
5967
5968         PR lto/41844
5969         * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
5970         (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
5971         * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
5972         (run_gcc): Use it.  Filter out language specific options.
5973
5974 2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
5975
5976         * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
5977         32-bit target does.
5978
5979 2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
5980
5981         PR driver/46617
5982         * gcc.c (main): Fix fatal_error string for translation.
5983
5984 2011-10-25  Ian Lance Taylor  <iant@google.com>
5985
5986         * tree-eh.c (do_return_redirection): Remove return_value_p
5987         parameter.  Change all callers.
5988         (lower_try_finally_nofallthru): Remove local return_val.
5989         (lower_try_finally_onedest): Likewise.
5990         (lower_try_finally_copy): Likewise.
5991         (lower_try_finally_switch): Likewise.
5992
5993 2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>
5994
5995         * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
5996         remove "&& !TARGET_64BIT"
5997         (*mmx_maskmovq_rex): Removed.
5998
5999 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6000
6001         PR rtl-optimization/46603
6002         * reload.c (push_reload): In the out case, reload the subreg as well
6003         as the reg if it has word mode.
6004
6005 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6006
6007         * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
6008         suppress debug info for the parent type.
6009
6010 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6011
6012         * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
6013
6014 2011-10-25  Richard Henderson  <rth@redhat.com>
6015
6016         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
6017         (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
6018
6019         * config/rs6000/altivec.md (vec_extract_evenv8hi,
6020         vec_extract_evenv16qi, vec_extract_oddv4si,
6021         vec_extract_oddv4sf): Remove.
6022
6023         * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
6024         vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
6025         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
6026         vec_interleave_highv4sf, vec_interleave_lowv4sf,
6027         vec_interleave_highv4si, vec_interleave_lowv4si,
6028         vec_interleave_highv8hi, vec_interleave_lowv8hi,
6029         vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
6030
6031         * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
6032         [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
6033         [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
6034         * optabs.c (expand_binop): Implement vec_interleave_high_optab,
6035         vec_interleave_low_optab, vec_extract_even_optab,
6036         vec_extract_odd_optab with expand_vec_perm.
6037         (can_vec_perm_for_code_p): New.
6038         * optabs.h: Update.
6039         * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
6040         fallback via can_vec_perm_for_code_p.
6041         (vect_strided_load_supported): Likewise.
6042         * tree-vect-generic.c (expand_vector_operations_1): Never lower
6043         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
6044         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
6045
6046         * target.def (vec_perm_const_ok): Change parameters to mode and
6047         array of indicies.
6048         * doc/tm.texi: Rebuild.
6049         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
6050         parameters to mode and array of indicies.
6051         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
6052         * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
6053         Change parameters to mode and array of indicies.
6054         (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
6055         (expand_vec_perm): Rename from expand_vec_perm_expr.  Change
6056         parameters to mode and rtx inputs.  Try lowering to QImode
6057         vec_perm_const before trying fully variable permutation.
6058         * optabs.h: Update decls.
6059         * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
6060         VECTOR_CST to pass to can_vec_perm_p.
6061         * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
6062         from int pointer to unsigned char pointer.
6063         (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
6064         * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
6065
6066         * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
6067         (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
6068         VEC_INTERLEAVE_LOW_EXPR): Likewise.
6069
6070 2011-10-25  Mike Stump  <mikestump@comcast.net>
6071
6072         * reload.c (regno_clobbered_p): Fix typo.
6073
6074 2011-10-25  Dodji Seketeli  <dodji@redhat.com>
6075
6076         * input.c (expand_location): Rewrite using linemap_resolve_location
6077         and linemap_expand_location.  Add a comment.
6078
6079 2011-10-25  Jakub Jelinek  <jakub@redhat.com>
6080
6081         PR tree-optimization/50596
6082         * tree-vect-stmts.c (vect_mark_relevant): Only use
6083         FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
6084         (vectorizable_store): If is_pattern_stmt_p look through
6085         VIEW_CONVERT_EXPR on lhs.
6086         * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
6087         Use unsigned type instead of signed.
6088         (vect_recog_bool_pattern): Optimize also stores into bool memory in
6089         addition to casts from bool to integral types.
6090         (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
6091         created, don't create it again.
6092
6093 2011-10-25  Kai Tietz  <ktietz@redhat.com>
6094
6095         * config/i386/i386.c (ix86_frame_pointer_required): Require
6096         frame-pointer, if setjmp is used for 32-bit ms-abi.
6097
6098 2011-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6099
6100         * builtins.c (set_builtin_user_assembler_name): Remove extra
6101         newline added in October 11th, 2011 change.
6102
6103 2011-10-24  David S. Miller  <davem@davemloft.net>
6104
6105         * config/sparc/little-endian.opt: Delete.
6106         * config.gcc: Remove references to config/sparc/little-endian.opt
6107         * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
6108         * config/sparc/linux64.h: Delete references to -mlittle-endian.
6109         * config/sparc/netbsd-elf.h: Likewise.
6110         * config/sparc/openbsd64.h: Likewise.
6111         * config/sparc/sparc.h: Likewise.
6112         * config/sparc/sp64-elf.h: Likewise and delete overrides for
6113         BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
6114         * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
6115         to MASK_LITTLE_ENDIAN.
6116         * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
6117
6118         * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
6119         Only use D, Y, and Z constraints in vector insns.
6120
6121         * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
6122         (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
6123         called *movsi_insn.
6124         (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
6125         into *movdi_insn_sp32.
6126         (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
6127         one pattern called *movdi_insn_sp64.
6128         (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
6129         Consolidate into one pattern called *movsf_insn.
6130         (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
6131         *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
6132         into *movdf_insn_sp32.
6133         (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
6134         *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
6135         *movdf_insn_sp64.
6136         (*zero_extendsidi2_insn_sp64_novis3,
6137         *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
6138         called *zero_extendsidi2_insn_sp64.
6139         (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
6140         Consolidate into one pattern named *sign_extendsidi2_insn.
6141         (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
6142         Consolidate into one pattern named *mov<VM32:mode>_insn.
6143         (*mov<VM64:mode>_insn_sp64_novis3,
6144         *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
6145         named *mov<VM64:mode>_insn_sp64.
6146         (*mov<VM64:mode>_insn_sp32_novis3,
6147         *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
6148         named *mov<VM64:mode>_insn_sp32.
6149
6150 2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6151
6152         * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
6153         (zero_length_string): Change assertion to accept strinfo without
6154         length but with stmt instead.
6155         Set the endptr pointer also if starting a new chain.
6156         (adjust_related_strinfos): Ignore strinfos marked for delayed
6157         length computation.
6158         (handle_builtin_strcpy): Mark earlier strinfo elements also for
6159         delayed length computation.
6160
6161 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
6162
6163         PR target/50820
6164         Port from 4.6 branch r180379
6165         * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
6166         handling and indirect jump/calls on devices > 128k.
6167
6168 2011-10-24  Anatoly Sokolov  <aesok@post.ru>
6169             Georg-Johann Lay  <avr@gjlay.de>
6170
6171         PR target/49824
6172         * doc/extend.texi (Declaring Attributes of Functions):
6173         Document OS_main and OS_task attributes.
6174         (Specifying Attributes of Variables): Move up
6175         subsection "AVR Variable Attributes" as of alphabetical order.
6176
6177 2011-10-24  Richard Guenther  <rguenther@suse.de>
6178
6179         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
6180         to vector element type.
6181         (vectorizable_assignment): Bail out for non-mode-precision operations.
6182         (vectorizable_shift): Likewise.
6183         (vectorizable_operation): Likewise.
6184         (vectorizable_type_demotion): Likewise.
6185         (vectorizable_type_promotion): Likewise.
6186         (vectorizable_store): Handle non-mode-precision stores.
6187         (vectorizable_load): Handle non-mode-precision loads.
6188         (get_vectype_for_scalar_type_and_size): Return a vector type
6189         for non-mode-precision integers.
6190         * tree-vect-loop.c (vectorizable_reduction): Bail out for
6191         non-mode-precision reductions.
6192
6193 2011-10-24  Julian Brown  <julian@codesourcery.com>
6194
6195         * config/m68k/m68k.c (notice_update_cc): Tighten condition for
6196         setting CC_REVERSED for FP comparisons.
6197
6198 2011-10-24  Richard Guenther  <rguenther@suse.de>
6199
6200         PR tree-optimization/50838
6201         * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
6202         a MEM_REF base if we change it.
6203
6204 2011-10-24  Bernd Schmidt  <bernds@codesourcery.com>
6205
6206         PR bootstrap/50836
6207         * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
6208
6209         PR rtl-optimization/50833
6210         * function.c (thread_prologue_and_epilogue_insns): Expect the
6211         return insn optimization only if optimize.
6212
6213 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
6214
6215         * config/avr/avr.c: Break long lines.
6216         Define target hooks on the fly if applicable.
6217         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
6218         overridden later.
6219         (targetm): Move definition to end of file.
6220         (avr_can_eliminate): Make static on the fly.
6221         (avr_frame_pointer_required_p): Ditto.
6222         (avr_hard_regno_scratch_ok): Ditto.
6223         (avr_builtin_setjmp_frame_value): Make static on the fly.
6224         Indent according to coding rules.
6225         (avr_case_values_threshold): Ditto.
6226         (avr_attribute_table): Move down.
6227
6228 2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
6229
6230         PR tree-optimization/50730
6231         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
6232         analysis if encountered unsupported data-ref.
6233
6234 2011-10-23  David S. Miller  <davem@davemloft.net>
6235
6236         * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
6237         cpu adjustment.
6238         * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
6239         append -mcpu=v9 when -mv8plus is given.
6240
6241         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
6242         between float and non-float regs when VIS3.
6243         * config/sparc/sparc.c (eligible_for_restore_insn): We can't
6244         use a restore when the source is a float register.
6245         (sparc_split_regreg_legitimate): When VIS3 allow moves between
6246         float and integer regs.
6247         (sparc_register_move_cost): Adjust to account for VIS3 moves.
6248         (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
6249         integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
6250         (sparc_secondary_reload): On 32-bit with VIS3 when moving between
6251         float and integer regs we sometimes need a FP_REGS class
6252         intermediate move to satisfy the reload.  When this happens
6253         specify an extra cost of 2.
6254         (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
6255         (*movdi_insn_sp32_v9): Likewise.
6256         (*movdi_insn_sp64): Likewise.
6257         (*movsf_insn): Likewise.
6258         (*movdf_insn_sp32_v9): Likewise.
6259         (*movdf_insn_sp64): Likewise.
6260         (*zero_extendsidi2_insn_sp64): Likewise.
6261         (*sign_extendsidi2_insn): Likewise.
6262         (*movsi_insn_vis3): New insn.
6263         (*movdi_insn_sp32_v9_vis3): New insn.
6264         (*movdi_insn_sp64_vis3): New insn.
6265         (*movsf_insn_vis3): New insn.
6266         (*movdf_insn_sp32_v9_vis3): New insn.
6267         (*movdf_insn_sp64_vis3): New insn.
6268         (*zero_extendsidi2_insn_sp64_vis3): New insn.
6269         (*sign_extendsidi2_insn_vis3): New insn.
6270         (TFmode reg/reg split): Make sure both REG operands are float.
6271         (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
6272         easy constant to integer reg alternatives.
6273         (*mov<VM64:mode>_insn_sp64): Likewise.
6274         (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
6275         (*mov<VM32:mode>_insn_vis3): New insn.
6276         (*mov<VM64:mode>_insn_sp64_vis3): New insn.
6277         (*mov<VM64:mode>_insn_sp32_vis3): New insn.
6278         (VM64 reg<-->reg split): New splitter for 32-bit.
6279
6280         * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
6281         * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
6282         Declare it.
6283         * config/sparc/sparc.md (DImode reg/reg split): Use it.
6284         (DFmode reg/reg split): Likewise.
6285
6286         * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
6287         generating fzero and fone instructions.
6288         (DImode const_int --> reg splitter): Only trigger for integer regs.
6289
6290         * config/sparc/predicates.md (input_operand): Disallow vector
6291         constants other than 0 and -1.
6292         * config/sparc/sparc.c (sparc_preferred_reload_class): Return
6293         NO_REGS for vector constants other than 0 and -1.
6294
6295         * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
6296         SPARC_INT_REG_P): Define.
6297         (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
6298         (REGNO_OK_FOR_INDEX_P): Likewise.
6299         * config/sparc/sparc.c (gen_df_reg): Likewise.
6300         (eligible_for_return_delay): Likewise.
6301         (eligible_for_sibcall_delay): Likewise.
6302         (sparc_legitimate_address_p): Likewise.
6303         (emit_save_or_restore_regs): Likewise.
6304         (registers_ok_for_ldd_peep): Likewise.
6305         * config/spac/sparc.md (DI mode splitters): Likewise.
6306         (SF mode const splitters): Likewise.
6307         (DF mode splitters): Likewise.
6308         (32-bit DI mode logical op splitters): Likewise.
6309
6310 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6311
6312         PR c++/50841
6313         Revert:
6314         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6315
6316         PR c++/50810
6317         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
6318
6319 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
6320
6321         * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
6322         (VI248_256): Remove mode iterator.
6323         * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
6324         instead of gen_avx2_lshlv4di3.
6325         (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
6326         CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
6327
6328 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
6329
6330         * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
6331         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
6332         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
6333         pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
6334         *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
6335         iterator.  Use sseintprefix mode attribute.
6336         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
6337         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
6338         pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
6339         *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
6340         iterator.  Use sseintprefix mode attribute.
6341         (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
6342         attributes.
6343         (*avx2_gatherdi<mode>): Ditto.
6344         (*avx2_gatherdi<mode>256): Ditto.
6345         (VI48_AVX2): Remove mode iterator.
6346         (gthrlastfp): Remove mode attribute.
6347
6348 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6349
6350         PR c++/50810
6351         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
6352
6353 2011-10-23  Tom de Vries  <tom@codesourcery.com>
6354
6355         PR tree-optimization/50763
6356         * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
6357         out of ...
6358         (same_succ_flush_bbs): Use same_succ_flush_bb.
6359         (purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
6360         release_last_vdef and delete_basic_block.
6361         (unlink_virtual_phi): New function.
6362         (update_vuses): Add and use vuse1_phi_args argument.  Set var to
6363         SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that
6364         def_stmt2 is NULL.  Use phi result as phi arg in case vuse1 or vuse2
6365         is NULL_TREE.  Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code
6366         to limit replacement of uses.  Propagate phi argument for phis with a
6367         single argument.
6368         (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
6369         Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add
6370         vuse1_phi_args as argument to call to update_vuses.  Call
6371         release_last_vdef, same_succ_flush_bb, delete_basic_block.  Update
6372         CDI_DOMINATORS info.
6373         (tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
6374         call to free_dominance_info.  Only call calculate_dominance_info once.
6375
6376 2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>
6377
6378         * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
6379
6380         PR tree-optimization/44683
6381         * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
6382         we can be sure that there are no signed zeros involved.
6383
6384 2011-10-23  Jan Hubicka  <jh@suse.cz>
6385
6386         * ipa-inline.c (estimate_badness): Scale up and handle overflows.
6387
6388 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
6389
6390         PR target/50788
6391         * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
6392         Remove (match_dup 0).
6393         (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
6394         (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
6395         (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
6396         (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
6397         (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
6398         (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
6399
6400 2011-10-23  Ira Rosen  <ira.rosen@linaro.org>
6401
6402         PR tree-optimization/50819
6403         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
6404         the last argument.
6405         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
6406         vect_analyze_data_ref_dependences.
6407         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
6408         the last argument.  Check load-after-store dependence for unknown
6409         dependencies in basic blocks.
6410         (vect_analyze_data_ref_dependences): Update call to
6411         vect_analyze_data_ref_dependences.
6412         * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
6413         * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
6414         (vect_slp_analyze_bb_1): Update call to
6415         vect_analyze_data_ref_dependences.  Don't call
6416         vect_bb_vectorizable_with_dependencies.
6417
6418 2011-10-22  David S. Miller  <davem@davemloft.net>
6419
6420         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
6421         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
6422         * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
6423         (sparc_secondary_reload): New function.
6424
6425         * config/sparc/sparc.h (sparc_costs): Remove extern decl.
6426         (struct processor_costs): Move from here..
6427         * config/sparc/sparc.c (struct processor_costs): To here.
6428         (sparc_costs): Mark static.
6429
6430         * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
6431         * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
6432         Get rid of declarations.
6433
6434 2011-10-21  Paul Brook  <paul@codesourcery.com>
6435
6436         * config/c6x/c6x.c (c6x_asm_emit_except_personality,
6437         c6x_asm_init_sections): New functions.
6438         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
6439
6440 2011-10-21  Jakub Jelinek  <jakub@redhat.com>
6441
6442         PR target/50813
6443         * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
6444         V4DImode and V8SImode for !TARGET_AVX2.
6445
6446 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
6447
6448         PR bootstrap/50825
6449         * sched-deps.c (add_dependence): If not doing predication, promote
6450         REG_DEP_CONTROL to REG_DEP_ANTI.
6451
6452 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
6453
6454         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
6455         instead of X to avr_legitimize_reload_address.
6456         * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
6457         first argument's type from rtx to rtx*.
6458         * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
6459         Pass PX to push_reload instead of &X.  Change log messages for
6460         better distinction.
6461
6462 2011-10-21  Roland Stigge  <stigge@antcom.de>
6463
6464         PR translation/47064
6465         * params.def: Fix typo "compilatoin" -> "compilation".
6466
6467 2011-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6468             Kirill Yukhin  <kirill.yukhin@intel.com>
6469
6470         PR target/50740
6471         * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
6472         if max_level allows that.
6473
6474 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
6475
6476         * reg-notes.def (DEP_CONTROL): New.
6477         * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
6478         not doing speculation.
6479         * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
6480         record_hard_reg_uses_1, record_hard_reg_uses): New functions.
6481         * function.c (record_hard_reg_sets, record_hard_reg_uses,
6482         record_hard_reg_uses_1): Remove; move to rtlanal.c.
6483         * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
6484         * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
6485         (MUST_RECOMPUTE_SPEC_P): New macro.
6486         (real_insn_for_shadow): New function.
6487         (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
6488         toggle_cancelled_flags): New static functions.
6489         (schedule_insn): Relax an assert to only check for empty hard back
6490         dependencies.  Skip cancelled dependencies.  Call
6491         check_clobbered_conditions.
6492         (copy_insn_list): Remove function, renamed moved to lists.c.
6493         (save_backtrack_point): Use new spelling copy_INSN_LIST.
6494         (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
6495         (restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
6496         (estimate_insn_tick): Ignore cancelled dependencies.
6497         (haifa_speculate_insn): Move declaration.
6498         (try_ready): Move code into recompute_todo_spec and call it.  Tweak
6499         some asserts.  Ensure predicated patterns are restored if necessary.
6500         Dump DEP_CONTROL flag.
6501         (haifa_change_pattern): Merge with sched_change_pattern.
6502         (sched_change_pattern): Remove function.
6503         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
6504         uses changed to simply not test NON_FLUSH_JUMP_P.
6505         (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
6506         REG_DEP_CONTROL.
6507         (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
6508         (reg_pending_control_uses, control_dependency_cache): New static
6509         variables.
6510         (sched_get_reverse_condition_uncached): New function.
6511         (sd_find_dep_between): Remove pointless assert.  Look in
6512         control_dependency_cache.
6513         (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
6514         extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
6515         and control_dependency_cache.
6516         (sd_unresolve_dep): Use dep_spec_p.
6517         (add_dependence): Now a wrapper around add_dependence_1, handling
6518         REG_DEP_CONTROL specially.
6519         (flush_pending_lists): Clear pending_jump_insns.
6520         (sched_analyze_1): Handle pending_jump_insns like a memory flush.
6521         (sched_analyze_2): Unconditionally add to pending memory flushes,
6522         keep previous behaviour but apply it to pending_jump_insns instead.
6523         (sched_analyze_insn): Defer adding jump reg dependencies using
6524         reg_pending_control_uses; add them to the control_uses list.  Handle
6525         pending_jump_insns and control_uses when adding dependence lists.
6526         (deps_analyze_insn): Update INSN_COND_DEPS.
6527         (deps_analyze_insn): Add jumps to pending_jump_insns rather than
6528         last_pending_memory_flush.
6529         (init_deps): Initialize pending_jump_insns.
6530         (free_deps): Free control_uses.
6531         (remove_from_deps): Remove from pending_jump_insns.
6532         (init_deps_global): Allocate reg_pending_control_uses).
6533         (finish_deps_global): Free it.
6534         (add_dependence_1): Renamed from add_dependence.  Handle
6535         REG_DEP_CONTROL.
6536         * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
6537         (copy_INSN_LIST, concat_INSN_LIST): Declare.
6538         * sched-int.h (struct deps_reg): Add control_uses.
6539         (struct deps_desc): Add pending_jump_insns.
6540         (struct _haifa_deps_insn_data): Add cond_deps.
6541         (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
6542         (INSN_COND_DEPS, PREDICATED_PAT): New macros.
6543         (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
6544         (DEP_CONTROL): New macro.
6545         (DEP_TYPES): Include it.
6546         (HARD_DEP): Adjust definition.
6547         (DEP_CANCELLED): New macro.
6548         (enum SCHED_FLAGS): Add DO_PREDICATION.
6549         (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
6550         * sched-rgn.c (concat_INSN_LIST): Remove function.
6551         (deps_join): Handle pending_jump_insns.
6552         (free_pending_lists): Likewise.
6553         * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
6554         schedule.
6555
6556 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
6557
6558         PR target/50820
6559         * config/avr/libgcc.S (__EIND__): New define to 0x3C.
6560         (__tablejump__): Consistently use EIND for indirect jump/call.
6561         (__tablejump_elpm__): Ditto.
6562
6563 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
6564
6565         * config/c6x/c6x.md (attr "op_pattern"): New.
6566         (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
6567         * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
6568         Likewise.
6569         * config/c6x/c6x-mult.md: Regenerate.
6570         * config/c6x/c6x.c: Include "regrename.h".
6571         (unit_req_table): New typedef.
6572         (unit_reqs): Use it for the declaration.
6573         (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
6574         get_unit_operand_masks, try_rename_operands, reshuffle_units): New
6575         static functions.
6576         (count_unit_reqs): New arg reqs.  All callers changed.  Use
6577         get_unit_reqs, and don't merge here.
6578         (res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
6579         using unit_req_factor.
6580         (hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
6581         count_unit_reqs.
6582         (c6x_reorg): Add reg notes problem, and call df_analyze.
6583         * Makefile.in ($(out_object_file)): Depend on regrename.h.
6584
6585 2011-10-21  Kai Tietz  <ktietz@redhat.com>
6586
6587         * fold-const.c (simple_operand_p_2): Handle integral
6588         casts from boolean-operands.
6589
6590 2011-10-21  Jan Hubicka  <jh@suse.cz>
6591
6592         * cgraph.c (dump_cgraph_node): Dump alias flag.
6593         * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
6594         no destination.
6595         (get_alias_symbol): New function.
6596         (output_weakrefs): Output also weakrefs with no destinatoin.
6597         (lto_output_node): Output weakref alias flag when at function boundary.
6598
6599 2011-10-21  Andrew Stubbs  <ams@codesourcery.com>
6600
6601         PR target/50809
6602         * config/arm/driver-arm.c (vendors): Make static.
6603
6604 2011-10-21  Uros Bizjak  <ubizjak@gmail.com>
6605
6606         * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
6607         (ix86_emit_swsqrtsf): Force a into register.
6608
6609 2011-10-20  Mike Stump  <mikestump@comcast.net>
6610
6611         * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
6612         after validate_change wipes it out.
6613
6614 2011-10-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6615
6616         * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
6617         before using the shufb instruction.
6618
6619 2011-10-20  Kirill Yukhin  <kirill.yukhin@intel.com>
6620
6621         PR target/50766
6622         * config/i386/i386.md (bmi_bextr_<mode>): Update register/
6623         memory operand order.
6624         (bmi2_bzhi_<mode>3): Ditto.
6625         (bmi2_pdep_<mode>3): Ditto.
6626         (bmi2_pext_<mode>3): Ditto.
6627
6628 2011-10-20  Richard Henderson  <rth@redhat.com>
6629
6630         * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
6631         * optabs.c (can_vec_perm_expr_p): Update to match.
6632         (expand_vec_perm_expr): Likewise.
6633         * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
6634         from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
6635         * doc/tm.texi.in: Likewise.
6636
6637 2011-10-20  Sergey Ostanevich  <sergos.gnu@gmail.com>
6638
6639         PR target/50572
6640         * config/i386/i386.c (processor_target_table): Change Atom
6641         align_loops_max_skip to 15.
6642
6643 2011-10-20  Richard Henderson  <rth@redhat.com>
6644
6645         * target.def (builtin_vec_perm): Remove.
6646         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
6647
6648         * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
6649         (IX86_BUILTIN_VEC_PERM_*): Remove.
6650         (bdesc_args): Remove vec_perm builtins
6651         (ix86_expand_builtin): Likewise.
6652         (ix86_expand_vec_perm_const_1): Rename from
6653         ix86_expand_vec_perm_builtin_1.
6654         (extract_vec_perm_cst): Merge into...
6655         (ix86_vectorize_vec_perm_const_ok): ... here.  Rename from
6656         ix86_vectorize_builtin_vec_perm_ok.
6657         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
6658
6659         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
6660         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
6661
6662         * config/spu/spu.c (spu_builtin_vec_perm): Remove.
6663         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
6664
6665 2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
6666
6667         PR target/47989
6668         * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
6669         * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
6670         * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
6671         implements vectorized single float division and vectorized sqrtf(x)
6672         with reciprocal sequence with additional Newton-Raphson step with
6673         -ffast-math.
6674
6675 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
6676
6677         * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
6678         ggc_alloced_size_order_for_request into ggc_round_alloc_size like
6679         it was done in ggc-page.c.
6680
6681         PR other/50659
6682         * doc/cppopts.texi: Use @smallexample/@end smallexample in
6683         documentation for -fdebug-cpp instead of @quotation/@end quotation
6684         that is not supported by contrib/texi2pod.pl.
6685
6686 2011-10-19  Jan Hubicka  <jh@suse.cz>
6687
6688         * ipa-inline.c (inline_small_functions): Always update all calles after
6689         inlining.
6690
6691 2011-10-19  Jan Hubicka  <jh@suse.cz>
6692
6693         PR bootstrap/50709
6694         * ipa-inline.c (inline_small_functions): Fix checking code to not make
6695         effect on fibheap stability.
6696
6697 2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
6698
6699         * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
6700
6701 2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6702
6703         PR target/50106
6704         * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
6705         reg size from 1-3.
6706
6707 2011-10-20  Richard Guenther  <rguenther@suse.de>
6708
6709         * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
6710         and rotates to the set of expensive operations.
6711
6712 2011-10-19  David S. Miller  <davem@davemloft.net>
6713
6714         * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
6715         (sparc_emit_set_const32): Likewise.
6716         (sparc_emit_set_const64_longway): Likewise.
6717         (sparc_emit_set_const64): Likewise.
6718         (sparc_legitimize_pic_address): Likewise.
6719         (memory_ok_for_ldd): Likewise.
6720
6721 2011-10-20  Dehao Chen  <dehao@google.com>
6722
6723         * profile.c (compute_branch_probabilities): Compute and dump the
6724         overlap between the static estimation and the instrumentation profile.
6725         (OVERLAP_BASE): New macro.
6726         (compute_frequency_overlap): New function
6727
6728 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
6729
6730         * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
6731         d->op1 instead of d->op0 for the second vpshufb.
6732         (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
6733         (ix86_expand_vec_perm_const): If mask indicates two operands are
6734         needed, but both are the same and expanding them as d.op0 == d.op1
6735         failed, retry with d.op0 != d.op1.
6736         (ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
6737         also for d.nelt == 32.
6738
6739         PR middle-end/50754
6740         * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
6741         VEC_PERM_EXPR.
6742
6743 2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
6744
6745         * regrename.h: New file.
6746         * regrename.c: Include it.  Also include "emit-rtl.h".
6747         (struct du_head, struct du_chain, du_head_p DEF_VEC and
6748         DEF_VEC_ALLOC_P): Move to regrename.h.
6749         (do_replace): Remove declaration.
6750         (insn_rr): New variable.
6751         (cur_operand): New static variable.
6752         (regrename_chain_from_id): Renamed from chain_from_id and no longer
6753         static.  All callers changed.
6754         (record_operand_use): New static function.
6755         (scan_rtx_reg): Use it.
6756         (find_best_rename_reg): New function, broken out of rename_chains.
6757         (rename_chains): Use it.  Don't update chain regno and nregs here, ...
6758         (regrename_do_replace): ... do it here instead.  Renamed from
6759         do_replace, and no longer static.  All callers changed.
6760         (regrename_analyze): No longer static.  New arg bb_mask.
6761         All callers changed.  If bb_mask is nonzero, use it to limit the
6762         number of basic blocks we analyze.  If we failed to analyze a block,
6763         clear insn operand data.
6764         (record_out_operands): New arg insn_info.  Update cur_operand if it is
6765         nonnull.
6766         (build_def_use): If insn_rr is nonnull, pass an insn_info to
6767         record_out_operands, and update cur_operand here as well.
6768         (regrename_init, regrename_finish): New functions.
6769         (regrename_optimize): Use them.
6770         * Makefile.in (regrename.o): Adjust dependencies.
6771
6772 2011-10-19  Tom de Vries  <tom@codesourcery.com>
6773
6774         PR tree-optimization/50769
6775         * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
6776         unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
6777         dummy argument .MEM to phi when increasing number of arguments of phi by
6778         redirecting edges to the block with phi.
6779
6780 2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6781
6782         PR bootstrap/50777
6783         * configure.ac: Save and restore CXXFLAGS around
6784         gcc_AC_CHECK_DECLS uses.
6785         Check for madvise() declaration with g++ if --enable-build-with-cxx.
6786         * configure: Regenerate.
6787         * config.in: Regenerate.
6788         * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
6789
6790 2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
6791
6792         PR debug/49310
6793         * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
6794         (variable_part): Replace offset with union.
6795         (enum onepart_enum, onepart_enum_t): New.
6796         (variable_def): Drop cur_loc_changed, add onepart.
6797         (value_chain_def, const_value_chain): Remove.
6798         (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
6799         (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
6800         (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
6801         (value_chain_pool, value_chains): Remove.
6802         (dropped_values): New.
6803         (struct parm_reg): Only if HAVE_window_save.
6804         (vt_stack_adjustments): Don't record register arguments.
6805         (dv_as_rtx): New.
6806         (dv_onepart_p): Return a onepart_enum_t.
6807         (onepart_pool): New.
6808         (dv_pool): Remove.
6809         (dv_from_rtx): New.
6810         (variable_htab_free): Release onepart aux data.  Reset flags.
6811         (value_chain_htab_hash, value_chain_htab_eq): Remove.
6812         (unshare_variable): Use onepart field.  Propagate onepart aux
6813         data or offset.  Drop cur_loc_changed.
6814         (val_store): Cope with NULL insn.  Rephrase dump output.  Check
6815         for unsuitable locs.  Add FIXME on using cselib locs.
6816         (val_reset): Remove FIXME of unfounded concerns.
6817         (val_resolve): Check for unsuitable locs.  Add FIXME on using
6818         cselib locs.
6819         (variable_union): Use onepart field, adjust access to offset.
6820         (NO_LOC_P): New.
6821         (VALUE_CHANGED, DECL_CHANGED): Update doc.
6822         (set_dv_changed): Clear NO_LOC_P when changed.
6823         (find_loc_in_1pdv): Use onepart field.
6824         (intersect_loc_chains): Likewise.
6825         (unsuitable_loc): New.
6826         (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
6827         (add_value_chain, add_value_chains): Remove.
6828         (add_cselib_value_chains, remove_value_chain): Likewise.
6829         (remove_value_chains, remove_cselib_value_chains): Likewise.
6830         (canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
6831         (canonicalize_values_star, canonicalize_vars_star): Use onepart.
6832         (variable_merge_over_cur): Likewise.  Adjust access to offset.
6833         Drop cur_loc_changed.
6834         (variable_merge_over_src): Use onepart field.
6835         (remove_duplicate_values): Likewise.
6836         (variable_post_merge_new_vals): Likewise.
6837         (find_mem_expr_in_1pdv): Likewise.
6838         (dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
6839         and value chains.
6840         (dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
6841         (variable_different_p): Use onepart field.  Move onepart test out
6842         of the loop.
6843         (argument_reg_set): Drop.
6844         (add_uses, add_stores): Preserve but do not record in dynamic
6845         tables equivalences for ENTRY_VALUEs and CFA_based addresses.
6846         Avoid unsuitable address expressions.
6847         (EXPR_DEPTH): Unlimit.
6848         (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
6849         (prepare_call_arguments): Use DECL_RTL_IF_SET.
6850         (dump_var): Adjust access to offset.
6851         (variable_from_dropped, recover_dropped_1paux): New.
6852         (variable_was_changed): Drop cur_loc_changed.  Use onepart.
6853         Preserve onepart aux in empty_var.  Recover empty_var and onepart
6854         aux from dropped_values.
6855         (find_variable_location_part): Special-case onepart.  Adjust
6856         access to offset.
6857         (set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
6858         access to offset.  Initialize onepaux.  Drop value chains.
6859         (delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
6860         (VEC (variable, heap), VEC (rtx, stack)): Define.
6861         (expand_loc_callback_data): Drop dummy, cur_loc_changed,
6862         ignore_cur_loc.  Add expanding, pending, depth.
6863         (loc_exp_dep_alloc, loc_exp_dep_clear): New.
6864         (loc_exp_dep_insert, loc_exp_dep_set): New.
6865         (notify_dependents_of_resolved_value): New.
6866         (update_depth, vt_expand_var_loc_chain): New.
6867         (vt_expand_loc_callback): Revamped.
6868         (resolve_expansions_pending_recursion): New.
6869         (INIT_ELCD, FINI_ELCD): New.
6870         (vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
6871         parameter, adjust all callers.
6872         (vt_expand_loc_dummy): Drop.
6873         (vt_expand_1pvar): New.
6874         (emit_note_insn_var_location): Operate on non-debug decls only.
6875         Revamp multi-part cur_loc recomputation and one-part expansion.
6876         Drop cur_loc_changed.  Adjust access to offset.
6877         (VEC (variable, heap)): Drop.
6878         (changed_variables_stack, changed_values_stack): Drop.
6879         (check_changed_vars_0, check_changed_vars_1): Remove.
6880         (check_changed_vars_2, check_changed_vars_3): Remove.
6881         (values_to_stack, remove_value_from_changed_variables): New.
6882         (notify_dependents_of_changed_value, process_changed_values): New.
6883         (emit_notes_for_changes): Revamp onepart updates.
6884         (emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
6885         and value chains.  Propagate onepaux.  Recover empty_var and onepaux
6886         from dropped_values.
6887         (emit_notes_for_differences_2): Drop value chains.
6888         (emit_notes_in_bb): Adjust.
6889         (vt_emit_notes): Drop value chains, changed_variables_stack.
6890         Initialize and release dropped_values.
6891         (create_entry_value): Revamp.
6892         (vt_add_function_parameter): Use new interface.
6893         (note_register_arguments): Remove.
6894         (vt_initialize): Drop value chains and register arguments.
6895         (vt_finalize): Drop value chains.  Release windowed_parm_regs only
6896         if HAVE_window_save.
6897         * rtl.h: Document various pass-local uses of RTL flags.
6898         * tree.h (DECL_RTL_KNOWN_SET): New.
6899         * doc/invoke.texi (param max-vartrack-expr-depth): Update
6900         description and default.
6901
6902 2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
6903
6904         PR target/50447
6905         * config/avr/avr.md (cc): New alternative out_plus_noclobber.
6906         (adjust_len): Ditto.
6907         (addhi3): Don't pipe through short; use gen_int_mode instead.
6908         Prior to reload, expand to gen_addhi3_clobber.
6909         (*addhi3): Use avr_out_plus_noclobber if applicable, use
6910         out_plus_noclobber in cc and adjust_len attribute.
6911         (addhi3_clobber): 2 new RTL peepholes.
6912         (addhi3_clobber): New insn.
6913         * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
6914         * config/avr/avr.c (avr_out_plus_noclobber): New function.
6915         (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
6916         (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
6917         Set cc0 to set_zn for adiw on 16-bit values.
6918         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
6919         (expand_epilogue): No need to add 0 to frame_pointer_rtx.
6920
6921 2011-10-19  Richard Guenther  <rguenther@suse.de>
6922
6923         PR middle-end/50780
6924         * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
6925         the condition is properly gimple before using it.
6926         * tree-eh (stmt_could_throw_1_p): Properly extract the
6927         operation type from comparisons.
6928
6929 2011-10-19  Roland Stigge  <stigge@antcom.de>
6930
6931         PR translation/48638
6932         * plugin.c (add_new_plugin): Fix typo in fatal_error message.
6933
6934 2011-10-19  Roland Stigge  <stigge@antcom.de>
6935
6936         PR translation/49517
6937         * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
6938
6939 2011-10-19  Richard Guenther  <rguenther@suse.de>
6940
6941         PR middle-end/50768
6942         * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
6943
6944 2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
6945
6946         PR rtl-optimization/50340
6947         * sel-sched-ir.c (update_target_availability): LHS register
6948         availability is not known if the unavailable LHS of the other
6949         expression is a different register.
6950
6951 2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6952
6953         PR target/50310
6954         * config/spu/spu.c (spu_emit_vector_compare): Support unordered
6955         floating-point comparisons.
6956
6957 2011-10-19  Jan Hubicka  <jh@suse.cz>
6958
6959         * cgraphunit.c (handle_alias_pairs): Also handle wekref with
6960         destination declared.
6961         (output_weakrefs): New function.
6962         * varpool.c (varpool_create_variable_alias): Handle external aliases.
6963
6964 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
6965
6966         * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
6967         second argument instead of mode.
6968
6969 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
6970
6971         * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
6972         mode SUBREG of operands[0] as target.
6973         (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
6974         (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
6975         (expand_vec_perm_1): Handle identity and some broadcast
6976         permutations.
6977         (expand_vec_perm_interleave2): Handle also 32-byte modes, using
6978         vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
6979         For d->testing_p return true earlier to avoid creating more GC
6980         garbage.
6981         (expand_vec_perm_vpermq_perm_1): New function.
6982         (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
6983         earlier to avoid creating more GC garbage.  Fix handling of
6984         V16HImode.  Avoid some SUBREGs in SET_DEST.
6985         (expand_vec_perm_broadcast_1): Return false for 32-byte integer
6986         vector modes.
6987         (expand_vec_perm_vpshufb4_vpermq2): New function.
6988         (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
6989         and expand_vec_perm_vpshufb4_vpermq2.
6990
6991 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
6992
6993         * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
6994         before exiting.
6995
6996 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
6997
6998         PR tree-optimization/50717
6999         * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
7000         parameter.  Calculate 'type' from stmt.
7001         (convert_mult_to_widen): Update call the is_widening_mult_p.
7002         (convert_plusminus_to_widen): Likewise.
7003
7004 2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7005
7006         * config/spu/spu.c (struct machine_function): New data structure.
7007         (spu_init_machine_status): New function.
7008         (spu_option_override): Install it.
7009         (get_pic_reg): Set and use cfun->machine->pic_reg.
7010         (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
7011         (need_to_save_reg): Use cfun->machine->pic_reg instead of
7012         checking crtl->uses_pic_offset_table.
7013         (spu_expand_prologue): Likewise.
7014
7015 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
7016
7017         PR tree-optimization/50735
7018         * function.c (gimplify_parameters): Use create_tmp_var instead of
7019         create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
7020         or vector type, set DECL_GIMPLE_REG_P.
7021
7022 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
7023
7024         * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
7025         * config/arm/arm.opt: Add 'native' processor_type and
7026         arm_arch enum values.
7027         * config/arm/arm.h (host_detect_local_cpu): New prototype.
7028         (EXTRA_SPEC_FUNCTIONS): New define.
7029         (MCPU_MTUNE_NATIVE_SPECS): New define.
7030         (DRIVER_SELF_SPECS): New define.
7031         * config/arm/driver-arm.c: New file.
7032         * config/arm/x-arm: New file.
7033         * doc/invoke.texi (ARM Options): Document -mcpu=native,
7034         -mtune=native and -march=native.
7035
7036 2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
7037
7038         PR rtl-optimization/50205
7039         * sel-sched.c (count_occurrences_1): Simplify on the assumption that
7040         p->x is a register.  Forbid substitution when the same register is
7041         found in a different mode.
7042         (count_occurrences_equiv): Assert that 'what' is a register.
7043
7044 2011-10-18  Richard Guenther  <rguenther@suse.de>
7045
7046         PR tree-optimization/50767
7047         * tree-ssa-pre.c (create_expression_by_pieces): Update the
7048         folded statement.
7049
7050 2011-10-18  Julian Brown  <julian@codesourcery.com>
7051
7052         * config/arm/arm.c (arm_block_move_unaligned_straight)
7053         (arm_adjust_block_mem, arm_block_move_unaligned_loop)
7054         (arm_movmemqi_unaligned): New.
7055         (arm_gen_movmemqi): Support unaligned block copies.
7056
7057 2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
7058
7059         * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
7060         vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
7061         * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
7062         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
7063         (op_code_prio): Likewise.
7064         (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
7065         * optabs.c (optab_for_tree_code): Handle
7066         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
7067         (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
7068         * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
7069         * genopinit.c (optabs): Initialize the new optabs.
7070         * expr.c (expand_expr_real_2): Handle
7071         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
7072         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
7073         * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
7074         * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
7075         VEC_WIDEN_LSHIFT_LO_EXPR): New.
7076         * cfgexpand.c (expand_debug_expr): Handle new tree codes.
7077         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
7078         vect_recog_widen_shift_pattern.
7079         (vect_handle_widen_mult_by_const): Rename...
7080         (vect_handle_widen_op_by_const): ...to this.  Handle shifts.
7081         Add a new argument, update documentation.
7082         (vect_recog_widen_mult_pattern): Assume that only second
7083         operand can be constant.  Update call to
7084         vect_handle_widen_op_by_const.
7085         (vect_recog_over_widening_pattern): Fix typo.
7086         (vect_recog_widen_shift_pattern): New.
7087         * tree-vect-stmts.c (vectorizable_type_promotion): Handle
7088         widening shifts.
7089         (supportable_widening_operation): Likewise.
7090         * tree-inline.c (estimate_operator_cost): Handle new tree codes.
7091         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
7092         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7093         * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
7094         (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
7095         vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
7096         Likewise.
7097         * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
7098         New.
7099         * config/arm/iterators.md (V_innermode): New.
7100         * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
7101         for widening shift.
7102
7103 2011-10-18  Richard Guenther  <rguenther@suse.de>
7104
7105         * tree-ssa-alias.h (struct pt_solution): Remove
7106         vars_contains_restrict member.
7107         (pt_solutions_same_restrict_base): Remove.
7108         (pt_solution_set): Adjust.
7109         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
7110         vars_contains_restrict handling.
7111         (dump_points_to_solution): Likewise.
7112         (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
7113         * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
7114         field.
7115         (new_var_info): Do not initialize it.
7116         (ipa_escaped_pt): Adjust.
7117         (make_constraint_from_restrict): Make the tag global.
7118         (make_constraint_from_global_restrict): New function.
7119         (make_constraint_from_heapvar): Remove.
7120         (create_variable_info_for): Do not make restrict vars point
7121         to NONLOCAL.
7122         (intra_create_variable_infos): Likewise.
7123         (find_what_var_points_to): Remove vars_contains_restrict handling.
7124         (pt_solution_set): Adjust.
7125         (pt_solution_ior_into): Likewise.
7126         (pt_solutions_same_restrict_base): Remove.
7127         (compute_points_to_sets): Do not test is_restrict_var.
7128         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
7129         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
7130
7131 2011-10-18  Tom de Vries  <tom@codesourcery.com>
7132
7133         PR tree-optimization/50672
7134         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
7135         factored out of ...
7136         (mark_virtual_phi_result_for_renaming): Use
7137         mark_virtual_operand_for_renaming.
7138         * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
7139         * tree-ssa-tail-merge.c (release_last_vdef): New function.
7140         (purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
7141         deleted basic block.
7142         (tail_merge_optimize): Add argument to call to purge_bbs.
7143
7144 2011-10-18  Richard Guenther  <rguenther@suse.de>
7145
7146         PR middle-end/50716
7147         * expr.c (get_object_or_type_alignment): New function.
7148         (expand_assignment): Use it.
7149         (expand_expr_real_1): Likewise.
7150
7151 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
7152
7153         PR bootstrap/50760
7154         * input.c (dump_line_table_statistics): Use long, not size_t.
7155
7156 2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
7157
7158         * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
7159
7160 2011-10-17  Simon Baldwin  <simonb@google.com>
7161             Ian Lance Taylor  <iant@google.com>
7162
7163         * configure.ac: Add --with-native-system-header-dir.  Set and
7164         substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
7165         when setting target_header_dir.
7166         * config.gcc: Always set native_system_header_dir.
7167         (*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
7168         (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
7169         use i386/t-djgpp.
7170         (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
7171         native_system_header_dir.
7172         (spu-*-elf*): Set native_system_header_dir.
7173         * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
7174         @NATIVE_SYSTEM_HEADER_DIR@.
7175         (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
7176         * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
7177         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
7178         STANDARD_INCLUDE_COMPONENT.
7179         (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
7180         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
7181         * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
7182         STANDARD_INCLUDE_COMPONENT.
7183         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
7184         * config/i386/t-mingw-w32: Likewise.
7185         * config/i386/t-mingw-w64: Likewise.
7186         * config/spu/t-spu-elf: Likewise.
7187         * config/i386/t-djgpp: Remove.
7188         * config/t-gnu: Remove.
7189         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
7190         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
7191         STANDARD_INCLUDE_COMPONENT.
7192         * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
7193         * config/spu/spu-elf.h: Likewise.
7194         * config/vms/xm-vms.h: Likewise.
7195         * config/gnu.h: Likewise.
7196         * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
7197         and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
7198         NATIVE_SYSTME_HEADER_COMPONENT.
7199         * doc/install.texi (Configuration): Document
7200         --with-native-system-header-dir.  Mention it in the documentation
7201         for --with-sysroot and --with-build-sysroot.
7202         * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
7203         STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
7204         NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
7205         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
7206         * doc/fragments.texi (Target Fragment): Don't document
7207         NATIVE_SYSTEM_HEADER_DIR.
7208         * configure, doc/tm.texi: Rebuild.
7209
7210 2011-10-17  Richard Henderson  <rth@redhat.com>
7211
7212         * config/sparc/sparc.md: Use register_or_zero_operand where rJ
7213         is the constraint.
7214
7215         * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
7216         patterns.
7217         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
7218         * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
7219
7220 2011-10-17  David S. Miller  <davem@davemloft.net>
7221
7222         * config/sparc/sparc-modes.def: Add single entry vector modes for
7223         DImode and SImode.
7224         * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
7225         mode iterators.
7226         (mov<V32:mode>): Revert back to plain SFmode pattern.
7227         (*movsf_insn): Likewise.
7228         (mov<V64:mode>): Revert back to plain DFmode pattern.
7229         (*movdf_insn_sp32): Likewise.
7230         (*movdf_insn_sp32_v9): Likewise.
7231         (*movdf_insn_sp64): Likewise.
7232         (V64 mode splitters) Likewise.
7233         (addsi3): Remove VIS alternatives.
7234         (subsi3): Likewise.
7235         (and<V64I:mode>3): Revert to DImode only pattern.
7236         (and<V64I:mode>3_sp32): Likewise.
7237         (*and<V64I:mode>3_sp64): Likewise.
7238         (and<V32I:mode>3): Likewise.
7239         (*and_not_<V64I:mode>_sp32): Likewise.
7240         (*and_not_<V64I:mode>_sp64): Likewise.
7241         (*and_not_<V32I:mode>): Likewise.
7242         (ior<V64I:mode>3): Likewise.
7243         (*ior<V64I:mode>3_sp32): Likewise.
7244         (*ior<V64I:mode>3_sp64): Likewise.
7245         (ior<V32I:mode>3): Likewise.
7246         (*or_not_<V64I:mode>_sp32): Likewise.
7247         (*or_not_<V64I:mode>_sp64): Likewise.
7248         (*or_not_<V32I:mode>): Likewise.
7249         (xor<V64I:mode>3): Likewise.
7250         (*xor<V64I:mode>3_sp32): Likewise.
7251         (*xor<V64I:mode>3_sp64): Likewise.
7252         (xor<V32I:mode>3): Likewise.
7253         (V64I mode splitters): Likewise.
7254         (*xor_not_<V64I:mode>_sp32): Likewise.
7255         (*xor_not_<V64I:mode>_sp64): Likewise.
7256         (*xor_not_<V32I:mode>): Likewise.
7257         (one_cmpl<V64I:mode>2): Likewise.
7258         (*one_cmpl<V64I:mode>2_sp32): Likewise.
7259         (*one_cmpl<V64I:mode>2_sp64): Likewise.
7260         (one_cmpl<V32I:mode>2): Likewise.
7261         (VM32, VM64, VMALL): New mode iterators.
7262         (vbits, vconstr, vfptype): New mode attributes.
7263         (mov<VMALL:mode>): New expander.
7264         (*mov<VM32:mode>_insn): New insn.
7265         (*mov<VM64:mode>_insn_sp64): New insn.
7266         (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
7267         specifically for the register to memory case.
7268         (vec_init<mode>): New expander.
7269         (VADDSUB): New mode iterator.
7270         (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
7271         with...
7272         (<plusminus_insn><mode>3): New consolidated pattern.
7273         (VL): New mode iterator for logical operations.
7274         (vlsuf): New more attribute.
7275         (vlop): New code iterator.
7276         (vlinsn, vlninsn): New code attributes.
7277         (<code><mode>3): New insn to non-negated vector logical ops.
7278         (*not_<code><mode>3): Likewise for negated variants.
7279         (*nand<mode>_vis): New insn.
7280         (vlnotop): New code iterator.
7281         (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
7282         (one_cmpl<mode>2): New insn.
7283         (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
7284         (bshuffle<VM64:mode>_vis): Likewise.
7285         (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
7286         (fp<plusminus_insn>64_vis): Use V1DI mode.
7287         (VASS mode iterator): Use V1SI not SI mode.
7288         * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
7289         single-entry vector mode changes.
7290         (sparc_expand_builtin): Likewise.
7291         (sparc_expand_vector_init): New function.
7292         * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
7293
7294 2011-10-17  Kai Tietz  <ktietz@redhat.com>
7295
7296         * fold-const.c (simple_operand_p_2): New function.
7297         (fold_truthop): Rename to
7298         (fold_truth_andor_1): function name.
7299         Additionally remove branching creation for logical and/or.
7300         (fold_truth_andor): Handle branching creation for logical and/or here.
7301
7302 2011-10-17  Andi Kleen  <ak@linux.intel.com>
7303
7304         * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
7305
7306 2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
7307
7308         * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
7309         * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
7310         (adjust_len): Add alternative "call".
7311         (isa, enabled): New insn attributes.
7312         (length): Use match_test with AVR_HAVE_JMP_CALL instead of
7313         mcu_mega attribute.
7314         (*sbrx_branch<mode>): Ditto.
7315         (*sbrx_and_branch<mode>): Ditto.
7316         (*sbix_branch): Ditto.
7317         (*sbix_branch_bit7): Ditto.
7318         (*sbix_branch_tmp): Ditto.
7319         (*sbix_branch_tmp_bit7): Ditto.
7320         (jump): Ditto.
7321         (negsi2): Use attribute "isa" instead of assembler dialect.
7322         (extendhisi2): Ditto.
7323         (call_insn, call_value_insn): Set adjust_len attribute.
7324         (indirect_jump): Indent to coding rules.
7325         (call_prologue_saves): Use isa attribute instead of mcu_mega.
7326         (epilogue_restores): Ditto.  Fix setting of SP as described in the
7327         RTX pattern.
7328         (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
7329         and *indirect_jump_avr6.
7330         (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
7331         (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
7332         (*tablejump_rjmp, *tablejump_lib): Remove.
7333         * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
7334
7335 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
7336
7337         PR c++/50757
7338         * doc/invoke.texi ([Wnonnull]): Update.
7339
7340 2011-10-17  Richard Henderson  <rth@redhat.com>
7341
7342         PR 50746
7343         * optabs.c (expand_vec_perm_expr): Fix indexing error.
7344
7345 2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
7346
7347         * configure.ac: Display `yes' if the SystemTap header has been found.
7348         * configure: Regenerate.
7349
7350 2011-10-08  Andi Kleen  <ak@linux.intel.com>
7351
7352         PR other/50636
7353         * config.in, configure: Regenerate.
7354         * configure.ac (madvise): Add to AC_CHECK_FUNCS.
7355         * ggc-page.c (USING_MADVISE): Add.
7356         (page_entry): Add discarded field.
7357         (alloc_page): Check for discarded pages.
7358         (release_pages): Add USING_MADVISE branch.
7359
7360 2011-10-17  Richard Guenther  <rguenther@suse.de>
7361
7362         PR tree-optimization/50729
7363         * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
7364         (simplify_conversion_using_ranges): Properly test the
7365         intermediate result.
7366
7367 2011-10-15  Tom Tromey  <tromey@redhat.com>
7368             Dodji Seketeli  <dodji@redhat.com>
7369
7370         * ggc.h (ggc_round_alloc_size): Declare new public entry point.
7371         * ggc-none.c (ggc_round_alloc_size): New public stub function.
7372         * ggc-page.c (ggc_alloced_size_order_for_request): New static
7373         function.  Factorized from ggc_internal_alloc_stat.
7374         (ggc_round_alloc_size): New public function.  Uses
7375         ggc_alloced_size_order_for_request.
7376         (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
7377         * ggc-zone.c (ggc_round_alloc_size): New public function extracted
7378         from ggc_internal_alloc_zone_stat.
7379         (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
7380         * toplev.c (general_init): Initialize
7381         line_table->alloced_size_for_request.
7382
7383 2011-10-15  Tom Tromey  <tromey@redhat.com>
7384             Dodji Seketeli  <dodji@redhat.com>
7385
7386         * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
7387         (num_expanded_macros_counter, num_macro_tokens_counter): Declare
7388         new counters.
7389         (dump_line_table_statistics): Define new function.
7390         * input.h (dump_line_table_statistics): Declare new function.
7391         * toplev.c (dump_memory_report): Call dump_line_table_statistics.
7392
7393 2011-10-15  Tom Tromey  <tromey@redhat.com>
7394             Dodji Seketeli  <dodji@redhat.com>
7395
7396         * doc/cppopts.texi: Document -fdebug-cpp.
7397         * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
7398
7399 2011-10-15  Tom Tromey  <tromey@redhat.com>
7400             Dodji Seketeli  <dodji@redhat.com>
7401
7402         * gcc/diagnostic.h (diagnostic_report_current_module): Add a
7403         location parameter.
7404         * diagnostic.c (diagnostic_report_current_module): Add a location
7405         parameter to the function definition.  Use it instead of
7406         input_location.  Resolve the virtual location rather than just
7407         looking up its map and risking to touch a resulting macro map.
7408         (default_diagnostic_starter): Pass the relevant diagnostic
7409         location to diagnostic_report_current_module.
7410         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
7411         (virt_loc_aware_diagnostic_finalizer): Likewise.
7412         (diagnostic_report_current_function): Pass the
7413         relevant location to diagnostic_report_current_module.
7414         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
7415         new function.
7416         * toplev.c (general_init): By default, use the new
7417         virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
7418         * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
7419
7420 2011-10-15  Tom Tromey  <tromey@redhat.com>
7421             Dodji Seketeli  <dodji@redhat.com>
7422
7423         * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
7424         * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
7425         preprocessor related options.
7426
7427 2011-10-15  Tom Tromey  <tromey@redhat>
7428             Dodji Seketeli  <dodji@redhat.com>
7429
7430         * input.h (struct expanded_location): Move to libcpp/line-map.h.
7431         (LOCATION_COLUMN): New accessor
7432         (in_system_header_at): Use linemap_location_in_system_header_p.
7433         * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
7434         touching the internals of struct line_map.  Use the public API instead.
7435         (diagnostic_report_diagnostic): Don't use relational operator '<'
7436         on virtual locations.  Use linemap_location_before_p instead.
7437         * input.c (expand_location): Adjust to expand to the tokens'
7438         spelling location when macro location tracking is on.
7439
7440
7441 2011-10-08  Andi Kleen  <ak@linux.intel.com>
7442
7443         * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
7444
7445 2011-10-13  Andi Kleen  <ak@linux.intel.com>
7446
7447         * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
7448
7449 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
7450
7451         PR tree-optimization/50727
7452         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
7453         DEF_STMT to the list of statements to be replaced by the
7454         pattern statements.
7455
7456 2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7457
7458         PR rtl-optimization/50615
7459         * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
7460
7461 2011-10-16  Jakub Jelinek  <jakub@redhat.com>
7462
7463         PR tree-optimization/50596
7464         * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
7465         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
7466         vect_recog_bool_pattern.
7467         (check_bool_pattern, adjust_bool_pattern_cast,
7468         adjust_bool_pattern, vect_recog_bool_pattern): New functions.
7469
7470 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
7471
7472         * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
7473         treat the first load of the node as the first element in its
7474         interleaving chain.
7475         * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
7476         necessary and possible.
7477         (vect_build_slp_tree): Add new argument.  Allow load groups of any size
7478         in basic blocks.  Keep all the loads for further permutation check.
7479         Use the new argument to determine if there is a permutation.  Update
7480         the recursive calls.
7481         (vect_supported_load_permutation_p): Allow subchains of interleaving
7482         chains in basic block vectorization.
7483         (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
7484         Check load permutation based on the new parameter.
7485         (vect_schedule_slp_instance): Don't start from the first element in
7486         interleaving chain unless the loads are permuted.
7487
7488 2011-10-15  Jan Hubicka  <jh@suse.cz>
7489
7490         PR target/48668
7491         PR target/50689
7492         * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
7493         after function body.
7494
7495 2011-10-15  Richard Henderson  <rth@redhat.com>
7496
7497         * tree-vect-slp.c: Include langhooks.h.
7498         (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
7499         (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
7500         mask creation for VEC_PERM_EXPR.
7501         * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
7502         not the builtin.
7503         (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
7504         * Makefile.in (tree-vect-slp.o): Update dependency.
7505         * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
7506
7507 2011-10-15  Alan Modra  <amodra@gmail.com>
7508
7509         PR bootstrap/50738
7510         * ifcvt.c (dead_or_predicable): Revert accidental commit with
7511         HAVE_simple_return test.
7512
7513 2011-10-15  Alan Modra  <amodra@gmail.com>
7514
7515         * ifcvt.c (dead_or_predicable): Disable if-conversion when
7516         doing so is likely to kill a shrink-wrapping opportunity.
7517
7518         PR rtl-optimization/49941
7519         * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
7520
7521         * rtl.h (set_return_jump_label): Declare.
7522         * function.c (set_return_jump_label): New function, extracted..
7523         (thread_prologue_and_epilogue_insns): ..from here.  Use it in
7524         another instance to set return jump_label.
7525         * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
7526         * reorg.c (find_end_label): Likewise.
7527
7528 2011-10-14  David S. Miller  <davem@davemloft.net>
7529
7530         * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
7531         with a more complete cpp test.
7532         * config/sparc/linux64.h: Likewise.
7533         * config/sparc/linux.h: Likewise.
7534         * config/sparc/sparc.opt (sparc_debug): New target variable.
7535         (mdebug): New target option.
7536         * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
7537         TARGET_DEBUG_OPTIONS): New defines.
7538         * config/sparc/sparc.c (debug_target_flag_bits,
7539         debug_target_flags): New functions.
7540         (sparc_option_override): Add name strings back to cpu_table[].
7541         Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
7542         out the target flags before and after override processing as well
7543         as the selected cpu.  If MASK_V8PLUS, make sure that the selected
7544         cpu is at least v9.
7545
7546 2011-10-15  Oleg Endo  <oleg.endo@t-online.de>
7547
7548         PR target/49263
7549         * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
7550         * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
7551         * config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
7552         and instruction commutative.
7553         (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
7554         tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
7555         tstsi_t_zero_extract_subreg_xor_little,
7556         tstsi_t_zero_extract_subreg_xor_big): New insns.
7557         (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
7558         asm output.
7559         (*andsi_compact): Reorder alternatives so that K08 is considered first.
7560
7561 2011-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7562
7563         PR target/50354
7564         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
7565         processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
7566
7567 2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
7568
7569         * invoke.texi (AVR Options): Avoid \leq{}.
7570
7571 2011-10-14  Kai Tietz  <ktietz@redhat.com>
7572
7573         * gimplify.c (gimplify_expr): Take care that for bitwise-binary
7574         transformation the operands have compatible types.
7575
7576 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
7577
7578         * config/i386/sse.md (vec_widen_smult_hi_v8hi,
7579         vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
7580         vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
7581         mode iterator and any_extend code iterator.
7582         (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
7583         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
7584         also for TARGET_SSE4_1 using pmuldq insn.
7585         (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
7586         (sse2_sse4_1): New code attr.
7587         (udot_prodv4si): Macroize using any_extend code iterator.
7588         (<s>dot_prodv8si): New expander.
7589
7590 2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
7591
7592         * config/i386/i386.c (atom_cost): Changed cost for loading
7593         QImode using movzbl.
7594
7595 2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7596
7597         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
7598         change on October 11th, 2011.
7599
7600 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
7601
7602         * config/i386/sse.md (vec_interleave_high<mode>,
7603         vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
7604         * config/i386/i386.c (expand_vec_perm_interleave3): New function.
7605         (ix86_expand_vec_perm_builtin_1): Call it.
7606
7607 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
7608
7609         Fix thinko from r179765
7610         * config/avr/avr.c (avr_option_override): Don't override
7611         flag_omit_frame_pointer if not actually needed.
7612
7613 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
7614
7615         PR target/46278
7616         * doc/invoke.texi (AVR Options): Document -mstrict-X.
7617
7618         * config/avr/avr.opt (-mstrict-X): New option.
7619         (avr_strict_X): New variable reflecting -mstrict-X.
7620         * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
7621         outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
7622         (avr_legitimate_address_p): Pass outer_code to
7623         avr_reg_ok_for_addr_p and use that function in case PLUS.
7624         (avr_mode_code_base_reg_class): Depend on avr_strict_X.
7625         (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
7626         (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
7627
7628 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
7629
7630         * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
7631         of VI_128.
7632
7633         * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
7634         (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
7635         Use <sseinsnmode> instead of TI in mode attr.
7636
7637 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
7638
7639         * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
7640         * config/arm/linux-atomic.c: Change comment to point to 64bit version.
7641         (SYNC_LOCK_RELEASE): Instantiate 64bit version.
7642         * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
7643
7644 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
7645
7646         * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
7647         (arm_output_strex): Support strexd.
7648         (arm_output_it): New helper to output it in Thumb2 mode only.
7649         (arm_output_sync_loop): Support DI mode.  Change comment to
7650         not support const_int.
7651         (arm_expand_sync): Support DI mode.
7652         * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
7653         and LDREXD.
7654         * config/arm/iterators.md (NARROW): move from sync.md.
7655         (QHSD): New iterator for all current ARM integer modes.
7656         (SIDI): New iterator for SI and DI modes only.
7657         * config/arm/sync.md (sync_predtab): New mode_attr.
7658         (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
7659         (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
7660         (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
7661         (sync_nandsi): Fold into sync_nand<mode>.
7662         (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
7663         (sync_new_nandsi): Fold into sync_new_nand<mode>.
7664         (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
7665         (sync_old_nandsi): Fold into sync_old_nand<mode>.
7666         (sync_compare_and_swap<mode>): Support SI & DI.
7667         (sync_lock_test_and_set<mode>): Likewise.
7668         (sync_<sync_optab><mode>): Likewise.
7669         (sync_nand<mode>): Likewise.
7670         (sync_new_<sync_optab><mode>): Likewise.
7671         (sync_new_nand<mode>): Likewise.
7672         (sync_old_<sync_optab><mode>): Likewise.
7673         (sync_old_nand<mode>): Likewise.
7674         (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
7675         (arm_sync_lock_test_and_setsi): Likewise.
7676         (arm_sync_new_<sync_optab>si): Likewise.
7677         (arm_sync_new_nandsi): Likewise.
7678         (arm_sync_old_<sync_optab>si): Likewise.
7679         (arm_sync_old_nandsi): Likewise.
7680         (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
7681         (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
7682         (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
7683         (arm_sync_new_nand<mode> NARROW): Likewise.
7684         (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
7685         (arm_sync_old_nand<mode> NARROW): Likewise.
7686
7687 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
7688
7689         PR target/48126
7690         * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
7691
7692 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
7693
7694         * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
7695
7696 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
7697
7698         * doc/invoke.texi ([Wformat-zero-length]): Tidy.
7699
7700 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
7701
7702         * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
7703         on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
7704
7705 2011-10-14  Richard Guenther  <rguenther@suse.de>
7706
7707         PR tree-optimization/50723
7708         * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
7709
7710 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
7711
7712         * gengtype.c (files_rules): Added rules for objc/objc-map.h and
7713         objc/objc-map.c.
7714
7715 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
7716
7717         PR c++/17212
7718         * doc/invoke.texi ([Wformat-zero-length]): Update.
7719
7720 2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7721
7722         PR bootstrap/50699
7723         * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
7724         build for powerpc targets.  (darwin_patch_builtins): Only build for
7725         powerpc targets.
7726
7727 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
7728
7729         * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
7730         (avx_cvtdq2pd256_2): ... this.
7731         (sseunpackfltmode): New mode attr.
7732         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
7733         vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
7734         using VI2_AVX2 iterator.
7735         (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
7736
7737 2011-10-13  David S. Miller  <davem@davemloft.net>
7738
7739         * config/sparc/sparc.md (plusminus): New code iterator.
7740         (plusminus_insn): New code attr.
7741         (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
7742         using plusminus and plusminus_insn.
7743         (fpadd64_vis, fpsub64_vis): Likewise.
7744
7745 2011-10-13  Richard Henderson  <rth@redhat.com>
7746
7747         * doc/md.texi (vec_perm): Document fallback to byte permutation.
7748         * genopinit.c (optabs): Add vec_perm_const.
7749         * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
7750         Reject non-vector modes.  Allow fallback to byte permutation.
7751         (expand_vec_perm_expr_1): Split out from ...
7752         (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
7753         * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
7754         * tree-vect-generic.c (lower_vec_perm): Update for name change.
7755
7756 2011-10-13  Richard Henderson  <rth@redhat.com>
7757
7758         * config/rs6000/altivec.md (vec_permv16qi): New pattern.
7759
7760         * config/rs6000/spu.md (vec_permv16qi): New pattern.
7761
7762         * config/i386/i386.c (ix86_expand_vec_perm_const): New.
7763         * config/i386/i386-protos.h: Update.
7764         * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
7765         (vec_perm_const<VEC_PERM_CONST>): New expander.
7766
7767         * optabs.c (expand_vector_broadcast): New.
7768         (expand_binop): Expand scalar shifts of vectors to vector shifts
7769         of vectors, if the former isn't supported.
7770         * tree-vect-generic.c (expand_vector_operations_1): Don't do that
7771         here; always simplify to scalar shift of vector if possible.
7772
7773         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
7774         test for vector splat.
7775
7776 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
7777
7778         * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
7779
7780 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
7781             Richard Guenther  <rguenther@suse.de>
7782
7783         * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
7784         or complex vars even if their DECL_UID is in not_reg_needs bitmap.
7785
7786 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
7787
7788         * config/i386/sse.md (reduc_umin_v8hi): New pattern.
7789         * config/i386/i386.c (ix86_build_const_vector): Handle
7790         also V32QI, V16QI, V16HI and V8HI modes.
7791         (emit_reduc_half): New function.
7792         (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
7793         Use emit_reduc_half helper function.
7794
7795 2011-10-13  Lawrence Crowl  <crowl@google.com>
7796             Diego Novillo  <dnovillo@google.com>
7797
7798         * lto-streamer-in.c (input_struct_function_base): Factor out of ...
7799         (input_function): ... here.
7800         * lto-streamer-out.c (output_struct_function_base): Factor out of ...
7801         (output_function): ... here.
7802
7803 2011-10-13  Gabriel Charette  <gchare@google.com>
7804             Diego Novillo  <dnovillo@google.com>
7805
7806         * streamer-hooks.h (struct streamer_hooks): Add hooks
7807         input_location and output_location.
7808         * lto-streamer-in.c (lto_input_location): Use
7809         streamer_hooks.input_location, if set.
7810         * lto-streamer-out.c (lto_output_location): Use
7811         streamer_hooks.output_location, if set.
7812
7813 2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7814
7815         * doc/invoke.texi (SPARC options): Document -mfix-at697f.
7816         * config/sparc/sparc.opt (mfix-at697f): New option.
7817         * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
7818         (sparc_reorg): New function.
7819
7820 2011-10-13  Richard Guenther  <rguenther@suse.de>
7821
7822         PR tree-optimization/50712
7823         * ipa-split.c (split_function): Always re-gimplify parameters
7824         when they are not gimple vals before passing them.  Properly
7825         check for type compatibility.
7826
7827 2011-10-13  Tom de Vries  <tom@codesourcery.com>
7828
7829         * function.c (gimplify_parameters): Set number of arguments of call to
7830         BUILT_IN_ALLOCA_WITH_ALIGN to 2.
7831
7832 2011-10-13  Tom de Vries  <tom@codesourcery.com>
7833
7834         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
7835         for static const strings.
7836         * varasm.c (build_constant_desc): Generate the memory location of the
7837         constant using gen_const_mem.
7838
7839 2011-10-13  Richard Guenther  <rguenther@suse.de>
7840
7841         PR tree-optimization/50698
7842         * tree-data-ref.c (split_constant_offset_1): Also process
7843         offsets of &MEM.
7844
7845 2011-10-12  David S. Miller  <davem@davemloft.net>
7846
7847         * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
7848         (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
7849         unspecs.
7850         (fpmerge_vis): Remove inaccurate comment, represent using vec_select
7851         of a vec_concat.
7852         (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
7853         (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
7854         Reimplement as unspecs and remove inaccurate comments.
7855         (vis3_shift_patname): New code attr.
7856         (<vis3_shift_insn><vbits>_vis): Rename to
7857         "v<vis3_shift_patname><mode>3".
7858         (vis3_addsub_ss_patname): New code attr.
7859         (<vis3_addsub_ss_insn><vbits>_vis): Rename to
7860         "<vis3_addsub_ss_patname><mode>3".
7861         * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
7862         accommodate pattern name changes.
7863
7864         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
7865         to zero when assembler lacks support for such instructions.
7866         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
7867         and MASK_FMAF in defaults when assembler lacks necessary support.
7868
7869 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
7870
7871         * config/i386/sse.md (vec_unpacks_lo_<mode>,
7872         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
7873         vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
7874         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
7875         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
7876
7877         * config/i386/sse.md (vec_avx2): New mode_attr.
7878         (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
7879         (mul<mode>3): ... this.
7880
7881         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
7882         * config/i386/i386.c (ix86_expand_vec_perm): Handle
7883         V16QImode and V32QImode for TARGET_AVX2.
7884         (MAX_VECT_LEN): Increase to 32.
7885         (expand_vec_perm_blend): Add support for 32-byte integer
7886         vectors with TARGET_AVX2.
7887         (valid_perm_using_mode_p): New function.
7888         (expand_vec_perm_pshufb): Add support for 32-byte integer
7889         vectors with TARGET_AVX2.
7890         (expand_vec_perm_vpshufb2_vpermq): New function.
7891         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
7892         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
7893         with TARGET_AVX2.
7894         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
7895         and expand_vec_perm_vpshufb2_vpermq_even_odd.
7896         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
7897         32-byte integer vector modes.
7898         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
7899         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
7900         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
7901         4 new operands.
7902         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
7903         match_dup, instead add 4 new operands and require they have
7904         right cross-lane values.
7905         (avx2_permv4di): Change into define_expand.
7906         (avx2_permv4di_1): New instruction.
7907         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
7908         for "xm" constrained operand.
7909         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
7910
7911         * config/i386/sse.md (avx2_gathersi<mode>,
7912         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
7913         match_scratch, change memory_operand to register_operand,
7914         add (mem:BLK (scratch)) use.
7915         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
7916         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
7917         add earlyclobber to the output operand and match_scratch,
7918         add (mem:BLK (scratch)) use, change the other mem to match_operand.
7919         Use %p6 instead of %c6 in the pattern.
7920         * config/i386/i386.c (ix86_expand_builtin): Adjust for
7921         operand 2 being a Pmode register_operand instead of memory_operand.
7922
7923 2011-10-12  Kai Tietz  <ktietz@redhat.com>
7924
7925         * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
7926
7927 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
7928
7929         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
7930
7931 2011-10-12  Richard Guenther  <rguenther@suse.de>
7932
7933         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
7934         of the first store we visit in a basic-block.
7935         (get_continuation_for_phi): Search for a candidate VUSE that
7936         might dominates all others.  Do pairwise disambiguation against
7937         that candidate.
7938
7939 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
7940
7941         PR tree-optimization/50189
7942         * tree-vrp.c (extract_range_from_assert): Use the type of
7943         the variable, not the limit.
7944
7945 2011-10-12  Richard Guenther  <rguenther@suse.de>
7946
7947         PR tree-optimization/50700
7948         * tree-object-size.c (addr_object_size): Simplify and treat
7949         MEM_REF bases consistently.
7950
7951 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
7952
7953         * function.c (prepare_shrink_wrap, bb_active_p): New function.
7954         (thread_prologue_and_epilogue_insns): Use bb_active_p.  Call
7955         prepare_shrink_wrap, then recompute bb_active_p for the last block.
7956
7957 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
7958
7959         PR c/50565
7960         * convert.c (convert_to_integer): Do not narrow operands of
7961         pointer subtraction.
7962
7963 2011-10-12  Nick Clifton  <nickc@redhat.com>
7964
7965         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
7966         emit a .eabi_attribute assembler directive, possibly with a
7967         comment attached.
7968         * config/arm/arm.c (arm_file_start): Use the new macro.
7969         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
7970
7971 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
7972
7973         PR target/49939
7974         * config/avr/avr.md (*movqi): Rename to movqi_insn.
7975         (*call_insn): Rename to call_insn.
7976         (*call_value_insn): Rename to call_value_insn.
7977         * config/avr/avr.c (avr_2word_insn_p): New static function.
7978         (jump_over_one_insn_p): Use it.
7979
7980 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
7981
7982         * expr.h (copy_blkmode_to_reg): Declare.
7983         * expr.c (copy_blkmode_to_reg): New function.
7984         (expand_assignment): Don't expand register RESULT_DECLs before
7985         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
7986         RESULT_DECL register.
7987         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
7988         * stmt.c (expand_return): Move BLKmode-to-register code into
7989         copy_blkmode_to_reg.
7990
7991 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
7992
7993         PR target/49965
7994         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
7995         (mov<F:mode>cc): Likewise.
7996
7997 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7998
7999         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
8000
8001 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8002
8003         * tree.h (built_in_decls): Delete old interface with two parallel
8004         arrays to hold standard builtin declarations, and replace it with
8005         a function based interface that can support creating builtins on
8006         the fly in the future.  Change all uses, and poison the old
8007         names.  Make sure 0 is not a legitimate builtin index.
8008         (implicit_built_in_decls): Ditto.
8009         (built_in_info): Ditto.
8010         (BUILTIN_VALID_P): Ditto.
8011         (builtin_decl_explicit): Ditto.
8012         (builtin_decl_implicit): Ditto.
8013         (set_builtin_decl): Ditto.
8014         (set_builtin_decl_implicit_p): Ditto.
8015         (builtin_decl_explicit_p): Ditto.
8016         (builtin_decl_implicit_p): Ditto.
8017         * tree-complex.c (expand_complex_libcall): Ditto.
8018         * tree-loop-distribution.c (generate_memset_zero): Ditto.
8019         * tree-ssa-strlen.c (get_string_length): Ditto.
8020         (handle_builtin_strcpy): Ditto.
8021         (handle_builtin_strcat): Ditto.
8022         * tree.c (iterative_hash_expr): Ditto.
8023         (local_define_builtin): Ditto.
8024         (build_common_builtin_nodes): Ditto.
8025         * builtins.c (built_in_decls): Ditto.
8026         (implicit_built_in_decls): Ditto.
8027         (built_in_info): Ditto
8028         (expand_builtin_classify_type): Ditto.
8029         (mathfn_built_in_1): Ditto.
8030         (expand_builtin_cexpi): Ditto.
8031         (expand_builtin_mempcpy_args): Ditto.
8032         (expand_builtin_stpcpy): Ditto.
8033         (gimplify_va_arg_expr): Ditto.
8034         (expand_builtin_sync_operation): Ditto.
8035         (build_builtin_expect_predicate): Ditto.
8036         (fold_builtin_memory_op): Ditto.
8037         (fold_builtin_strcpy): Ditto.
8038         (fold_builtin_stpcpy): Ditto.
8039         (fold_builtin_strncpy): Ditto.
8040         (fold_builtin_interclass_mathfn): Ditto.
8041         (fold_builtin_classify): Ditto.
8042         (fold_builtin_2): Ditto.
8043         (fold_builtin_strstr): Ditto.
8044         (fold_builtin_strrchr): Ditto.
8045         (fold_builtin_strpbrk): Ditto.
8046         (fold_builtin_strcat): Ditto.
8047         (fold_builtin_strncat): Ditto.
8048         (fold_builtin_strcspn): Ditto.
8049         (fold_builtin_fputs): Ditto.
8050         (fold_builtin_sprintf): Ditto.
8051         (fold_builtin_snprintf): Ditto.
8052         (expand_builtin_memory_chk): Ditto.
8053         (fold_builtin_memory_chk): Ditto.
8054         (fold_builtin_stxcpy_chk): Ditto.
8055         (fold_builtin_strncpy_chk): Ditto.
8056         (fold_builtin_strcat_chk): Ditto.
8057         (fold_builtin_strncat_chk): Ditto.
8058         (fold_builtin_sprintf_chk_1): Ditto.
8059         (fold_builtin_snprintf_chk_1): Ditto.
8060         (fold_builtin_printf): Ditto.
8061         (fold_builtin_fprintf): Ditto.
8062         (fold_call_stmt): Ditto.
8063         (set_builtin_user_assembler_name): Ditto.
8064         * tree-emutls.c (emutls_common_1): Ditto.
8065         * omp-low.c (scan_omp): Ditto.
8066         (lower_rec_input_clauses): Ditto.
8067         (lower_reduction_clauses): Ditto.
8068         (expand_parallel_call): Ditto.
8069         (expand_task_call): Ditto.
8070         (maybe_catch_exception): Ditto.
8071         (optimize_omp_library_calls): Ditto.
8072         (expand_omp_for_generic): Ditto.
8073         (expand_omp_for_static_nochunk): Ditto.
8074         (expand_omp_for_static_chunk): Ditto.
8075         (expand_omp_sections): Ditto.
8076         (expand_omp_atomic_fetch_op): Ditto.
8077         (expand_omp_atomic_pipeline): Ditto.
8078         (expand_omp_atomic_mutex): Ditto.
8079         (lower_omp_single_simple): Ditto.
8080         (lower_omp_single_copy): Ditto.
8081         (lower_omp_master): Ditto.
8082         (lower_omp_ordered): Ditto.
8083         (lower_omp_critical): Ditto.
8084         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
8085         * builtins.c (DEF_BUILTIN_STUB): Ditto.
8086         (BUILT_IN_NONE): Ditto.
8087         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
8088         * gimple-low.c (lower_function_body): Ditto.
8089         (lower_builtin_setjmp): Ditto.
8090         * c-decl.c (merge_decls): Ditto.
8091         * tree-eh.c (lower_resx): Ditto.
8092         (lower_resx): Ditto.
8093         (lower_eh_dispatch): Ditto.
8094         * function (gimplify_parameters): Ditto.
8095         * c-typeck.c (build_function_call_vec): Ditto.
8096         * gimplify.c (build_stack_save_restore): Ditto.
8097         (gimplify_vla_decl): Ditto.
8098         (gimplify_modify_expr_to_memcpy): Ditto.
8099         (gimplify_modify_expr_to_memset): Ditto.
8100         (gimplify_variable_sized_compare): Ditto.
8101         (gimplify_function_tree): Ditto.
8102         * calls.c (emit_call_1): Ditto.
8103         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
8104         * tree-nested.c (convert_nl_goto_reference): Ditto.
8105         (convert_tramp_reference_op): Ditto.
8106         (finalize_nesting_tree_1): Ditto.
8107         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
8108         (tree_ssa_prefetch_arrays): Ditto.
8109         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
8110         * system.h (built_in_decls): Ditto.
8111         (implicit_built_in_decls): Ditto.
8112         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
8113         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
8114         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
8115         (ix86_veclibabi_svml): Ditto.
8116         (ix86_veclibabi_acml): Ditto.
8117         * config/vms/vms.c (vms_patch_builtins): Ditto.
8118         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
8119         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
8120         (rs6000_builtin_vectorized_libmass): Ditto.
8121         (rs6000_init_builtins): Ditto.
8122         * config/darwin.c (darwin_override_options): Ditto.
8123         (darwin_patch_builtin): Ditto.
8124         (darwin_rename_builtins): Ditto.
8125         * config/pa/pa.c (pa_init_builtins): Ditto.
8126
8127 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8128
8129         * tree.h (copy_ref_info): Expose existing function.
8130         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
8131         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
8132
8133 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
8134
8135         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
8136         prototype.
8137         (avr_regno_mode_code_ok_for_base_p): New prototype.
8138         * config/avr/avr.h (BASE_REG_CLASS): Remove.
8139         (REGNO_OK_FOR_BASE_P): Remove.
8140         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
8141         (REG_OK_FOR_BASE_STRICT_P): Remove.
8142         (MODE_CODE_BASE_REG_CLASS): New define.
8143         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
8144         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
8145         (avr_regno_mode_code_ok_for_base_p): New function.
8146         (avr_reg_ok_for_addr_p): New static function.
8147         (avr_legitimate_address_p): Use it.  Beautify.
8148
8149 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
8150
8151         PR target/50447
8152         * config/avr/avr.md (cc): Add out_plus attribute alternative.
8153         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
8154         avr_out_plus for all CONST_INT addends.
8155         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
8156         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
8157         CC_OUT_PLUS.
8158         (avr_out_plus_1): Change prototype and report effect on cc0.
8159         (avr_out_plus): Ditto.
8160         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
8161
8162 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
8163
8164         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
8165         the extra break.
8166
8167 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
8168
8169         * doc/invoke.texi: Document new warning.
8170         * common.opt (Wvector-operation-performance): Define new warning.
8171         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
8172         vector operation.
8173         (exapnd_vector_parallel): Warn about expanded vector operation.
8174         (lower_vec_shuffle): Warn about expanded vector operation.
8175         * c-typeck.c (c_build_vec_perm_expr): Store correct location
8176         when creating VEC_PERM_EXPR.
8177
8178 2011-10-11  Richard Guenther  <rguenther@suse.de>
8179
8180         PR tree-optimization/50204
8181         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
8182         two argument handling from ...
8183         (get_continuation_for_phi): ... here.  Handle arbitrary number
8184         of PHI args.
8185
8186 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
8187
8188         * modulo-sched.c: Fix comment typo.  Mention the possibility
8189         of using scheduling windows of II+1 cycles.
8190
8191 2011-10-11  Tristan Gingold  <gingold@adacore.com>
8192
8193         * doc/invoke.texi (C Dialect Options): Document
8194         -fallow-parameterless-variadic-functions.
8195         * c-parser.c (c_parser_parms_list_declarator): Handle it.
8196
8197 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8198
8199         * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
8200         to 0 if frame pointer is needed for unwinding.
8201
8202 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
8203
8204         PR bootstrap/50665
8205         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
8206         optab_index to enum direct_optab_index.
8207         (vec_perm_optab): Update.
8208
8209 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
8210
8211         * config/cris/cris.c (cris_preferred_reload_class): New function.
8212         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8213         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
8214
8215 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8216
8217         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
8218         !AVR_HAVE_JMP_CALL.
8219         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
8220         (*tablejump_enh, *tablejump): Remove insns.
8221         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
8222         EIJMP for indirect jump.  Use LPM Z+ where available.
8223
8224 2011-10-10  Richard Henderson  <rth@redhat.com>
8225
8226         * doc/md.texi (vec_perm_const): Fix typo in cindex.
8227
8228 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
8229             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
8230
8231         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
8232
8233 2011-10-10  Richard Guenther  <rguenther@suse.de>
8234
8235         PR middle-end/50389
8236         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
8237         mark symbols for renaming.  Append the VUSE to all statements
8238         that possibly can have one.
8239
8240 2011-10-10  Richard Guenther  <rguenther@suse.de>
8241
8242         * ipa-split.c (pass_split_functions): Add verification TODOs.
8243         (pass_feedback_split_functions): Likewise.
8244
8245 2011-10-10  Richard Guenther  <rguenther@suse.de>
8246
8247         PR middle-end/50195
8248         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
8249         only when optimizing.
8250
8251 2011-10-10  Nick Clifton  <nickc@redhat.com>
8252
8253         PR middle-end/49801
8254         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
8255         df_get_live_out instead of accessing the bitmaps directly.
8256         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
8257         df_live_add_problem and df_analyze.
8258
8259 2011-10-10  Michael Matz  <matz@suse.de>
8260
8261         PR middle-end/50638
8262         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
8263
8264 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8265
8266         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
8267         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
8268         (node_sched_params): Remove first_reg_move and nreg_moves.
8269         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
8270         (update_node_sched_params): Move up file.
8271         (print_node_sched_params): Print the stage.  Don't dump info related
8272         to first_reg_move and nreg_moves.
8273         (set_columns_for_row): New function.
8274         (set_columns_for_ps): Move up file and use set_columns_for_row.
8275         (schedule_reg_move): New function.
8276         (schedule_reg_moves): Call extend_node_sched_params and
8277         schedule_reg_move.  Extend size of uses bitmap.  Initialize
8278         num_consecutive_stages.  Return false if a move could not be
8279         scheduled.
8280         (apply_reg_moves): Don't emit moves here.
8281         (permute_partial_schedule): Handle register moves.
8282         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
8283         to the same stage-count test as ddg nodes.
8284         (generate_prolog_epilog): Update calls accordingly.
8285         (sms_schedule): Allow move-scheduling to add a new first stage.
8286
8287 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8288
8289         * modulo-sched.c (ps_insn): Adjust comment.
8290         (ps_reg_move_info): New structure.
8291         (partial_schedule): Add reg_moves field.
8292         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
8293         (node_sched_params): Turn first_reg_move into an identifier.
8294         (ps_reg_move): New function.
8295         (ps_rtl_insn): Cope with register moves.
8296         (ps_first_note): Adjust comment and assert that the instruction
8297         isn't a register move.
8298         (node_sched_params): Replace with...
8299         (node_sched_param_vec): ...this vector.
8300         (set_node_sched_params): Adjust accordingly.
8301         (print_node_sched_params): Take a partial schedule instead of a ddg.
8302         Use ps_rtl_insn and ps_reg_move.
8303         (generate_reg_moves): Rename to...
8304         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
8305         move in the partial schedule, but don't emit it here.  Don't perform
8306         register substitutions here either.
8307         (apply_reg_moves): New function.
8308         (duplicate_insns_of_cycles): Use register indices directly,
8309         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
8310         (sms_schedule): Call schedule_reg_moves before committing to
8311         a partial schedule.  Try the next ii if the schedule fails.
8312         Use apply_reg_moves instead of generate_reg_moves.  Adjust
8313         call to print_node_sched_params.  Free node_sched_param_vec
8314         instead of node_sched_params.
8315         (create_partial_schedule): Initialize reg_moves.
8316         (free_partial_schedule): Free reg_moves.
8317
8318 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8319
8320         * modulo-sched.c (ps_insn): Replace node field with an identifier.
8321         (SCHED_ASAP): Replace with..
8322         (NODE_ASAP): ...this macro.
8323         (SCHED_PARAMS): New macro.
8324         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
8325         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
8326         (node_sched_params): Remove asap.
8327         (ps_rtl_insn, ps_first_note): New functions.
8328         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
8329         asap values.
8330         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
8331         (generate_reg_moves): Pass ids to the SCHED_* macros.
8332         (update_node_sched_params): Take a ps insn identifier rather than
8333         a node as parameter.  Use ps_rtl_insn.
8334         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
8335         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
8336         (optimize_sc): Update for above field and SCHED_* macro changes.
8337         Update calls to try_scheduling_node_in_cycle and
8338         update_node_sched_params.
8339         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
8340         macro changes.  Use ps_rtl_insn and ps_first_note.
8341         (sms_schedule): Pass ids to the SCHED_* macros.
8342         (get_sched_window): Adjust for above field and SCHED_* macro changes.
8343         Use NODE_ASAP instead of SCHED_ASAP.
8344         (try_scheduling_node_in_cycle): Remove node parameter.  Update
8345         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_* macros.
8346         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
8347         (ps_insert_empty_row): Adjust for above field changes.
8348         (compute_split_row): Use ids rather than nodes.
8349         (verify_partial_schedule): Adjust for above field changes.
8350         (print_partial_schedule): Use ps_rtl_insn.
8351         (create_ps_insn): Take an id rather than a node.
8352         (ps_insn_find_column): Adjust for above field changes.
8353         Use ps_rtl_insn.
8354         (ps_insn_advance_column): Adjust for above field changes.
8355         (add_node_to_ps): Remove node parameter.  Update call to
8356         create_ps_insn.
8357         (ps_has_conflicts): Use ps_rtl_insn.
8358         (ps_add_node_check_conflicts): Replace node parameter than an id.
8359
8360 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8361
8362         * modulo-sched.c (undo_replace_buff_elem): Delete.
8363         (generate_reg_moves): Don't build and return an undo list.
8364         (free_undo_replace_buff): Delete.
8365         (sms_schedule): Adjust call to generate_reg_moves.
8366         Don't call free_undo_replace_buff.
8367
8368 2011-10-10  Matthias Klose <doko@ubuntu.com>
8369
8370         * common/config/m32c: Remove empty directory.
8371
8372 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8373
8374         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
8375
8376 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8377
8378         PR target/50652
8379         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
8380         atmega164a to 0x100.
8381
8382 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8383
8384         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
8385         the replacement if the conversion to the LHS type is not useless.
8386
8387 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
8388
8389         PR tree-optimization/50635
8390         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
8391         DEF_STMT to the list of statements to be replaced by the
8392         pattern statements.
8393         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
8394
8395 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
8396
8397         * system.h: Commit forgotten hunk in previous patch.
8398         (OUTPUT_ADDR_CONST_EXTRA): Poison.
8399
8400 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
8401
8402         PR libobjc/50428
8403         * doc/objc.texi (Garbage Collection): Updated example to protect
8404         +initialize against execution in subclasses.
8405
8406 2011-10-07  Richard Henderson  <rth@redhat.com>
8407
8408         * doc/extend.texi (__builtin_shuffle): Improve the description to
8409         include the modulus of the selector.  Mention OpenCL.
8410         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
8411
8412         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
8413         * genopinit.c (optabs): Rename vshuffle to vec_perm.
8414         * c-typeck.c (c_build_vec_perm_expr): Rename from
8415         c_build_vec_shuffle_expr.  Update for name changes.
8416         * optabs.c (expand_vec_perm_expr_p): Rename from
8417         expand_vec_shuffle_expr_p.
8418         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
8419         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
8420         (vec_perm_optab): Rename from vshuffle_optab.
8421         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
8422         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
8423         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
8424
8425         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
8426         ix86_expand_vshuffle.
8427         * config/i386/i386-protos.h: Update.
8428         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
8429         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
8430
8431 2011-10-07  Richard Henderson  <rth@redhat.com>
8432
8433         * config/i386/predicates.md (avx2_pblendw_operand): New.
8434         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
8435         (avx2_pblendw, *avx2_pblendw): New expander and insn.
8436
8437 2011-10-07  Richard Henderson  <rth@redhat.com>
8438
8439         * config/i386/i386.c (bdesc_args): Update code for
8440         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
8441         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
8442         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
8443         * config/i386/sse.md (mode iterator V16): Add V2TI.
8444         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
8445         (mode attr ssse3_avx2): Add V2TI.
8446         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
8447
8448 2011-10-07  David S. Miller  <davem@davemloft.net>
8449
8450         PR 50655
8451         * configure.ac: Add .register directives to VIS3 test.
8452         * configure: Regenerate.
8453
8454 2011-10-07  Richard Henderson  <rth@redhat.com>
8455
8456         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
8457
8458 2011-10-07  Richard Henderson  <rth@redhat.com>
8459
8460         PR 49752
8461         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
8462
8463 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
8464
8465         * config/arm/predicates.md (shift_amount_operand): Remove constant
8466         range check.
8467         (shift_operator): Check range of constants for all shift operators.
8468
8469 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8470
8471         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
8472         Load GOT pointer for non-pic builds.
8473         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
8474         (s390_emit_call): Likewise.
8475
8476 2011-10-07  Tom de Vries  <tom@codesourcery.com>
8477
8478         PR middle-end/50527
8479         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
8480         BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
8481         throw.
8482         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
8483         arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
8484         (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
8485         (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
8486         * tree-ssa-ccp.c (evaluate_stmt): Set align for
8487         BUILT_IN_ALLOCA_WITH_ALIGN.
8488         (fold_builtin_alloca_for_var): Rename to ...
8489         (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
8490         BUILT_IN_ALLOCA_WITH_ALIGN argument.
8491         (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
8492         fold_builtin_alloca_with_align.
8493         (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
8494         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
8495         DEF_BUILTIN_STUB.
8496         * ipa-pure-const.c (special_builtin_state): Handle
8497         BUILT_IN_ALLOCA_WITH_ALIGN.
8498         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
8499         (call_may_clobber_ref_p_1): Same.
8500         * function.c (gimplify_parameters): Lower vla to
8501         BUILT_IN_ALLOCA_WITH_ALIGN.
8502         * gimplify.c (gimplify_vla_decl): Same.
8503         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
8504         * tree-mudflap.c (mf_xform_statements): Same.
8505         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
8506         (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
8507         * varasm.c (incorporeal_function_p): Same.
8508         * tree-object-size.c (alloc_object_size): Same.
8509         * gimple.c (gimple_build_call_from_tree): Same.
8510
8511 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
8512
8513         * function.c (frame_required_for_rtx): Remove function.
8514         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
8515         changed.  Compute a set of mentioned registers and compare against
8516         the new arg rather than calling frame_required_for_rtx.
8517         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
8518         reg set.  Convert the unconverted_simple_returns mechanism to store
8519         jump insns rather than their basic blocks.  Also check the
8520         orig_entry_edge destination for new blocks.
8521
8522 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
8523
8524         PR tree-optimization/50650
8525         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
8526         call vect_is_simple_cond here, instead fail if cond_expr isn't
8527         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
8528         for cond_expr's first operand.
8529         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
8530         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
8531
8532 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8533
8534         * config/s390/s390.md (DWH, dwh): New mode macros.
8535         ("umulsidi3"): Extend to support "umulditi3" as well.
8536
8537 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
8538             H.J. Lu  <hongjiu.lu@intel.com>
8539
8540         PR target/50603
8541         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
8542         integer PLUS RTX to a register to improve address combine.
8543
8544 2011-10-06  Richard Henderson  <rth@redhat.com>
8545
8546         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
8547         parameter; use it to decide whether to merge two notes.
8548         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
8549         for the deallocation case as well.
8550
8551 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
8552
8553         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
8554         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
8555         * doc/tm.texi: Regenerate.
8556         * target.def (output_addr_const_extra): Use
8557         hook_bool_FILEptr_rtx_false.
8558         * targhooks.c (default_asm_output_addr_const_extra): Remove.
8559         * targhooks.h (default_asm_output_addr_const_extra): Remove.
8560         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
8561         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
8562
8563 2011-10-06  David S. Miller  <davem@davemloft.net>
8564
8565         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
8566         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
8567         SI mode 64-bit code gen case explicitly zero-extend and truncate.
8568         (*popcount<mode>_sp64): Split up into...
8569         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
8570         SImode case use truncate.
8571         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
8572         subtract so the compiler can optimize it.
8573         (SIDI): Remove unused mode iterator.
8574
8575 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
8576
8577         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
8578         on the orig_entry_edge. Don't account for it in prologue_clobbered.
8579
8580 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
8581
8582         PR tree-optimization/50596
8583         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
8584         (NUM_PATTERNS): Change to 6.
8585         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
8586         function.
8587         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
8588         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
8589         if it already has one, and don't set STMT_VINFO_VECTYPE in it
8590         if it is already set.
8591         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
8592         COND_EXPR in pattern stmts.
8593         (vect_is_simple_cond): No longer static.
8594
8595 2001-10-06  Richard Henderson  <rth@redhat.com>
8596
8597         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
8598         * config/i386/sse.md (sseshuffint): Remove.
8599         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
8600         (VSHUFFLE_AVX2): New mode iterator.
8601         (vshuffle<mode>): Use it.
8602         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
8603
8604         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
8605         for vector_all_ones_operand.
8606         (ix86_expand_int_vcond): Distinguish between comparison mode
8607         and data mode.  Allow them to differ.
8608         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
8609
8610 2001-10-06  Richard Henderson  <rth@redhat.com>
8611
8612         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
8613         mask operand.  Tidy the code.
8614
8615 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
8616
8617         * tree-vect-patterns.c (vect_pattern_recog_1): Use
8618         vect_recog_func_ptr typedef for the first argument.
8619         (vect_pattern_recog): Rename vect_recog_func_ptr variable
8620         to vect_recog_func, use vect_recog_func_ptr typedef for it.
8621
8622         PR tree-optimization/49279
8623         * tree-ssa-structalias.c (find_func_aliases): Don't handle
8624         CAST_RESTRICT.
8625         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
8626         restrict propagation.
8627         * tree-ssa.c (useless_type_conversion_p): Don't return false
8628         if TYPE_RESTRICT differs.
8629
8630 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
8631
8632         * function.c (thread_prologue_and_epilogue_insns): Build a vector
8633         of unconverted simple return blocks rather than trying to
8634         recompute them later based on bb_flags bitmap tests.
8635
8636 2011-10-06  Michael Matz  <matz@suse.de>
8637
8638         * tree-flow.h (get_var_ann): Don't declare.
8639         * tree-flow-inline.h (get_var_ann): Remove.
8640         (set_is_used): Use var_ann, not get_var_ann.
8641         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
8642         * tree-profile.c (gimple_gen_edge_profiler): Call
8643         find_referenced_var_in.
8644         (gimple_gen_interval_profiler): Ditto.
8645         (gimple_gen_pow2_profiler): Ditto.
8646         (gimple_gen_one_value_profiler): Ditto.
8647         (gimple_gen_average_profiler): Ditto.
8648         (gimple_gen_ior_profiler): Ditto.
8649         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
8650         (gimple_gen_ic_func_profiler): Call add_referenced_var.
8651         * tree-mudflap.c (execute_mudflap_function_ops): Call
8652         add_referenced_var.
8653
8654 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
8655
8656         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
8657         don't set SSA_NAME_DEF_STMT that has been already set by
8658         gimple_build_assign_with_ops.
8659         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
8660         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
8661         Likewise.
8662
8663         * tree.h (avoid_folding_inline_builtin): New prototype.
8664         * builtins.c (avoid_folding_inline_builtin): No longer static.
8665         * gimple-fold.c (gimple_fold_builtin): Give up if
8666         avoid_folding_inline_builtin returns true.
8667
8668 2011-10-06  Richard Guenther  <rguenther@suse.de>
8669
8670         * tree-vect-generic.c (vector_element): Look at previous
8671         generated results.
8672
8673 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
8674
8675         PR target/39950
8676         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
8677         __powerpc__, __PPC__, __unix__.
8678
8679 2011-10-06  Michael Matz  <matz@suse.de>
8680
8681         * i386/i386.opt (recip_mask, recip_mask_explicit,
8682         x_recip_mask_explicit): New variables and cl_target member.
8683         (mrecip=): New option.
8684         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
8685         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
8686         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
8687         TARGET_RECIP_VEC_SQRT): New tests.
8688         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
8689         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
8690         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
8691         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
8692         * i386/i386.c (ix86_option_override_internal): Set recip_mask
8693         for -mrecip and -mrecip=options.
8694         (ix86_function_specific_save): Save recip_mask_explicit.
8695         (ix86_function_specific_restore): Restore recip_mask_explicit.
8696
8697         * doc/invoke.texi (ix86 Options): Document the new option.
8698
8699 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
8700
8701         PR target/49049
8702         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
8703
8704 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
8705
8706         PR target/50305
8707         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
8708         output of a previous pass through legitimize_reload_address.
8709         Do not attempt to optimize addresses if the base register is
8710         equivalent to a constant.
8711
8712 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8713
8714         * function.c (thread_prologue_and_epilogue_insns): Mark
8715         last_bb_active as possibly unused.  It is unused for targets which
8716         do neither have "return" nor "simple_return" expanders.
8717
8718 2011-10-06  Richard Guenther  <rguenther@suse.de>
8719
8720         * fold-const.c (fold_ternary_loc): Also fold non-constant
8721         vector CONSTRUCTORs.  Make more efficient.
8722         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
8723         (cprop_into_stmt): Don't propagate into virtual operands.
8724         (optimize_stmt): Really dump original statement.
8725
8726 2011-10-06  Nick Clifton  <nickc@redhat.com>
8727
8728         * config/rx/rx.md (smin3): Revert previous delta.
8729
8730 2011-10-06  Richard Guenther  <rguenther@suse.de>
8731
8732         PR tree-optimization/38884
8733         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
8734         reads from aggregate SSA names.
8735
8736 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
8737
8738         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
8739         argument, truncate it at the beginning instead of allocating there
8740         and freeing at the end.
8741         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
8742         pass its address to vect_pattern_recog_1.
8743
8744 2011-10-05  David S. Miller  <davem@davemloft.net>
8745
8746         * config/sparc/sparc.opt (POPC): New option.
8747         * doc/invoke.texi: Document it.
8748         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
8749         default on Niagara-2 and later.
8750         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
8751         * config/sparc/sparc.md (SIDI): New mode iterator.
8752         (ffsdi2): Delete commented out pattern and comments.
8753         (popcount<mode>2, clz<mode>2): New expanders.
8754         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
8755         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
8756
8757 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
8758
8759         PR middle-end/50607
8760         * c-tree.h (c_expr_t): New typedef for struct c_expr.
8761         (C_EXPR_APPEND): New macro.
8762         * c-parser.c (c_parser_get_builtin_args): Preserve
8763         original_tree_code of c_expr structure.
8764         (c_parser_postfix_expression): Adjust to the new function.
8765
8766 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
8767
8768         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
8769         if profiling after the prologue.
8770
8771 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
8772
8773         PR tree-optimization/50613
8774         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
8775         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
8776         and if it is neither that not SSA_NAME, give up.
8777
8778 2011-10-05  Richard Henderson  <rth@redhat.com>
8779
8780         * tree-vect-generic.c (vector_element): Never fail.  Use
8781         build_zero_cst.  Tidy up type references.
8782         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
8783         code duplication.  Do update_stmt here ...
8784         (expand_vector_operations_1): ... not here.
8785
8786         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
8787         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
8788         duplication.  Handle V2DI without SSE4.1.
8789         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
8790         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
8791
8792 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
8793
8794         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
8795         of "found".  Simplify return value calculation.
8796         (distance_agu_use): Ditto.
8797
8798 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
8799
8800         PR bootstrap/50621
8801         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
8802         if the function was not shrink-wrapped.
8803         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
8804         to an insn.
8805         * function.c (thread_prologue_and_epilogue_insns): Make sure the
8806         shrink_wrapped flag is set even if there is no dump file.
8807
8808 2011-10-05  DJ Delorie  <dj@redhat.com>
8809             Nick Clifton  <nickc@redhat.com>
8810
8811         * config/rx/rx.opt (mpid): Define.
8812         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
8813         (MULTILIB_DIRNAMES): Add pid.
8814         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
8815         (rx_num_interrupt_regs): New variable.
8816         (rx_gp_base_regnum): New function.  Returns the number of the
8817         small data area register.
8818         (rx_pid_base_regnum): New function.  Returns the number of the pid
8819         base register.
8820         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
8821         (rx_pid_data_operand): New function.  Returns whether an object is
8822         in the position independent data area.
8823         (rx_legitimize_address): New function.  Puts undecided PID
8824         objects in the PID data area.
8825         (rx_is_legitimate_address): Add support for PID operands.
8826         (rx_print_operand_address): Likewise.
8827         (rx_print_operand): Likewise.
8828         (rx_maybe_pidify_operand): New function.  Determine if an operand
8829         is suitable for PID addressing.
8830         (rx_gen_move_template): Add PID support.
8831         (rx_conditional_register_usage): Likewise.
8832         (rx_option_override): Initialise rx_num_interrupt_regs.
8833         (rx_is_legitimate_constant): Add support for PID constants.
8834         (TARGET_LEGITIMIZE_ADDRESS): Define.
8835         * config/rx/constraints.md (Rpid): Define.
8836         (Rpda): Define.
8837         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
8838         (tablejump): Add PID support.
8839         (mov<>): Likewise.
8840         (mov<>_internal): Likewise.
8841         (addsi3): Convert to an expander.  Add PID support.
8842         (pid_addr): New pattern.
8843         * config/rx/rx.h (CPP_SPEC): Define.
8844         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
8845         (CASE_VECTOR_PC_RELATIVE): Define.
8846         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
8847         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
8848         * doc/invoke.texi (RX Options): Document -mpid command line option.
8849
8850 2011-10-05  Richard Guenther  <rguenther@suse.de>
8851
8852         PR tree-optimization/38885
8853         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
8854         from constants.
8855
8856 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
8857
8858         * doc/invoke.texi (-fshrink-wrap): Document.
8859         * opts.c (default_options_table): Add it.
8860         * common.opt (fshrink-wrap): Add.
8861         * function.c (emit_return_into_block): Remove useless declaration.
8862         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
8863         requires_stack_frame_p, gen_return_pattern): New static functions.
8864         (emit_return_into_block): New arg simple_p.  All callers changed.
8865         Use gen_return_pattern.
8866         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
8867         * config/i386/i386.md (return): Expand into a simple_return.
8868         (simple_return): New expander):
8869         (simple_return_internal, simple_return_internal_long,
8870         simple_return_pop_internal_long, simple_return_indirect_internal):
8871         Renamed from return_internal, return_internal_long,
8872         return_pop_internal_long and return_indirect_internal; changed to use
8873         simple_return.
8874         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
8875         simple returns.
8876         (ix86_pad_returns): Likewise.
8877         * function.h (struct rtl_data): Add member shrink_wrapped.
8878         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
8879         are not jumps or sibcalls can't be compared.
8880
8881 2011-10-05  Richard Guenther  <rguenther@suse.de>
8882
8883         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
8884         vector type.
8885         (simplify_unary_expression): Handle BIT_FIELD_REFs.
8886         (try_to_simplify): Handle BIT_FIELD_REFs.
8887
8888 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
8889
8890         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
8891         * config/avr/avr.c (avr_out_addto_sp): New function.
8892         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
8893         * config/avr/avr.md (adjust_len): Add "addto_sp".
8894         (*movhi_sp): Remove insn.
8895         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
8896
8897 2011-10-05  Richard Guenther  <rguenther@suse.de>
8898
8899         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
8900         with an embedded expression valueize and fold that as well.
8901         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
8902         results from gimple_fold_stmt_to_constant_1.
8903
8904 2011-10-05  Nick Clifton  <nickc@redhat.com>
8905
8906         * config/rx/rx.md (tablejump): Add missing label.
8907         (adddi3_internal): Mark operand 0 as early-clobbered.
8908         (smaxsi3): Revert previous delta.
8909         (adc_internal): Fix whitespace in generated asm.
8910         (adc_flags): Likewise.
8911
8912 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8913
8914         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
8915         with the new widening_optab_handler.
8916
8917 2011-10-05  Richard Guenther  <rguenther@suse.de>
8918
8919         PR tree-optimization/50609
8920         * gimple-fold.c (fold_array_ctor_reference): Also handle
8921         vector typed constructors.
8922         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
8923         for vector typed constructors.
8924
8925 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
8926
8927         * config/i386/i386.c (ix86_emit_binop): New static function.
8928         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
8929         instructions.
8930         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
8931
8932 2011-10-04  David S. Miller  <davem@davemloft.net>
8933
8934         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
8935         UNSPEC_XMUL): New unspecs.
8936         (muldi3_v8plus): Use output_v8plus_mult.
8937         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
8938         New VIS 3.0 combiner patterns.
8939         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
8940         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
8941         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
8942         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
8943         builtins patterns.
8944         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
8945         (output_v8plus_mult): New function.
8946         * config/sparc/sparc-protos.h: Declare it.
8947         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
8948         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
8949         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
8950         * doc/extend.texi: Document new builtins.
8951
8952 2011-10-04  Richard Henderson  <rth@redhat.com>
8953
8954         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
8955         Avoid save_expr unless two_arguments.
8956
8957 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
8958
8959         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
8960         * config/i386/mingw32.h (CPP_SPEC): Likewise.
8961
8962 2011-10-04  David S. Miller  <davem@davemloft.net>
8963
8964         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
8965         under Linux.
8966
8967 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
8968
8969         PR tree-optimization/50604
8970         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
8971         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
8972         last argument to memcpy has size_type_node type instead of ssizetype.
8973         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
8974         instead of TREE_TYPE (len) as type for newlen.
8975
8976         PR tree-optimization/50522
8977         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
8978         TYPE_RESTRICT.
8979         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
8980         unconditionally.
8981
8982         * fold-const.c (fold_unary_loc): Don't optimize
8983         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
8984         casting the inner pointer if it isn't TYPE_RESTRICT.
8985         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
8986         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
8987
8988 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
8989
8990         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
8991
8992 2011-10-04  Jan Hubicka  <jh@suse.cz>
8993
8994         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
8995         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
8996         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
8997         * lto-cgraph.c (order_base): New static var.
8998         (lto_output_node): Stream in order.
8999         (lto_output_varpool_node): Stream out order.
9000         (input_node): Stream in order.
9001         (input_varpool_node): Stream out order.
9002         (input_cgraph_1): Initialize order base; update call of
9003         lto_input_toplevel_asms.
9004
9005 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
9006
9007         PR target/50566
9008         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
9009         prototype.
9010         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
9011         from here...
9012         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
9013         function.  Log if avr_log.legitimize_reload_address.
9014
9015 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
9016
9017         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
9018
9019 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9020
9021         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
9022         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
9023
9024 2011-10-03  David S. Miller  <davem@davemloft.net>
9025
9026         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
9027         GSR_REG an input operand to UNSPEC instead of a parallel USE.
9028         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
9029         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
9030         Reference GSR_REG in DI mode, simplify convoluted expressions by using
9031         zero_extract.
9032         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
9033
9034 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
9035
9036         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
9037
9038 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
9039             Ian Lance Taylor  <iant@google.com>
9040
9041         * godump.c (go_output_typedef): Support printing enum values that
9042         don't fit in a signed HOST_WIDE_INT.
9043
9044 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
9045
9046         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
9047         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9048         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9049         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
9050
9051 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
9052
9053         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
9054         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9055         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9056         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
9057
9058 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
9059
9060         PR target/49967
9061         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
9062         (gcc_cv_ld_static_option): Ditto.
9063         (gcc_cv_ld_dynamic_option): Ditto.
9064         * configure: Regenerate.
9065
9066 2011-10-03  David S. Miller  <davem@davemloft.net>
9067
9068         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
9069         and 'si' patterns which describe the GSR changes explicitly in the
9070         RTL using zero_extract.
9071         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
9072
9073         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
9074         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
9075
9076 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
9077
9078         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
9079         if given expression can be expanded by the target.
9080         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
9081         using target vector instructions.
9082         * optabs.h: New optab vshuffle.
9083         (expand_vec_shuffle_expr_p): New prototype.
9084         (expand_vec_shuffle_expr): New prototype.
9085         (vshuffle_optab): New optab.
9086         * genopinit.c: Adjust to support vecshuffle.
9087         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
9088         * expr.c (expand_expr_real_2): Adjust.
9089         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
9090         recognizing the cases of two and three arguments.
9091         (convert_arguments) (build_binary_op)
9092         (scalar_to_vector) (build_array_ref): Spurious whitespace.
9093         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
9094         * tree.def: New tree code VEC_SHUFFLE_EXPR.
9095         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
9096         * tree-vect-generic.c (vector_element): New function. Returns an
9097         element of the vector at the given position.
9098         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
9099         by the backend or expand an expression piecewise.
9100         (expand_vector_operations_1): Adjusted.
9101         (gate_expand_vector_operations_noop): New gate function.
9102         * Makefile.in (tree-vect-generic.o): New include.
9103         * gimple.c (get_gimple_rhs_num_ops): Adjust.
9104         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
9105         * passes.c: Move veclower down.
9106         * tree-pretty-print.c (dump_generic_node): Recognize
9107         VEC_SHUFFLE_EXPR as valid expression.
9108         * c-parser.c (c_parser_get_builtin_args): Helper function for the
9109         builtins with variable number of arguments.
9110         (c_parser_postfix_expression): Use a new helper function for
9111         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
9112         * tree-ssa-operands: Adjust.
9113         * c-family/c-common.c: New __builtin_shuffle keyword.
9114         * c-family/c-common.h: New __builtin_shuffle keyword.
9115         * gcc/doc/extend.texi: Adjust.
9116
9117         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
9118         between the vector and the type of the mask when shuffling.
9119         (vecshuffle<mode>): New expansion.
9120         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
9121         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
9122         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
9123
9124 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
9125
9126         PR tree-optimization/50587
9127         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
9128         arg0 is not a SSA_NAME.
9129
9130 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
9131
9132         * ipa-inline-analysis.c (MAX_TIME): Update comment.
9133
9134 2011-10-02  Richard Henderson  <rth@redhat.com>
9135             David S. Miller  <davem@davemloft.net>
9136
9137         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
9138         conditional insn type setting, we always emit a shift.
9139         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
9140         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
9141         * config/sparc/predicates.md (const_one_operand): Delete.
9142
9143 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
9144
9145         * invoke.texi (SPARC Options): Refer to GNU/Linux.
9146
9147 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
9148
9149         * config/mips/mips.c (mips_frame_barrier): New function.
9150         (mips_expand_prologue): Call it after allocating stack space.
9151         (mips_deallocate_stack): New function.
9152         (mips_expand_epilogue): Call mips_frame_barrier and
9153         mips_deallocate_stack.
9154
9155 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
9156
9157         PR target/49696
9158         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
9159         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
9160         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
9161
9162 2011-10-02  Jan Hubicka  <jh@suse.cz>
9163
9164         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
9165
9166         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
9167         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
9168         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
9169         functions are reachable when address is taken.
9170         * tree-sra.c (modify_function): Free dominance info.
9171
9172 2011-10-02  Jan Hubicka  <jh@suse.cz>
9173
9174         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
9175
9176         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
9177         (reset_inline_summary): New function.
9178         (compute_inline_parameters, inline_node_removal_hook,
9179         inline_edge_removal_hook): Use it.
9180         (inline_free_summary): Reset holders correctly.
9181         (inline_generate_summary): Free summary before computing it.
9182
9183 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
9184
9185         PR preprocessor/36819
9186         * incpath.c (merge_include_chains): Call free_path on
9187         heads[QUOTE] and tails[QUOTE].
9188
9189 2011-10-02  Jan Hubicka  <jh@suse.cz>
9190
9191         PR lto/47247
9192         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
9193         when resolution is already availbale from plugin.
9194         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
9195         * cgraph.c (ld_plugin_symbol_resolution): Add
9196         prevailing_def_ironly_exp.
9197         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
9198         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
9199         externally visible.
9200         * varasm.c (resolution_to_local_definition_p): Add
9201         LDPR_PREVAILING_DEF_IRONLY_EXP.
9202         (resolution_local_p): Likewise.
9203
9204 2011-10-01  David S. Miller  <davem@davemloft.net>
9205
9206         * config/sparc/sparc.opt (VIS3): New option.
9207         * doc/invoke.texi: Document it.
9208         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
9209         not capable of such instructions.
9210         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
9211         to 0x300 when TARGET_VIS3.
9212         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
9213         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
9214         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
9215         (V64N8, VASS): New mode iterators.
9216         (vis3_shift, vis3_addsub_ss): New code iterators.
9217         (vbits, vconstr): New mode attributes.
9218         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
9219         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
9220         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
9221         fmean16_vis, fpadd64_vis, fpsub64_vis,
9222         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
9223         VIS 3.0 instruction patterns.
9224         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
9225         default when targetting capable cpus.  TARGET_VIS3 implies
9226         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
9227         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
9228         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
9229         is ignored.
9230         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
9231         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
9232         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
9233         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
9234         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
9235         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
9236         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
9237         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
9238         * doc/extend.texi: Document new VIS 3.0 builtins.
9239
9240 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
9241
9242         * ira-color.c (assign_hard_reg): Fix typo.
9243
9244 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
9245
9246         * doc/extend.texi: Add missing ','.
9247
9248 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
9249
9250         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
9251         Enable -fmodulo-sched at -O2 and above.
9252         * config/c6x/c6x.md (doloop_end): New expander.
9253         (mvilc, sploop, spkernel, loop_end): New patterns.
9254         (loop_end with memory destination splitter): New.
9255         * config/c6x/c6x.c: Include "hw-doloop.h".
9256         (enum unitreqs): New.
9257         (unit_req_table): New typedef.
9258         (unit_reqs): New static variable.
9259         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
9260         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
9261         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
9262         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
9263         (struct c6x_sched_context): New member last_scheduled_iter0.
9264         (init_sched_state): Initialize it.
9265         (c6x_variable_issue): Update it.
9266         (sploop_max_uid_iter0): New static variable.
9267         (c6x_sched_reorder_1): Be careful about issuing sploop.
9268         (c6x_reorg): Call c6x_hwlooops before the final schedule.
9269
9270 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
9271
9272         PR target/50566
9273         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
9274         * config/avr/avr.c (avr_address_cost): Use it.
9275         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
9276         (avr_log_vadump): Unknown %-codes finish printing.
9277
9278 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
9279
9280         PR inline-asm/50571
9281         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
9282         input constraints allow mem and not reg, pass true instead of
9283         false as second argument to maybe_fold_reference.
9284
9285         PR tree-optimization/46309
9286         * fold-const.c (make_range, merge_ranges): Remove prototypes.
9287         (make_range_step): New function.
9288         (make_range): Use it.
9289         * tree.h (make_range_step): New prototypes.
9290         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
9291         * tree-ssa-reassoc.c: Include diagnostic-core.h.
9292         (struct range_entry): New type.
9293         (init_range_entry, range_entry_cmp, update_range_test,
9294         optimize_range_tests): New functions.
9295         (reassociate_bb): Call optimize_range_tests.
9296
9297 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
9298             Richard Guenther  <rguenther@suse.de>
9299
9300         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
9301         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
9302         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
9303         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
9304         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
9305         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
9306
9307 2011-09-30  Jan Beulich  <jbeulich@suse.com>
9308
9309         * lto-cgraph.c (output_cgraph): Remove processing of
9310         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
9311         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
9312         lto_input_toplevel_asms() instead.
9313         * lto-section-in.c (lto_section_name): Add "asm" entry.
9314         * lto-streamer-in.c (lto_input_toplevel_asms): New.
9315         * lto-streamer-out.c (lto_output_toplevel_asms): New.
9316         * lto-streamer.h (LTO_minor_version): Bump.
9317         (enum lto_section_type): Add LTO_section_asm.
9318         (struct lto_asm_header): New.
9319         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
9320         * tree-streamer.h (streamer_write_string_cst): Declare.
9321         * tree-streamer-out.c (write_string_cst): Rename to
9322         streamer_write_string_cst and make global. Handle incoming string
9323         being NULL.
9324         (streamer_write_tree_header): Adjust call to renamed function.
9325
9326 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
9327
9328         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
9329         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
9330         modulo_last_stage): New static variables.
9331         (set_modulo_params, discard_delay_pairs_above): New functions.
9332         (struct delay_pair): New member stages.
9333         (htab_i2_traverse, htab_i1_traverse): New static functions.
9334         (record_delay_slot_pair): New arg stages.  All callers changed.
9335         Record it.
9336         (pair_delay): Take stages into account.
9337         (add_delay_dependencies): Don't do so for stage pairs.
9338         (struct sched_block_state): New member modulo_epilogue.
9339         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
9340         (unschedule_insns_until): Decrease modulo_insns_scheduled.
9341         Set HARD_DEP without using or.
9342         (resolve_dependencies): New static function.
9343         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
9344         If it is true, allow only insns with INSN_EXACT_TICK set.
9345         (schedule_block): Return bool, always true for normal scheduling,
9346         true or false depending on modulo scheduling success otherwise.
9347         Add bookkeeping for modulo scheduling, and call resolve_dependencies
9348         on everything left over after a modulo schedule.
9349         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
9350         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
9351         declarations.
9352         (set_modulo_params, discard_delay_pairs_above): Declare.
9353         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
9354         * doc/invoke.texi (--param): Document it.
9355
9356         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
9357         New arg modulo_scheduling.  All callers changed.  Move note handling
9358         code here from schedule_ebbs.
9359         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
9360         out of schedule_ebbs.
9361         (schedule_ebbs): Call them.  Remove note handling code moved to
9362         schedule_ebb.
9363         * sched-int.h (schedule_ebb, schedule_ebbs_init,
9364         schedule_ebbs_finish): Declare.
9365
9366 2011-09-30  Richard Guenther  <rguenther@suse.de>
9367
9368         PR middle-end/50574
9369         * tree-cfg.c (verify_gimple_comparison): Compare component
9370         mode sizes for vector comparisons.
9371
9372 2011-09-30  Revital Eres  <revital.eres@linaro.org>
9373
9374         * ddg.c (autoinc_var_is_used_p): New function.
9375         (create_ddg_dep_from_intra_loop_link,
9376         add_cross_iteration_register_deps): Call it.
9377         * ddg.h (autoinc_var_is_used_p): Declare.
9378         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
9379         (sms_schedule): Handle instructions with REG_INC.
9380
9381 2011-09-30  Revital Eres  <revital.eres@linaro.org>
9382
9383         * modulo-sched.c (generate_reg_moves): Skip instructions that
9384         do not set a register and verify no regmoves are created for
9385         !single_set instructions.
9386
9387 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
9388
9389         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
9390         insns.
9391
9392 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9393
9394         PR target/50099
9395         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
9396         (qhs_zextenddi_op): New.
9397         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
9398         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
9399         Distinguish between ARM and Thumb2 states.
9400
9401 2011-09-30  David S. Miller  <davem@davemloft.net>
9402
9403         * config/sparc/sparc.opt (VIS2): New option.
9404         * doc/invoke.texi: Document it.
9405         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
9406         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
9407         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
9408         (define_attr type): New insn type 'edgen'.
9409         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
9410         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
9411         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
9412         patterns.
9413         * niagara.md: Handle edgen.
9414         * niagara2.md: Likewise.
9415         * ultra1_2.md: Likewise.
9416         * ultra3.md: Likewise.
9417         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
9418         to 0x200 when TARGET_VIS2.
9419         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
9420         default when targetting capable cpus.  TARGET_VIS2 implies
9421         TARGET_VIS, clear and it when TARGET_FPU is disabled.
9422         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
9423         (sparc_expand_builtin): Fix predicate indexing when builtin returns
9424         void.
9425         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
9426         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
9427         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
9428         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
9429         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
9430         * doc/extend.texi: Document new VIS 2.0 builtins.
9431
9432 2011-09-29  Nick Clifton  <nickc@redhat.com>
9433             Bernd Schmidt  <bernds@codesourcery.com>
9434
9435         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
9436         * config/frv/frvend.c: Likewise.
9437         * config/frv/frv.c (frv_function_prologue): Move misplaced
9438         CALL_ARG_LOCATION notes back to their proper locations.
9439
9440 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
9441
9442         PR target/50566
9443         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
9444         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
9445         from avr_rtx_costs.
9446         (avr_legitimate_address_p): Use avr_edump to print log information
9447         filtered by avr_log.
9448         (extra_constraint_Q): Ditto.
9449         (avr_legitimize_address): Ditto.
9450         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
9451         (final_prescan_insn): Use avr_log.rtx_costs as filter.
9452
9453 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
9454
9455         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
9456         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
9457         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
9458         NEON vector and structure modes to be tied.
9459
9460 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9461
9462         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
9463         forward declaration.
9464         (remove_duplicate_close_phi): Detect and repair creation of
9465         duplicate close-phis for a containing loop.
9466
9467 2011-09-27  Andi Kleen  <ak@linux.intel.com>
9468
9469         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
9470         /dev/urandom.  Add getpid call.
9471         (compare_debug_dump_opt_spec_function): Drop getpid call.
9472
9473 2011-09-26  Andi Kleen  <ak@linux.intel.com>
9474
9475         * toplev.c (init_local_tick): Try reading random seed
9476         from /dev/urandom.
9477
9478 2011-09-26  Andi Kleen  <ak@linux.intel.com>
9479
9480         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
9481         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
9482         Handle numerical random seed.
9483         * lto-streamer.h (lto_file_decl_data): Change id to
9484         unsigned HOST_WIDE_INT.
9485         * toplev.c (random_seed): Add.
9486         (init_random_seed): Change for numerical random seed.
9487         (get_random_seed): Return as HOST_WIDE_INT.
9488         (set_random_seed): Crc32 existing string.
9489         * toplev.h (get_random_seed): Change to numercal return.
9490         * tree.c (get_file_function_name): Remove CRC. Handle
9491         numerical random seed.
9492
9493 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
9494
9495         PR target/50566
9496         * config.gcc (extra_objs): Add avr-log.o for $target in:
9497         avr-*-rtems*, avr-*-*.
9498         * config/avr/t-avr (avr-log.o): New rule to compile...
9499         * config/avr/avr-log.c: ...this new file.
9500         * config/avr/avr.opt (mlog=): New option.
9501         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
9502         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
9503         (avr_log_set_avr_log): New prototype.
9504         (avr_log_t): New typedef.
9505         (avr_log): New declaration.
9506         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
9507
9508 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
9509
9510         * expr.c (do_store_flag): Expand vector comparison by
9511         building an appropriate VEC_COND_EXPR.
9512         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
9513         (c_objc_common_truthvalue_conversion): Adjust.
9514         * tree-vect-generic.c (do_compare): Helper function.
9515         (expand_vector_comparison): Check if hardware supports
9516         vector comparison of the given type or expand vector piecewise.
9517         (expand_vector_operation): Treat comparison as binary
9518         operation of vector type.
9519         (expand_vector_operations_1): Adjust.
9520
9521 2011-09-29  Richard Guenther  <rguenther@suse.de>
9522
9523         * tree.c (build_opaque_vector_type): Make opaque vectors
9524         variant types of the corresponding non-opaque type.  Make
9525         sure to share opaque vector types properly.
9526
9527 2011-09-29  David S. Miller  <davem@davemloft.net>
9528
9529         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
9530         UNSPEC_ARRAY32): New unspec.
9531         (define_attr type): New type 'array'.
9532         (array{8,16,32}<P:mode>_vis): New patterns.
9533         * config/sparc/ultra1_2.md: Add reservations for 'array'.
9534         * config/sparc/ultra3.md: Likewise.
9535         * config/sparc/niagara.md: Likewise.
9536         * config/sparc/niagara2.md: Likewise.
9537         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
9538         array builtins.
9539         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
9540         __vis_array32): New.
9541         * doc/extend.texi: Document new VIS builtins.
9542
9543         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
9544         (VIS pixel-compare insn): Just use <gcond:name>.
9545
9546         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
9547         code iterator used, so just use <code>.  There are two mode iterators
9548         so explicitly use <GCM:gcm_name>.
9549
9550 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
9551
9552         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
9553         Darwin >= 9.
9554
9555 2011-09-28  David S. Miller  <davem@davemloft.net>
9556
9557         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
9558         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
9559         (UNSPEC_FCMP): New unspec.
9560         (gcond): New code iterator.
9561         (gcond_name): New code attr.
9562         (GCM): New mode iterator.
9563         (gcm_name): New mode attr.
9564         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
9565
9566 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
9567
9568         PR target/49486
9569         * config/sh/sh.md (negdi2): Move expansion into split to
9570         allow more combination options.  Add T_REG clobber.
9571         (abssi2): New expander.
9572         (*negdi2, *abssi2, *negabssi2): New insns.
9573         (cneg): Change from insn to insn_and_split.  Rename to
9574         negsi_cond.  Add alternative for non-SH4.
9575
9576 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
9577
9578         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
9579         (neon_move_hi_quad_<mode>): Likewise.
9580         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
9581
9582 2011-09-28  Nick Clifton  <nickc@redhat.com>
9583
9584         * config/rx/predicates.md (rx_minmax_operand): New predicate.
9585         Accepts immediates and a restricted subset of MEMs.
9586         * config/rx/rx.md (int_modes): New iterator.
9587         (smaxsi3, sminsi3): Delete and replace with...
9588         (smax<int_mode>3, smin<int_mode>3): New patterns.
9589         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
9590
9591 2011-09-28  Richard Guenther  <rguenther@suse.de>
9592
9593         PR middle-end/50460
9594         * fold-const.c (try_move_mult_to_index): Handle &a.array the
9595         same as &a.array[0].
9596
9597 2011-09-28  Kai Tietz  <ktietz@redhat.com>
9598
9599         * configure.ac: Add test for new section attribute
9600         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
9601         * config.in: Regenerated.
9602         * configure: Regenerated.
9603         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
9604         new section flag "e" for excluded sections, if supported.
9605         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
9606
9607 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
9608
9609         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
9610         throughout file.
9611
9612 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
9613
9614         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
9615         throughout file.
9616
9617 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
9618
9619         * output.h (SECTION_EXCLUDE): New macro.
9620         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
9621
9622 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
9623
9624         * fwprop.c (forward_propagate_and_simplify): After checking
9625         reg/subreg combinations, check whether the modes are the same.
9626
9627 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
9628             Richard Sandiford  <rdsandiford@googlemail.com>
9629
9630         * config/mips/mips.c (mips_add_cfa_restore): New function.
9631         (mips16e_save_restore_reg): Use it.
9632         (mips_restore_reg): Likewise.  Split double FPRs for
9633         REG_CFA_RESTORE notes.
9634
9635 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
9636
9637         PR middle-end/50386
9638         PR middle-end/50326
9639         * tree-sra.c (build_ref_for_model): Use the type of the field as
9640         the type of the COMPONENT_REF.
9641
9642 2011-09-27  Jeff Law  <law@redhat.com>
9643
9644         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
9645         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
9646         (find_if_case_1): Use the probability of the THEN clause when
9647         determining if speculation is profitable.
9648         (find_if_case_2): Similarly for the ELSE clause.
9649
9650 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
9651
9652         * common.opt: Add -foptimize-strlen option.
9653         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
9654         (tree-sssa-strlen.o): Add dependencies.
9655         * opts.c (default_options_table): Enable -foptimize-strlen
9656         by default at -O2 if not -Os.
9657         * passes.c (init_optimization_passes): Add pass_strlen
9658         after pass_object_sizes.
9659         * timevar.def (TV_TREE_STRLEN): New timevar.
9660         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
9661         * tree-pass.h (pass_strlen): Declare.
9662         * tree-ssa-strlen.c: New file.
9663         * c-decl.c (merge_decls): If compatible stpcpy prototype
9664         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
9665
9666 2011-09-27  Tom de Vries  <tom@codesourcery.com>
9667
9668         PR middle-end/43864
9669         * tree-ssa-tail-merge.c: New file.
9670         (struct same_succ_def): Define.
9671         (same_succ, const_same_succ): New typedef.
9672         (struct bb_cluster_def): Define.
9673         (bb_cluster, const_bb_cluster): New typedef.
9674         (struct aux_bb_info): Define.
9675         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
9676         (gvn_uses_equal): New function.
9677         (same_succ_print, same_succ_print_traverse, update_dep_bb)
9678         (stmt_update_dep_bb, local_def, same_succ_hash)
9679         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
9680         (same_succ_reset): New function.
9681         (same_succ_htab, same_succ_edge_flags)
9682         (deleted_bbs, deleted_bb_preds): New var.
9683         (debug_same_succ): New function.
9684         (worklist): New var.
9685         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
9686         (init_worklist, delete_worklist, delete_basic_block_same_succ)
9687         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
9688         (print_cluster, debug_cluster, update_rep_bb)
9689         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
9690         (all_clusters): New var.
9691         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
9692         (merge_clusters, set_cluster): New function.
9693         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
9694         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
9695         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
9696         (find_clusters_1, find_clusters): New function.
9697         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
9698         (update_bbs): New var.
9699         (apply_clusters): New function.
9700         (update_debug_stmt, update_debug_stmts): New function.
9701         (tail_merge_optimize): New function.
9702         tree-pass.h (tail_merge_optimize): Declare.
9703         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
9704         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
9705         (tree-ssa-tail-merge.o): New rule.
9706         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
9707         default at OPT_LEVELS_2_PLUS.
9708         * tree-ssa-sccvn.c (vn_valueize): Move to ...
9709         * tree-ssa-sccvn.h (vn_valueize): Here.
9710         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
9711         * common.opt (ftree-tail-merge): New switch.
9712         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
9713         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
9714         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
9715         (-ftree-tail-merge, max-tail-merge-comparisons)
9716         (max-tail-merge-iterations): New item.
9717
9718 2011-09-27  Jan Hubicka  <jh@suse.cz>
9719
9720         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
9721
9722 2011-09-27  Jan Hubicka  <jh@suse.cz>
9723
9724         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
9725         parameters passed by reference; handle loads from non-SSA scalars
9726         and update comments.
9727
9728 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
9729
9730         PR rtl-optimization/50249
9731         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
9732         instead of opnum and type.  All callers changed.  Remove useless
9733         declaration.
9734         Search forward for other reloads of the same type for the same operand
9735         using the same register; if any are found, return false.
9736         (reload_regs_reach_end_p): Same argument changes; all callers changed.
9737
9738 2011-09-27  Andi Kleen  <ak@linux.intel.com>
9739             Jan Hubicka  <jh@suse.cz>
9740
9741         * doc/invoke.texi (ffat-lto-objects): Document.
9742         * toplev.c (compile_file): Do not output assembly when doing slim lto;
9743         Output __gnu_slim_lto when doing slim lto.
9744         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
9745         (cgraph_optimize): Return early when doing slim lto.
9746         * opts.c (finish_options): Complain about lack of linker plugin
9747         when doing slim lto.
9748         * common.opt (ffat-lto-objects): New.
9749
9750 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
9751
9752         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
9753         between signed and unsigned.
9754
9755 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
9756
9757         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
9758         vectorization.
9759         (vectorizable_type_promotion): Likewise.
9760         (vect_analyze_stmt): Call vectorizable_type_demotion and
9761         vectorizable_type_promotion for basic blocks.
9762         (supportable_widening_operation): Don't assume loop vectorization.
9763         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
9764         basic blocks.  Update vectorization factor for basic block
9765         vectorization.
9766         (vect_analyze_slp_instance): Allow multiple types for basic block
9767         vectorization.  Recheck unrolling factor after construction of SLP
9768         instance.
9769
9770 2011-09-27  Richard Guenther  <rguenther@suse.de>
9771
9772         * tree-object-size.c (compute_object_sizes): Fix dumping of
9773         folded statement.
9774
9775 2011-09-27  Richard Guenther  <rguenther@suse.de>
9776
9777         PR tree-optimization/50363
9778         * tree-ssa-pre.c (create_expression_by_pieces): Handle
9779         pointer conversions in POINTER_PLUS_EXPRs properly.
9780
9781 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
9782
9783         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
9784         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
9785         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
9786         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
9787         that produce subreg moves.  Define using VQX iterators.
9788
9789 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
9790
9791         * config/avr/avr.md (ashrqi3): Split alternative "n"
9792         into its remaining parts C03, C04, C05, C06, C07 and describe
9793         impact in CC by attribute "cc" appropriately.
9794         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
9795         by digging RTX.
9796
9797 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
9798
9799         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
9800         from 3 x MAX_MACHINE_MODE.
9801         (CONSTM1_RTX): Define.
9802         * emit-rtl.c (const_tiny_rtx): Change into array of
9803         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
9804         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
9805         CONSTM1_RTX.
9806         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
9807         MODE_VECTOR_INT modes.
9808         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
9809         Optimize if one operand is CONSTM1_RTX.
9810         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
9811         into mask | x.
9812
9813 2011-09-26  David S. Miller  <davem@davemloft.net>
9814
9815         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
9816         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
9817         * config/sparc/visintrin.h: Update edge and pixel-compare
9818         intrinsics to return 'long' instead of 'int'.
9819         * doc/extend.texi: Update documentation to match.
9820         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
9821         flat, allow any instruction.  Otherwise, when V9 allow parallels
9822         which consist only of sets to registers outside of %o0 to %o5.
9823         (sparc_vis_init_builtins): Update VIS builtin types for edge
9824         and pixel-compare.
9825
9826         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
9827         is enabled, mark %gsr as global.
9828         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
9829         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
9830
9831         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
9832         which will now define __VIS and __VIS__ when -mvis is enabled.
9833         * config/sparc/t-sparc: Likewise.
9834         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
9835         and add t-sparc to tmake_file for all sparc targets.
9836         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
9837         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
9838
9839         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
9840         builtins for VIS vector addition and subtraction.
9841         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
9842         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
9843         __vis_fpsub32, __vis_fpsub32s): New.
9844         * doc/extend.texi: Document new VIS intrinsics.
9845
9846 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
9847
9848         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
9849         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
9850         EQ/NE comparisons against +/-1 in the case of unused-after,
9851         non-ld-regs target.
9852
9853 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
9854
9855         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
9856         gctx.into_ssa after push_gimplify_context.
9857
9858         * gimple.c (gimple_build_call_valist): New function.
9859         * gimple.h (gimple_build_call_valist): New prototype.
9860         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
9861         (update_gimple_call): Likewise.
9862         (update_call_from_tree): Use finish_update_gimple_call.
9863         * tree-ssa-propagate.h (update_gimple_call): New prototype.
9864
9865 2011-09-26  Richard Guenther  <rguenther@suse.de>
9866
9867         PR tree-optimization/50472
9868         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
9869         volatile references.
9870
9871 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
9872
9873         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
9874         * target.def: (addr_space_subset_p): Likewise.
9875
9876 2011-09-26  Tom de Vries  <tom@codesourcery.com>
9877
9878         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
9879         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
9880         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
9881         of new var.
9882
9883 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
9884
9885         PR target/50465
9886         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
9887         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
9888         output_reload_insisf.
9889         (adjust_len): Set default to "no".
9890         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
9891         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
9892         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
9893         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
9894         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
9895         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
9896         *lshrsi3_const): Set attribute "adjust_len".
9897         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
9898         (output_movsisf): Don't pass insn to output_reload_insisf.
9899         (adjust_insn_length): Handle new alternatives to adjust_len.
9900         Remove handling of ADJUST_LEN_YES.  Clean-up code.
9901
9902 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
9903
9904         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
9905         may_trap_p to detect loads that may trap of fault.
9906
9907 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
9908
9909         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
9910         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
9911         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
9912         prototype.
9913         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
9914         * config/avr/avr.c: Rename output_reload_insisf_1 to
9915         output_reload_in_const.
9916         (avr_popcount_each_byte): Handle SFmode, too.
9917         (output_reload_in_const): Change so it can handle HI loads, too.
9918         Use avr_popcount_each_byte to work out if scratch register must be
9919         created on the fly.
9920         (output_reload_inhi): Rewrite using output_reload_in_const and...
9921         (output_movhi): ...use it to print constants' loads.
9922         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
9923
9924 2011-09-25  David S. Miller  <davem@davemloft.net>
9925
9926         * config/sparc/constraints.md (C, P, Z): New constraints for
9927         const_doube, const_int, and const_vector "all ones" values.
9928         Make unused constraint letters comment match reality.
9929         * config/sparc/predicates.md (const_all_ones_operand,
9930         register_or_zero_or_all_ones_operand): New predicates.
9931         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
9932         as well as zero constants when VIS.
9933         (sparc_legitimate_constant_p): Likewise.
9934         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
9935         (movsf_insn): Likewise
9936         (movdi_insn_sp64): Add fone alternative.
9937         (movdf_insn_sp32_v9): Likewise.
9938         (movdf_insn_sp64): Likewise.
9939
9940         * configure.ac: Add feature check to make sure the assembler
9941         supports the FMAF, HPC, and VIS 3.0 instructions found on
9942         Niagara-3 and later cpus.
9943         * configure: Rebuild.
9944         * config.in: Likewise.
9945         * config/sparc/sparc.opt: New option '-mfmaf'.
9946         * config/sparc/sparc.md: Add float fused multiply-add patterns.
9947         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
9948         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
9949         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
9950         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
9951         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
9952         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
9953         disabled.
9954         (sparc_rtx_costs): Handle 'FMA'.
9955         * doc/invoke.texi: Document -mfmaf.
9956
9957 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
9958
9959         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
9960         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
9961         DECL_BY_REFERENCE parameters.
9962
9963 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9964
9965         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
9966         if there is no outgoing edge.
9967
9968         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
9969         integral types.
9970
9971 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
9972
9973         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
9974         of vect_analyze_bb here.
9975         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
9976
9977 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
9978
9979         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
9980         Allow not simple iv if analyzing basic block.
9981         (create_data_ref): Update call to dr_analyze_innermost.
9982         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
9983         * tree-loop-distribution.c (generate_memset_zero): Likewise.
9984         * tree-predcom.c (find_looparound_phi): Likewise.
9985         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
9986
9987 2011-09-24  David S. Miller  <davem@davemloft.net>
9988
9989         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
9990         (SPARC_GSR_REG): Define.
9991         (FIXED_REGISTERS): Mark GSR as fixed.
9992         (CALL_USED_REGISTERS): Mark GSR as call used.
9993         (HARD_REGNO_NREGS): GSR is always 1 register.
9994         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
9995         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
9996         (REGISTER_NAMES): Add "%gsr".
9997         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
9998         (UNSPEC_WRGSR): New unspec.
9999         (GSR_REG): New constant.
10000         (type): Add new insn type 'gsr'.
10001         (fpack16_vis, fpackfix_vis, fpack32_vis,
10002         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
10003         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
10004         rdgsr_v8plus): New expanders and insns.
10005         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
10006         using patterns which show that this is a plus in addition to a
10007         modification of GSR_REG, instead of an unspec.
10008         * config/sparc/ultra1_2.md: Handle 'gsr'.
10009         * config/sparc/ultra3.md: Likewise.
10010         * config/sparc/niagara.md: Likewise.
10011         * config/sparc/niagara2.md: Likewise.
10012         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
10013         end of table.
10014         (sparc_option_override): Make -mvis imply -mv8plus.
10015         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
10016         for %gsr.
10017         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
10018         __builtin_vis_read_gsr.
10019         (sparc_expand_buildin): Handle builtins that take one argument and
10020         return void.
10021         (sparc_fold_builtin): Never fold writes to %gsr.
10022         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
10023         * doc/extend.texi: Document new VIS intrinsics.
10024
10025 2011-09-23  Jan Hubicka  <jh@suse.cz>
10026
10027         * ipa-inline-transform.c (inline_call): Add comment.
10028         * ipa-inline.h (inline_param_summary): New structure and vector.
10029         (struct inline_edge_summary): Add param field.
10030         * ipa-inline-analysis.c (CHANGED): New constant.
10031         (add_clause): Handle CHANGED and NOT_CONSTANT.
10032         (predicate_probability): New function.
10033         (dump_condition): Dump CHANGED predicate.
10034         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
10035         of unknown function wide invariant.
10036         (evaluate_conditions_for_edge): Handle change probabilities.
10037         (inline_edge_duplication_hook): Copy param summaries.
10038         (inline_edge_removal_hook): Free param summaries.
10039         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
10040         sizes; dump param summaries.
10041         (will_be_nonconstant_predicate): Use CHANGED predicate.
10042         (record_modified_bb_info): New structure.
10043         (record_modified): New function.
10044         (param_change_prob): New function.
10045         (estimate_function_body_sizes): Compute param summaries.
10046         (estimate_edge_size_and_time): Add probability argument.
10047         (estimate_node_size_and_time): Add inline_param_summary argument;
10048         handle predicate probabilities.
10049         (remap_predicate): Fix formating.
10050         (remap_edge_change_prob): New function.
10051         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
10052         (remap_edge_predicates): ... this one.
10053         (inline_merge_summary): Remap edge summaries; handle predicate
10054         probabilities; remove param summaries after we are done.
10055         (do_estimate_edge_time): Update.
10056         (do_estimate_edge_growth): Update.
10057         (read_inline_edge_summary): Read param info.
10058         (inline_read_summary): Fix formating.
10059         (write_inline_edge_summary): Write param summaries.
10060
10061 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
10062
10063         * config/i386/i386.c (ix86_print_operand): Handle %~.
10064         (ix86_print_operand_punct_valid_p): Return true also for '~'.
10065         * config/i386/sse.md (i128): New mode_attr.
10066         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
10067         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
10068         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
10069         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
10070         patterns, use "<sseinsnmode>" for "mode" attribute.
10071         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
10072         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
10073         %~128 in the patterns, use "OI" for "mode" attribute.
10074
10075 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
10076
10077         PR target/50447
10078         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
10079         "tstsi", "compare".
10080         (*cmpqi_sign_extend): Use s8_operand.
10081         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
10082         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
10083         prototypes.
10084         (out_tsthi, out_tstsi): Remove prototypes.
10085         (avr_out_tsthi, avr_out_tstsi): New prototypes.
10086         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
10087         (avr_asm_len): Negative length now sets *plen to -length.
10088         (compare_sign_p): Return bool instead of int.
10089         (compare_diff_p, compare_eq_p): Ditto and make static.
10090         (avr_out_tsthi): New function.
10091         (avr_out_tstsi): New function.
10092         (avr_out_compare): New function.
10093         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
10094         ADJUST_LEN_COMPARE.
10095
10096 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
10097
10098         PR target/50447
10099         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
10100         (addsi3): Rewrite using QI scratch register.  Adjust text
10101         peepholes using plus:SI.
10102         (*addsi3_zero_extend.hi): New insn.
10103         (*subsi3_zero_extend.hi): New insn.
10104         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
10105         (*subsi3_zero_extend): Ditto.
10106         (subsi3): Change predicate #2 to register_operand.
10107         * config/avr/avr-protos.h (avr_out_plus): New prototype.
10108         (avr_out_plus_1): New static function.
10109         (avr_out_plus): New function.
10110         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
10111
10112 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
10113
10114         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
10115         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
10116
10117 2011-09-23  Ian Lance Taylor  <iant@google.com>
10118
10119         * godump.c (go_define): Treat a single character in single quotes,
10120         or a string, as an operand.
10121
10122 2011-09-23  Martin Jambor  <mjambor@suse.cz>
10123
10124         * ipa-prop.h (jump_func_type): Updated comments.
10125         (ipa_known_type_data): New type.
10126         (ipa_jump_func): Use it to describe known type jump functions.
10127         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
10128         reflect the new known type jump function contents.
10129         (compute_known_type_jump_func): Likewise.
10130         (combine_known_type_and_ancestor_jfs): Likewise.
10131         (try_make_edge_direct_virtual_call): Likewise.
10132         (ipa_write_jump_function): Likewise.
10133         (ipa_read_jump_function): Likewise.
10134         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
10135         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
10136         (propagate_accross_jump_function): Likewise.
10137
10138 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
10139
10140         PR target/50446
10141         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
10142         (rotlqi3_4): Turn insn into expander.
10143         (*rotlqi3): New insn.
10144         (rotlhi3, rotlsi3): Support rotate left/right by 1.
10145         (*rotlhi2.1, *rotlhi2.15): New insns.
10146         (*rotlsi2.1, *rotlsi2.31): New insns.
10147         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
10148
10149 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
10150
10151         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
10152
10153 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
10154
10155         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
10156
10157 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10158
10159         * reload.c (find_reloads): Set operand_mode to Pmode for address
10160         operands consisting of just a CONST_INT.
10161
10162 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
10163
10164         PR target/50482
10165         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
10166         blendv, force op_true to register if it doesn't satisfy
10167         nonimmediate_operand predicate.
10168
10169 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
10170
10171         PR middle-end/50113
10172         PR middle-end/50061
10173         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
10174         get the locate.where_pad value for register-only arguments.
10175         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
10176         (arm_pad_reg_upward): Handle null types.
10177
10178 2011-09-22  Jan Hubicka  <jh@suse.cz>
10179
10180         * ipa-inline-analysis.c: Fix overly long lines.
10181
10182 2011-09-22  Jan Hubicka  <jh@suse.cz>
10183
10184         * ipa-inline-transform.c (inline_call): Always update jump functions
10185         after inlining.
10186         * ipa-inline.c (ipa_inline): Likewise; do not call
10187         ipa_create_all_structures_for_iinln.
10188         (ipa_inline): Always free jump functions.
10189         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
10190         (remap_edge_predicates): Fix pasto.
10191         (inline_merge_summary): Remove nlined edge predicate; remove hack.
10192         (inline_analyze_function): Always initialize jump functions.
10193         (inline_generate_summary): Likewise.
10194         (inline_write_summary): Always write jump functions when ipa-cp
10195         is not doing that.
10196         (inline_read_summary): Always read jump functions when ipa-cp
10197         is not doing that.
10198         * ipa-prop.c (iinlining_processed_edges): Remove.
10199         (update_indirect_edges_after_inlining): Do not use
10200         iinlining_processed_edges; instead set param_index to -1.
10201         (propagate_info_to_inlined_callees): Only try to indirect inlining
10202         when asked to do so; update jump functions of indirect calls, too;
10203         remove jump functions of the inlined edge.
10204         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
10205         (ipa_create_all_structures_for_iinln): Remove.
10206         (ipa_free_all_structures_after_iinln): Do not free
10207         iinlining_processed_edges.
10208         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
10209
10210 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
10211
10212         * config/arm/predicates.md (expandable_comparison_operator): New
10213         predicate, extracted from...
10214         (arm_comparison_operator): ...here.
10215         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
10216         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
10217         (movdfcc): Use expandable_comparison_operator.
10218
10219 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
10220
10221         PR target/50447
10222         PR target/50465
10223         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
10224         (avr_popcount_each_byte): New prototype.
10225         * config/avr/avr.c (avr_popcount): New static function.
10226         (avr_popcount_each_byte): New function.
10227         (avr_out_bitop): New function.
10228         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
10229         avr_out_bitop.  Cleanup code.
10230         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
10231         (Ca4, Co4, Cx4): New constraints.
10232         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
10233         alternative.
10234         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
10235         (andsi3, iorsi3, xorsi3): Ditto.
10236         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
10237
10238 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
10239
10240         PR tree-optimization/50451
10241         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
10242         constant operands in reduction.
10243         (vect_get_slp_defs): Don't create vector operand for NULL scalar
10244         operand.
10245
10246 2011-09-22  David S. Miller  <davem@davemloft.net>
10247
10248         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
10249         fpack16, fpack32, fpackfix as const.
10250
10251         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
10252         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
10253         constants.  Use them everywhere.
10254
10255 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
10256
10257         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
10258         Added AND special case.  Adapted comments.
10259         (sh_rtx_costs): Added XOR and IOR case.
10260
10261 2011-09-21  Jan Hubicka  <jh@suse.cz>
10262
10263         * ipa-inline-analsis.c (compute_inline_parameters): Set
10264         cfun and current_function_decl.
10265
10266 2011-09-21  Jan Hubicka  <jh@suse.cz>
10267
10268         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
10269         handled components in parameter of builtin_constant_p.
10270         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
10271
10272 2011-09-21  Jan Hubicka  <jh@suse.cz>
10273
10274         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
10275         * ipa-inline.h (estimate_edge_time): Fix pasto.
10276         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
10277
10278 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
10279
10280         * config/i386/i386.c (ix86_expand_sse_movcc): Use
10281         blendvps, blendvpd and pblendvb if possible.
10282
10283 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
10284
10285         PR target/50464
10286         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
10287         operand 1 predicate to register_operand and operand 2 predicate
10288         to nonimmediate_operand.
10289         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
10290         xop_pcmov, force op_true to register.  Also, force op_false to
10291         register if it doesn't satisfy nonimmediate_operand predicate.
10292
10293 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10294
10295         * config/i386/bmi2intrin.h (_mulx_u64): New.
10296         (_mulx_u32): Ditto.
10297
10298 2011-09-21  Jan Hubicka  <jh@suse.cz>
10299
10300         PR tree-optimization/50433
10301         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
10302         Use get_base_address.
10303
10304 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
10305
10306         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
10307         nonimmediate_operand instead of register_operand predicate for operands
10308         1 and 2, force them into registers if expanding them as comparison.
10309         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
10310         V8HImode force into register just operand 1.
10311
10312 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
10313
10314         PR target/45099
10315         * config/avr/avr.c (avr_function_arg_advance): Change error to
10316         warning if a fixed register is needed as function argument.
10317
10318 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
10319
10320         PR target/50449
10321         PR target/50465
10322         * config/avr/avr.md (adjust_len): New insn attribute.
10323         (*reload_insi, *reload_insf): Use it.
10324         (*movsi, *movsf): Use new interface of output_movsisf.
10325         * config/avr/avr-protos.h (output_movsisf): Change prototype.
10326         * config/avr/avr.c (output_movsisf): Ditto.
10327         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
10328         lengths of insns *reload_insi, *reload_insf.
10329         (output_reload_insisf_1): New static function.
10330         (output_reload_insisf): Use it.
10331
10332 2011-09-21  David S. Miller  <davem@davemloft.net>
10333
10334         * config/sparc/sparc.c (def_builtin): Change from macro into function.
10335         (def_builtin_const): New.
10336         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
10337         other than alignaddr and falignaddr.
10338
10339         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
10340         UNSPEC_FCMPEQ): New unspec codes.
10341         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
10342         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
10343         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
10344         new pixel compare VIS patterns.
10345         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
10346         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
10347         __vis_fcmpeq16, __vis_fcmpeq32): New.
10348         * doc/extend.texi: Document new pixel compare VIS intrinsics.
10349
10350 2011-09-21  Tom de Vries  <tom@codesourcery.com>
10351
10352         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
10353
10354 2011-09-20  David S. Miller  <davem@davemloft.net>
10355
10356         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
10357         (aligneddrl<P:mode>_vis): New pattern.
10358         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
10359         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
10360         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
10361         alignaddrl insn, and adjust edge operations for updated types.
10362         * config/sparc/visintrin.h: Likewise.
10363         * doc/extend.texi: Make typing in VIS documentation match reality.
10364
10365 2011-09-20  Terry Guo  <terry.guo@arm.com>
10366
10367         * config/arm/arm-arches.def: Add armv6s-m.
10368         * config/arm/arm-tables.opt: Regenerate.
10369
10370 2011-09-20  Wei Guozhi  <carrot@google.com>
10371
10372         PR rtl-optimization/49452
10373         * postreload.c (reload_combine): Invalidate use information when across
10374         volatile insn.
10375
10376 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
10377
10378         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
10379         Remove maintenance overhead.
10380         (haifa_sched_init, sched_finish): Update.
10381
10382 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
10383
10384         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
10385         to calculate unit, prefix_rep and prefix_data16 attributes.
10386         (*mov<mode>_internal): Ditto for unit attribute.
10387         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
10388         (*movv2sf_internal): Ditto.
10389         * config/i386/sse.md (VI1248_256): Remove mode iterator.
10390         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
10391         (*avx2_eq<mode>3): Ditto.
10392         (avx2_gt<mode>3): Ditto.
10393
10394 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
10395
10396         * config/i386/i386.md (maxmin): New code iterator.
10397         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
10398         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
10399         code iterator.
10400         (*avx2_<maxmin:code><mode>3): Macroize isn from
10401         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
10402         maxmin code iterator.
10403         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
10404         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
10405         <umaxmin:code>v16qi3.
10406
10407 2011-09-19  Alan Modra  <amodra@gmail.com>
10408             Michael Meissner  <meissner@linux.vnet.ibm.com>
10409
10410         PR target/50341
10411         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
10412         split the load of the indirect function's TOC from the call to
10413         prevent the compiler from moving the load of the new TOC above
10414         code that references the current function's TOC.
10415         (call_indirect_aix<ptrsize>_internal): Ditto.
10416         (call_indirect_aix<ptrsize>_nor11): Ditto.
10417         (call_indirect_aix<ptrsize>_internal2): Ditto.
10418         (call_value_indirect_aix<ptrsize>): Ditto.
10419         (call_value_indirect_aix<ptrsize>_internal): Ditto.
10420         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
10421         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
10422
10423 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
10424
10425         * config/i386/sse.md (*sse4_1_extractps): Change into
10426         define_insn_and_split, add =x 0 n and =x x n alternatives
10427         and split them after reload.
10428
10429 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
10430
10431         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
10432
10433 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
10434
10435         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
10436
10437 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
10438
10439         PR tree-optimization/50413
10440         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
10441         a basic block if one of its data-refs can't be analyzed.
10442
10443 2011-09-19  Paul Brook  <paul@codesourcery.com>
10444
10445         * config/arm/predicates.md (shift_amount_operand): Check constant
10446         shift count is in range.
10447         (const_shift_operand): Remove.
10448
10449 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
10450             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
10451
10452         PR target/50091
10453         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
10454         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
10455
10456 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
10457
10458         * config/i386/bmiintrin.h: Remove tmp.
10459         * config/i386/tbmintrin.h: Likewise.
10460
10461 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
10462
10463         PR tree-optimization/50414
10464         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
10465         MIN_EXPR.
10466
10467 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
10468
10469         PR tree-optimization/50412
10470         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
10471         acceses that require epilogue loop if vectorizing outer loop.
10472
10473 2011-09-17  David S. Miller  <davem@davemloft.net>
10474
10475         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
10476         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
10477         New unspecs.
10478         (define_attr type): New type 'edge'.
10479         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
10480         edge32l_vis): New patterns.
10481         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
10482         * config/sparc/ultra3.md: Likewise.
10483         * config/sparc/niagara.md: Likewise.
10484         * config/sparc/niagara2.md: Likewise.
10485         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
10486         builtins for VIS edge instructions.
10487         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
10488         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
10489         intrinsics.
10490         (__v8qi, __v4qi): Make unsigned.
10491         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
10492         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
10493         __vis_fpack32): Fix types.
10494         * doc/extend.texi: Document new 'edge' VIS intrinsics.
10495
10496         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
10497         divide costs.
10498         (niagara3_costs): New.
10499         (sparc_option_override): Use it.
10500         * gcc/config/sparc/niagara2.md: Adjust with more accurate
10501         Niagara-3 reservations.
10502
10503 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
10504
10505         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
10506         (sse2_avx, sseinsnmode): Add V2TI.
10507         (REDUC_SMINMAX_MODE): New mode iterator.
10508         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
10509         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
10510         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
10511         (sse2_lshrv1ti3): Rename to...
10512         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
10513         iterator.  Move before umaxmin expanders.
10514         * config/i386/i386.h (VALID_AVX256_REG_MODE,
10515         SSE_REG_MODE_P): Accept V2TImode.
10516         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
10517         V16HImode, V8SImode and V4DImode.
10518
10519         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
10520         and V4DImode.
10521         (ix86_build_signbit_mask): Likewise.
10522         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
10523         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
10524         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
10525         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
10526         (<code><mode>3) ... this.
10527         (avx2_<code><mode>3 smaxmin expand): Rename to...
10528         (<code><mode>3) ... this.
10529         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
10530         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
10531         VI8_AVX2 mode iterator.
10532         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
10533         VI8_AVX2 mode iterator.
10534         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
10535         New expanders.
10536
10537 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
10538
10539         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
10540         throughout file.
10541
10542 2011-09-16  David S. Miller  <davem@davemloft.net>
10543
10544         * config/sparc/visintrin.h: New file.
10545         * config.gcc: Add it to extra_headers on sparc.
10546
10547 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
10548
10549         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
10550         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
10551         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
10552         reduc_smin_v4sf): Adjust callers.
10553         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
10554         New expanders.
10555
10556         * config/i386/sse.md (vec_extract_hi_<mode>,
10557         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
10558         vextracti128 instead of vextractf128 for -mavx2 and
10559         integer vectors.  For V4DFmode fix up mode attribute.
10560         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
10561         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
10562         instead of V8SF mode attribute.
10563         (avx2_extracti128): Change into define_expand.
10564         * config/i386/i386.c (ix86_expand_vector_extract): Handle
10565         32-byte vector modes if TARGET_AVX.
10566
10567 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
10568
10569         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
10570         (umulqi3_highpart, smulqi3_highpart): Ditto.
10571         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
10572         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
10573         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
10574
10575 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
10576
10577         PR target/50358
10578         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
10579         (*maddqi4, *maddqi4.const): New insns.
10580         (*msubqi4, *msubqi4.const): New insns.
10581         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
10582         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
10583         HImode by 1 in the case of multiplying with a CONST_INT.
10584         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
10585
10586 2011-09-15  Jan Hubicka  <jh@suse.cz>
10587
10588         PR lto/50430
10589         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
10590         error_mark_node in the DECL_INITIAL of vtable.
10591
10592 2011-09-15  Diego Novillo  <dnovillo@google.com>
10593
10594         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
10595         @SYSROOT_CFLAGS_FOR_TARGET@.
10596         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
10597         * configure: Regenerate.
10598         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
10599         Remove setting of GCC_UNDER_TEST.
10600
10601 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
10602
10603         * config/i386/i386.c (output_fp_compare): Return %v prefixed
10604         instruction mnemonics for TARGET_AVX.
10605
10606         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
10607         "type" attribute calculation.
10608         (*movdf_internal): Ditto.
10609         (*movsf_internal): Ditto.
10610
10611 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
10612
10613         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
10614
10615 2011-09-15  Jason Merrill  <jason@redhat.com>
10616
10617         PR c++/50361
10618         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
10619
10620 2011-09-15  Jan Hubicka  <jh@suse.cz>
10621
10622         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
10623         simplify obviously true clauses.
10624         (and_predicates, or_predicates): Add conditions parameter.
10625         (inline_duplication_hoook): Update.
10626         (mark_modified): New function.
10627         (unmodified_parm): New function.
10628         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
10629         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
10630         Use unmodified_parm.
10631         (estimate_function_body_sizes): Update.
10632         (remap_predicate): Update.
10633
10634 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
10635
10636         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
10637         read-after-read dependencies in basic block SLP.
10638
10639 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
10640
10641         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
10642         throughout file.
10643
10644 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
10645
10646         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
10647         throughout file.
10648
10649 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
10650
10651         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
10652         throughout file.
10653
10654 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
10655
10656         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
10657         throughout file.
10658         * config/rs6000/constraints.md: Likewise.
10659
10660 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
10661
10662         * config/microblaze/microblaze.md: Use match_test rather than
10663         eq/ne symbol_ref throughout file.
10664
10665 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
10666
10667         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
10668         throughout file.
10669
10670 2011-09-14  Tom de Vries  <tom@codesourcery.com>
10671
10672         PR middle-end/50251
10673         * explow.c (emit_stack_restore): Set crtl->need_drap if
10674         stack_restore is emitted.
10675
10676 2011-09-14  Julian Brown  <julian@codesourcery.com>
10677
10678         * config/arm/arm.c (arm_override_options): Add unaligned_access
10679         support.
10680         (arm_file_start): Emit attribute for unaligned access as appropriate.
10681         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
10682         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
10683         (insv, extzv): Add unaligned-access support.
10684         (extv): Change to expander. Likewise.
10685         (extzv_t1, extv_regsi): Add helpers.
10686         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
10687         (unaligned_storesi, unaligned_storehi): New.
10688         (*extv_reg): New (previous extv implementation).
10689         * config/arm/arm.opt (munaligned_access): Add option.
10690         * config/arm/constraints.md (Uw): New constraint.
10691         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
10692         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
10693         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
10694         volatile accesses when -fstrict-volatile-bitfields is in effect.
10695         (extract_bit_field_1): Likewise.
10696
10697 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
10698
10699         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
10700         a scalar integer before applying integer-only optimisations to
10701         inner arithmetic.
10702
10703 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
10704
10705         * config/mips/mips.c (mips_expand_epilogue): Generate a
10706         simple_return only if the return address is in r31.
10707
10708 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
10709
10710         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
10711         NULL for a jump that is a cc0 insn, pick the previous insn for
10712         move_before.
10713
10714 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
10715
10716         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
10717         throughout file.
10718
10719 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
10720
10721         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
10722         throughout file.
10723
10724 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
10725
10726         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
10727         symbol_ref throughout file.
10728
10729 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
10730
10731         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
10732         throughout file.
10733
10734 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
10735
10736         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
10737         throughout file.
10738
10739 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
10740
10741         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
10742         throughout file.
10743         * config/arm/neon.md: Likewise.
10744         * config/arm/vfp.md: Likewise.
10745         * config/arm/thumb2.md: Likewise.
10746         * config/arm/cortex-m4.md: Likewise.
10747
10748 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
10749
10750         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
10751         define_insn patterns for combine.
10752
10753 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
10754
10755         * reorg.c: Always define make_return_insns.
10756
10757 2011-09-13  Jan Hubicka  <jh@suse.cz>
10758
10759         PR other/49533
10760         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
10761
10762 2011-09-13  Jan Hubicka  <jh@suse.cz>
10763
10764         PR other/49533
10765         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
10766
10767 2011-09-13  Paul Brook  <paul@codesourcery.com>
10768
10769         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10770         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
10771         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
10772         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
10773         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
10774         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
10775         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
10776         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
10777         enabling unwind tables.
10778         (c6x_debug_unwind_info): New function.
10779         (TARGET_ARM_EABI_UNWINDER): Define.
10780         (TARGET_DEBUG_UNWIND_INFO): Define.
10781         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
10782         (TARGET_EXTRA_CFI_SECTION): Remove.
10783         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
10784         * ginclude/unwind-arm-common.h: New file.
10785
10786 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
10787
10788         PR target/50358
10789         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
10790         * config/avr/avr.md: (extend_s): New code attribute.
10791         (mul_r_d): New code attribute.
10792         (*maddqihi4, *umaddqihi4): New insns.
10793         (*msubqihi4, *umsubqihi4): New insns.
10794         (*usmaddqihi4, *sumaddqihi4): New insns.
10795         (*usmsubqihi4, *susubdqihi4): New insns.
10796         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
10797         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
10798         (*umsubqihi4.uconst.ashift): New insn-and-split.
10799         (*msubqihi4.sconst.ashift): New insn-and-split.
10800         (*sumaddqihi4.uconst): New insn-and-split.
10801         (*sumsubqihi4.uconst): New insn-and-split.
10802         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
10803         PLUS:HI and MINUS:HI.
10804
10805 2011-09-13  Revital Eres  <revital.eres@linaro.org>
10806
10807         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
10808         (optimize_sc): Adjust call to remove_node_from_ps.
10809         (sms_schedule): Add print info.
10810
10811 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
10812
10813         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
10814         flags specially.
10815
10816 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
10817
10818         PR bootstrap/50010
10819         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
10820         NOTE_INSN_CFI notes, with the exception of
10821         NOTE_INSN_SWITCH_TEXT_SECTIONS.
10822
10823 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
10824             Richard Sandiford  <rdsandiford@googlemail.com>
10825
10826         * config/mips/mips.c (mips_epilogue): New structure.
10827         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
10828         restoring registers.
10829         (mips_epilogue_emit_cfa_restores): New function.
10830         (mips_epilogue_set_cfa): Likewise.
10831         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
10832         the current CFA register from the stack, redefine the CFA in terms
10833         of the stack pointer.
10834         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
10835         to the epilogue instructions.
10836
10837 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
10838
10839         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
10840         argument.
10841         (mips16e_build_save_restore): Update accordingly.
10842
10843 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
10844
10845         PR rtl-optimization/50212
10846         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
10847         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
10848
10849         PR debug/50299
10850         * calls.c (load_register_parameters): Use use_reg_mode instead
10851         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
10852         entry.
10853         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
10854         for stack CALL_INSN_FUNCTION_USAGE uses.
10855         * expr.h (use_reg_mode): New prototype.
10856         (use_reg): Changed into inline around use_reg_mode.
10857         * expr.c (use_reg): Renamed to...
10858         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
10859         mode to that mode instead of VOIDmode.
10860         * var-tracking.c (prepare_call_arguments): Don't track parameters
10861         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
10862         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
10863         EXPR_LIST mode.
10864
10865 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
10866
10867         PR target/43746
10868         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
10869         (progmem_section): New Variable.
10870         (avr_asm_init_sections): Initialize it.
10871         (TARGET_ASM_SELECT_SECTION): Define to...
10872         (avr_asm_select_section): ... this new Function.
10873         (avr_replace_prefix): New Function.
10874         (avr_asm_function_rodata_section): Use it.
10875         (avr_insert_attributes): Don't add section attribute for PROGMEM.
10876         (avr_section_type_flags): Use avr_progmem_p instead of section
10877         name to detect if object is in PROGMEM.
10878         (avr_asm_named_section): Set section name prefix for objects in
10879         PROGMEM.
10880
10881 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
10882
10883         PR bootstrap/50352
10884         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
10885         sprintf format string.
10886
10887 2011-09-12  Richard Guenther  <rguenther@suse.de>
10888
10889         PR tree-optimization/50343
10890         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
10891         that the reduction is over an SSA name before checking its definition.
10892
10893 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
10894
10895         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
10896         throughout file.
10897
10898 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
10899
10900         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
10901         throughout file.
10902         * config/mips/sb1.md: Likewise.
10903         * config/mips/predicates.md: Replace (match_test "!...")
10904         with (not (match_test "..."))
10905         * config/mips/constraints.md: Likewise.
10906
10907 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
10908
10909         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
10910         * config/arm/arm-tables.opt: Regenerate.
10911         * config/arm/arm-tune.md: Regenerate.
10912         * config/arm/arm.c (arm_file_start): Output .arch directive when
10913         user passes -mcpu=generic-*.
10914         (arm_issue_rate): Add genericv7a support.
10915         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
10916         (ASM_CPU_SPEC): New define.
10917         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
10918         * config/arm/semi.h (ASM_SPEC): Likewise.
10919         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
10920         and -mtune=generic-*.
10921
10922 2011-09-09  Richard Guenther  <rguenther@suse.de>
10923
10924         PR tree-optimization/50328
10925         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
10926         constant or default-def operand.
10927
10928 2011-09-09  Richard Guenther  <rguenther@suse.de>
10929
10930         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
10931         last statement.
10932
10933 2011-09-09  Richard Guenther  <rguenther@suse.de>
10934
10935         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
10936         instead of a statement.
10937         * gimple-fold.c (fold_stmt_inplace): Likewise.
10938         * sese.c (graphite_copy_stmts_from_block): Adjust.
10939         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
10940         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
10941         fold_stmt.
10942         (forward_propagate_addr_into_variable_array_index): Likewise.
10943         (forward_propagate_addr_expr_1): adjust.
10944         (associate_plusminus): Likewise.
10945         (ssa_forward_propagate_and_combine): Likewise.
10946         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
10947         (execute_cse_reciprocals): Likewise.
10948         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
10949
10950 2011-09-09  Nick Clifton  <nickc@redhat.com>
10951
10952         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
10953         Return a positive value to indicate that the bits at the
10954         bottom of the register should be cleared.
10955
10956 2011-09-09  Richard Guenther  <rguenther@suse.de>
10957
10958         * tree-ssa-operands.c (swap_tree_operands): Always adjust
10959         existing operand positions.
10960
10961 2011-09-09  Richard Guenther  <rguenther@suse.de>
10962
10963         PR middle-end/50333
10964         * tree-data-ref.c (split_constant_offset): Do not try to handle
10965         ternary ops.
10966
10967 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
10968
10969         PR tree-optimization/50318
10970         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
10971         typo in use of mult_rhs1 and mult_rhs2.
10972
10973 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
10974
10975         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
10976         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
10977
10978 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
10979
10980         * config/arm/arm.md (push_multi): Emit predicates.
10981         (push_fp_multi): Likewise.
10982         * config/arm/arm.c (vfp_output_fstmd): Likewise.
10983
10984 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
10985
10986         PR c++/33255 - Support -Wunused-local-typedefs warning
10987         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
10988         (pushdecl): Use the new record_locally_defined_typedef.
10989         (store_parm_decls): Allocate cfun->language.
10990         (finish_function): Use the new maybe_warn_unused_local_typedefs,
10991         and free cfun->language.
10992         (c_push_function_context): Allocate cfun->language here only if needed.
10993         (c_pop_function_context): Likewise, mark cfun->language
10994         for collection only when it should be done.
10995         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
10996         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
10997         maybe_record_local_typedef_use.
10998         * doc/invoke.texi: Update documentation for
10999         -Wunused-local-typedefs.
11000
11001 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
11002
11003         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
11004         (ix86_avoid_lea_for_add): Likewise.
11005         (ix86_avoid_lea_for_addr): Likewise.
11006         (ix86_split_lea_for_addr): Likewise.
11007
11008         * config/i386/i386.c (LEA_MAX_STALL): New.
11009         (increase_distance): Likewise.
11010         (insn_defines_reg): Likewise.
11011         (insn_uses_reg_mem): Likewise.
11012         (distance_non_agu_define_in_bb): Likewise.
11013         (distance_agu_use_in_bb): Likewise.
11014         (ix86_lea_outperforms): Likewise.
11015         (ix86_ok_to_clobber_flags): Likewise.
11016         (ix86_avoid_lea_for_add): Likewise.
11017         (ix86_avoid_lea_for_addr): Likewise.
11018         (ix86_split_lea_for_addr): Likewise.
11019         (distance_non_agu_define): Search in pred BBs added.
11020         (distance_agu_use): Search in succ BBs added.
11021         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
11022         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
11023         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
11024
11025         * config/i386/i386.md: Split added to transform non destructive
11026         add into move and add.
11027         (lea_1): transformed into insn_and_split to avoid AGU stalls.
11028         (lea<mode>_2): Likewise.
11029
11030 2011-09-08  Martin Jambor  <mjambor@suse.cz>
11031
11032         PR tree-optimization/50287
11033         * ipa-split.c (split_function): Do not create SSA names for
11034         non-gimple-registers.
11035
11036 2011-09-08  Richard Guenther  <rguenther@suse.de>
11037
11038         PR tree-optimization/19831
11039         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
11040         skip builtins with vdefs that do not really store something.
11041         (propagate_necessity): For calls to free that we can associate
11042         with an allocation function do not mark the freed pointer
11043         definition necessary.
11044         (eliminate_unnecessary_stmts): Remove a call to free if
11045         the associated call to an allocation function is not necessary.
11046
11047 2011-09-08  Richard Guenther  <rguenther@suse.de>
11048
11049         PR tree-optimization/19831
11050         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
11051         allocation functions as necessary.
11052
11053 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
11054
11055         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
11056         cut from ...
11057         (darwin_default_min_version): Amended to provide defaults
11058         for the cross directory case.
11059         (darwin_driver_init): call darwin_default_min_version unconditionally.
11060         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
11061         * config/darwin9.h: Likewise.
11062         * config/darwin10.h: Likewise.
11063         * config/rs6000/darwin7.h: Likewise.
11064
11065 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
11066
11067         PR target/50310
11068         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
11069         code early if TARGET_AVX.
11070         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
11071
11072 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
11073
11074         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
11075         duplicates.
11076
11077         PR target/50310
11078         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
11079         "mode" attribute computation.
11080
11081 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
11082
11083         * regrename.c (struct du_head): Make nregs signed.
11084         (closed_chains): Remove.
11085         (create_new_chain): Return the new chain.
11086         (chain_from_id): New static function.
11087         (dump_def_use_chain): Change argument to be an int, indicating
11088         the first ID to print.  All callers changed.
11089         (merge_overlapping_regs): Use chain_from_id.  Assert that
11090         chains don't conflict with themselves.
11091         (rename_chains): Take no argument.  Iterate over id_to_chain
11092         rather to find chains to rename.  Clear tick before the main loop.
11093         (struct incoming_reg_info): New struct.
11094         (struct bb_rename_info): New struct.
11095         (init_rename_info, set_incoming_from_chain, merge_chains): New
11096         static functions.
11097         (regrename_analyze): New static function, broken out of
11098         regrename_optimize.  Record and make use of open chain information
11099         at basic block boundaries, and merge chains where possible.
11100         (scan_rtx_reg): Make this_nregs signed.  Don't update
11101         closed_chains.
11102         (build_def_use): Return a bool to indicate success.  All callers
11103         changed.  Don't initialize global data here.
11104         (regrename_optimize): Move most code out of here into
11105         regrename_analyze.
11106         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
11107         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
11108         static inline functions.
11109         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
11110
11111         * bb-reorder.c (insert_section_boundary_note): Don't check
11112         optimize_function_for_speed_p.
11113         (gate_handle_partition_blocks): Do it here instead.
11114         (gate_handle_reorder_blocks): Move preliminary checks here ...
11115         (rest_of_handle_reorder_blocks): ... from here.
11116
11117 2011-09-07  Martin Jambor  <mjambor@suse.cz>
11118
11119         PR middle-end/50301
11120         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
11121         function index bounds.
11122         (perhaps_add_new_callers): Likewise.
11123
11124 2011-09-07  Martin Jambor  <mjambor@suse.cz>
11125
11126         PR tree-optimization/49911
11127         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
11128         enumerations to the corresponding plain integer type.
11129
11130 2011-09-07  Richard Guenther  <rguenther@suse.de>
11131
11132         PR tree-optimization/50319
11133         * tree-if-conv.c (set_bb_predicate): Assert we only set
11134         canonical predicates.
11135         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
11136         around canonical predicates.
11137         (predicate_bbs): Do not re-gimplify already canonical
11138         predicates.  Properly unshare them though.
11139         (find_phi_replacement_condition): Simplify.
11140
11141 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
11142
11143         PR target/49030
11144         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
11145         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
11146         reusing the old code from get_arm_condition_code.  Return ARM_NV
11147         for invalid comparison codes.
11148         (get_arm_condition_code): Redefine in terms of
11149         maybe_get_arm_condition_code.
11150         * config/arm/predicates.md (arm_comparison_operator): Use
11151         maybe_get_arm_condition_code.
11152
11153 2011-09-07  Richard Guenther  <rguenther@suse.de>
11154
11155         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
11156         Canonicalize negated predicates by swapping edges.
11157         (forward_propagate_into_cond): Likewise.
11158
11159 2011-09-07  Richard Guenther  <rguenther@suse.de>
11160
11161         PR tree-optimization/50213
11162         * tree-flow.h (simple_iv_increment_p): Declare.
11163         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
11164         POINTER_PLUS_EXPR.
11165         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
11166         not propagate simple IV counter increments.
11167
11168 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
11169             Iain Sandoe  <iains@gcc.gnu.org>
11170
11171         * config/rs6000/rs6000.c (compute_save_world_info): Test
11172         cfun->has_nonlocal_label to determine if the out-of-line save
11173         world call may be used.
11174
11175 2011-09-07  Nick Clifton  <nickc@redhat.com>
11176
11177         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
11178         label on the parallel part of the insn.
11179
11180 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
11181
11182         PR debug/50191
11183         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
11184         avoid_constant_pool_reference first instead of last.
11185
11186 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
11187
11188         * doc/configfiles.texi (Configuration Files): Update documentation
11189         about tm_p.h and remove FIXME comment.
11190
11191 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
11192
11193         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
11194         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
11195
11196 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
11197
11198         * config/darwin10.h Remove duplicate LIB_SPEC.
11199
11200 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
11201
11202         PR middle-end/44382
11203         * target.def (reassociation_width): New hook.
11204
11205         * doc/tm.texi.in (reassociation_width): Likewise.
11206
11207         * doc/tm.texi (reassociation_width): Likewise.
11208
11209         * doc/invoke.texi (tree-reassoc-width): New param documented.
11210
11211         * hooks.h (hook_int_uint_mode_1): New default hook.
11212
11213         * hooks.c (hook_int_uint_mode_1): Likewise.
11214
11215         * config/i386/i386.h (ix86_tune_indices): Add
11216         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
11217
11218         (TARGET_REASSOC_INT_TO_PARALLEL): New.
11219         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
11220
11221         * config/i386/i386.c (initial_ix86_tune_features): Add
11222         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
11223
11224         (ix86_reassociation_width): New function.
11225
11226         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
11227
11228         * tree-ssa-reassoc.c (get_required_cycles): New function.
11229         (get_reassociation_width): Likewise.
11230         (swap_ops_for_binary_stmt): Likewise.
11231         (rewrite_expr_tree_parallel): Likewise.
11232
11233         (rewrite_expr_tree): Refactored.  Part of code moved into
11234         swap_ops_for_binary_stmt.
11235
11236         (reassociate_bb): Now checks reassociation width to be used and
11237         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
11238
11239 2011-09-06  Richard Guenther  <rguenther@suse.de>
11240
11241         PR tree-optimization/47025
11242         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
11243         uses nothing.
11244         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
11245         BUILT_IN_FREE.
11246         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
11247         definitely points to.
11248         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11249         BUILT_IN_VA_START doesn't let its va_list argument escape.
11250         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
11251         not make any previous stores necessary.
11252
11253 2011-09-06  Martin Jambor  <mjambor@suse.cz>
11254
11255         * ipa-inline.h (struct inline_summary): Move versionable flag...
11256         * cgraph.h (struct cgraph_local_info): ...here
11257         * ipa-cp.c (determine_versionability): Use the new versionable flag.
11258         (determine_versionability): Likewise.
11259         (ipcp_versionable_function_p): Likewise.
11260         (ipcp_generate_summary): Likewise.
11261         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
11262         versionable flag.
11263         (compute_inline_parameters): Do not clear the versionable flag.
11264         (inline_read_section): Do not stream the versionable flag.
11265         (inline_write_summary): Likewise.
11266         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
11267         (input_overwrite_node): Likewise.
11268
11269 2011-09-06  Richard Guenther  <rguenther@suse.de>
11270
11271         PR tree-optimization/48149
11272         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
11273         (vn_valueize): Move earlier.
11274         (valueize_expr): Use vn_valueize.
11275         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
11276         operands.
11277         (simplify_unary_expression): Simplify.
11278
11279 2011-09-06  Richard Guenther  <rguenther@suse.de>
11280
11281         PR tree-optimization/48317
11282         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
11283         trailing array.
11284         (sizeof_vn_nary_op): New inline function.
11285         (vn_nary_op_lookup_pieces): Adjust.
11286         (vn_nary_op_insert_pieces): Likewise.
11287         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
11288         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
11289         any number of operands.
11290         (vn_nary_length_from_stmt): New function.
11291         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
11292         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
11293         sized temporary.
11294         (vn_nary_op_lookup): Likewise.
11295         (vn_nary_op_lookup_stmt): Likewise.
11296         (vn_nary_op_insert_into): Likewise.
11297         (vn_nary_op_insert_stmt): Likewise.
11298         (visit_use): Handle CONSTRUCTOR as nary.
11299         * tree-ssa-pre.c (phi_translate_1): Adjust.
11300         (create_expression_by_pieces): Likewise.
11301         (compute_avail): Likewise.
11302
11303 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
11304
11305          * config/arm/arm.c (arm_preferred_simd_mode): Check
11306         TARGET_NEON_VECTORIZE_DOUBLE instead of
11307         TARGET_NEON_VECTORIZE_QUAD.
11308         (arm_autovectorize_vector_sizes): Likewise.
11309         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
11310         mask of mvectorize-with-neon-double.  Add RejectNegative.
11311         (mvectorize-with-neon-double): New.
11312
11313 2011-09-06  Richard Guenther  <rguenther@suse.de>
11314
11315         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
11316
11317 2011-09-06  Tom de Vries  <tom@codesourcery.com>
11318
11319         * recog.c (asm_labels_ok): New function.
11320         (check_asm_operands): Use asm_labels_ok.
11321
11322 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
11323
11324         PR target/49606
11325         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
11326         (PMODE_INSN): New macro.
11327         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
11328         (mips_got_load, mips_expand_synci_loop): Likewise.
11329         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
11330         cprestore patterns.
11331         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
11332         copygp_mips16 patterns.
11333         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
11334         and use_cprestore patterns.
11335         (mips_override_options): Check for incompatible -mabi and -mlong
11336         combinations.
11337         * config/mips/mips.md (unspec_got<mode>): Rename to...
11338         (unspec_got_<mode>): ...this.
11339         (copygp_mips16): Use the Pmode iterator.
11340         (potential_cprestore, cprestore, use_cprestore): Likewise.
11341         (clear_cache, indirect_jump): Use PMODE_INSN.
11342         (indirect_jump<mode>): Rename to...
11343         (indirect_jump_<mode>): ...this.
11344         (tablejump): Use PMODE_INSN.
11345         (tablejump<mode>): Rename to...
11346         (tablejump_<mode>): ...this.
11347         (exception_receiver): Handle restore_gp_si and restore_gp_di.
11348         (restore_gp): Use the Pmode iterator.
11349         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
11350         PMODE_INSN.
11351
11352 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
11353
11354         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
11355         Fix the type of the BIT_AND_EXPR.
11356
11357 2011-09-05  David S. Miller  <davem@davemloft.net>
11358
11359         * config.host: Add driver-sparc.o and sparc/x-sparc on
11360         native sparc*-*-linux* builds.
11361         * config/sparc/driver-sparc.c: Correct Linux strings.
11362         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
11363         * config/sparc/linux64.h: Likewise.
11364         * doc/invoke.texi: Document that Linux also supports
11365         -mcpu=native and -mtune=native on sparc.
11366
11367         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
11368         PROCESSOR_NIAGARA4): New.
11369         * config/sparc/sparc.opt: Handle new processor types.
11370         * config/sparc/sparc.md: Add to "cpu" attribute.
11371         * config/sparc/sparc.h (TARGET_CPU_niagara3,
11372         TARGET_CPU_niagara4): New, treat as niagara2.
11373         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
11374         * config/sparc/sol2.h: Likewise.
11375         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
11376         * config/sparc/sparc.c (sparc_option_override): Add
11377         niagara3 and niagara4 handling.
11378         (sparc32_initialize_trampoline): Likewise.
11379         (sparc64_initialize_trampoline): Likewise.
11380         (sparc_use_sched_lookahead): Likewise.
11381         (sparc_issue_rate): Likewise.
11382         (sparc_register_move_cost): Likewise.
11383         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
11384         and niagara4 as appropriate.
11385         * doc/invoke.texi: Document new processor types.
11386         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
11387         and --with-tune options.
11388
11389         * config/sparc/sol2-64.h: Move ...
11390         * config/sparc/default-64.h: ... to here.  Update comment.
11391         * config.gcc: Update Solaris sparc to use default-64.h, also
11392         prefix this header into the list on sparc64-*-linux.
11393         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
11394         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
11395         to MASK_HARD_QUAD.
11396
11397 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
11398
11399         PR target/50289
11400         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
11401         that contain global register variable.
11402
11403 2011-09-05  Richard Guenther  <rguenther@suse.de>
11404
11405         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
11406
11407 2011-09-05  Richard Guenther  <rguenther@suse.de>
11408
11409         * stor-layout.c (layout_type): Use size_binop for array size
11410         calculations.
11411
11412 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
11413
11414         * config/avr/avr.h (progmem_section): Remove Declaration.
11415         * config/avr/avr.c (progmem_section): Make static and rename to
11416         progmem_swtable_section.
11417         (avr_output_addr_vec_elt): No need to switch sections.
11418         (avr_asm_init_sections): Use output_section_asm_op as section
11419         callback for progmem_swtable_section.
11420         (avr_output_progmem_section_asm_op): Remove Function.
11421         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
11422         (avr_asm_function_rodata_section): New static Function.
11423         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
11424         alignment 2**1 for jump tables.
11425
11426 2011-09-04  Jan Hubicka  <jh@suse.cz>
11427
11428         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
11429         parameter is SSA name.
11430
11431 2011-09-04  Richard Guenther  <rguenther@suse.de>
11432
11433         Revert
11434         2011-08-31  Richard Guenther  <rguenther@suse.de>
11435
11436         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
11437         special-casing.
11438
11439 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
11440
11441         PR debug/49901
11442         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
11443
11444 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
11445             Ira Rosen  <ira.rosen@linaro.org>
11446
11447         PR tree-optimization/50208
11448         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
11449         argument.  Check that def_stmt is inside the loop.
11450         (vect_recog_widen_mult_pattern): Update calls to
11451         vect_handle_widen_mult_by_cons.
11452         (vect_operation_fits_smaller_type): Check that def_stmt is
11453         inside the loop.
11454
11455 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
11456
11457         * tree-vectorizer.c (vect_print_dump_info): Print line
11458         number when dumping to a file.
11459         (vectorize_loops): Add new messages to dump file.
11460
11461 2011-09-03  Martin Jambor  <mjambor@suse.cz>
11462
11463         * ipa-prop.h (ipa_jump_func_t): New typedef.
11464         (struct ipa_edge_args): Removed field argument_count, field
11465         jump_functions turned into a vector.
11466         (ipa_set_cs_argument_count): Removed.
11467         (ipa_get_cs_argument_count): Updated to work on vectors.
11468         (ipa_get_ith_jump_func): Likewise.
11469         * ipa-prop.c (ipa_count_arguments): Removed.
11470         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
11471         jump functions.  Update caller.
11472         (compute_pass_through_member_ptrs): Likewise.
11473         (compute_cst_member_ptr_arguments): Likewise.
11474         (ipa_compute_jump_functions_for_edge): Get number of arguments from
11475         the statement, allocate vector.
11476         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
11477         (duplicate_ipa_jump_func_array): Removed.
11478         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
11479         (ipa_read_node_info): Allocate vector.
11480
11481 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11482
11483         PR middle-end/50232
11484         * config/pa/pa.md (return): Define "return" insn pattern.
11485         (epilogue): Use it when no epilogue is needed.
11486         * config/pa/pa.c (pa_can_use_return_insn): New function.
11487         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
11488
11489 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
11490
11491         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
11492         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
11493         Force at least BITS_PER_UNIT alignment on the new variable.
11494
11495 2011-09-02  Gary Funck <gary@intrepid.com>
11496
11497         * opts.c (print_specific_help): Fix off-by-one compare in
11498         assertion check.
11499         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
11500         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
11501         Increase by +5 to allow for more languages.
11502         * optc-gen.awk: Generate #if that ensures that the number of
11503         languages is within the implementation-defined limit.
11504
11505 2011-09-02  Michael Matz  <matz@suse.de>
11506
11507         PR middle-end/50260
11508         * ipa-split.c (split_function): Call add_referenced_var.
11509
11510         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
11511         (cond_if_else_store_replacement_1): Ditto.
11512         * tree-ssa-pre.c (get_representative_for): Ditto.
11513         (create_expression_by_pieces): Ditto.
11514         (insert_into_preds_of_block): Ditto.
11515         * tree-sra.c (create_access_replacement): Ditto.
11516         (get_replaced_param_substitute): Ditto.
11517
11518 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
11519
11520         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
11521         automata_options.
11522         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
11523         (l1w, s1w, l2w, s2w): Define in the main automaton.
11524         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
11525         units.
11526         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
11527         (c6x_unit_names): Add the new units.
11528         (c6x_unit_codes): New static array.
11529         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
11530         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
11531         UNIT_QID_SIDE_OFFSET): New macros.
11532         (RESERVATION_S2): Adjust value.
11533         (c6x_option_override): Compute c6x_unit_codes.
11534         (assign_reservations): Take the unit_mask of the last instruction
11535         into account.  Detect floating point reservations by looking for
11536         the new units.  Don't assign reservations if the field is already
11537         nonzero.
11538         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
11539         (init_sched_state): Initialize it.
11540         (c6x_clear_sched_context): Free it.
11541         (insn_set_clock): Clear reservation.
11542         (prev_cycle_state): New static variable.
11543         (c6x_init_sched_context): Save it.
11544         (c6x_sched_init): Allocate space for it and clear it.
11545         (c6x_sched_dfa_pre_cycle_insn): New static function.
11546         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
11547         (c6x_variable_issue): Only record units in the unit_mask that
11548         were not set at the start of the cycle.
11549         (c6x_variable_issue): Compute and store the unit_mask from the
11550         current state.
11551         (reorg_split_calls): Ensure the new information remains correct.
11552         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
11553         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
11554         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
11555         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
11556         Add special reservations.
11557         * config/c6x/c6x-sched.md: Regenerate.
11558
11559 2011-09-02  Martin Jambor  <mjambor@suse.cz>
11560
11561         * ipa-prop.h (ipa_node_params): Removed fields
11562         called_with_var_arguments and node_versionable.
11563         (ipa_set_called_with_variable_arg): Removed.
11564         (ipa_is_called_with_var_arguments): Likewise.
11565         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
11566         (determine_versionability): Do not check for type attributes and va
11567         builtins.  Record versionability into inline summary.
11568         (initialize_node_lattices): Do not check
11569         ipa_is_called_with_var_arguments.
11570         (propagate_constants_accross_call): Likewise, ignore arguments we do
11571         not have PARM_DECLs for, set variable flag for parameters that were
11572         not passed a value.
11573         (create_specialized_node): Dump info that we cannot change signature.
11574         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
11575         number of arguments.
11576         (ipa_make_edge_direct_to_target): Likewise.
11577         (ipa_update_after_lto_read): Likewise.
11578         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
11579         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
11580         they were remapped.
11581
11582 2011-09-02  Richard Guenther  <rguenther@suse.de>
11583
11584         PR tree-optimization/27460
11585         PR middle-end/29269
11586         * doc/md.texi (vcond): Document.
11587         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
11588         optab with two modes.
11589         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
11590         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
11591         (vcond_optab): Adjust.
11592         (vcondu_optab): Likewise.
11593         (expand_vec_cond_expr_p): Adjust prototype.
11594         * optabs.c (get_vcond_icode): Adjust.
11595         (expand_vec_cond_expr_p): Likewise.
11596         (expand_vec_cond_expr): Likewise.
11597         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
11598         vector type.
11599         (vectorizable_condition): Allow differing types for comparison
11600         and result.
11601         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
11602         for the comparison.
11603         * config/i386/sse.md (vcond<mode>): Split to
11604         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
11605         vcond<V_128:mode><VI124_128:mode> and
11606         vcondu<V_128:mode><VI124_128:mode>.
11607         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
11608         (vconduv2di): Likewise.
11609         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
11610         (vcondu<mode>): Likewise.
11611         * config/ia64/vect.md (vcond<mode>): Likewise.
11612         (vcondu<mode>): Likewise.
11613         (vcondv2sf): Likewise.
11614         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
11615         * config/rs6000/paired.md (vcondv2sf): Likewise.
11616         * config/rs6000/vector.md (vcond<mode>): Likewise.
11617         (vcondu<mode>): Likewise.
11618         * config/spu/spu.md (vcond<mode>): Likewise.
11619         (vcondu<mode>): Likewise.
11620
11621 2011-09-02  Richard Guenther  <rguenther@suse.de>
11622
11623         * pretty-print.h (pp_unsigned_wide_integer): New.
11624         * tree-pretty-print.c (dump_generic_node): Print unsigned
11625         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
11626
11627 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
11628
11629         PR target/49987
11630         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
11631         valid CONST_VECTOR operands.
11632         (rs6000_expand_vector_init): Likewise.
11633
11634 2011-09-02  Martin Jambor  <mjambor@suse.cz>
11635
11636         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
11637         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
11638         BINFO_VTABLE.  Parameter delta removed, all callers updated.
11639         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
11640         BINFO_VTABLE.
11641         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
11642         all calls.
11643         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
11644         handling of thunk_delta.
11645         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
11646         (devirtualization_time_bonus): Do not handle thunk deltas.
11647         (ipcp_discover_new_direct_edges): Likewise.
11648         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
11649         (try_make_edge_direct_simple_call): Likewise.
11650         (try_make_edge_direct_virtual_call): Likewise.
11651         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
11652         parameter set as unused.
11653         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
11654         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
11655         parameter set as unused.
11656         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
11657         (input_edge_opt_summary): Likewise.
11658         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
11659         BINFO_VIRTUALS at all.
11660         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
11661
11662 2011-09-02  Richard Guenther  <rguenther@suse.de>
11663
11664         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
11665         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
11666
11667 2011-08-31  Richard Guenther  <rguenther@suse.de>
11668
11669         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
11670         handling here, from ...
11671         (expand_expr_real_1): ... here.
11672         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
11673         and VEC_COND_EXPR.
11674         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
11675         a GIMPLE_TERNARY_RHS.
11676         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
11677         and VEC_COND_EXPR here ...
11678         (verify_gimple_assign_single): ... not here.
11679         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
11680         * tree-object-size.c (cond_expr_object_size): Adjust.
11681         (collect_object_sizes_for): Likewise.
11682         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
11683         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
11684         (ssa_forward_propagate_and_combine): Adjust.
11685         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
11686         as ternary.
11687         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
11688         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
11689         * tree-vect-stmt.c (vectorizable_condition): Likewise.
11690         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
11691         (extract_range_from_assignment): Likewise.
11692
11693 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
11694
11695         * config/i386/i386.md: Use (match_test ...) for attribute tests.
11696         * config/i386/mmx.md: Likewise.
11697         * config/i386/sse.md: Likewise.
11698         * config/i386/predicates.md (call_insn_operand): Use
11699         (not (match_test "...")) instead of (match_test "!...")
11700         * config/i386/constraints.md (w): Likewise.
11701
11702 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
11703
11704         * doc/md.texi: Describe the use of match_tests in attribute tests.
11705         * rtl.def (MATCH_TEST): Update commentary.
11706         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
11707         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
11708
11709 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
11710
11711         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
11712         (attr_string): Use copy_md_ptr_loc.
11713
11714 2011-08-31  Martin Jambor  <mjambor@suse.cz>
11715
11716         PR middle-end/49886
11717         * ipa-inline-analysis.c (compute_inline_parameters): Set
11718         can_change_signature of noes with typde attributes.
11719         * ipa-split.c (split_function): Do not skip any arguments if
11720         can_change_signature is set.
11721
11722 2011-08-31  Martin Jambor  <mjambor@suse.cz>
11723
11724         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
11725         check removed.
11726
11727 2011-08-31  Richard Guenther  <rguenther@suse.de>
11728
11729         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
11730         special-casing.
11731
11732 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
11733
11734         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
11735
11736 2011-08-31  Tom de Vries  <tom@codesourcery.com>
11737
11738         PR middle-end/43513
11739         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
11740         * tree-ssa-ccp.c (params.h): Include.
11741         (fold_builtin_alloca_for_var): New function.
11742         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
11743
11744 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
11745
11746         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
11747         Handle FMA option.
11748
11749 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
11750
11751         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
11752         b3 and b4 unsigned.
11753
11754 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
11755
11756         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
11757         when code is SET.
11758
11759 2011-08-30  Richard Guenther  <rguenther@suse.de>
11760
11761         PR middle-end/48571
11762         * gimple.h (maybe_fold_offset_to_address): Remove.
11763         (maybe_fold_offset_to_reference): Likewise.
11764         (maybe_fold_stmt_addition): Likewise.
11765         (may_propagate_address_into_dereference): Likewise.
11766         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
11767         array references.
11768         * gimple-fold.c (canonicalize_constructor_val): Likewise.
11769         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
11770         addresses instead.
11771         (may_propagate_address_into_dereference): Remove.
11772         (maybe_fold_offset_to_array_ref): Likewise.
11773         (maybe_fold_offset_to_reference): Likewise.
11774         (maybe_fold_offset_to_address): Likewise.
11775         (maybe_fold_stmt_addition): Likewise.
11776         (fold_gimple_assign): Do not reconstruct array references but
11777         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
11778         MEM_REF addresses.
11779         (gimple_fold_stmt_to_constant_1): Likewise.
11780         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
11781         * gimplify.c (gimplify_conversion): Likewise.
11782         (gimplify_expr): Likewise.
11783
11784 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
11785
11786         * config/i386/fmaintrin.h: New.
11787         * config.gcc: Add fmaintrin.h.
11788         * config/i386/i386.c
11789         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
11790         <IX86_BUILTIN_VFMADDSD3>: Likewise.
11791         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
11792         (*fmai_fmadd_<mode>): Likewise.
11793         (*fmai_fmsub_<mode>): Likewise.
11794         (*fmai_fnmadd_<mode>): Likewise.
11795         (*fmai_fnmsub_<mode>): Likewise.
11796         * config/i386/immintrin.h: Add fmaintrin.h.
11797
11798 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
11799
11800         * genautomata.c (NO_COMB_OPTION): New macro.
11801         (no_comb_flag): New static variable.
11802         (gen_automata_option): Handle NO_COMB_OPTION.
11803         (comb_vect_p): False if no_comb_flag.
11804         (add_vect): Move computation of min/max values.  Return early if
11805         no_comb_flag.
11806         * doc/md.texi (automata_option): Document no-comb-vect.
11807
11808         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
11809         "__x86.get_pc_thunk".
11810
11811         * bb-reorder.c (insert_section_boundary_note): Only do it if
11812         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
11813
11814 2011-08-30  Christian Bruel  <christian.bruel@st.com>
11815
11816         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
11817         flag_profile_use.
11818
11819 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
11820
11821         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
11822         to off.  Document switch.
11823         * doc/invoke.texi (-msave-toc-indirect): Ditto.
11824
11825 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
11826
11827         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
11828         conditionals and comments inside macro arguments.
11829
11830 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
11831             Richard Guenther  <rguenther@suse.de>
11832
11833         * tree.h (constant_boolean_node): Adjust prototype.
11834         * fold-const.c (fold_convert_loc): Move aggregate conversion
11835         leeway down.
11836         (constant_boolean_node): Make value parameter boolean, add
11837         vector type handling.
11838         (fold_unary_loc): Use constant_boolean_node.
11839         (fold_binary_loc): Preserve types properly when folding
11840         COMPLEX_EXPR <__real x, __imag x>.
11841         * gimplify.c (gimplify_expr): Handle vector comparison.
11842         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
11843         comparison.
11844         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
11845         comparisons.
11846
11847 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
11848
11849         PR middle-end/48722
11850         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
11851         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
11852         (verify_rtl_sharing): Likewise and verify_rtx_sharing
11853         in there too.
11854         (unshare_all_rtl_in_chain): For CALL_INSNs
11855         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
11856
11857 2011-08-29  Richard Guenther  <rguenther@suse.de>
11858
11859         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
11860         on the built ADDR_EXPR.
11861
11862 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
11863
11864         PR debug/50215
11865         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
11866         before adding ENTRY_VALUE to val->locs.
11867
11868 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
11869
11870         PR bootstrap/50218
11871         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
11872         comp.
11873
11874 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
11875
11876         * doc/rtl.texi (simple_return): Document.
11877         (parallel, PATTERN): Here too.
11878         * doc/md.texi (return): Mention it's allowed to expand to simple_return
11879         in some cases.
11880         (simple_return): Document standard pattern.
11881         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
11882         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
11883         * reorg.c (function_return_label, function_simple_return_label):
11884         New static variables, replacing...
11885         (end_of_function_label): ... this.
11886         (simplejump_or_return_p): New static function.
11887         (optimize_skip, steal_delay_list_from_fallthrough,
11888         fill_slots_from_thread): Use it.
11889         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
11890         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
11891         (find_end_label): Take a new arg which is one of the two return
11892         rtxs.  Depending on which, set either function_return_label or
11893         function_simple_return_label.  All callers changed.
11894         (make_return_insns): Make both kinds.
11895         (dbr_schedule): Adjust for two kinds of end labels.
11896         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
11897         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
11898         (gen_expand, gen_split): Use ANY_RETURN_P.
11899         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
11900         * rtl.def (SIMPLE_RETURN): New code.
11901         * ifcvt.c (find_if_case_1): Be more careful about
11902         redirecting jumps to the EXIT_BLOCK.
11903         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
11904         returnjump_p_1): Handle SIMPLE_RETURNs.
11905         * print-rtl.c (print_rtx): Likewise.
11906         * rtl.c (copy_rtx): Likewise.
11907         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
11908         * combine.c (simplify_set): Likewise.
11909         * resource.c (find_dead_or_set_registers, mark_set_resources):
11910         Likewise.
11911         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
11912         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
11913         (init_emit_regs): Initialize simple_return_rtx.
11914         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
11915         force_nonfallthru_and_redirect.
11916         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
11917         (GR_SIMPLE_RETURN): New enum value.
11918         (simple_return_rtx): New macro.
11919         * basic-block.h (force_nonfallthru_and_redirect): Adjust
11920         declaration.
11921         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
11922         argument.  All callers changed.  Be careful about what kinds of
11923         returnjumps to generate.
11924         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
11925         ix86_pad_short_function): Likewise.
11926         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
11927         of return.
11928         * config/mips/mips.md (any_return): New code_iterator.
11929         (optab): Add cases for return and simple_return.
11930         (return): Expand to a simple_return.
11931         (simple_return): New pattern.
11932         (*<optab>, *<optab>_internal for any_return): New patterns.
11933         (return_internal): Remove.
11934         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
11935         a simple_return_internal.
11936
11937 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
11938
11939         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
11940         (vec_extract_lo_<mode>): Prevent both operands in memory.
11941         (vec_extract_lo_v16hi): Ditto.
11942         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
11943
11944 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
11945
11946         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
11947         (*sse2_mulv4si3): Ditto.
11948         (mulv2di3): Ditto.
11949         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
11950         notes to REG_EQUAL.
11951
11952 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
11953
11954         PR target/50202
11955         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
11956         when all outputs are unused.
11957         (sse4_2_pcmpistr): Ditto.
11958
11959 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
11960
11961         * config/i386/i386.md (round<mode>2): New expander.
11962         * config/i386/i386.c (enum ix86_builtins): Add
11963         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
11964         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
11965         descriptions.
11966         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
11967         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
11968
11969 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
11970
11971         PR middle-end/50083
11972         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
11973         only when TARGET_C99_FUNCTIONS.
11974         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
11975         <BUILT_IN_RINT{,F,L}>: Ditto.
11976
11977 2011-08-26  Michael Matz  <matz@suse.de>
11978             Jakub Jelinek  <jakub@redhat.com>
11979
11980         PR lto/50165
11981         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
11982         don't call strlen twice, use memcpy.
11983
11984 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
11985
11986         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
11987         * config/i386/bmiintrin.h: Likewise.
11988         * config/i386/lzcntintrin.h: Likewise.
11989
11990         * config/i386/immintrin.h: Include <lzcntintrin.h>,
11991         <bmiintrin.h> and <bmi2intrin.h>.
11992
11993 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11994
11995         PR target/50166
11996         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
11997         * configure: Regenerate.
11998
11999 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
12000
12001         PR c/50179
12002         * c-typeck.c (c_process_expr_stmt): Skip over nops and
12003         call mark_exp_read even if exprv is ADDR_EXPR.
12004
12005 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
12006
12007         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
12008         to df_set_dead_notes_for_mw.
12009
12010 2011-08-26  Richard Guenther  <rguenther@suse.de>
12011
12012         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
12013
12014 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
12015             Tom de Vries  <tom@codesourcery.com>
12016
12017         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
12018         (struct ivopts_data): Add loop_single_exit_p field.
12019         (niter_for_exit): Change parameter desc_p into return value.  Return
12020         desc if desc->may_be_zero.  Free desc if unused.
12021         (niter_for_single_dom_exit): Change return type.
12022         (find_induction_variables): Handle changed return type of
12023         niter_for_single_dom_exit.  Dump may_be_zero.
12024         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
12025         (set_use_iv_cost): Add and handle comp parameter.
12026         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
12027         comp argument to set_use_iv_cost.
12028         (strip_wrap_conserving_type_conversions, expr_equal_p)
12029         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
12030         (may_eliminate_iv): Add comp parameter.  Handle new return type of
12031         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
12032         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
12033         and may_eliminate_iv.
12034         (rewrite_use_compare): Move call to iv_elimination_compare to ...
12035         (may_eliminate_iv): Here.
12036         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
12037
12038 2011-08-26  Tom de Vries  <tom@codesourcery.com>
12039
12040         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
12041         accessing TREE_TYPE.
12042
12043 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
12044
12045         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
12046         (*ior_scc_scc_cmp): Likewise
12047         (*and_scc_scc): Likewise.
12048         (*and_scc_scc_cmp): Likewise.
12049         (*and_scc_scc_nodom): Likewise.
12050         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
12051
12052 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
12053
12054         * rtlanal.c (nonzero_bits1): Handle CLRSB.
12055
12056 2011-08-26  Richard Guenther  <rguenther@suse.de>
12057
12058         * expr.c (string_constant): Handle &MEM_REF.
12059
12060 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
12061
12062         * config/arm/arm.c (struct four_ints): New type.
12063         (count_insns_for_constant): Delete function.
12064         (find_best_start): Delete function.
12065         (optimal_immediate_sequence): New function.
12066         (optimal_immediate_sequence_1): New function.
12067         (arm_gen_constant): Move constant splitting code to
12068         optimal_immediate_sequence.
12069         Rewrite constant negation/invertion code.
12070
12071 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
12072
12073         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
12074         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
12075         Remove prototype. Remove static function type.
12076         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
12077         Add arch attribute.
12078         * config/arm/constraints.md (Pj, PJ): New constraints.
12079
12080 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12081
12082         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
12083         ("cortex_a9_multiply_long"): New and use above.  Handle all
12084         long multiply cases.
12085         ("cortex_a9_multiply"): Handle smmul and smmulr.
12086         ("cortex_a9_mac"): Handle smmla.
12087
12088 2011-08-25  Richard Henderson  <rth@redhat.com>
12089
12090         PR 50132
12091         PR 49864
12092         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
12093         non-constant stack adjutment.
12094         * expr.c (find_args_size_adjust): Break out from ...
12095         (fixup_args_size_notes): ... here.
12096         * rtl.h (find_args_size_adjust): Declare.
12097
12098 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
12099
12100         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
12101         sse4 and sse4_noavx.
12102         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
12103         (*pushdf_rex64): Change Y2 register constraint to x.
12104         (*movdf_internal_rex64): Ditto.
12105         (*zero_extendsidi2_rex64): Ditto.
12106         (*movdi_internal): Change Y2 register constraint to x
12107         and update "isa" attribute.
12108         (*pushdf): Ditto.
12109         (*movdf internal): Ditto.
12110         (zero_extendsidi2_1): Ditto.
12111         (*truncdfdf_mixed): Ditto.
12112         (*truncxfdf2_mixed): Ditto.
12113         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
12114         register constraint to x.
12115         (*movv2sf_internal_rex64): Ditto.
12116         (*mov<mode>_internal): Change Y2 register constraint to x
12117         and add "isa" attribute.
12118         (*movv2sf_internal): Ditto.
12119         (*vec_extractv2si_1): Ditto.
12120         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
12121         constraints to x and update "isa" attribute.
12122         (*vec_interleave_highv2df): Change Y3 registerconstraint
12123         to x and update "isa" attribute.
12124         (*vec_interleave_lowv2df): Ditto.
12125         (*vec_concatv2df): Change Y2 register constraint to x and
12126         update "isa" attribute.
12127         (sse2_loadld): Ditto.
12128         (*vec_extractv2di_1): Ditto.
12129         (*vec_dupv4si): Ditto.
12130         (*vec_dupv2di): Ditto.
12131         (*vec_concatv4si): Ditto.
12132         (vec_concatv2di): Ditto.
12133         * config/i386/constraints.md (Y2): Remove.
12134         (Y3): Ditto.
12135         (Y4): Ditto.
12136
12137 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12138
12139         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
12140         dump_def_use_chain): Don't declare.
12141         (mark_conflict, create_new_chain): Move before users.
12142         (regrename_optimize): Move to near end of file.
12143
12144 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12145
12146         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
12147         (secondary_input_reload_class): Remove Prototype.
12148         * config/avr/avr.c (byte_immediate_operand): Remove Function.
12149         * config/avr/avr.md (setmemhi): Use u8_operand.
12150         (strlenhi): Use const0_rtx for comparison.
12151         * config/avr/avr.h (avr_reg_order): Remove Declaration.
12152
12153 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12154
12155         * config/avr/avr.c (reg_class_tab): Make local to
12156         avr_regno_reg_class.  Return smallest register class available.
12157
12158 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12159
12160         * config/avr/avr.c (STR_PREFIX_P): New Define.
12161         (avr_asm_declare_function_name): Use it.
12162         (avr_asm_named_section): Use it.
12163         (avr_section_type_flags): Use it.
12164
12165 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12166
12167         * doc/md.texi (automata_option): Document collapse-ndfa.
12168         * genautomata.c (COLLAPSE_OPTION): New macro.
12169         (collapse_flag): New static variable.
12170         (struct description): New member normal_decls_num.
12171         (struct automaton): New members advance_ainsn and collapse_ainsn.
12172         (gen_automata_option): Check for COLLAPSE_OPTION.
12173         (collapse_ndfa_insn_decl): New static variable.
12174         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
12175         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
12176         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
12177         necessary.  Use normal_decls_num rather than decls_num, remove
12178         test for special decls.
12179         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
12180         (make_automaton); Likewise.  Use the new advance_cycle_insn member
12181         of struct automaton.
12182         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
12183         is set.
12184         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
12185         transition.  Create the necessary transitions for it.
12186         (create_ainsns): Return void.  Take an automaton_t argument, and
12187         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
12188         callers changed.
12189         (COLLAPSE_NDFA_VALUE_NAME): New macro.
12190         (output_tables): Output code to define it.
12191         (output_internal_insn_code_evaluation): Output code to accept
12192         const0_rtx as collapse-ndfa transition.
12193         (output_default_latencies, output_print_reservation_func,
12194         output_print_description): Reorganize loops to use normal_decls_num
12195         as loop bound; remove special case for advance_cycle_insn_decl.
12196         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
12197         (check_automata_insn_issues): Check for collapse_ainsn.
12198         (expand_automate): Allocate sufficient space.  Initialize
12199         normal_decls_num.
12200
12201 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12202
12203         * config/avr/avr.md: Fix indentation from r177991.
12204
12205 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12206
12207         * regrename.c (struct du_head): Remove member terminated.
12208         (create_new_chain): Don't initialize it.
12209         (scan_rtx_reg): Don't set or test it, test the open_chains_set
12210         bitmap instead.
12211         (tick, this_tick): New global variables, moved out of
12212         regrename_optimize.
12213         (current_id, open_chains, closed_chains, open_chains_set,
12214         live_in_chains, live_hard_regs): Reorder declarations.
12215         (dump_def_use_chain): Move function earlier in the file.
12216         (rename_chains): New static function, broken out of
12217         regrename_optimize.
12218         (regrename_optimize): Use it.  Remove #if 0'ed code.
12219
12220 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12221
12222         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
12223
12224 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
12225
12226         PR target/50172
12227         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
12228
12229 2011-08-24  Richard Guenther  <rguenther@suse.de>
12230
12231         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
12232         ref in the basic-block case.  Move stripping array-refs
12233         to the place we create an access-function for it.  Remove
12234         bogus stripping down a MEM_REF to its base.
12235
12236 2011-08-24  Richard Guenther  <rguenther@suse.de>
12237
12238         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
12239         with -fno-strict-overflow.
12240
12241 2011-08-24  Richard Guenther  <rguenther@suse.de>
12242
12243         * tree-vectorizer.c (vect_print_dump_info): Avoid the
12244         file and location clutter when dumping to dump files.
12245
12246 2011-08-24  Simon Baldwin  <simonb@google.com>
12247
12248         * gengtype-state.c (write_state): Remove timestamped header line.
12249
12250 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
12251
12252         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
12253         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
12254         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
12255         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
12256         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
12257         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
12258         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
12259         rules.
12260         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
12261
12262 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
12263
12264         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
12265
12266 2011-08-24  Richard Guenther  <rguenther@suse.de>
12267
12268         PR tree-optimization/50067
12269         * tree-data-ref.c (dr_analyze_indices): Do not add an access
12270         function for a MEM_REF base that has no evolution in the loop
12271         nest or that is not analyzable.
12272
12273 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
12274
12275         * ira.c (ira_init_register_move_cost): Check small subclasses
12276         through ira_reg_class_max_nregs and ira_available_class_regs.
12277
12278 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
12279
12280         * config/i386/constraints.md (Yp): New register constraint.
12281         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
12282         Yp register constraint.
12283         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
12284         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
12285         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
12286
12287 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12288
12289         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
12290
12291 2011-08-23  Mark Heffernan  <meheff@google.com>
12292
12293         PR middle-end/38509
12294         * common.opt (Wfree-nonheap-object): New option.
12295         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
12296         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
12297         to warning.
12298         (expand_builtin): Make warning conditional.
12299
12300 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
12301
12302         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
12303         (length_immediate): Handle imulx, ishiftx and rotatex.
12304         (imm_disp): Ditto.
12305         (isa): Add bmi2.
12306         (enabled): Handle bmi2.
12307         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
12308         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
12309         (*bmi2_umulditi3_1): New insn pattern.
12310         (*bmi2_umulsidi3_1): Ditto.
12311         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
12312         (*bmi2_ashl<mode>3_1): New insn pattern.
12313         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
12314         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
12315         (*bmi2_ashlsi3_1_zext): New insn pattern.
12316         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
12317         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
12318         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
12319         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
12320         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
12321         flags dependency.
12322         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
12323         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
12324         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
12325         flags dependency.
12326         (*bmi2_rorx<mode>3_1): New insn pattern.
12327         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
12328         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
12329         (*rotatert<mode>3_1 splitter): Ditto.
12330         (*bmi2_rorxsi3_1_zext): New insn pattern.
12331         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
12332         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
12333         (*rotatertsi3_1_zext splitter): Ditto.
12334
12335 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12336
12337         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
12338         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
12339         (ix86_handle_option): Handle OPT_mbmi2 case.
12340         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
12341         (x86_64-*-*): Likewise.
12342         * config/i386/bmi2intrin.h: New file.
12343         * config/i386/cpuid.h (bit_BMI2): New.
12344         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12345         BMI2 feature.
12346         * config/i386/i386-c.c (ix86_target_macros_internal):
12347         Conditionally define __BMI2__.
12348         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
12349         Handle BMI2 option.
12350         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
12351         (print_reg): New code.
12352         (ix86_print_operand): Likewise.
12353         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
12354         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
12355         IX86_BUILTIN_PEXT64.
12356         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
12357         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
12358         IX86_BUILTIN_PEXT64.
12359         * config/i386/i386.h (TARGET_BMI2): New.
12360         * config/i386/i386.md (UNSPEC_PDEP): New.
12361         (UNSPEC_PEXT): Likewise.
12362         (*bmi2_bzhi_<mode>3): Likewise.
12363         (*bmi2_pdep_<mode>3): Likewise.
12364         (*bmi2_pext_<mode>3): Likewise.
12365         * config/i386/i386.opt (mbmi2): New.
12366         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
12367         is defined.
12368         * doc/extend.texi: Document BMI2 built-in functions.
12369         * doc/invoke.texi: Document -mbmi2.
12370
12371 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
12372
12373         PR middle-end/50161
12374         * simplify-rtx.c (simplify_const_unary_operation): If
12375         op is CONST_INT, don't look at op_mode, but use instead mode.
12376         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
12377         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
12378         operation and TRUNCATE/ZERO_EXTEND if needed.
12379         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
12380         Document that operand mode must be same as operation mode,
12381         or VOIDmode.
12382         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
12383         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
12384         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
12385         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
12386         use the mode of operand for the operation and add truncate
12387         or zero_extend around if needed.
12388         * config/c6x/c6x.md (ctzdi2): Likewise.
12389         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
12390
12391 2011-08-12  Michael Matz  <matz@suse.de>
12392
12393         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
12394         (gimple_expand_cfg): Merge alignment info for coalesced pointer
12395         SSA names.
12396
12397 2011-08-23  Richard Guenther  <rguenther@suse.de>
12398
12399         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
12400         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
12401         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
12402         from ...
12403         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
12404         (mem_refs_may_alias_p): Adjust.
12405         * tree-data-ref.h (dr_may_alias_p): Adjust.
12406         * tree-data-ref.c: Include tree-affine.h.
12407         (dr_analyze_indices): Do nothing for the non-loop case.
12408         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
12409         more cases in the non-loop case.
12410         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
12411         calls to dr_may_alias_p.
12412         (write_alias_graph_to_ascii_ecc): Likewise.
12413         (write_alias_graph_to_ascii_dot): Likewise.
12414         (build_alias_set_optimal_p): Likewise.
12415
12416 2011-08-23  Richard Guenther  <rguenther@suse.de>
12417
12418         PR tree-optimization/50162
12419         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
12420
12421 2011-08-23  Richard Guenther  <rguenther@suse.de>
12422
12423         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
12424         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
12425         (create_data_ref): Also dump access functions for the created data-ref.
12426
12427 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
12428             Kirill Yukhin  <kirill.yukhin@intel.com>
12429
12430         PR target/50155
12431         * config/i386/sse.md (VI_AVX2): New.
12432         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
12433         (*<plusminus_insn><mode>3): Ditto.
12434         (<sse2_avx2>_andnot<mode>3): Ditto.
12435         (*andnot<mode>3): Fix order of cond operands.
12436         Add asserts for correct TARGET_xxx.
12437         (*<any_logic:code><mode>3): Ditto.
12438
12439 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
12440
12441         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
12442         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
12443         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
12444         regclass argument type to reg_class_t. Change 'max' and 'v' vars
12445         and return types to unsigned char. Use reg_class_contents instead
12446         of class_contents.
12447         (TARGET_CLASS_MAX_NREGS): Define.
12448
12449 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
12450
12451         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
12452         to make computed_jump_p return true.
12453
12454 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12455
12456         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
12457         (PICFLAG_FOR_TARGET): Substitute.
12458         * aclocal.m4: Regenerate.
12459         * configure: Regenerate.
12460
12461 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
12462
12463         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
12464         after reading in the pch.
12465
12466 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
12467
12468         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
12469         * configure: Regenerated.
12470
12471 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
12472
12473         PR tree-optimization/50133
12474         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
12475         from stmt instead of some statement around gsi.
12476
12477         PR middle-end/50141
12478         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
12479         innerdecl is a VAR_DECL.
12480
12481 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12482
12483         * config/i386/avx2intrin.h: New file.
12484         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
12485         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
12486         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
12487         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
12488         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
12489         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
12490         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
12491         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
12492         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
12493         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
12494         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
12495         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
12496         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
12497         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
12498         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
12499         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
12500         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
12501         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
12502         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
12503         VOID_FTYPE_PV8SI_V8SI_V8SI,
12504         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
12505         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
12506         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
12507         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
12508         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
12509         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
12510         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
12511         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
12512         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
12513         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
12514         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
12515         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
12516         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
12517         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
12518         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
12519         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
12520         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
12521         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
12522         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
12523         V4DI_FTYPE_V4DI_INT_CONVERT,
12524         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
12525         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
12526         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
12527         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
12528         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
12529         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
12530         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
12531         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
12532         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
12533         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
12534         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
12535         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
12536         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
12537         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
12538         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
12539         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
12540         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
12541         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
12542         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
12543         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
12544         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
12545         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
12546         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
12547         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
12548         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
12549         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
12550         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
12551         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
12552         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
12553         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
12554         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
12555         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
12556         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
12557         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
12558         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
12559         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
12560         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
12561         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
12562         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
12563         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
12564         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
12565         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
12566         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
12567         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
12568         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
12569         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
12570         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
12571         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
12572         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
12573         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
12574         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
12575         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
12576         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
12577         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
12578         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
12579         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
12580         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
12581         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
12582         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
12583         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
12584         IX86_BUILTIN_VBROADCASTSS_PS256,
12585         IX86_BUILTIN_VBROADCASTSD_PD256,
12586         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
12587         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
12588         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
12589         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
12590         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
12591         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
12592         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
12593         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
12594         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
12595         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
12596         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
12597         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
12598         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
12599         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
12600         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
12601         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
12602         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
12603         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
12604         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
12605         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
12606         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
12607         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
12608         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
12609         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
12610         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
12611         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
12612         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
12613         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
12614         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
12615         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
12616         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
12617         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
12618         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
12619         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
12620         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
12621         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
12622         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
12623         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
12624         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
12625         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
12626         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
12627         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
12628         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
12629         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
12630         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
12631         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
12632         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
12633         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
12634         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
12635         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
12636         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
12637         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
12638         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
12639         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
12640         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
12641         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
12642         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
12643         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
12644         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
12645         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
12646         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
12647         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
12648         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
12649         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
12650         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
12651         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
12652         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
12653         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
12654         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
12655         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
12656         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
12657         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
12658         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
12659         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
12660         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
12661         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
12662         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
12663         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
12664         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
12665         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
12666         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
12667         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
12668         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
12669         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
12670         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
12671         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
12672         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
12673         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
12674         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
12675         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
12676         IX86_BUILTIN_VBROADCASTSD_PD256,
12677         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
12678         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
12679         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
12680         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
12681         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
12682         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
12683         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
12684         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
12685         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
12686         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
12687         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
12688         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
12689         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
12690         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
12691         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
12692         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
12693         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
12694         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
12695         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
12696         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
12697         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
12698         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
12699         IX86_BUILTIN_GATHERDIV8SI.
12700         (ix86_preferred_simd_mode): Support AVX2 modes.
12701         (ix86_expand_args_builtin): Support AVX2 builtins.
12702         (ix86_expand_special_args_builtin): Likewise.
12703         (ix86_expand_builtin): Likewise.
12704         * config/i386/i386.md (UNSPEC_VPERMSI): New.
12705         (UNSPEC_VPERMDF): Likewise.
12706         (UNSPEC_VPERMSF): Likewise.
12707         (UNSPEC_VPERMDI): Likewise.
12708         (UNSPEC_VPERMTI): Likewise.
12709         (UNSPEC_GATHER): Likewise.
12710         (ssemodesuffix): Extend.
12711         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
12712         is defined.
12713         * config/i386/predicates.md (const1248_operand): New.
12714         * config/i386/sse.md (VI1_AVX2): New mode iterator.
12715         (VI2_AVX2): Likewise.
12716         (VI4_AVX2): Likewise.
12717         (VI8_AVX2): Likewise.
12718         (VIMAX_AVX2): Likewise.
12719         (SSESCALARMODE): Likewise.
12720         (VI12_AVX2): Likewise.
12721         (VI24_AVX2): Likewise.
12722         (VI124_AVX2): Likewise.
12723         (VI248_AVX2): Likewise.
12724         (VI48_AVX2): Likewise.
12725         (VI4SD_AVX2): Likewise.
12726         (V48_AVX2): Likewise.
12727         (AVX256MODE2P): Likewise.
12728         (AVXMODE48P_DI): Likewise.
12729         (sse2_avx2): New mode attribute.
12730         (ssse3_avx2): Likewise.
12731         (sse4_1_avx2): Likewise.
12732         (avx_avx2): Likewise.
12733         (ssebytemode): Likewise.
12734         (AVXTOSSEMODE): Likewise.
12735         (AVXMODE48P_DI): Likewise.
12736         (gthrfirstp): Likewise.
12737         (gthrlastp): Likewise.
12738         (lshift): New code_iterator
12739         (lshift): New code attribute.
12740         (lshift): Likewise.
12741         (ssescalarmodesuffix): Update.
12742         (sseunpackmode): Likewise.
12743         (ssepackmode): Likewise.
12744         (avx2_vec_dupv4sf): New insn pattern.
12745         (avx2_vec_dupv8sf): Likewise.
12746         (avx2_interleave_highv4di): Likewise.
12747         (avx2_interleave_lowv4di): Likewise.
12748         (avx2_umulv4siv4di3): Likewise
12749         (*avx2_umulv4siv4di3): Likewise
12750         (avx2_pmaddwd): Likewise.
12751         (*avx2_pmaddwd): Likewise.
12752         (avx2_lshrqv4di3): Likewise.
12753         (avx2_lshlqv4di3): Likewise.
12754         (avx2_lshl<mode>3): Likewise.
12755         (avx2_<umaxmin:code><mode>3): Likewise.
12756         (*avx2_<umaxmin:code><mode>3): Likewise.
12757         (avx2_<smaxmin:code><mode>3): Likewise.
12758         (*avx2_<smaxmin:code><mode>3): Likewise.
12759         (avx2_eq<mode>3): Likewise.
12760         (*avx2_eq<mode>3): Likewise.
12761         (avx2_gt<mode>3): Likewise.
12762         (avx2_interleave_highv32qi): New.
12763         (avx2_interleave_lowv32qi): Likewise.
12764         (avx2_interleave_highv16hi): Likewise.
12765         (avx2_interleave_lowv16hi): Likewise.
12766         (avx2_interleave_highv8si): Likewise.
12767         (avx2_interleave_lowv8si): Likewise.
12768         (avx2_pshufd): Likewise.
12769         (avx2_pshufd_1): Likewise.
12770         (avx2_pshuflwv3): Likewise.
12771         (avx2_pshuflw_1): Likewise.
12772         (avx2_pshufhwv3): Likewise.
12773         (avx2_pshufhw_1): Likewise.
12774         (avx2_uavgv32qi3): Likewise.
12775         (*avx2_uavgv32qi3): Likewise.
12776         (avx2_uavgv16hi3): Likewise.
12777         (*avx2_uavgv16hi3): Likewise.
12778         (avx2_pmovmskb): Likewise.
12779         (avx2_phaddwv16hi3): Likewise.
12780         (avx2_phadddv8si3): Likewise.
12781         (avx2_phaddswv16hi3): Likewise.
12782         (avx2_phsubwv16hi3): Likewise.
12783         (avx2_phsubdv8si3): Likewise.
12784         (avx2_phsubswv16hi3): Likewise.
12785         (avx2_pmaddubsw256): Likewise.
12786         (avx2_umulhrswv16hi3): Likewise.
12787         (*avx2_umulhrswv16hi3): Likewise.
12788         (avx2_packusdw): Likewise.
12789         (avx2_pblendd<mode>): Likewise.
12790         (avx2_<code>v16qiv16hi2): Likewise.
12791         (avx2_<code>v8qiv8si2): Likewise.
12792         (avx2_<code>v8hiv8si2): Likewise.
12793         (avx2_<code>v4qiv4di2): Likewise.
12794         (avx2_<code>v4hiv4di2): Likewise.
12795         (avx2_<code>v4siv4di2): Likewise.
12796         (avx2_pbroadcast<mode>): Likewise.
12797         (avx2_permvarv8si): Likewise.
12798         (avx2_permv4df): Likewise.
12799         (avx2_permvarv8sf): Likewise.
12800         (avx2_permv4di): Likewise.
12801         (avx2_permv2ti): Likewise.
12802         (avx2_vec_dupv4df): Likewise.
12803         (avx2_vbroadcasti128_<mode>): Likewise.
12804         (avx2_vec_set_lo_v4di): Likewise.
12805         (avx2_vec_set_hi_v4di): Likewise.
12806         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
12807         (avx2_extracti128): Likewise.
12808         (avx2_inserti128): Likewise.
12809         (avx2_ashrvv8si): Likewise.
12810         (avx2_ashrvv4si): Likewise.
12811         (avx2_<lshift>vv8si): Likewise.
12812         (avx2_<lshift>v<mode>): Likewise.
12813         (avx2_<lshift>vv2di): Likewise.
12814         (avx2_gathersi<mode>): Likewise.
12815         (*avx2_gathersi<mode>): Likewise.
12816         (avx2_gatherdi<mode>): Likewise.
12817         (*avx2_gatherdi<mode>): Likewise.
12818         (avx2_gatherdi<mode>256): Likewise.
12819         (*avx2_gatherdi<mode>256): Likewise.
12820         (<plusminus_insn><mode>3): Use VI mode iterator.
12821         (*<plusminus_insn><mode>3): Use VI mode iterator.
12822         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
12823         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
12824         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
12825         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
12826         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
12827         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
12828         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
12829         Use VI2_AVX2 mode iterator.
12830         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
12831         Use VI2_AVX2 mode iterator.
12832         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
12833         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
12834         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
12835         Use VI4_AVX2 mode iterator.
12836         (ashr<mode>3): Use VI24_AVX2 mode iterator.
12837         (lshr<mode>3): Use VI248_AVX2 mode iterator.
12838         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
12839         Use VIMAX_AVX2 mode iterator.
12840         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
12841         Use VI mode iterator.
12842         (*andnot<mode>3): Update for AVX2.
12843         (*<any_logic:code><mode>3): Likewise.
12844         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
12845         Use VI1_AVX mode iterator.
12846         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
12847         Use VI2_AVX mode iterator.
12848         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
12849         Use VI1_AVX mode iterator.
12850         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
12851         Use VI8_AVX2 mode iterator.
12852         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
12853         Use VI1_AVX2 mode iterator.
12854         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
12855         Use VI124_AVX2 mode iterator.
12856         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
12857         Use SSESCALARMODE mode iterator.
12858         (abs<mode>2): Use VI124_AVX2 mode iterator.
12859         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
12860         Use VI8_AVX2 mode iterator.
12861         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
12862         Use VI1_AVX2 mode iterator.
12863         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
12864         Use VI1_AVX2 mode iterator.
12865         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
12866         Use VI2_AVX2 mode iterator.
12867         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
12868         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
12869         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
12870         avx_maskstore<ssemodesuffix><avxsizesuffix>.
12871         Use V48_AVX2 mode iterator.
12872         * doc/extend.texi: Document AVX2 built-in functions.
12873         * doc/invoke.texi: Document -mavx2.
12874
12875 2011-08-22  Matthias Klose <doko@debian.org>
12876
12877         Revert:
12878         2011-07-11  Arthur Loiret  <aloiret@debian.org>
12879                     Matthias Klose <doko@debian.org>
12880         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
12881         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
12882         convention.
12883         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
12884
12885 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
12886
12887         PR bootstrap/50146
12888         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
12889         to #ifndef HONOR_REG_ALLOC_ORDER block.
12890
12891 2011-08-21  Richard Henderson  <rth@redhat.com>
12892
12893         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
12894         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
12895         * resource.c (next_insn_no_annul): Likewise.
12896         (mark_set_resources): Likewise.
12897         * reorg.c (delete_from_delay_slot): Likewise.
12898         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
12899         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
12900
12901 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
12902
12903         * config/i386/i386.md (any_div): Remove.
12904         (sgnprefix): Update for removal.
12905         (u): Ditto.
12906
12907 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
12908
12909         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
12910         for ira_reg_class_max_nregs.  Increase pressure by 1.
12911         (mark_pseudo_regno_subword_dead): Use allocno class
12912         for ira_reg_class_max_nregs.
12913
12914 2011-08-20  Richard Henderson  <rth@redhat.com>
12915
12916         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
12917         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
12918         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
12919         config/c6x/ltf.c: Adjust include path for soft-fp.
12920
12921 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
12922
12923         PR other/46770
12924         * config.gcc (tm_file): Add initfini-array.h if
12925         .init_arrary/.fini_array are supported.
12926
12927         * crtstuff.c: Don't generate .ctors nor .dtors sections if
12928         USE_INITFINI_ARRAY is defined.
12929
12930         * output.h (default_elf_init_array_asm_out_constructor): New.
12931         (default_elf_fini_array_asm_out_destructor): Likewise.
12932         * varasm.c (elf_init_array_section): Likewise.
12933         (elf_fini_array_section): Likewise.
12934         (get_elf_initfini_array_priority_section): Likewise.
12935         (default_elf_init_array_asm_out_constructor): Likewise.
12936         (default_elf_fini_array_asm_out_destructor): Likewise.
12937
12938         * config/initfini-array.h: New.
12939
12940 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
12941
12942         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
12943         OK for ST_REGS and FP_REGS before taking those classes into account.
12944
12945 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
12946
12947         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
12948         before checking for annulled branches.
12949
12950 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
12951
12952         * config/i386/i386.c (ix86_binary_operator_ok): Use
12953         satisfies_constraint_L.
12954
12955 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
12956             Michael Matz  <matz@suse.de>
12957
12958         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
12959         trunc (a + copysign (nextafter (0.5, 0.0), a)).
12960
12961 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
12962
12963         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12964         * doc/tm.texi: Regenerate.
12965         * targhooks.c (default_preferred_output_reload_class): Don't use
12966         PREFERRED_OUTPUT_RELOAD_CLASS macro.
12967         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
12968
12969 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
12970
12971         PR tree-optimization/48739
12972         * tree-ssa.c: Include cfgloop.h.
12973         (execute_update_addresses_taken): When updating ssa, if in loop closed
12974         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
12975         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
12976
12977 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
12978
12979         PR rtl-optimization/49936
12980         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
12981         for calculation of max register move costs.
12982
12983 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
12984
12985         * c-parser.c (c_parser_postfix_expression): Convert operands of
12986         __builtin_complex to their semantic types.
12987
12988 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
12989
12990         PR middle-end/49721
12991         * explow.c (convert_memory_address_addr_space): Also permute the
12992         conversion and addition of constant for zero-extend.
12993
12994 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
12995
12996         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
12997         * doc/extend.texi (__builtin_complex): Document.
12998
12999 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13000
13001         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
13002         beyond conversions.
13003         (convert_mult_to_widen): Convert constant inputs to the right type.
13004         (convert_plusminus_to_widen): Don't automatically reject inputs that
13005         are not an SSA_NAME.
13006         Convert constant inputs to the right type.
13007
13008 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13009
13010         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
13011         to the correct type.
13012
13013 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13014
13015         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
13016         unsigned inputs of different modes.
13017         (convert_plusminus_to_widen): Likewise.
13018
13019 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13020
13021         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
13022         'type'.
13023         Use 'type' from caller, not inferred from 'rhs'.
13024         Don't reject non-conversion statements. Do return lhs in this case.
13025         (is_widening_mult_p): Add new argument 'type'.
13026         Use 'type' from caller, not inferred from 'stmt'.
13027         Pass type to is_widening_mult_rhs_p.
13028         (convert_mult_to_widen): Pass type to is_widening_mult_p.
13029         (convert_plusminus_to_widen): Likewise.
13030
13031 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13032
13033         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
13034         Ensure the the larger type is the first operand.
13035
13036 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13037
13038         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
13039         unsupported unsigned multiplies to signed.
13040         (convert_plusminus_to_widen): Likewise.
13041
13042 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13043
13044         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
13045         conversion statement separating multiply-and-accumulate.
13046
13047 2011-08-19  Richard Guenther  <rguenther@suse.de>
13048
13049         PR tree-optimization/50067
13050         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
13051         offset only if we accounted for it.
13052
13053 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13054
13055         * config/arm/arm.md (maddhidi4): Remove '*' from name.
13056         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
13057         * optabs.c (find_widening_optab_handler_and_mode): New function.
13058         (expand_widen_pattern_expr): Use find_widening_optab_handler.
13059         (expand_binop_directly): Likewise.
13060         (expand_binop): Likewise.
13061         * optabs.h (find_widening_optab_handler): New macro define.
13062         (find_widening_optab_handler_and_mode): New prototype.
13063         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
13064         type precision rules.
13065         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
13066         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
13067         (is_widening_mult_rhs_p): Allow widening by more than one mode.
13068         Explicitly disallow mis-matched input types.
13069         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
13070         input types to fit the new handler.
13071         (convert_plusminus_to_widen): Likewise.
13072
13073 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13074
13075         * expr.c (expand_expr_real_2): Use widening_optab_handler.
13076         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
13077         (gen_insn): $N now means $a must be wider than $b, not consecutive.
13078         * optabs.c (widened_mode): New function.
13079         (expand_widen_pattern_expr): Use widening_optab_handler.
13080         (expand_binop_directly): Likewise.
13081         (expand_binop): Likewise.
13082         * optabs.h (widening_optab_handlers): New struct.
13083         (optab_d): New member, 'widening'.
13084         (widening_optab_handler): New function.
13085         (set_widening_optab_handler): New function.
13086         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
13087         widening_optab_handler.
13088         (convert_plusminus_to_widen): Likewise.
13089
13090 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13091
13092         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
13093         pedantic.
13094         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
13095         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
13096
13097 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13098
13099         * opth-gen.awk: Do not declare target save/restore structures and
13100         functions if IN_RTS defined.
13101
13102 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
13103
13104         PR target/49437
13105         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
13106         when stack was realigned in interrupt handler prologue.
13107
13108 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
13109
13110         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
13111         (quals_from_declspecs): Assert _Noreturn not present.
13112         (grokdeclarator): Handle _Noreturn.
13113         (build_null_declspecs): Initialize noreturn_p.
13114         (declspecs_add_scspec): Handle RID_NORETURN.
13115         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
13116         (c_parser_attributes): Handle RID_NORETURN.
13117         * c-tree.h (struct c_declspecs): Add noreturn_p.
13118         * ginclude/stdnoreturn.h: New.
13119         * Makefile.in (USER_H): Add stdnoreturn.h.
13120
13121 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
13122
13123         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
13124         (OPTION_MASK_ISA_AVX_UNSET): Update.
13125         (OPTION_MASK_ISA_AVX2_UNSET): New.
13126         (ix86_handle_option): Handle OPT_mavx2 case.
13127         * config/i386/cpuid.h (bit_AVX2): New.
13128         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
13129         AVX2 feature.
13130         * config/i386/i386-c.c (ix86_target_macros_internal):
13131         Conditionally define __AVX2__.
13132         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
13133         Define "core-avx2" processor alias.  Handle avx2 option.
13134         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
13135         * config/i386/i386.h (TARGET_AVX2): New.
13136         * config/i386/i386.opt (mavx2): New.
13137         * doc/invoke.texi: Document -mavx2.
13138
13139 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
13140
13141         PR rtl-optimization/49890
13142         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
13143         subclasses of class which is superset of a pressure class.
13144
13145 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
13146             Igor Zamyatin <igor.zamyatin@intel.com>
13147
13148         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
13149         with HOST_WIDE_INT for isa_flag.
13150         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
13151         isa variables.
13152
13153         * config/i386/i386.c (ix86_target_string): Replace int with
13154         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
13155         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
13156         (pta_flags): Removed.
13157         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
13158         (pta): Use HOST_WIDE_INT on flags.
13159         (builtin_isa): Use HOST_WIDE_INT on isa.
13160         (ix86_add_new_builtins): Likewise.
13161         (def_builtin): Use HOST_WIDE_INT on mask.
13162         (def_builtin_const): Likewise.
13163         (builtin_description): Likewise.
13164
13165         * config/i386/i386.opt (ix86_isa_flags): Replace int with
13166         HOST_WIDE_INT.
13167         (ix86_isa_flags_explicit): Likewise.
13168         (x_ix86_isa_flags_explicit): Likewise.
13169
13170 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
13171
13172         PR rtl-optimization/50107
13173         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
13174         (ira_hard_reg_in_set_p): New.
13175
13176         * ira-color.c (calculate_saved_nregs): New.
13177         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
13178         hard regs.
13179         (allocno_reload_assign, fast_allocation): Use
13180         ira_hard_reg_set_intersection_p instead of
13181         ira_hard_reg_not_in_set_p.
13182
13183         * ira.c (setup_reg_renumber): Use
13184         ira_hard_reg_set_intersection_p instead of
13185         ira_hard_reg_not_in_set_p.
13186         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
13187         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
13188
13189         * ira-costs.c (ira_tune_allocno_costs): Use
13190         ira_hard_reg_set_intersection_p instead of
13191         ira_hard_reg_not_in_set_p.
13192
13193 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
13194             Igor Zamyatin <igor.zamyatin@intel.com>
13195
13196         * hwint.h (HOST_WIDE_INT_1): New.
13197
13198         * opt-functions.awk (switch_bit_fields): Initialize the
13199         host_wide_int field.
13200         (host_wide_int_var_name): New.
13201         (var_type_struct): Check and return HOST_WIDE_INT.
13202
13203         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
13204
13205         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
13206
13207         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
13208         check masks for HOST_WIDE_INT.
13209
13210         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
13211         (option_enabled): Likewise.
13212         (get_option_state): Likewise.
13213
13214         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
13215         to HOST_WIDE_INT.
13216
13217 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13218             Marc Glisse  <marc.glisse@normalesup.org>
13219
13220         PR libstdc++-v3/1773
13221         * target.def (decl_mangling_context): New C++ hook.
13222         * doc/tm.texi: Regenerate.
13223         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
13224         * config/sol2-protos.h: Group by source file.
13225         (solaris_cxx_decl_mangling_context): Declare.
13226         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
13227         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
13228         Use $<.
13229         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
13230         Add sol2-stubs.o to extra_objs.
13231
13232 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
13233
13234         PR target/50009
13235         * stor-layout.c (update_alignment_for_field): Don't ICE on
13236         packed flexible array members if ms_bitfield_layout_p.
13237
13238         PR target/50092
13239         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
13240         on the result before returning it.
13241
13242         PR debug/50017
13243         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
13244         is a debug stmt, use location of the first non-debug stmt after it.
13245
13246 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13247
13248         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
13249         (arm_size_rtx_costs): Likewise.
13250
13251 2011-08-18  Richard Guenther  <rguenther@suse.de>
13252
13253         * tree.h (tree_int_cst_msb): Remove.
13254         * tree.c (tree_int_cst_msb): Likewise.
13255         (tree_int_cst_sign_bit): Move from ...
13256         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
13257
13258 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13259
13260         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
13261         * doc/tm.texi: Regenerate.
13262         * target.def (rtx_costs): Add an opno parameter.
13263         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
13264         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
13265         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
13266         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
13267         * cse.c (COST_IN): Add an opno parameter.
13268         (notreg_cost): Likewise.  Update call to rtx_cost.
13269         (COST, fold_rtx): Update accordingly.
13270         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
13271         * expmed.c (emit_store_flag): Likewise.
13272         * optabs.c (avoid_expensive_constant): Add an opno parameter.
13273         Update call to rtx_cost.
13274         (expand_binop_directly, expand_binop): Likewise.
13275         (expand_twoval_binop, prepare_cmp_insn): Likewise.
13276         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
13277         (set_src_cost, get_full_set_src_cost): Update accordingly.
13278         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
13279         to target hook.
13280         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
13281         (default_adress_cost): Update calls to rtx_cost.
13282
13283         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
13284         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
13285         (arm_rtx_costs): Add an opno parameter.
13286         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
13287         adjust any recursive rtx-cost calls.
13288         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
13289         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13290         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13291         * config/cris/cris.c (cris_rtx_costs): Likewise.
13292         * config/frv/frv.c (frv_rtx_costs): Likewise.
13293         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13294         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13295         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13296         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13297         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13298         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13299         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13300         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13301         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13302         * config/mep/mep.c (mep_rtx_cost): Likewise.
13303         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13304         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
13305         (mips_zero_extend_cost): Add an opno parameter.
13306         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13307         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
13308         to rtx_cost.
13309         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
13310         rtx-cost calls.
13311         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13312         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13313         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
13314         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13315         (rs6000_debug_rtx_costs): Likewise.
13316         * config/s390/s390.c (s390_rtx_costs): Likewise.
13317         * config/score/score-protos.h (score_rtx_costs): Likewise.
13318         * config/score/score.c (score_rtx_costs): Likewise.
13319         * config/sh/sh.c (andcosts): Update call to rtx_cost.
13320         (sh_rtx_costs): Add an opno parameter.
13321         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13322         * config/spu/spu.c (spu_rtx_costs): Likewise.
13323         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13324         * config/v850/v850.c (v850_rtx_costs): Likewise.
13325         * config/vax/vax.c (vax_rtx_costs): Likewise.
13326         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13327
13328 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13329
13330         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
13331         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
13332         rtx_cost.
13333         * calls.c (precompute_register_parameters): Likewise.
13334         * combine.c (expand_compound_operation, make_extraction): Likewise.
13335         (force_to_mode, distribute_and_simplify_rtx): Likewise.
13336         * dse.c (find_shift_sequence): Likewise.
13337         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
13338         * expr.c (compress_float_constant): Likewise.
13339         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13340         * gcse.c (want_to_gcse_p): Likewise.
13341         * ifcvt.c (noce_try_sign_mask): Likewise.
13342         * loop-doloop.c (doloop_optimize): Likewise.
13343         * loop-invariant.c (create_new_invariant): Likewise.
13344         * optabs.c (avoid_expensive_constant): Likewise.
13345         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
13346         (try_replace_in_use, reload_cse_move2add): Likewise.
13347         * reload1.c (calculate_elim_costs_all_insns): Likewise.
13348         (note_reg_elim_costly): Likewise.
13349         * rtlanal.c (insn_rtx_cost): Likewise.
13350         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13351         * stmt.c (lshift_cheap_p): Likewise.
13352         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
13353         * config/avr/avr.c (final_prescan_insn): Likewise.
13354         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13355         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
13356
13357 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13358
13359         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
13360         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
13361         * cfgloopanal.c (seq_cost): Likewise.
13362         * loop-invariant.c (create_new_invariant): Likewise.
13363         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
13364         (reload_cse_move2add): Use get_full_set_rtx_cost.
13365
13366 2011-08-18  Richard Guenther  <rguenther@suse.de>
13367
13368         * expr.c (get_inner_reference): Fix typo in last change.
13369
13370 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
13371             Joseph Myers  <joseph@codesourcery.com>
13372
13373         PR tree-optimization/49963
13374         * hwint.c (absu_hwi): Define.
13375         * hwint.h (absu_hwi): Declare.
13376         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
13377         of abs_hwi.
13378         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
13379         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
13380
13381 2011-08-18  Richard Guenther  <rguenther@suse.de>
13382
13383         * expr.c (get_inner_reference): Sign-extend the constant
13384         twos-complement offset before doing arbitrary precision
13385         arithmetic on it.
13386         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
13387         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
13388         to get_constraint_for_ptr_offset.
13389
13390 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
13391
13392         PR target/50068
13393         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
13394
13395 2011-08-17  Richard Guenther  <rguenther@suse.de>
13396
13397         * tree.h (convert_to_ptrofftype_loc): New function.
13398         (convert_to_ptrofftype): Define.
13399         * builtins.c (expand_builtin_bzero): Use size_type_node.
13400         (fold_builtin_bzero): Likewise.
13401         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
13402         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
13403         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
13404         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
13405         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
13406         * fold-const.c (build_range_check): Negate using the original type.
13407         (fold_unary_loc): Use fold_build_pointer_plus_loc.
13408         * gimple-fold.c (gimple_adjust_this_by_delta): Use
13409         convert_to_ptrofftype.
13410         * gimplify.c (gimplify_self_mod_expr): Likewise.
13411         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
13412         (graphite_create_new_loop_guard): Likewise.
13413         * graphite-sese-to-poly.c (my_long_long): Remove.
13414         (scop_ivs_can_be_represented): Adjust.
13415         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
13416         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
13417         * tree-loop-distribution.c (build_size_arg_loc): Use
13418         size_type_node.
13419         (generate_memset_zero): Simplify.
13420         * tree-mudflap.c: Use fold_convert, not convert.
13421         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
13422         its own type.
13423         (determine_offset): Likewise for DR_STEP.
13424         (valid_initializer_p): Likewise.
13425         * tree-profile.c (prepare_instrumented_value): Convert the pointer
13426         to an integer type of same size.
13427         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
13428         to sizetype without need.
13429         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
13430         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
13431         * tree-ssa-loop-manip.c (create_iv): Likewise.
13432         (determine_exit_conditions): Adjust comment.
13433         * tree-ssa-pre.c (create_expression_by_pieces): Use
13434         convert_to_ptrofftype.
13435         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
13436         * varasm.c (array_size_for_constructor): Compute using double_ints.
13437
13438 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13439
13440         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
13441         when generating an integer result where possible.  Short-cut
13442         comparison against 0 also for QImode.
13443
13444 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13445
13446         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
13447         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
13448         prototype.
13449         * config/spu/spu.c (spu_legitimize_reload_address): New function.
13450         (spu_legitimate_address_p): Do not check displacement if the base
13451         is an eliminable stack register.
13452
13453 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
13454
13455         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
13456         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
13457         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
13458         m32c_preferred_output_reload_class): Remove.
13459         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
13460         Change rclass argument and return types to reg_class_t. Use
13461         reg_class_subset_p instead of class_sizes.
13462         (m32c_preferred_output_reload_class): Make static. Change rclass
13463         argument and return types to reg_class_t.
13464         (TARGET_PREFERRED_RELOAD_CLASS,
13465         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13466
13467 2011-08-16  Kai Tietz  <ktietz@redhat.com>
13468
13469         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
13470
13471 2011-08-16  Richard GUenther  <rguenther@suse.de>
13472
13473         PR tree-optimization/50082
13474         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
13475         warnings here, instead of ...
13476         (ssa_forward_propagate_and_combine): ... here.
13477         (forward_propagate_into_comparison_1): Adjust.
13478         (forward_propagate_into_comparison): Likewise.
13479         (forward_propagate_into_gimple_cond): Likewise.
13480         (forward_propagate_into_cond): Likewise.
13481
13482 2011-08-16  Andreas Schwab  <schwab@redhat.com>
13483
13484         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
13485         instead of ggc_alloc_zone_vec_rtvec_def.
13486
13487 2011-08-16  Richard Guenther  <rguenther@suse.de>
13488
13489         * tree.h (ptrofftype_p): New helper function.
13490         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
13491         offset verification.
13492         (verify_gimple_assign_binary): Likewise.
13493         * tree.c (build2_stat): Likewise.
13494         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
13495         (reset_evolution_in_loop): Likewise.
13496         * tree-chrec.h (build_polynomial_chrec): Likewise.
13497
13498 2011-08-16  Liang Wang  <lwang1@marvell.com>
13499
13500         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
13501         ggc_alloc_zone_vec_rtvec_def.
13502
13503 2011-08-16  Richard Guenther  <rguenther@suse.de>
13504
13505         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
13506         helper factored out from ...
13507         (extract_range_from_binary_expr_1): ... here.  Re-structure
13508         to not glob handling too different tree codes.
13509
13510 2011-08-15  Richard Henderson  <rth@redhat.com>
13511
13512         PR middle-end/50006
13513         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
13514         setting out to include allocate_stack named pattern as well.
13515         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
13516         * stmt.c (expand_stack_restore): Likewise.
13517
13518 2011-08-15  Richard Guenther  <rguenther@suse.de>
13519
13520         PR middle-end/50082
13521         * fold-const.c (maybe_canonicalize_comparison_1): Properly
13522         convert the modified operand to the other operand type.
13523         (fold_comparison): Call maybe_canonicalize_comparison_1 with
13524         useless conversions stripped from comparison operands.
13525
13526 2011-08-15  Richard Guenther  <rguenther@suse.de>
13527
13528         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
13529         (extract_range_from_unary_expr_1): Restructure.
13530
13531 2011-08-15  Richard Guenther  <rguenther@suse.de>
13532
13533         PR tree-optimization/50058
13534         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
13535         copy matching.
13536
13537 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13538
13539         PR target/50022
13540         * config/arm/arm.c (output_move_double): Add 2 parameters
13541         to count the number of insns emitted and whether to emit or not.
13542         Use the flag to decide when to emit and count number of instructions
13543         that will be emitted.
13544         Handle case where output_move_double might be called for calculating
13545         lengths with an invalid constant.
13546         (arm_count_output_move_double_insns): Define.
13547         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
13548         (output_move_double): Adjust prototype.
13549         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
13550         output_move_double.
13551         ("*movdi_vfp_cortexa8"): Likewise and add attribute
13552         for ce_count.
13553         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
13554         ("*movdf_soft_insn"): Likewise.
13555         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
13556         ("*cirrus_thumb2_movdi"): Likewise.
13557         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
13558         ("*cirrus_movdf_hard_insn"): Likewise.
13559         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
13560         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
13561         ("mov<mode>_internal VMMX"): Likewise.
13562         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
13563
13564 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
13565
13566         * config/i386/i386.c (ix86_expand_round_sse4): New function.
13567         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
13568         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
13569         for TARGET_ROUND.
13570
13571         (rint<mode>2): Simplify TARGET_ROUND check.
13572         (floor<mode>2): Ditto.
13573         (ceil<mode>2): Ditto.
13574         (btrunc<mode>2): Ditto.
13575
13576 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
13577
13578         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
13579         as mmix_preferred_output_reload_class.
13580
13581 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
13582
13583         * PR target/49903
13584         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
13585         (branch_unspec): New insn.
13586         (branch): Beauty farm.
13587         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
13588         to be IF_THEN_ELSE.
13589         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
13590         New static functions.
13591         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
13592         Use CONST_INT_P.  Beauty.
13593
13594 2011-08-12  Richard Henderson  <rth@redhat.com>
13595
13596         PR rtl-opt/49994
13597         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
13598         * sched-deps.c (init_deps): Clear it.
13599         (deps_analyze_insn): Consume it.
13600         (sched_analyze_insn): Fill it.
13601
13602 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13603
13604         PR target/48328
13605         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
13606         for tbh instructions.
13607
13608 2011-08-12  Diego Novillo  <dnovillo@google.com>
13609
13610         * data-streamer.h (streamer_write_zero): Rename from output_zero.
13611         (streamer_write_uhwi): Rename from lto_output_uleb128.
13612         (streamer_write_hwi): Rename from output_sleb128.
13613         (streamer_write_string): Rename from lto_output_string.
13614         (streamer_string_index): Rename from lto_string_index.
13615         (streamer_write_string_with_length): Rename from
13616         lto_output_string_with_length.
13617         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
13618         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
13619         (streamer_read_string): Rename from lto_input_string.
13620         (streamer_read_indexed_string): Rename from input_string_internal.
13621         (streamer_read_uhwi): Rename from lto_input_uleb128.
13622         (streamer_read_hwi): Rename from lto_input_sleb128.
13623         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
13624         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
13625         (streamer_write_enum): Rename from lto_output_enum.
13626         (streamer_read_enum): Rename from lto_input_enum.
13627         (streamer_write_record_start): Rename from output_record_start.
13628         (streamer_read_record_start): Rename from input_record_start.
13629         (streamer_write_bitpack): Rename from lto_output_bitpack.
13630         (streamer_read_bitpack): Rename from lto_input_bitpack.
13631         (streamer_write_char_stream): Rename from lto_output_1_stream.
13632         (streamer_read_uchar): Rename from lto_input_1_unsigned.
13633         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
13634         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
13635         (streamer_read_string_cst): Rename from input_string_cst.
13636         (streamer_read_chain): Rename from lto_input_chain.
13637         (streamer_alloc_tree): Rename from lto_materialize_tree.
13638         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
13639         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
13640         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
13641         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
13642         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
13643         (streamer_write_chain): Rename from lto_output_chain.
13644         (streamer_write_tree_header): Rename from lto_output_tree_header.
13645         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
13646         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
13647         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
13648         (streamer_write_builtin): Rename from lto_output_builtin_tree.
13649         (streamer_check_handled_ts_structures): Rename from
13650         check_handled_ts_structures.
13651         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
13652         (streamer_tree_cache_insert_at): Rename from
13653         lto_streamer_cache_insert_at.
13654         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
13655         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
13656         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
13657         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
13658         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
13659         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
13660         (write_identifier): Rename from output_identifier.
13661         (write_ts_common_tree_pointers): Rename from
13662         lto_output_ts_common_tree_pointers.
13663         (write_ts_vector_tree_pointers): Rename from
13664         lto_output_ts_vector_tree_pointers.
13665         (write_ts_complex_tree_pointers): Rename from
13666         lto_output_ts_complex_tree_pointers.
13667         (write_ts_decl_minimal_tree_pointers): Rename from
13668         lto_output_ts_decl_minimal_tree_pointers.
13669         (write_ts_decl_common_tree_pointers): Rename from
13670         lto_output_ts_decl_common_tree_pointers.
13671         (write_ts_decl_non_common_tree_pointers): Rename from
13672         lto_output_ts_decl_non_common_tree_pointers.
13673         (write_ts_decl_with_vis_tree_pointers): Rename from
13674         lto_output_ts_decl_with_vis_tree_pointers.
13675         (write_ts_field_decl_tree_pointers): Rename from
13676         lto_output_ts_field_decl_tree_pointers.
13677         (write_ts_function_decl_tree_pointers): Rename from
13678         lto_output_ts_function_decl_tree_pointers.
13679         (write_ts_type_common_tree_pointers): Rename from
13680         lto_output_ts_type_common_tree_pointers.
13681         (write_ts_type_non_common_tree_pointers): Rename from
13682         lto_output_ts_type_non_common_tree_pointers.
13683         (write_ts_list_tree_pointers): Rename from
13684         lto_output_ts_list_tree_pointers.
13685         (write_ts_vec_tree_pointers): Rename from
13686         lto_output_ts_vec_tree_pointers.
13687         (write_ts_exp_tree_pointers): Rename from
13688         lto_output_ts_exp_tree_pointers.
13689         (write_ts_block_tree_pointers): Rename from
13690         lto_output_ts_block_tree_pointers.
13691         (write_ts_binfo_tree_pointers): Rename from
13692         lto_output_ts_binfo_tree_pointers.
13693         (write_ts_constructor_tree_pointers): Rename from
13694         lto_output_ts_constructor_tree_pointers.
13695         (write_ts_target_option): Rename from lto_output_ts_target_option.
13696         (write_ts_translation_unit_decl_tree_pointers): Rename from
13697         lto_output_ts_translation_unit_decl_tree_pointers.
13698         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
13699         Rename from lto_streamer_cache_add_to_node_array.
13700         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
13701         (record_common_node): Rename from lto_record_common_node.
13702
13703         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
13704         declarations.
13705         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
13706         function.
13707         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
13708         unused function.
13709         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
13710         (ipa-reference.o): Likewise.
13711         * lto-section-out.c: Include data-streamer.h.
13712         * ipa-reference.c: Include data-streamer.h.
13713
13714 2011-08-12  Nick Clifton  <nickc@redhat.com>
13715
13716         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
13717         * doc/md.texi (cmpstrn): Note that the comparison stops if both
13718         fetched bytes are zero.
13719         (cmpstr): Likewise.
13720         (cmpmem): Note that the comparison does not stop if both of the
13721         fetched bytes are zero.
13722
13723 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
13724
13725         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
13726         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
13727         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
13728         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
13729         to integer_type_node.
13730         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
13731         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
13732         * builtins.c (expand_builtin_in): Ditto.
13733         (mathfn_built_in_1): Ditto.
13734         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
13735         BUILT_IN_IFLOOR.
13736         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
13737         BUILT_IN_IROUND.
13738         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
13739         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
13740         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
13741
13742 2011-08-12  Richard Guenther  <rguenther@suse.de>
13743
13744         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
13745
13746 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
13747
13748         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
13749
13750 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
13751
13752         * config/arm/arm.c (get_label_padding): New function.
13753         (create_fix_barrier, arm_reorg): Use it.
13754
13755 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
13756
13757         PR target/49781
13758         * config/i386/i386.md (*lea_5_zext): New.
13759         (*lea_6_zext): Ditto.
13760         * config/i386/predicates.md (const_32bit_mask): New predicate.
13761         (lea_address_operand): Reject AND.
13762         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
13763         const_32bit_mask immediate.
13764         (ix86_print_operand_address): Handle AND.
13765         (memory_address_length): Ditto.
13766
13767 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
13768             Brian Hackett  <bhackett1024@gmail.com>
13769
13770         * plugin.def: Add event for finish_decl.
13771         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
13772         * c-decl.c (finish_decl): Invoke callbacks on above event.
13773         * doc/plugins.texi: Document above event.
13774
13775 2011-08-11  Richard Guenther  <rguenther@suse.de>
13776
13777         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
13778         lookups, make looking through aggregate copies stronger.
13779
13780 2011-08-11  Richard Henderson  <rth@redhat.com>
13781
13782         PR bootstrap/50018
13783         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
13784
13785 2011-08-11  Richard Guenther  <rguenther@suse.de>
13786
13787         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
13788         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
13789         (vrp_visit_stmt): Likewise.
13790
13791 2011-08-11  Richard Guenther  <rguenther@suse.de>
13792
13793         PR middle-end/50040
13794         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
13795         load of the other piece with TREE_NO_WARNING.
13796         * tree-flow.h (warn_uninit): Adjust prototype.
13797         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
13798         the base variable and the expression that is used separately.
13799         Properly query all TREE_NO_WARNING flags.
13800         (struct walk_data): Remove.
13801         (warn_uninitialized_var): Likewise.
13802         (warn_uninitialized_vars): Do not walk gimple pieces but simply
13803         look at all SSA uses of the statement.  Handle unused memory
13804         separately.
13805         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
13806
13807 2011-08-11  Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
13808
13809         * config/rx/rx.md (movsicc): Allow register to register transfers.
13810         (*movsicc): Likewise.
13811         (*stcc): Restrict this pattern to EQ and NE compares.
13812         (*stcc_reg): New pattern.  Works for any comparison but only for
13813         register transfers.
13814
13815 2011-08-11  Diego Novillo  <dnovillo@google.com>
13816
13817         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
13818         Call stream_write_tree instead of output_record_start.
13819         (lto_output_ts_binfo_tree_pointers): Likewise.
13820
13821         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
13822         Convert it to a macro.
13823         (stream_read_tree): Likewise.
13824
13825         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
13826         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
13827
13828         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
13829         and tree_read_bitfields.
13830         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
13831         (lto_write_tree): Call it.
13832         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
13833         * streamer-hooks.h (struct streamer_hooks): Remove fields
13834         name, is_streamable and alloc_tree. Update all users.
13835         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
13836         (lto_materialize_tree): ... here.
13837         Handle CALL_EXPR codes.
13838         Remove call to lto_streamer_cache_append.
13839         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
13840         * tree-streamer.h (tree_read_bitfields): Declare.
13841
13842         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
13843         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
13844         * tree-streamer.h (stream_read_tree): New.  Replace all calls
13845         to lto_input_tree with it.
13846         (stream_write_tree): New.  Replace all calls to lto_output_tree,
13847         lto_output_tree_ref and lto_output_tree_or_ref with it.
13848         * lto-streamer-in.c (lto_read_tree): Inline code from
13849         lto_streamer_read_tree.
13850         (lto_input_tree): Move from tree-streamer-in.c.
13851         * lto-streamer-out.c (lto_output_tree_ref): Make static.
13852         Remove handling of NULL values for EXPR.
13853         Do not handle EXPRs that are not indexable.
13854         (lto_write_tree): Move from tree-streamer-out.c.
13855         Inline lto_streamer_write_tree.
13856         (lto_output_tree): Move from tree-streamer-out.c.
13857         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
13858         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
13859         (lto_preload_common_nodes): Likewise.
13860         Remove assertions and adjustments for nodes
13861         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
13862         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
13863         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
13864         * lto-streamer.h (lto_input_tree): Declare.
13865         (lto_output_tree_ref): Remove.
13866         * streamer-hooks.h (struct streamer_hooks): Remove fields
13867         preload_common_nodes, indexable_with_decls_p,
13868         pack_value_fields, unpack_value_fields and output_tree_header.
13869         Update all users.
13870         * tree-streamer-in.c (lto_materialize_tree): Make extern.
13871         (lto_input_tree_pointers): Likewise.
13872         (lto_read_tree): Move to lto-streamer-in.c.
13873         (lto_input_integer_cst): Make extern.
13874         (lto_get_pickled_tree): Likewise.
13875         (lto_get_builtin_tree): Likewise.
13876         (lto_input_tree): Move to lto-streamer-in.c.
13877         * tree-streamer-out.c (pack_value_fields): Make extern.
13878         (lto_output_tree_or_ref): Remove.  Replace all callers with
13879         calls to stream_write_tree.
13880         (lto_output_builtin_tree): Make extern.
13881         (lto_streamer_write_tree): Inline into lto_write_tree.
13882         (lto_output_tree_pointers): Make extern.
13883         (lto_output_tree_header): Likewise.
13884         (lto_output_integer_cst): Likewise.
13885         (lto_write_tree): Move to lto-streamer-out.c.
13886         (lto_output_tree): Likewise.
13887         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
13888         (preload_common_nodes): Likewise.
13889         (lto_streamer_cache_create): Call it.
13890         * tree-streamer.h: Include streamer-hooks.h.
13891         (stream_write_tree): New.
13892         (stream_read_tree): New.
13893         (lto_input_tree): Remove.
13894         (lto_materialize_tree): Declare.
13895         (lto_input_tree_pointers): Declare.
13896         (lto_get_pickled_tree): Declare.
13897         (lto_get_builtin_tree): Declare.
13898         (lto_input_integer_cst): Declare.
13899         (lto_output_tree_header): Declare.
13900         (pack_value_fields): Declare.
13901         (lto_output_tree_pointers): Declare.
13902         (lto_output_integer_cst): Declare.
13903         (lto_output_builtin_tree): Declare.
13904
13905 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
13906
13907         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
13908         only if producer writes to the register given by regno.
13909
13910 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
13911             Alexander Monakov  <amonakov@ispras.ru>
13912
13913         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
13914         (sched_get_condition_with_rev_uncached): ... this.  Factor out
13915         condition caching logic into ...
13916         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
13917         attempt to use cache for instructions with zero luid.
13918         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
13919         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
13920
13921 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
13922
13923         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
13924         get_seqno_for_a_jump.  Update the caller.
13925         (get_seqno_by_succs): New.  Use it ...
13926         (get_seqno_for_a_jump): ... here to find a seqno if looking at
13927         predecessors was not sufficient.
13928         (get_seqno_by_preds): Include head in iteration range, exclude insn.
13929
13930 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
13931
13932         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
13933
13934 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
13935
13936         * sel-sched-ir.h (register_unavailable_p): Declare.
13937         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
13938         (set_unavailable_target_for_expr): ... here to properly test
13939         availability of a register.
13940         (speculate_expr): Ditto.
13941         * sel-sched.c (substitute_reg_in_expr): Ditto.
13942         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
13943
13944 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
13945
13946         * sel-sched.c (verify_target_availability): Fix usage of
13947         hard_regno_nregs.
13948
13949 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
13950
13951         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
13952         recognized by cannot_copy_insn_p hook and volatile instructions.
13953
13954 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
13955
13956         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
13957
13958 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
13959
13960         * doc/md.texi (define_bypass): Say that the instruction names can
13961         be filename-style globs.
13962         * Makefile.in (FNMATCH_H): Define.
13963         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
13964         * genattrtab.c: Include fnmatch.h.
13965         (bypass_list): Change field name from "insn" to "pattern".
13966         (gen_bypass_1): Update accordingly.
13967         (process_bypasses): Use fnmatch to check for matches between
13968         insn reservations and define_bypasses.
13969         * genautomata.c: Include fnmatch.h.
13970         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
13971         and out_pattern respectively.
13972         (gen_bypass, insert_bypass): Update accordingly.
13973         (for_each_matching_insn, process_bypass_2, process_bypass_1)
13974         (process_bypass): New functions.
13975         (process_decls): Use process_bypass.  Update after field name changes.
13976
13977 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
13978
13979         PR target/49687
13980         * config/avr/avr.md (smulqi3_highpart): New insn.
13981         (umulqi3_highpart): New insn.
13982         (*subqi3.ashiftrt7): New insn.
13983         (smulhi3_highpart): New expander.
13984         (umulhi3_highpart): Nex expander.
13985         (*smulhi3_highpart_call): New insn.
13986         (*umulhi3_highpart_call): New insn.
13987         (extend_u): New code attribute.
13988         (extend_prefix): Rename code attribute to extend_su.
13989         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
13990         widening QI/HI multiply.
13991
13992 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
13993
13994         PR tree-optimization/50039
13995         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
13996         that DEF_STMT has a stmt_vec_info.
13997
13998 2011-08-10  Richard Guenther  <rguenther@suse.de>
13999
14000         * tree.h (can_trust_pointer_alignment): Remove.
14001         * builtins.c (can_trust_pointer_alignment): Remove.
14002
14003 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
14004
14005         * c-typeck.c (scalar_to_vector): New function. Try scalar to
14006         vector conversion.
14007         (stv_conv): New enum for scalar_to_vector return type.
14008         (build_binary_op): Adjust.
14009         * doc/extend.texi: Description of scalar to vector expansion.
14010
14011 2011-08-10  Richard Guenther  <rguenther@suse.de>
14012
14013         * tree.h (get_pointer_alignment): Remove max-align argument.
14014         (get_object_alignment): Likewise.
14015         * builtins.c (get_object_alignment_1): Adjust.
14016         (get_object_alignment): Remove max-align argument.
14017         (get_pointer_alignment): Likewise.
14018         (expand_builtin_strlen): Adjust.
14019         (expand_builtin_memcpy): Likewise.
14020         (expand_builtin_mempcpy_args): Likewise.
14021         (expand_builtin_strncpy): Likewise.
14022         (expand_builtin_memset_args): Likewise.
14023         (expand_builtin_memcmp): Likewise.
14024         (expand_builtin_strcmp): Likewise.
14025         (expand_builtin_strncmp): Likewise.
14026         (get_builtin_sync_mem): Likewise.
14027         (fold_builtin_memset): Likewise.
14028         (fold_builtin_memory_op): Likewise.
14029         (expand_builtin_memory_chk): Likewise.
14030         * emit-rtl.c (get_mem_align_offset): Likewise.
14031         (set_mem_attributes_minus_bitpos): Likewise.
14032         * expr.c (expand_assignment): Likewise.
14033         (expand_expr_real_1): Likewise.
14034         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
14035         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
14036         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
14037         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
14038         * value-prof.c (gimple_stringops_transform): Likewise.
14039
14040 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
14041
14042         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
14043         * doc/tm.texi: Regenerate.
14044
14045 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
14046
14047         PR target/29560
14048         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
14049         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
14050         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
14051         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
14052         shift target is unused.
14053
14054 2011-08-10  Richard Guenther  <rguenther@suse.de>
14055
14056         PR tree-optimization/49937
14057         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
14058         using get_object_alignment_1.
14059
14060 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
14061
14062         * config/i386/i386.c (ix86_emit_i387_round): New function.
14063         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
14064         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
14065         Use ix86_emit_i387_round to expand round function for i387 math.
14066         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
14067         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
14068
14069 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14070
14071         * config/sync.c: Move to ../libgcc.
14072         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
14073         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
14074         Remove.
14075
14076 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
14077
14078         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
14079         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
14080         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
14081         Change 'from' and 'to' arguments type to reg_class_t.
14082         (TARGET_REGISTER_MOVE_COST): Define.
14083
14084 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
14085
14086         PR target/50026
14087         Revert:
14088         PR rtl-optimization/49990
14089         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
14090         ignore classes which can not change mode.
14091         (find_costs_and_classes): Ditto.
14092
14093 2011-08-09  Richard Guenther  <rguenther@suse.de>
14094
14095         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
14096         information for ranges with only negative values.
14097         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
14098         BIT_AND_EXPR handling to handle ranges with negative values.
14099
14100 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14101
14102         * config/i386/i386.c: Remove traling spaces.
14103         * config/i386/sse.md: Likewise.
14104         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
14105         (*fma_fmsub_<mode>): Likewise.
14106         (*fma_fnmadd_<mode>): Likewise.
14107         (*fma_fnmsub_<mode>): Likewise.
14108
14109 2011-08-09  Nick Clifton  <nickc@redhat.com>
14110
14111         * config/rx/rx.md: Disable extender peepholes at -O3.
14112
14113 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
14114
14115         PR target/49781
14116         * config/i386/i386.md (reload_noff_load): New.
14117         (reload_noff_store): Ditto.
14118         * config/i386/i386.c (ix86_secondary_reload): Use
14119         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
14120         double-word moves from/to non-offsetable addresses instead of
14121         generating XMM temporary.
14122
14123 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
14124
14125         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
14126
14127 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
14128
14129         PR tree-optimization/50014
14130         * tree-vect-loop.c (vectorizable_reduction): Get def type before
14131         calling vect_get_vec_def_for_stmt_copy ().
14132
14133 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
14134
14135         PR rtl-optimization/49990
14136         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
14137         ignore classes which can not change mode.
14138         (find_costs_and_classes): Ditto.
14139
14140 2011-08-08  Richard Henderson  <rth@redhat.com>
14141
14142         PR middle-end/49990
14143         * config/i386/i386.c (ix86_expand_prologue): Call
14144         for SEH target gen_prologue_use instead of gen_blockage
14145         at prologue's end.
14146
14147 2011-08-08  Martin Jambor  <mjambor@suse.cz>
14148
14149         PR middle-end/49923
14150         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
14151         memory alignment.
14152
14153 2011-08-08  Diego Novillo  <dnovillo@google.com>
14154
14155         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
14156         (DATA_STREAMER_H): New.
14157         (GIMPLE_STREAMER_H): New.
14158         (TREE_STREAMER_H): New.
14159         (STREAMER_HOOKS_H): New.
14160         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
14161         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
14162         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
14163         (data-streamer.o): New.
14164         (data-streamer-in.o): New.
14165         (data-streamer-out.o): New.
14166         (gimple-streamer-in.o): New.
14167         (gimple-streamer-out.o): New.
14168         (streamer-hooks.o): New.
14169         (tree-streamer.o): New.
14170         (tree-streamer-in.o): New.
14171         (tree-streamer-out.o): New.
14172         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
14173         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
14174         GIMPLE_STREAMER_H and TREE_STREAMER_H.
14175         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
14176         GIMPLE_STREAMER_H and TREE_STREAMER_H.
14177         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
14178         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
14179         (ipa-inline-analysis.o): Likewise.
14180         (ipa-pure-const.o): Likewise.
14181         * data-streamer-in.c: New.
14182         * data-streamer-out.c: New.
14183         * data-streamer.c: New.
14184         * data-streamer.h: New.
14185         * gimple-streamer-in.c: New.
14186         * gimple-streamer-out.c: New.
14187         * gimple-streamer.h: New.
14188         * ipa-inline-analysis.c: Include data-streamer.h.
14189         * ipa-prop.c: Include data-streamer.h.
14190         * ipa-pure-const.c: Include data-streamer.h.
14191         * lto-cgraph.c: Include data-streamer.h.
14192         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
14193         (lto_input_widest_uint_uleb128): Likewise.
14194         (lto_input_sleb128): Likewise.
14195         (bp_unpack_var_len_unsigned): Likewise.
14196         (bp_unpack_var_len_int): Likewise.
14197         * lto-section-out.c (lto_output_uleb128_stream): Move to
14198         data-streamer-out.c.
14199         (lto_output_widest_uint_uleb128_stream): Likewise.
14200         (lto_output_sleb128_stream): Likewise.
14201         (bp_pack_var_len_unsigned): Likewise.
14202         (bp_pack_var_len_int): Likewise.
14203         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
14204         (struct string_slot): Remove.  Update all users.
14205         (lto_tag_check_set): Make extern.
14206         (lto_tag_check_range): Move to lto-streamer.h.
14207         (lto_tag_check): Likewise.
14208         (hash_string_slot_node): Remove.  Update all users.
14209         (eq_string_slot_node): Remove.  Update all users.
14210         (string_for_index): Move to data-streamer-in.c
14211         (input_string_internal): Likewise.
14212         (input_string_cst): Move to tree-streamer-in.c.
14213         (input_identifier): Likewise.
14214         (lto_input_string): Move to data-streamer-in.c
14215         (input_record_start): Move to data-streamer.h
14216         (canon_file_name): Use new definition of struct string_slot
14217         from data-streamer.h.  Set S_SLOT.LEN.
14218         (lto_input_location): Make extern.
14219         (lto_input_chain): Move to tree-streamer-in.c.
14220         (lto_init_eh): Make extern.
14221         (input_phi): Move to gimple-streamer-in.c.
14222         (input_gimple_stmt): Likewise.
14223         (input_bb): Likewise.
14224         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
14225         (unpack_ts_real_cst_value_fields): Likewise.
14226         (unpack_ts_fixed_cst_value_fields): Likewise.
14227         (unpack_ts_decl_common_value_fields): Likewise.
14228         (unpack_ts_decl_wrtl_value_fields): Likewise.
14229         (unpack_ts_decl_with_vis_value_fields): Likewise.
14230         (unpack_ts_function_decl_value_fields): Likewise.
14231         (unpack_ts_type_common_value_fields): Likewise.
14232         (unpack_ts_block_value_fields): Likewise.
14233         (unpack_ts_translation_unit_decl_value_fields): Likewise.
14234         (unpack_value_fields): Likewise.
14235         (lto_materialize_tree): Likewise.
14236         (lto_input_ts_common_tree_pointers): Likewise.
14237         (lto_input_ts_vector_tree_pointers): Likewise.
14238         (lto_input_ts_complex_tree_pointers): Likewise.
14239         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
14240         (lto_input_ts_decl_common_tree_pointers): Likewise.
14241         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
14242         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
14243         (lto_input_ts_field_decl_tree_pointers): Likewise.
14244         (lto_input_ts_function_decl_tree_pointers): Likewise.
14245         (lto_input_ts_type_common_tree_pointers): Likewise.
14246         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14247         (lto_input_ts_list_tree_pointers): Likewise.
14248         (lto_input_ts_vec_tree_pointers): Likewise.
14249         (lto_input_ts_exp_tree_pointers): Likewise.
14250         (lto_input_ts_block_tree_pointers): Likewise.
14251         (lto_input_ts_binfo_tree_pointers): Likewise.
14252         (lto_input_ts_constructor_tree_pointers): Likewise.
14253         (lto_input_ts_target_option): Likewise.
14254         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
14255         (lto_input_tree_pointers): Likewise.
14256         (lto_get_pickled_tree): Likewise.
14257         (lto_get_builtin_tree): Likewise.
14258         (lto_read_tree): Likewise.
14259         (lto_input_integer_cst): Likewise.
14260         (lto_input_tree): Likewise.
14261         * lto-streamer-out.c: Include data-streamer.h,
14262         gimple-streamer.h and streamer-hooks.h.
14263         (struct string_slot): Move to data-streamer.h.
14264         (hash_string_slot_node): Likewise.
14265         (eq_string_slot_node): Likewise.
14266         (lto_string_index): Move to data-streamer-out.c.
14267         (lto_output_string_with_length): Likewise.
14268         (lto_output_string): Likewise.
14269         (output_string_cst): Move to tree-streamer-out.c.
14270         (output_identifier): Likewise.
14271         (output_zero): Move to data-streamer-out.c
14272         (output_uleb128): Likewise.
14273         (output_sleb128): Likewise.
14274         (output_record_start): Move to data-streamer.h
14275         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
14276         (pack_ts_real_cst_value_fields): Likewise.
14277         (pack_ts_fixed_cst_value_fields): Likewise.
14278         (pack_ts_decl_common_value_fields): Likewise.
14279         (pack_ts_decl_wrtl_value_fields): Likewise.
14280         (pack_ts_decl_with_vis_value_fields): Likewise.
14281         (pack_ts_function_decl_value_fields): Likewise.
14282         (pack_ts_type_common_value_fields): Likewise.
14283         (pack_ts_block_value_fields): Likewise.
14284         (pack_ts_translation_unit_decl_value_fields): Likewise.
14285         (pack_value_fields): Likewise.
14286         (lto_output_chain): Likewise.
14287         (lto_output_ts_common_tree_pointers): Likewise.
14288         (lto_output_ts_vector_tree_pointers): Likewise.
14289         (lto_output_ts_complex_tree_pointers): Likewise.
14290         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
14291         (lto_output_ts_decl_common_tree_pointers): Likewise.
14292         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
14293         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
14294         (lto_output_ts_field_decl_tree_pointers): Likewise.
14295         (lto_output_ts_function_decl_tree_pointers): Likewise.
14296         (lto_output_ts_type_common_tree_pointers): Likewise.
14297         (lto_output_ts_type_non_common_tree_pointers): Likewise.
14298         (lto_output_ts_list_tree_pointers): Likewise.
14299         (lto_output_ts_vec_tree_pointers): Likewise.
14300         (lto_output_ts_exp_tree_pointers): Likewise.
14301         (lto_output_ts_block_tree_pointers): Likewise.
14302         (lto_output_ts_binfo_tree_pointers): Likewise.
14303         (lto_output_ts_constructor_tree_pointers): Likewise.
14304         (lto_output_ts_target_option): Likewise.
14305         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
14306         (lto_output_tree_pointers): Likewise.
14307         (lto_output_tree_header): Likewise.
14308         (lto_output_builtin_tree): Likewise.
14309         (lto_write_tree): Likewise.
14310         (lto_output_integer_cst): Likewise.
14311         (lto_output_tree): Likewise.
14312         (output_phi): Move to gimple-streamer-out.c.
14313         (output_gimple_stmt): Likewise.
14314         (output_bb): Likewise.
14315         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
14316         (streamer_hooks): Move to streamer-hooks.c.
14317         (check_handled_ts_structures): Move to tree-streamer.c
14318         (lto_streamer_cache_add_to_node_array): Likewise.
14319         (lto_streamer_cache_insert_1): Likewise.
14320         (lto_streamer_cache_insert): Likewise.
14321         (lto_streamer_cache_insert_at): Likewise.
14322         (lto_streamer_cache_append): Likewise.
14323         (lto_streamer_cache_lookup): Likewise.
14324         (lto_streamer_cache_get): Likewise.
14325         (lto_record_common_node): Likewise.
14326         (lto_preload_common_nodes): Likewise.
14327         (lto_streamer_cache_create): Likewise.
14328         (lto_streamer_cache_delete): Likewise.
14329         (streamer_hooks_init): Move to streamer-hooks.c.
14330         * lto-streamer.h: Include diagnostic.h
14331         (struct output_block, struct lto_input_block,
14332         struct data_in, struct bitpack_d): Remove forward declarations.
14333         (struct bitpack_d): Move to data-streamer.h.
14334         (struct lto_streamer_cache_d): Move to tree-streamer.h.
14335         (struct streamer_hooks): Move to streamer-hooks.h.
14336         (bp_pack_var_len_unsigned): Move to data-streamer.h.
14337         (bp_pack_var_len_int): Likewise.
14338         (bp_unpack_var_len_unsigned): Likewise.
14339         (bp_unpack_var_len_int): Likewise.
14340         (lto_input_location): Declare.
14341         (lto_tag_check_set): Declare.
14342         (lto_init_eh): Declare.
14343         (lto_output_tree_ref): Declare.
14344         (lto_output_location): Declare.
14345         (bitpack_create): Move to data-streamer.h.
14346         (bp_pack_value): Likewise.
14347         (lto_output_bitpack): Likewise.
14348         (lto_input_bitpack): Likewise.
14349         (bp_unpack_value): Likewise.
14350         (lto_output_1_stream): Likewise.
14351         (lto_input_1_unsigned): Likewise.
14352         (lto_output_int_in_range): Likewise.
14353         (lto_input_int_in_range): Likewise.
14354         (bp_pack_int_in_range): Likewise.
14355         (bp_unpack_int_in_range): Likewise.
14356         (lto_output_enum): Likewise.
14357         (lto_input_enum): Likewise.
14358         (bp_pack_enum): Likewise.
14359         (bp_unpack_enum): Likewise.
14360         * streamer-hooks.c: New.
14361         * streamer-hooks.h: New.
14362         * tree-streamer-in.c: New.
14363         * tree-streamer-out.c: New.
14364         * tree-streamer.c: New.
14365         * tree-streamer.h: New.
14366
14367 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14368
14369         * gthr-posix95.h: Remove.
14370         * gthr.h [_PTHREADS95]: Remove.
14371         * configure.ac (enable_threads): Remove posix95.
14372         * configure: Regenerate.
14373         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
14374
14375 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
14376
14377         PR target/49781
14378         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
14379         SImode addresses.
14380         (ix86_print_operand_address): Handle zero-extended addresses.
14381         (memory_address_length): Add length of addr32 prefix for
14382         zero-extended addresses.
14383         (ix86_secondary_reload): Handle moves to/from double-word general
14384         registers from/to zero-extended addresses.
14385         * config/i386/predicates.md (lea_address_operand): Reject
14386         zero-extended operands.
14387
14388 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
14389
14390         PR other/48007
14391         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
14392
14393         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
14394         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
14395
14396         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
14397         (_Unwind_Context_Reg_Val): Likewise.
14398         (_Unwind_Get_Unwind_Word): Likewise.
14399         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
14400         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
14401         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
14402         for EXTENDED_CONTEXT_BIT.
14403         (__frame_state_for): Likewise.
14404         (uw_init_context_1): Likewise.
14405         (_Unwind_GetGR): Updated.
14406         (_Unwind_SetGR): Likewise.
14407         (_Unwind_GetGRPtr): Likewise.
14408         (_Unwind_SetGRPtr): Likewise.
14409         (_Unwind_SetGRValue): Likewise.
14410         (_Unwind_GRByValue): Likewise.
14411         (uw_install_context_1): Likewise.
14412
14413         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
14414         ASSUME_EXTENDED_UNWIND_CONTEXT.
14415         * doc/tm.texi: Regenerated.
14416
14417 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14418
14419         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
14420
14421 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14422
14423         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
14424         Linux/GNU-specific.
14425         (DEC Alpha Options, -mtune): Likewise.
14426         (MIPS Options, -march): native is supported on IRIX.
14427
14428 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14429
14430         * config/sparc/driver-sparc.c: New file.
14431         * config/sparc/x-sparc: New file.
14432         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
14433         * config/sparc/sparc.opt (native): New value for enum processor_type.
14434         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
14435         * config/sparc/sparc.c (sparc_option_override): Abort if
14436         PROCESSOR_NATIVE gets here.
14437         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
14438         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
14439         DRIVER_SELF_SPECS): Define.
14440         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
14441         (SPARC Options, -mtune): Likewise.
14442         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
14443         Substitute result.
14444         * configure: Regenerate.
14445         * Makefile.in (EXTRA_GCC_LIBS): Set.
14446         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
14447         (cpp$(exeext)): Likewise.
14448
14449 2011-08-08  Richard Guenther  <rguenther@suse.de>
14450
14451         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
14452         split out from ...
14453         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
14454         by composition.
14455
14456 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
14457
14458         PR tree-optimization/50005
14459         * ipa-inline-analysis (remap_predicate): Add cast to
14460         silence signed/unsigned comparison warning.
14461
14462 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
14463
14464         * modulo-sched.c (get_sched_window): Use a table for the debug output.
14465         Print the current ii.
14466         (sms_schedule_by_order): Reduce whitespace in dump line.
14467
14468 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
14469
14470         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
14471         and one loop for successors.  Fix upper bound of memory range.
14472
14473 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
14474
14475         PR target/50001
14476         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
14477         (TARGET_INSTANTIATE_DECLS): New define.
14478
14479 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
14480             Mikael Morin  <mikael.morin@sfr.fr>
14481
14482         * Makefile.in (INCLUDES_FOR_TARGET): New.
14483         (LIBGCC2_CFLAGS): Use it.
14484         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
14485
14486 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
14487
14488         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
14489         frame->save_regs_using_mov calculation.
14490
14491 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
14492
14493         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
14494         * config/i386/sse.md (castmode): New mode attribute.
14495         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
14496         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
14497
14498 2011-08-05  Jan Hubicka  <jh@suse.cz>
14499
14500         PR middle-end/49494
14501         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
14502
14503 2011-08-05  Jan Hubicka  <jh@suse.cz>
14504
14505         PR middle-end/49500
14506         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
14507         handle aliases.
14508         (create_emultls_var):New function.
14509         (ipa_lower_emutls): Handle aliases correctly.
14510
14511 2011-08-05  Jan Hubicka  <jh@suse.cz>
14512
14513         PR middle-end/49735
14514         * ipa-inline.c (recursive_inlining): Look through aliases.
14515
14516 2011-08-05  Jason Merrill  <jason@redhat.com>
14517
14518         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
14519         declarations to beginning of function.
14520
14521 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
14522
14523         PR rtl-optimization/49900
14524         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
14525         ensure basic blocks stay in the same order.
14526
14527 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
14528
14529         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
14530         store_bit_field.
14531         (s390_expand_atomic): Same.
14532
14533 2011-08-05  Richard Henderson  <rth@redhat.com>
14534
14535         PR rtl-opt/49977
14536         * dwarf2cfi.c (scan_insn_after): Split out of ...
14537         (scan_trace): ... here.  Correctly place notes wrt sequences.
14538
14539 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
14540             Richard Henderson  <rth@redhat.com>
14541
14542         PR rtl-opt/49982
14543         * expr.c (fixup_args_size_notes): Look through no-op moves.
14544
14545 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
14546
14547         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
14548         of "m" for operand 0.  Add type and mode attribute.
14549         (*pushxf_nointeger"): Use "<" constraint for operand 0.
14550         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
14551         constraint instead of "o" for opreand 1.
14552         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
14553         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
14554         operand 0, alternative 4.
14555         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
14556
14557 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
14558
14559         * config/i386/predicates.md (lea_address_operand): Rename from
14560         no_seg_address_operand.
14561         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
14562         (*lea_1_zext): Ditto.
14563         (*lea_2): Ditto.
14564         (*lea_2_zext): Ditto.
14565
14566 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
14567
14568         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
14569         parts.base and parts.index.
14570         * config/i386/predicates.md (aligned_operand): Ditto.
14571         (cmpxchg8b_pic_memory_operand): Ditto.
14572
14573 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14574
14575         * config/soft-fp: Move to ../libgcc.
14576         * Makefile.in (SFP_MACHINE): Remove.
14577         (libgcc-support): Remove $(SFP_MACHINE) dependency.
14578         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
14579         * config/arm/t-arm-softfp: Move to
14580         ../libgcc/config/arm/t-softfp.
14581         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
14582         * config/c6x/t-c6x-softfp: Remove.
14583         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
14584         * config/i386/t-fprules-softfp: Move to
14585         ../libgcc/config/t-softfp-tf.
14586         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
14587         * config/ia64/t-fprules-softfp: Remove.
14588         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
14589         * config/lm32/t-fprules-softfp: Remove.
14590         * config/moxie/sfp-machine.h: Remove.
14591         * config/moxie/t-moxie-softfp: Remove.
14592         * config/rs6000/darwin-ldouble-format: Move to
14593         ../libgcc/config/rs6000/ibm-ldouble-format.
14594         * config/rs6000/darwin-ldouble.c: Move to
14595         ../libgcc/config/rs6000/ibm-ldouble.c
14596         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
14597         * config/rs6000/libgcc-ppc64.ver: Likewise.
14598         * config/rs6000/sfp-machine.h: Likewise.
14599         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
14600         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
14601         (LIB2FUNCS_EXTRA): Remove.
14602         (TARGET_LIBGCC2_CFLAGS): Remove.
14603         * config/rs6000/t-aix52: Likewise
14604         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
14605         $(srcdir)/config/rs6000/darwin-ldouble.c.
14606         (SHLIB_MAPFILES): Remove.
14607         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
14608         $(srcdir)/config/rs6000/darwin-ldouble.c.
14609         * config/rs6000/t-fprules-softfp: Move to
14610         ../libgcc/config/t-softfp-sfdf.
14611         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
14612         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
14613         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
14614         $(srcdir)/config/rs6000/darwin-ldouble.c.
14615         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
14616         * config/score/t-score-softfp: Remove.
14617         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
14618         soft-fp/t-softfp from tmake_file.
14619         (arm*-*-uclinux*): Likewise.
14620         (arm*-*-ecos-elf): Likewise.
14621         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
14622         (arm*-*-rtems*): Likewise.
14623         (arm*-*-elf): Likewise.
14624         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
14625         tmake_file.
14626         (moxie-*-uclinux*): Likewise.
14627         (moxie-*-rtems*): Likewise.
14628         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
14629         tmake_file.
14630         (lm32-*-rtems*): Likewise.
14631         (lm32-*-uclinux*): Likewise.
14632         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
14633         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
14634         (powerpc-*-linux*, powerpc64-*-linux*): Remove
14635         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
14636         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
14637         tmake_file.
14638         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
14639         tmake_file.
14640         (tic6x-*-uclinux): Likewise.
14641         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
14642         soft-fp/t-softfp from tmake_file.
14643         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
14644         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
14645         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
14646         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
14647         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
14648
14649 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14650
14651         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
14652         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
14653         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
14654         TPBIT, TPBIT_FUNCS.
14655         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
14656         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
14657         Remove.
14658         * config/arm/t-vxworks: Likewise.
14659         * config/arm/t-wince-pe: Likewise.
14660         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
14661         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14662         * config/bfin/t-bfin-elf: Likewise.
14663         * config/bfin/t-bfin-linux: Likewise.
14664         * config/bfin/t-bfin-uclinux: Likewise.
14665         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
14666         Remove.
14667         * config/fr30/t-fr30: Likewise.
14668         * config/frv/t-frv: Likewise.
14669         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
14670         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14671         * config/m32c/t-m32c: Likewise.
14672         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
14673         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14674         * config/mcore/t-mcore: Likewise.
14675         * config/mep/t-mep: Likewise.
14676         * config/microblaze/t-microblaze: Likewise.
14677         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
14678         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14679         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
14680         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14681         * config/mn10300/t-linux: Remove.
14682         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14683         * config/pdp11/t-pdp11: Likewise.
14684         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
14685         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
14686         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14687         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
14688         * config/rs6000/t-aix52: Likewise.
14689         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
14690         $(srcdir)/config/rs6000/ppc64-fp.c.
14691         * config/rs6000/t-fprules-fpbit: Remove.
14692         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
14693         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14694         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
14695         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14696         * config/sparc/t-elf: Likewise.
14697         * config/sparc/t-leon: Likewise.
14698         * config/sparc/t-leon3: Likewise.
14699         * config/spu/t-spu-elf: Likewise.
14700         (DPBIT_FUNCS): Remove.
14701         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14702         * config/v850/t-v850: Likewise.
14703         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
14704         (avr-*-*): Likewise.
14705         (h8300-*-rtems*): Set libgcc_tm_file.
14706         (h8300-*-elf*): Likewise.
14707         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
14708         tmake_file.
14709         (powerpc-*-eabisim*): Likewise.
14710         (powerpc-*-elf*): Likewise.
14711         (powerpc-*-eabialtivec*): Likewise.
14712         (powerpc-xilinx-eabi*): Likewise.
14713         (powerpc-*-eabi*): Likewise.
14714         (powerpc-*-rtems*): Likewise.
14715         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
14716         (powerpcle-*-elf*): Likewise.
14717         (powerpcle-*-eabisim*): Likewise.
14718         (powerpcle-*-eabi*): Likewise.
14719         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
14720         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
14721         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
14722         Remove.
14723
14724 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14725
14726         * Makefile.in (UNWIND_H): Remove.
14727         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
14728         ../libgcc/Makefile.in.
14729         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
14730         (LIBUNWINDDEP): Remove.
14731         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
14732         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
14733         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
14734         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
14735         Don't copy $(UNWIND_H).
14736         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
14737         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
14738         * aclocal.m4: Regenerate.
14739         * configure: Regenerate.
14740         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
14741         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
14742         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
14743         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
14744         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
14745         * config/arm/libunwind.S, config/arm/pr-support.c,
14746         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
14747         ../libgcc/config/arm.
14748         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
14749         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
14750         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
14751         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
14752         ($(T)frvend$(objext)): Likewise.
14753         * config/ia64/t-glibc (LIB2ADDEH): Remove.
14754         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
14755         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
14756         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
14757         ../libgcc/config/ia64.
14758         * config/ia64/t-hpux (LIB2ADDEH): Remove.
14759         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
14760         * config/ia64/t-vms (LIB2ADDEH): Remove.
14761         * config/ia64/vms.h (UNW_IVMS_MODE,
14762         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
14763         * config/picochip/t-picochip (LIB2ADDEH): Remove.
14764         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
14765         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
14766         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
14767         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
14768         $(srcdir)/../libgcc to refer to unwinder sources.
14769         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
14770         * config/t-darwin (LIB2ADDEH): Remove.
14771         * config/t-freebsd (LIB2ADDEH): Remove.
14772         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
14773         * config/t-libunwind-elf: Move to ../libgcc/config.
14774         * config/t-linux (LIB2ADDEH): Remove.
14775         * config/t-sol2 (LIB2ADDEH): Remove.
14776         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
14777         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
14778
14779 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
14780
14781         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
14782
14783         * doc/invoke.texi: Document core-avx-i.
14784
14785 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14786
14787         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
14788
14789 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
14790
14791         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
14792         result of multiple results reduction when extracting the final
14793         value using scalar code.
14794
14795 2011-08-05  Richard Guenther  <rguenther@suse.de>
14796
14797         PR tree-optimization/49984
14798         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
14799
14800 2011-08-05  Richard Guenther  <rguenther@suse.de>
14801
14802         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
14803         return true for constant integer ranges.
14804         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
14805         BIT_IOR_EXPR handling.
14806
14807 2011-08-04  Kai Tietz  <ktietz@redhat.com>
14808
14809         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
14810         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
14811
14812 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
14813
14814         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
14815         pattern def statement, and its access macro.
14816         (NUM_PATTERNS): Set to 5.
14817         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
14818         pattern def statement.
14819         (vect_transform_loop): Likewise.
14820         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
14821         function vect_recog_over_widening_pattern ().
14822         (vect_operation_fits_smaller_type): New function.
14823         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
14824         Likewise.
14825         (vect_pattern_recog_1): Move the code that marks pattern
14826         statements to vect_mark_pattern_stmts (), and call it.  Update
14827         documentation.
14828         * tree-vect-stmts.c (vect_supportable_shift): New function.
14829         (vect_analyze_stmt): Handle pattern def statement.
14830         (new_stmt_vec_info): Initialize pattern def statement.
14831
14832 2011-08-04  Richard Henderson  <rth@redhat.com>
14833
14834         PR target/49964
14835         * config/i386/i386.c (ix86_expand_call): Don't create nested
14836         PARALLELs for TARGET_VZEROUPPER.
14837         (ix86_split_call_vzeroupper): Fix extraction of the original call.
14838         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
14839         recognize nested PARALLELs.
14840         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
14841         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
14842         *sibcall_value_pop_vzeroupper): Likewise.
14843
14844 2011-08-04  Richard Henderson  <rth@redhat.com>
14845
14846         PR middle-end/49968
14847         * calls.c (expand_call): Use fixup_args_size_notes for
14848         emit_stack_restore.
14849         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
14850         in non-standard modes.
14851
14852 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
14853
14854         * gcc.c (self_spec): New variable.
14855         (static_specs): Add self_spec.
14856         (main): Call do_self_spec on "self_spec" specs after reading
14857         user specs files.  Move compare_debug handling right after that.
14858
14859 2011-08-04  Richard Guenther  <rguenther@suse.de>
14860
14861         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
14862         (value_range_nonnegative_p): New function.
14863         (ssa_name_nonnegative_p): Use it.
14864         (value_range_constant_singleton): New function.
14865         (op_with_constant_singleton_value_range): Use it.
14866         (extract_range_from_binary_expr_1): New function, split out from ...
14867         (extract_range_from_binary_expr): ... this.  Remove fallback
14868         constant folding done here.
14869
14870 2011-08-04  Richard Guenther  <rguenther@suse.de>
14871
14872         PR tree-optimization/49806
14873         * tree-vrp.c (op_with_boolean_value_range_p): New function.
14874         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
14875         a new statement for a final conversion to bool.
14876
14877 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
14878
14879         * gengtype-state.c: Include "bconfig.h" if
14880         GENERATOR_FILE is defined, "config.h" otherwise.
14881         * gengtype.c: Likewise.
14882         * gengtype-lex.l: Likewise.
14883         * gengtype-parse.c: Likewise.
14884         * Makefile.in (gengtype-lex.o-warn): New variable.
14885         (plugin_resourcesdir): Likewise.
14886         (plugin_bindir): Likewise.
14887         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
14888         (MOSTLYCLEANFILES): Add gengtype$(exeext).
14889         (native): Depend on gengtype$(exeext) is $enable_plugin
14890         is set to "yes".
14891         (gtype.state): Depend on s-gtype. Use temporary file.
14892         (gengtype-lex.o): New rule.
14893         (gengtype-parse.o): Likewise.
14894         (gengtype-state.o): Likewise.
14895         (gengtype$(exeext)): Likewise.
14896         (install-gengtype): Likewise.
14897         (gengtype.o): Likewise.
14898         (build/gengtype.o): Depend on version.h.
14899         (build/gengtype-state): Depend on double-int.h, version.h,
14900         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
14901         (install-plugin): Depend on install-gengtype.
14902
14903 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
14904
14905         PR middle-end/49905
14906         * tree.h (init_attributes): New prototype.
14907         * attribs.c (init_attributes): No longer static.
14908
14909 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14910
14911         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
14912         maybe_suffix.
14913
14914 2011-08-03  David Li  <davidxl@google.com>
14915
14916         * tree-optimize.c (execute_fixup_cfg): Fix up entry
14917         outgoing edge counts after inlining.
14918
14919 2011-08-03  David Li  <davidxl@google.com>
14920
14921         * profile.c (compute_branch_probabilities): Compute
14922         function frequency after profile annotation.
14923
14924 2011-08-04  Alan Modra  <amodra@gmail.com>
14925
14926         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
14927         use_backchain_to_restore_sp initialisation.
14928         (rs6000_legitimate_offset_address_p): Simplify offset test.
14929
14930 2011-08-03  Richard Henderson  <rth@redhat.com>
14931
14932         * config/spu/spu.md: Use define_c_enum instead of define_constants.
14933         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
14934         (UNSPECV_NOP): New.
14935
14936 2011-08-03  Richard Henderson  <rth@redhat.com>
14937
14938         PR target/34888
14939         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
14940
14941 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
14942
14943         PR tree-optimization/49948
14944         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
14945
14946 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
14947
14948         * config/m32c/m32c.c (class_sizes): Remove.
14949         (reduce_class): Change arguments and return type to reg_class_t.
14950         Change type cc var to HARD_REG_SET. Change type best var to
14951         reg_class_t. Change type best_size var to unsigned int. Remove
14952         initialization class_sizes var. Use reg_class_size array instead
14953         of class_sizes. Use reg_class_contents array instead
14954         of class_contents.
14955
14956 2011-08-03  Richard Guenther  <rguenther@suse.de>
14957
14958         PR middle-end/49958
14959         * fold-const.c (fold_binary_loc): Only associate
14960         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
14961         overflow wraps.
14962
14963 2011-08-03  Alan Modra  <amodra@gmail.com>
14964
14965         PR rtl-optimization/49941
14966         * jump.c (mark_jump_label): Comment.
14967         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
14968         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
14969         (mark_used_flags): Don't mark RETURN.
14970
14971 2011-08-03  Richard Guenther  <rguenther@suse.de>
14972
14973         PR tree-optimization/49938
14974         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
14975         deal with a POLYNOMIAL_CHREC.
14976
14977 2011-08-03  Revital Eres  <revital.eres@linaro.org>
14978
14979         * modulo-sched.c (calculate_stage_count,
14980         calculate_must_precede_follow, get_sched_window,
14981         try_scheduling_node_in_cycle, remove_node_from_ps): Add
14982         declaration.
14983         (update_node_sched_params, set_must_precede_follow, optimize_sc):
14984         New functions.
14985         (reset_sched_times): Call update_node_sched_params.
14986         (sms_schedule): Call optimize_sc.
14987         (get_sched_window): Change function arguments.
14988         (sms_schedule_by_order): Update call to get_sched_window.
14989         Call set_must_precede_follow.
14990         (calculate_stage_count): Add function argument.
14991
14992 2011-08-02  Richard Henderson  <rth@redhat.com>
14993
14994         PR target/49864
14995         PR target/49879
14996         * reg-notes.def (REG_ARGS_SIZE): New.
14997         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
14998         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
14999         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
15000         different stack levels.
15001         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
15002         (maybe_move_args_size_note): New.
15003         (combine_stack_adjustments_for_block): Use it.
15004         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
15005         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
15006         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
15007         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
15008         (cur_cfa): New.
15009         (queued_args_size): Remove.
15010         (add_cfi_args_size): Assert size is non-negative.
15011         (stack_adjust_offset, dwarf2out_args_size): Remove.
15012         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
15013         (notice_args_size, notice_eh_throw): New.
15014         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
15015         (dwarf2out_frame_debug_adjust_cfa): Likewise.
15016         (dwarf2out_frame_debug_cfa_offset): Likewise.
15017         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
15018         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
15019         (change_cfi_row): Don't emit args_size.
15020         (maybe_record_trace_start_abnormal): Split out from ...
15021         (maybe_record_trace_start): Here.  Set args_size_undefined.
15022         (create_trace_edges): Update to match.
15023         (scan_trace): Handle REG_ARGS_SIZE.
15024         (connect_traces): Connect args_size between EH insns.
15025         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
15026         * explow.c (suppress_reg_args_size): New.
15027         (adjust_stack_1): Split out from ...
15028         (adjust_stack): ... here.
15029         (anti_adjust_stack): Use it.
15030         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
15031         * expr.c (mem_autoinc_base): New.
15032         (fixup_args_size_notes): New.
15033         (emit_single_push_insn_1): Rename from emit_single_push_insn.
15034         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
15035         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
15036         * reload1.c (reload_as_needed): Likewise.
15037         * rtl.h (fixup_args_size_notes): Declare.
15038
15039 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
15040
15041         PR bootstrap/49914
15042         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
15043         of abs.
15044         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
15045         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
15046
15047 2011-08-02  Richard Henderson  <rth@redhat.com>
15048
15049         * config/h8300/h8300.c (push, pop): Return the insn.
15050         (h8300_swap_into_er6): Generate correct unwind info.
15051         (h8300_swap_out_of_er6): Likewise.
15052         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
15053         complex cfa expression.
15054         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
15055
15056 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
15057
15058         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
15059
15060 2011-08-02  Richard Henderson  <rth@redhat.com>
15061
15062         PR target/49878
15063         * config/h8300/h8300.c (h8300_move_ok): New.
15064         * config/h8300/h8300-protos.h: Declare it.
15065         * config/h8300/h8300.md (P): New mode iterator.
15066         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
15067         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
15068         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
15069         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
15070         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
15071         and pushqi1_h8300hs_normal; use PRE_MODIFY and
15072         register_no_sp_elim_operand.
15073         (*pushhi1_h8300hs_<P>): Similarly.
15074         (pushqi1, pushhi1, pushhi1_h8300): Remove.
15075         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
15076
15077 2011-08-02  Richard Henderson  <rth@redhat.com>
15078
15079         PR target/49881
15080         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
15081
15082 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
15083
15084         * c-parser.c (enum c_parser_prec): New enum, moved from within
15085         c_parser_binary_expression.
15086         (c_parser_binary_expression): Add PREC argument.  Stop parsing
15087         if operator has lower or equal precedence than PREC.
15088         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
15089         callers.
15090         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
15091         Adjust c_finish_omp_atomic caller.
15092         (c_parser_omp_taskyield): New function.
15093         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
15094         (c_parser_omp_clause_name): Handle final and mergeable clauses.
15095         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
15096         functions.
15097         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
15098         and PRAGMA_OMP_CLAUSE_MERGEABLE.
15099         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
15100         (c_parser_omp_clause_reduction): Handle min and max.
15101         * c-typeck.c (c_finish_omp_clauses): Don't complain about
15102         const qualified predetermined vars in firstprivate clause.
15103         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15104         Handle MIN_EXPR and MAX_EXPR.
15105         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
15106         and OMP_CLAUSE_MERGEABLE.
15107         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
15108         and OMP_ATOMIC_CAPTURE_NEW.
15109         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
15110         OMP_CLAUSE_MERGEABLE.
15111         (omp_clause_code_name): Likewise.
15112         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15113         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
15114         and OMP_CLAUSE_MERGEABLE.
15115         (OMP_CLAUSE_FINAL_EXPR): Define.
15116         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
15117         OMP_CLAUSE_MERGEABLE.
15118         (expand_task_call): Likewise.
15119         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
15120         (expand_omp_atomic_fetch_op): Handle cases where old or new
15121         value is needed afterwards.
15122         (expand_omp_atomic): Call expand_omp_atomic_load resp.
15123         expand_omp_atomic_store.
15124         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
15125         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
15126         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
15127         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15128         * tree-nested.c (convert_nonlocal_omp_clauses,
15129         convert_local_omp_clauses): Likewise.
15130         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
15131         OMP_ATOMIC_CAPTURE_NEW): New.
15132         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
15133         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
15134         New inlines.
15135         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
15136         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
15137         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15138
15139 2011-08-02  Kai Tietz  <ktietz@redhat.com>
15140
15141         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
15142         boolean-type.
15143         (ssa_forward_propagate_and_combine): Interprete result of
15144         forward_propagate_comparison.
15145         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
15146         boolean-typed operands for comparisons.
15147
15148 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
15149
15150         * config/avr/libgcc.S: Gather related function in the
15151         same input section.
15152         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
15153         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
15154         references.
15155         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
15156         __udivmodsi4, __divmodsi4, __prologue_saves__,
15157         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
15158         __do_copy_data, __do_clear_bss, __do_global_ctors,
15159         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
15160
15161 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
15162
15163         PR target/47766
15164         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
15165         (stack_protect_test): The pattern compares ptr_mode value.
15166
15167 2011-08-02  Alan Modra  <amodra@gmail.com>
15168
15169         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
15170         note for save_LR_around_toc_setup sequence.
15171
15172 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
15173
15174         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
15175
15176 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
15177             Joseph Myers  <joseph@codesourcery.com>
15178
15179         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
15180         * hwint.c: Include diagnostic-core.h.
15181         (abs_hwi): New.
15182         (gcd): Moved here...
15183         (pos_mul_hwi): New.
15184         (mul_hwi): New.
15185         (least_common_multiple): Moved here...
15186         * hwint.h (gcd): ... from here.
15187         (least_common_multiple): ... from here.
15188         (HOST_WIDE_INT_MIN): New.
15189         (HOST_WIDE_INT_MAX): New.
15190         (abs_hwi): Declared.
15191         (gcd): Declared.
15192         (pos_mul_hwi): Declared.
15193         (mul_hwi): Declared.
15194         (least_common_multiple): Declared.
15195         * omega.c (check_pos_mul): Removed.
15196         (check_mul): Removed.
15197         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
15198         mul_hwi instead of check_mul.
15199
15200 2011-08-01  Richard Henderson  <rth@redhat.com>
15201
15202         PR target/49881
15203         * config/avr/avr.h (PUSH_ROUNDING): New.
15204         * config/avr/avr.md (pushqi1): Rename from *pushqi.
15205         (*pushhi, *pushsi, *pushsf): Remove.
15206         (MPUSH): New mode iterator.
15207         (push<MPUSH>1): New expander.
15208
15209 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
15210
15211         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
15212         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
15213         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
15214         mmix_preferred_output_reload_class): Remove.
15215         * config/mmix/mmix.c (mmix_preferred_reload_class,
15216         mmix_preferred_output_reload_class): Make static. Change rclass
15217         argument and return type to reg_class_t.
15218         (TARGET_PREFERRED_RELOAD_CLASS,
15219         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15220
15221 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
15222
15223         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
15224         handling.
15225
15226 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
15227
15228         PR target/47766
15229         * config/i386/i386.md (PTR): New.
15230         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
15231         (stack_protect_test): Likewise.
15232         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
15233         (stack_tls_protect_set_<mode>): Likewise.
15234         (stack_tls_protect_test_<mode>): Likewise.
15235
15236 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
15237
15238         PR target/49927
15239         * config/i386/i386.c (ix86_address_subreg_operand): New.
15240         (ix86_decompose_address): Use ix86_address_subreg_operand.
15241         (ix86_legitimate_address_p): Do not assert that subregs satisfy
15242         register_no_elim_operand in DImode.
15243
15244 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
15245
15246         PR tree-optimization/49926
15247         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
15248         in a chain doesn't have uses both inside and outside the loop.
15249
15250 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
15251
15252         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
15253         * config/avr/avr-devices.c (avr_mcu_types): Use it.
15254         * config/avr/avr-mcus.def (AVR_MCU): Use it.
15255         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
15256         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
15257         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
15258         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
15259         to detect if XJMP must not be skipped.
15260
15261 2011-08-02  Alan Modra  <amodra@gmail.com>
15262
15263         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
15264         Delete.
15265         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
15266         (rs6000_emit_prologue): Don't prematurely return when
15267         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
15268         save_toc_in_prologue case.
15269         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
15270         calls_alloca.
15271
15272 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
15273
15274         * config/avr/avr-devices.c: Delete SVN property svn:executable.
15275         * config/avr/predicates.md: Ditto.
15276         * config/avr/driver-avr.c: Ditto.
15277         * config/avr/genopt.sh: Set SVN property svn:executable to *.
15278
15279 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
15280
15281         * calls.c (emit_library_call_value_1): Declare size only if
15282         BLOCK_REG_PADDING is defined.
15283
15284 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
15285
15286         PR target/49547
15287         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
15288         (x86_64-*-*): Likewise.
15289         * config/i386/i386.opt (mlzcnt): New.
15290         * config/i386/abmintrin.h: File removed.
15291         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
15292         * config/i386/lzcntintrin.h: ... here.  New file.
15293         (__lzcnt): Rename to ...
15294         (__lzcnt32): ... this.
15295         * config/i386/bmiintrin.h (head): Update copyright year.
15296         (__lzcnt_u16): Removed.
15297         (__lzcnt_u32): Likewise.
15298         (__lzcnt_u64): Likewise.
15299         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
15300         is defined, remove abmintrin.h.
15301         * config/i386/cpuid.h (bit_LZCNT): New.
15302         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15303         LZCNT feature.
15304         * config/i386/i386-c.c (ix86_target_macros_internal): Define
15305         __LZCNT__ if needed.
15306         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
15307         (ix86_option_override_internal): Handle LZCNT option.
15308         (ix86_valid_target_attribute_inner_p): Likewise.
15309         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
15310         * config/i386/i386.h (TARGET_LZCNT): New.
15311         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
15312         * config/i386/i386.md (clz<mode>2): Update insn constraint.
15313         (clz<mode>2_lzcnt): Likewise.
15314         * doc/invoke.texi: Mention -mlzcnt option.
15315         * doc/extend.texi: Likewise.
15316
15317 2011-08-01  Julian Brown  <julian@codesourcery.com>
15318
15319         * configure.ac (fixed-point): Add ARM support.
15320         * configure: Regenerate.
15321         * config/arm/arm.c (arm_fixed_mode_set): New struct.
15322         (arm_set_fixed_optab_libfunc): New.
15323         (arm_set_fixed_conv_libfunc): New.
15324         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
15325         ARM-specific names.
15326         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
15327         return values in SImode.
15328         (arm_return_in_msb): Return fixed-point types in the msb.
15329         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
15330         upwards.
15331         (arm_scalar_mode_supported_p): Support fixed-point modes.
15332         (arm_vector_mode_supported_p): Support vector fixed-point modes.
15333         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
15334         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
15335         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
15336         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
15337         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
15338         New mode iterators.
15339         (qaddsub_suf): New mode attribute.
15340         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
15341         vector modes.
15342         * config/arm/predicates.md (sat_shift_operator): New predicate.
15343         * config/arm/arm-fixed.md: New.
15344         * config/arm/arm.md: Include arm-fixed.md.
15345         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
15346
15347 2011-08-01  Julian Brown  <julian@codesourcery.com>
15348
15349         * calls.c (emit_library_call_value_1): Support padding for libcall
15350         arguments and return values.
15351         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
15352         downwards in big-endian mode.
15353
15354 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15355
15356         PR debug/49887
15357         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
15358         * config/sol2-protos.h: Likewise.
15359         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
15360         solaris_code_end.
15361         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
15362         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
15363         solaris_file_end.
15364         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
15365
15366 2011-08-01  Julian Brown  <julian@codesourcery.com>
15367
15368         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
15369
15370 2011-08-01  Julian Brown  <julian@codesourcery.com>
15371
15372         * final.c (output_addr_const): Print fixed-point constants as
15373         decimal not hex.
15374
15375 2011-08-01  Richard Guenther  <rguenther@suse.de>
15376
15377         * stor-layout.c (initialize_sizetypes): Properly sign-extend
15378         bitsiztype TYPE_MAX_VALUE.
15379
15380 2011-08-01  Julian Brown  <julian@codesourcery.com>
15381
15382         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
15383         comparison helpers.
15384
15385 2011-07-31  Richard Henderson  <rth@redhat.com>
15386
15387         * config/h8300/crti.asm: Add flags to .section directive.
15388         * config/h8300/crtn.asm: Likewise.
15389
15390 2011-07-31  Richard Henderson  <rth@redhat.com>
15391
15392         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
15393         * tree.c (build_common_tree_nodes): Likewise.
15394
15395 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
15396
15397         PR target/49880
15398         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
15399         (divsi3_i1): Likewise.
15400
15401 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15402
15403         PR tree-optimization/49749
15404         * tree-ssa-reassoc.c (get_rank): New forward declaration.
15405         (PHI_LOOP_BIAS): New macro.
15406         (phi_rank): New function.
15407         (loop_carried_phi): Likewise.
15408         (propagate_rank): Likewise.
15409         (get_rank): Add calls to phi_rank and propagate_rank.
15410
15411 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
15412
15413         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
15414         of TARGET_64BIT.
15415         (PTRDIFF_TYPE): Likewise.
15416
15417 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
15418
15419         PR target/49920
15420         * config/i386/i386.md (strset): Do not expand strset_singleop
15421         when %eax or $edi are fixed.
15422         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
15423         (*strsetsi_1): Ditto.
15424         (*strsethi_1): Ditto.
15425         (*strsetqi_1): Ditto.
15426         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
15427         (*rep_stossi): Ditto.
15428         (*rep_stosqi): Ditto.
15429         (*strlenqi_1): Ditto.
15430         (cmpstrnsi): Also fail when %ecx is fixed.
15431         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
15432         (*cmpstrnqi_1): Ditto.
15433         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
15434         (*strmovsi_1): Ditto.
15435         (*strmovhi_1): Ditto.
15436         (*strmovqi_1): Ditto.
15437         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
15438         (*rep_movsi): Ditto.
15439         (*rep_movqi): Ditto.
15440
15441 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
15442
15443         PR target/47908
15444         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
15445         Disable instruction scheduling for non-ColdFire targets.
15446         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
15447
15448 2011-07-31  Revital Eres  <revital.eres@linaro.org>
15449
15450         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
15451         of anti-dep edge from a branch.
15452         (add_cross_iteration_register_deps): Create anti-dep edge from
15453         a branch.
15454
15455 2011-07-31  Revital Eres  <revital.eres@linaro.org>
15456
15457         * modulo-sched.c: Change comment.
15458         (reset_sched_times): Fix print message.
15459         (print_partial_schedule): Add print info.
15460
15461 2011-07-31  Tom de Vries  <tom@codesourcery.com>
15462
15463         PR middle-end/43513
15464         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
15465         get_object_alignment and TYPE_ALIGN.
15466
15467 2011-07-30  Tom de Vries  <tom@codesourcery.com>
15468
15469         PR middle-end/43513
15470         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
15471         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
15472
15473 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15474
15475         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
15476         <sys/sbd.h>.
15477         (cpu_types): New array.
15478         (cputype): New function.
15479         (host_detect_local_cpu): Only define buf, f if !__sgi__.
15480         Use scaninvent instead of /proc/cpuinfo if __sgi__.
15481         * config.host: Also use driver-native.o, mips/x-native on
15482         mips-sgi-irix*.
15483         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
15484         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
15485         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
15486
15487 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
15488
15489         PR middle-end/49897
15490         PR middle-end/49898
15491         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
15492         in nested parallel and outer is a gimple_reg, mark it as addressable
15493         and set its bit in task_shared_vars bitmap too.
15494
15495 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
15496
15497         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
15498
15499 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15500
15501         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
15502         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
15503         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
15504         AMASK_LOCKPFTCHOK): Define.
15505         (host_detect_local_cpu): Remove buf, f, cpu_names.
15506         Define cpu_types, implver, amask.
15507         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
15508         native CPU.
15509         * config.host: Also use driver-alpha.o, alpha/x-alpha on
15510         alpha*-dec-osf*.
15511         * config/alpha/osf5.h [__alpha__ || __alpha]
15512         (host_detect_local_cpu): Declare.
15513         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
15514         (DRIVER_SELF_SPECS): Define.
15515
15516 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
15517
15518         PR target/47715
15519         * config/i386/i386.md (*load_tp_x32): New.
15520         (*load_tp_x32_zext): Ditto.
15521         (*add_tp_x32): Ditto.
15522         (*add_tp_x32_zext): Ditto.
15523         (*load_tp_<mode>): Disable for TARGET_X32 targets.
15524         (*add_tp_<mode>): Ditto.
15525         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
15526         ptr_mode and convert to Pmode if needed.
15527
15528 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
15529
15530         PR target/49687
15531         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
15532         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
15533         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
15534         Add X to register footprint: Clobber r26/r27.
15535
15536 2011-07-29  Richard Guenther  <rguenther@suse.de>
15537
15538         * builtins.c (fold_builtin_signbit): Build the comparison
15539         with a proper type.
15540
15541 2011-07-29  Richard Guenther  <rguenther@suse.de>
15542
15543         PR tree-optimization/49893
15544         * tree-predcom.c (suitable_reference_p): Volatile references
15545         are not suitable.
15546
15547 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
15548
15549         PR target/49313
15550         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
15551         (__ctzsi2): Result for 0 may be undefined.
15552         (__ctzhi2): Result for 0 may be undefined.
15553         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
15554         (__popcountsi2): Ditto. And don't clobber r26.
15555         (__popcountdi2): Ditto. And don't clobber r27.
15556         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
15557         (parityhi2): New expand.
15558         (paritysi2): New expand.
15559         (popcounthi2): New expand.
15560         (popcountsi2): New expand.
15561         (clzhi2): New expand.
15562         (clzsi2): New expand.
15563         (ctzhi2): New expand.
15564         (ctzsi2): New expand.
15565         (ffshi2): New expand.
15566         (ffssi2): New expand.
15567         (copysignsf3): New insn.
15568         (bswapsi2): New expand.
15569         (*parityhi2.libgcc): New insn.
15570         (*parityqihi2.libgcc): New insn.
15571         (*paritysihi2.libgcc): New insn.
15572         (*popcounthi2.libgcc): New insn.
15573         (*popcountsi2.libgcc): New insn.
15574         (*popcountqi2.libgcc): New insn.
15575         (*popcountqihi2.libgcc): New insn-and-split.
15576         (*clzhi2.libgcc): New insn.
15577         (*clzsihi2.libgcc): New insn.
15578         (*ctzhi2.libgcc): New insn.
15579         (*ctzsihi2.libgcc): New insn.
15580         (*ffshi2.libgcc): New insn.
15581         (*ffssihi2.libgcc): New insn.
15582         (*bswapsi2.libgcc): New insn.
15583
15584 2011-07-29  Richard Guenther  <rguenther@suse.de>
15585
15586         * tree-vrp.c (get_value_range): Only set parameter default
15587         definitions to varying, leave others at undefined.
15588         (extract_range_from_binary_expr): Fix undefined handling.
15589         (vrp_visit_phi_node): Handle merged undefined state.
15590
15591 2011-07-29  Wei Guozhi  <carrot@google.com>
15592
15593         PR rtl-optimization/49799
15594         * combine.c (make_compound_operation): Check if the bit field is valid
15595         before change it to bit field extraction.
15596
15597 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
15598
15599         PR rtl-optimization/49891
15600         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
15601         newly created returnjumps.
15602
15603 2011-07-28  DJ Delorie  <dj@redhat.com>
15604
15605         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
15606         local frame in a naked function, and produce a suitable error for
15607         that specific case.
15608
15609         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
15610         registers to be reloaded in HI classes when the target is HI.
15611
15612 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
15613
15614         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
15615         bound_one, bound_two.
15616
15617 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
15618
15619         PR middle-end/48648
15620         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
15621         CLAST assignments.
15622         (translate_clast): Same.
15623         (translate_clast_assignment): New.
15624
15625 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
15626
15627         PR tree-optimization/49876
15628         * sese.c (rename_uses): Do not return false on gloog_error: set
15629         the new_expr to integer_zero_node and continue code generation.
15630         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
15631
15632 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
15633
15634         PR debug/49846
15635         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
15636         arguments also check if they aren't initialized with a MODE_INT
15637         mode of the same size.
15638
15639 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
15640
15641         * expr.c (get_bit_range): Handle *MEM_REF's.
15642
15643 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
15644
15645         * rtlanal.c (tablejump_p): False for returns.
15646         * reorg.c (first_active_target_insn): New static function.
15647         (find_end_label): Set JUMP_LABEL for a new returnjump.
15648         (optimize_skip, get_jump_flags, rare_destination,
15649         mostly_true_jump, get_branch_condition,
15650         steal_delay_list_from_target, own_thread_p,
15651         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
15652         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
15653         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
15654         * jump.c (delete_related_insns): Likewise.
15655         (jump_to_label_p): New function.
15656         (redirect_target): New static function.
15657         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
15658         (redirect_jump_1): Assert that the new label is nonnull.
15659         (redirect_jump): Likewise.
15660         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
15661         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
15662         exit block.
15663         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
15664         changed.  Ensure that the right label is passed to redirect_jump.
15665         * function.c (emit_return_into_block,
15666         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
15667         ret_rtx in their JUMP_LABEL.
15668         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
15669         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
15670         pass ret_rtx as label.
15671         * cfglayout.c (fixup_reorder_chain): Use
15672         force_nonfallthru_and_redirect rather than force_nonfallthru.
15673         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
15674         * rtl.h (ANY_RETURN_P): New macro.
15675         (jump_to_label_p): Declare.
15676         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
15677         JUMP_LABELs.
15678         (mark_target_live_regs): Likewise.
15679         * basic-block.h (force_nonfallthru_and_redirect): Declare.
15680         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
15681         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
15682         alpha_tablejump_best_label): Remove functions.
15683         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
15684         alpha_tablejump_best_label): Remove declarations.
15685         * config/sh/sh.c (barrier_align, split_branches): Adjust for
15686         ret_rtx in JUMP_LABELs.
15687         * config/arm/arm.c (is_jump_table): Likewise.
15688
15689 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
15690
15691         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
15692         special predicate.  Remove explicit mode checks.
15693
15694 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
15695
15696         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
15697         DW_AT_data_member_location containing just DW_OP_plus_uconst.
15698
15699         PR debug/49871
15700         * dwarf2out.c (size_of_die, value_format, output_die): Use
15701         DW_FORM_udata instead of DW_FORM_data[48] for
15702         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
15703
15704 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
15705
15706         * config/i386/i386.md (*tls_global_dynamic_64): Update
15707         length attribute.
15708
15709 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
15710
15711         PR target/47715
15712         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
15713         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
15714         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
15715         (tls_dynamic_gnu2_64): Ditto.
15716         (*tls_dynamic_gnu2_lea_64): Ditto.
15717         (*tls_dynamic_gnu2_call_64): Ditto.
15718         (*tls_dynamic_gnu2_combine_64): Ditto.
15719
15720 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
15721
15722         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
15723
15724 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
15725
15726         PR target/47364
15727         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
15728
15729 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15730
15731         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
15732         before the core constraints. Adjust attributes.
15733         ("*thumb2_movdf_vfp"): Likewise.
15734
15735 2011-07-28  Kai Tietz  <ktietz@redhat.com>
15736
15737         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
15738         (simplify_truth_ops_using_ranges): Likewise.
15739         (build_assert_expr_for): Likewise.
15740         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
15741         and handle BIT_NOT_EXPR for truth-operation.
15742
15743 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
15744
15745         PR target/49313
15746         Undo r176835 from trunk
15747         2011-07-27  Georg-Johann Lay
15748
15749 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
15750
15751         PR target/49687
15752         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
15753         Add _muluhisi3, _mulshisi3, _usmulhisi3.
15754         * config/avr/libgcc.S (__mulsi3): Rewrite.
15755         (__mulhisi3): Rewrite.
15756         (__umulhisi3): Rewrite.
15757         (__usmulhisi3): New.
15758         (__muluhisi3): New.
15759         (__mulshisi3): New.
15760         (__mulohisi3): New.
15761         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
15762         declare.
15763         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
15764         (pseudo_register_or_const_int_operand): New.
15765         (combine_pseudo_register_operand): New.
15766         (u16_operand): New.
15767         (s16_operand): New.
15768         (o16_operand): New.
15769         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
15770         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
15771         (any_extend, any_extend2): New code iterators.
15772         (extend_prefix): New code attribute.
15773         (mulsi3): Rewrite. Turn insn to expander.
15774         (mulhisi3): Ditto.
15775         (umulhisi3): Ditto.
15776         (usmulhisi3): New expander.
15777         (*mulsi3): New insn-and-split.
15778         (mulu<mode>si3): New insn-and-split.
15779         (muls<mode>si3): New insn-and-split.
15780         (mulohisi3): New insn-and-split.
15781         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
15782         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
15783         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
15784         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
15785         insn-and-split.
15786         (*mulsi3_call): Rewrite.
15787         (*mulhisi3_call): Rewrite.
15788         (*umulhisi3_call): Rewrite.
15789         (*usmulhisi3_call): New insn.
15790         (*muluhisi3_call): New insn.
15791         (*mulshisi3_call): New insn.
15792         (*mulohisi3_call): New insn.
15793         (extendqihi2): Use combine_pseudo_register_operand as predicate
15794         for operand 1.
15795         (extendqisi2): Ditto.
15796         (zero_extendqihi2): Ditto.
15797         (zero_extendqisi2): Ditto.
15798         (zero_extendhisi2): Ditto.
15799         (extendhisi2): Ditto. Don't early-clobber operand 0.
15800
15801 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
15802
15803         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
15804
15805 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
15806
15807         PR tree-optimization/49471
15808         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
15809         iv only when the largest type is unsigned.  Do not call
15810         lang_hooks.types.type_for_size.
15811
15812 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
15813
15814         PR middle-end/45450
15815         * graphite-poly.c (apply_poly_transforms): Disable legality check
15816         after an openscop read.
15817
15818 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
15819
15820         PR middle-end/47691
15821         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
15822         copy_bb_and_scalar_dependences.
15823         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
15824         (graphite_copy_stmts_from_block): Update call to rename_uses.
15825         (copy_bb_and_scalar_dependences): Update call to
15826         graphite_copy_stmts_from_block.
15827         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15828
15829 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
15830
15831         PR target/49313
15832         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
15833         (__ctzsi2): Result for 0 may be undefined.
15834         (__ctzhi2): Result for 0 may be undefined.
15835         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
15836         (__popcountsi2): Ditto. And don't clobber r26.
15837         (__popcountdi2): Ditto. And don't clobber r27.
15838         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
15839         (parityhi2): New expand.
15840         (paritysi2): New expand.
15841         (popcounthi2): New expand.
15842         (popcountsi2): New expand.
15843         (clzhi2): New expand.
15844         (clzsi2): New expand.
15845         (ctzhi2): New expand.
15846         (ctzsi2): New expand.
15847         (ffshi2): New expand.
15848         (ffssi2): New expand.
15849         (copysignsf3): New insn.
15850         (bswapsi2): New expand.
15851         (*parityhi2.libgcc): New insn.
15852         (*parityqihi2.libgcc): New insn.
15853         (*paritysihi2.libgcc): New insn.
15854         (*popcounthi2.libgcc): New insn.
15855         (*popcountsi2.libgcc): New insn.
15856         (*popcountqi2.libgcc): New insn.
15857         (*popcountqihi2.libgcc): New insn-and-split.
15858         (*clzhi2.libgcc): New insn.
15859         (*clzsihi2.libgcc): New insn.
15860         (*ctzhi2.libgcc): New insn.
15861         (*ctzsihi2.libgcc): New insn.
15862         (*ffshi2.libgcc): New insn.
15863         (*ffssihi2.libgcc): New insn.
15864         (*bswapsi2.libgcc): New insn.
15865
15866 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
15867
15868         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
15869         the mode of symbolic_opreand RTXes.
15870
15871 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
15872
15873         * config/i386/predicates.md (x86_64_movabs_operand): Return false
15874         for pic_32bit_operand RTXes.
15875         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
15876         in DImode.
15877
15878 2011-07-27  Kai Tietz  <ktietz@redhat.com>
15879
15880         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
15881         for 32-bit, too.
15882         (ix86_handle_abi_attribute): Allow function attributes
15883         ms_abi/sysv_abi in 32-bit mode, too.
15884         * doc/extend.texi: Adjust attribute documentation.
15885
15886         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
15887         expression handling.
15888         (and_var_with_comparison_1): Likewise.
15889
15890 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
15891
15892         * params.h (ALLOW_STORE_DATA_RACES): New.
15893         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
15894         * Makefile.in (expr.o): Depend on PARAMS_H.
15895         * machmode.h (get_best_mode): Add argument.
15896         * fold-const.c (optimize_bit_field_compare): Add argument to
15897         get_best_mode.
15898         (fold_truthop): Same.
15899         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
15900         * expr.c (emit_group_store): Same.
15901         (copy_blkmode_from_reg): Same.
15902         (write_complex_part): Same.
15903         (optimize_bitfield_assignment_op): Add argument.
15904         Add argument to get_best_mode.
15905         (get_bit_range): New.
15906         (expand_assignment): Calculate maxbits and pass it down accordingly.
15907         (store_field): New argument.
15908         (expand_expr_real_2): New argument to store_field.  Include params.h.
15909         * expr.h (store_bit_field): New argument.
15910         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
15911         into account maxbits.
15912         * calls.c (store_unaligned_arguments_into_pseudos): New argument
15913         to store_bit_field.
15914         * expmed.c (store_bit_field_1): New argument.  Use it.
15915         (store_bit_field): Same.
15916         (store_fixed_bit_field): Same.
15917         (store_split_bit_field): Same.
15918         (extract_bit_field_1): Pass new argument to get_best_mode.
15919         (extract_bit_field): Same.
15920         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
15921         * doc/invoke.texi: Document parameter allow-store-data-races.
15922
15923 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
15924
15925         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
15926
15927 2011-07-27  Kai Tietz  <ktietz@redhat.com>
15928
15929         * tree-vrp.c (extract_range_from_binary_expr): Remove
15930         TRUTH-binary cases and add new bitwise-cases.
15931         (extract_range_from_assignment): Likewise.
15932         (register_edge_assert_for_1): Likeiwise.
15933         (register_edge_assert_for): Likewise.
15934         (simplify_truth_ops_using_ranges): Likewise.
15935         (simplify_stmt_using_ranges): Likewise.
15936
15937 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
15938
15939         PR target/47372
15940         * config/i386/i386.c (ix86_delegitimize_address): Call
15941         simplify_gen_subreg for PIC with mode of x only if modes of
15942         x and orig_x are different.
15943
15944 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
15945
15946         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
15947         to GC allocated copy of the string.
15948         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
15949         before .debug_line, not after it.
15950
15951 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
15952
15953         PR middle-end/47046
15954         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
15955         evolution_function_is_affine_p on CHREC_RIGHT.
15956
15957 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
15958
15959         * tree-data-ref.c (max_stmt_executions_tree): Do not call
15960         lang_hooks.types.type_for_size.
15961
15962 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
15963
15964         PR middle-end/47653
15965         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
15966         loops using wrapping semantics.
15967
15968 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
15969
15970         PR middle-end/48805
15971         * tree-scalar-evolution.c (instantiate_scev_r): Return
15972         chrec_dont_know for ADDR_EXPR.
15973
15974 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
15975             H.J. Lu  <hongjiu.lu@intel.com>
15976
15977         PR target/47369
15978         PR target/49853
15979         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
15980         if legitimize_tls_address returned operand in wrong mode. Allow
15981         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
15982         if legitimize_pic_address returned operand in wrong mode.
15983
15984 2011-07-26  Martin Jambor  <mjambor@suse.cz>
15985
15986         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
15987         return false for invariants.
15988
15989 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
15990
15991         * config/i386/i386.md (add->lea splitter): Implement using SWI
15992         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
15993         (add->lea zext splitter): Change operand 2 predicate to
15994         x86_64_nonmemory_operand.
15995
15996 2011-07-26  Richard Guenther  <rguenther@suse.de>
15997
15998         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
15999         frequency makes everything hot.
16000
16001 2011-07-26  Richard Guenther  <rguenther@suse.de>
16002
16003         PR tree-optimization/49840
16004         * tree-vrp.c (range_fits_type_p): Properly handle full
16005         double-int precision.
16006
16007 2011-07-26  Martin Jambor  <mjambor@suse.cz>
16008
16009         PR bootstrap/49786
16010         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
16011         counts.
16012         (update_specialized_profile): Likewise.
16013
16014 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
16015             H.J. Lu  <hongjiu.lu@intel.com>
16016
16017         PR target/47381
16018         PR target/49832
16019         PR target/49833
16020         * config/i386/i386.md (i): Change SImode attribute to "e".
16021         (g): Change SImode attribute to "rme".
16022         (di): Change SImode attribute to "nF".
16023         (general_operand): Change SImode attribute to x86_64_general_operand.
16024         (general_szext_operand): Change SImode attribute to
16025         x86_64_szext_general_operand.
16026         (immediate_operand): Change SImode attribute to
16027         x86_64_immediate_operand.
16028         (nonmemory_operand): Change SImode attribute to
16029         x86_64_nonmemory_operand.
16030         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
16031         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
16032         (*lea_1): Use SWI48 mode iterator.
16033         (*lea_1_zext): New insn pattern.
16034         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
16035         (*bt<mode>): Ditto.
16036         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
16037         Update operand constraints.
16038         (addsi_1_zext): Ditto.
16039         (*add<mode>2): Ditto.
16040         (*addsi_3_zext): Ditto.
16041         (*subsi_1_zext): Ditto.
16042         (*subsi_2_zext): Ditto.
16043         (*subsi_3_zext): Ditto.
16044         (*addsi3_carry_zext): Ditto.
16045         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
16046         (*mulsi3_1_zext): Ditto.
16047         (*andsi_1): Ditto.
16048         (*andsi_1_zext): Ditto.
16049         (*andsi_2_zext): Ditto.
16050         (*<any_or:code>si_1_zext): Ditto.
16051         (*<any_or:code>si_2_zext): Ditto.
16052         (*test<mode>_1): Use <general_operand> predicate for operand 1.
16053         (*and<mode>_2): Ditto.
16054         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
16055         (add->lea splitter): Check operand modes in insn constraint.  Extend
16056         operands less than SImode wide to SImode.
16057         (add->lea zext splitter): Do not extend input operands to DImode.
16058         (*lea_general_1): Handle only QImode and HImode operands.
16059         (*lea_general_2): Ditto.
16060         (*lea_general_3): Ditto.
16061         (*lea_general_1_zext): Remove.
16062         (*lea_general_2_zext): Ditto.
16063         (*lea_general_3_zext): Ditto.
16064         (*lea_general_4): Check operand modes in insn constraint.  Extend
16065         operands less than SImode wide to SImode.
16066         (ashift->lea splitter): Ditto.
16067         * config/i386/i386.c (ix86_print_operand_address): Print address
16068         registers with 'q' modifier on 64bit targets.
16069         * config/i386/predicates.md (pic_32bit_opreand): Define as special
16070         predicate.  Reject non-SI and non-DI modes.
16071
16072 2011-07-25  Andrew Pinski  <apinski@cavium.com>
16073
16074         PR tree-opt/49671
16075         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
16076         TREE_THIS_NOTRAP into the inner most MEM_REF.
16077         Always copy TREE_THIS_VOLATILE.
16078         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
16079         arguments are not volatile references.
16080
16081 2011-07-25  Richard Henderson  <rth@redhat.com>
16082
16083         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
16084         * final.c (final_scan_insn): Don't test for it.
16085         (rest_of_clean_state): Likewise.
16086
16087 2011-07-25  Richard Henderson  <rth@redhat.com>
16088
16089         PR debug/49841
16090         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
16091         (emit_frame_save): Likewise.
16092         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
16093         insn onto a dummy blockage insn after the join label.
16094
16095 2011-07-25  Richard Henderson  <rth@redhat.com>
16096
16097         * dwarf2cfi.c (dw_trace_info): Add ID member.
16098         (get_trace_index): Remove.  Change users to use ID member.
16099         (before_next_cfi_note): New.
16100         (connect_traces): Remove unreachable traces before the main loop.
16101         Look across one trace and generate remember/restore_state if needed.
16102
16103 2011-07-25  Richard Henderson  <rth@redhat.com>
16104
16105         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
16106
16107 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
16108
16109         * genattr.c (write_upcase, gen_attr <enum definition writing>):
16110         Move to ...
16111         * genattr-common.c ... here.
16112         (main): Call gen_attr.
16113         * optc-gen.awk: Make generated program include insn-attr-common.h .
16114         * Makefile.in (oprions.o): Depend on insn-attr-common.h
16115
16116 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
16117
16118         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
16119         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
16120         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
16121         m32c_print_operand, m32c_print_operand_address): Remove.
16122         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
16123         Change return type to bool. Change argument type to bool.
16124         (m32c_print_operand, m32c_print_operand_address): Make static.
16125         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
16126         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16127
16128 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16129
16130         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
16131         attributes): Document mmap.
16132
16133 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
16134
16135         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
16136         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
16137         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
16138         mmix_print_operand, mmix_print_operand_address): Remove.
16139         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
16140         Change return type to bool. Change argument type to bool.
16141         (mmix_print_operand, mmix_print_operand_address): Make static.
16142         (mmix_intval, mmix_output_condition): Change 'x' argument type
16143         to const_rtx.
16144         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
16145         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16146
16147 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
16148
16149         PR target/39386
16150         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
16151         shift counter for x << x and x >> x shifts.
16152
16153 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16154
16155         PR target/47124
16156         * config.gcc: Reject *-*-solaris2 configuration.
16157
16158 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
16159
16160         PR tree-optimization/49809
16161         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
16162         gimple_get_lhs instead of gimple_assign_lhs.
16163
16164 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16165
16166         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
16167
16168 2011-07-25  Richard Guenther  <rguenther@suse.de>
16169
16170         PR tree-optimization/49822
16171         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
16172         more.  Make sure to preserve stmts with side-effects.  Properly
16173         handle virtual defs, follow a longer def chain.
16174
16175 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
16176
16177         PR plugins/45348
16178         PR plugins/48425
16179         PR plugins/46577
16180         * Makefile.in: Do not flatten c-family directory when installing
16181         plugin headers.
16182
16183 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16184
16185         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
16186         original nodes if we are dealing with virtual clones.
16187
16188 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
16189
16190         * common/config/c6x/c6x-common.c: New file.
16191
16192 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
16193
16194         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
16195
16196 2011-07-25  Richard Guenther  <rguenther@suse.de>
16197
16198         PR tree-optimization/49715
16199         * tree-vrp.c: Include expr.h and optabs.h.
16200         (range_fits_type_): New function.
16201         (simplify_float_conversion_using_ranges): Likewise.
16202         (simplify_stmt_using_ranges): Call it.
16203         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
16204         * optabs.c (can_float_p): Export.
16205         * optabs.h (can_float_p): Declare.
16206
16207 2011-07-25  Richard Guenther  <rguenther@suse.de>
16208
16209         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
16210         (get_value_range): For out-of-range SSA names or names created
16211         after propagation return a read-only varying range.
16212         (dump_all_value_ranges): Adjust.
16213         (vrp_initialize): Likewise.
16214         (vrp_finalize): Likewise.
16215
16216 2011-07-24  Richard Henderson  <rth@redhat.com>
16217
16218         PR debug/49831
16219         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
16220         them entirely.
16221
16222 2011-07-24  Richard Henderson  <rth@redhat.com>
16223
16224         PR debug/49825
16225         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
16226         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
16227
16228 2011-07-24  Richard Henderson  <rth@redhat.com>
16229
16230         PR debug/49827
16231         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
16232
16233 2011-07-24  Richard Henderson  <rth@redhat.com>
16234
16235         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
16236         Zero args_size for abnormal edges.  Adjust all callers.
16237
16238 2011-07-24  Richard Henderson  <rth@redhat.com>
16239
16240         PR debug/49825
16241         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
16242
16243 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
16244
16245         PR bootstrap/49835
16246         * collect2.c (demangle_flag): Removed.
16247
16248 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
16249
16250         * configure.ac (demangler_in_ld): Default to yes.
16251         * configure: Regenerated.
16252         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
16253         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
16254         --no-demangle options straight through to ld.  When
16255         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
16256         way that has the intended effect on Windows.
16257
16258 2011-07-23  Richard Henderson  <rth@redhat.com>
16259
16260         * dwarf2cfi.c: Include basic-block.h.
16261         (dw_label_info): Remove.
16262         (trace_work_list, trace_index): New.
16263         (remember_row, emit_cfa_remember): Remove.
16264         (dw_trace_info_hash, dw_trace_info_eq): New.
16265         (get_trace_index, get_trace_info): New.
16266         (save_point_p): New.
16267         (free_cfi_row): Remove.
16268         (add_cfi): Do not emit DW_CFA_remember_state.
16269         (cfa_row_equal_p): New.
16270         (barrier_args_size): Remove.
16271         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
16272         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
16273         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
16274         (dwarf2out_cfi_begin_epilogue): Remove.
16275         (dwarf2out_frame_debug_restore_state): Remove.
16276         (connect_traces, create_pseudo_cfg): New.
16277         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
16278         * Makefile.in (dwarf2cfi.o): Update.
16279
16280 2011-07-23  Richard Henderson  <rth@redhat.com>
16281
16282         * dwarf2cfi.c (dw_trace_info): New.
16283         (dw_label_info): New.
16284         (cie_return_save): New.
16285         (cur_trace): New.
16286         (queued_args_size): Rename from args_size.  Update all users.
16287         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
16288         (def_cfa_1): Use cur_trace instead of cfa_*.
16289         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
16290         (clobbers_queued_reg_save, reg_saved_in): Likewise.
16291         (dwarf2out_frame_debug_expr): Likewise.
16292         (create_cie_data): Split out from ...
16293         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
16294
16295 2011-07-23  Richard Henderson  <rth@redhat.com>
16296
16297         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
16298         Update all users to match.
16299         (execute_dwarf2_frame): Free reg_saved_in_data.
16300
16301 2011-07-23  Richard Henderson  <rth@redhat.com>
16302
16303         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
16304         (queued_reg_saves): Don't GTY.  Change to a VEC.
16305         (queue_reg_save): Update to match.
16306         (dwarf2out_flush_queued_reg_saves): Likewise.
16307         (clobbers_queued_reg_save): Likewise.
16308         (reg_saved_in): Likewise.
16309         (execute_dwarf2_frame): Free queued_reg_saves.
16310
16311 2011-07-23  Richard Henderson  <rth@redhat.com>
16312
16313         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
16314
16315 2011-07-23  Richard Henderson  <rth@redhat.com>
16316
16317         * dwarf2cfi.c (add_cfi_args_size): Split out from...
16318         (dwarf2out_args_size): ... here.
16319         (add_cfi_restore): Split out from ...
16320         (dwarf2out_frame_debug_cfa_restore): ... here.
16321         (def_cfa_0): Split out from ...
16322         (def_cfa_1): ... here.
16323         (cfi_oprnd_equal_p, cfi_equal_p): New.
16324         (change_cfi_row): New.
16325         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
16326         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
16327         (output_cfis): Remove.
16328         * dwarf2out.c (output_fde): Simplify output_cfi loop.
16329         (dwarf2out_switch_text_section): Don't call output_cfis.
16330         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
16331         * dwarf2out.h: Update decls.
16332         (enum dw_val_class): Add dw_val_class_none.
16333
16334 2011-07-23  Richard Henderson  <rth@redhat.com>
16335
16336         * dwarf2cfi.c (update_row_reg_save): New.
16337         (dwarf2out_frame_debug_cfa_expression): Use it.
16338         (dwarf2out_frame_debug_cfa_restore): Likewise.
16339         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
16340
16341 2011-07-23  Richard Henderson  <rth@redhat.com>
16342
16343         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
16344
16345 2011-07-23  Richard Henderson  <rth@redhat.com>
16346
16347         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
16348         (cie_cfi_row): New.
16349         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
16350         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
16351         (cur_row, remember_row): New.
16352         (def_cfa_1): Use cur_row instead of the old_* variables.
16353         (dwarf2out_frame_debug_restore_state): Similarly.
16354         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
16355         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
16356         (dwarf2out_frame_debug_adjust_cfa): Likewise.
16357         (dwarf2out_frame_debug_cfa_offset): Likewise.
16358         (dwarf2out_frame_debug_expr): Likewise.
16359         (execute_dwarf2_frame): Set up cur_row.
16360         * dwarf2out.h (struct cfa_loc): Mark for GTY.
16361
16362 2011-07-23  Richard Henderson  <rth@redhat.com>
16363
16364         * basic-block.h (EDGE_PRESERVE): New.
16365         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
16366         * bb-reorder.c: Include except.h.
16367         (fix_up_crossing_landing_pad): New.
16368         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
16369         landing pads in the right partition.  Duplicate as necessary.
16370         (partition_hot_cold_basic_blocks): Fix up DF info after
16371         duplicating landing pads.
16372         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
16373         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
16374         is set properly.  Validate that EH edges are not CROSSING.
16375         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
16376         (dw2_build_landing_pads): ... here.
16377         (convert_to_eh_region_ranges): Remove code to fixup crossing
16378         landing pads.
16379         * except.h (expand_dw2_landing_pad_for_region): Declare.
16380         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
16381
16382 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
16383
16384         PR target/49816
16385         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
16386
16387 2011-07-22  Jason Merrill  <jason@redhat.com>
16388
16389         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
16390
16391 2011-07-22  Richard Henderson  <rth@redhat.com>
16392
16393         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
16394
16395 2011-07-22  Richard Henderson  <rth@redhat.com>
16396
16397         * jump.c (maybe_propagate_label_ref): Split out of...
16398         (mark_all_labels): ... here.  Do not attempt label_ref
16399         propagation while in cfglayout mode.
16400
16401 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
16402
16403         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
16404         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
16405         (dwarf_attr_name): Handle DW_AT_GNU_macros.
16406         (dwarf2out_define): If the vector is empty and
16407         lineno is 0, emit a dummy entry first.
16408         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
16409         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
16410         optimize_macinfo_range): New functions.
16411         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
16412         mergeable, optimize longer strings using
16413         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
16414         optimize longer sequences of define/undef ops from headers
16415         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
16416         emit a section headers.
16417         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
16418         and macinfo_section_label to DEBUG_MACRO_SECTION
16419         resp. DEBUG_MACRO_SECTION_LABEL.
16420         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
16421         instead of DW_AT_macro_info.
16422
16423         PR other/32998
16424         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
16425         options.
16426         * dwarf2out.c: Include opts.h.
16427         (dchar_p): New typedef.  Define heap VEC for it.
16428         (producer_string): New variable.
16429         (gen_producer_string): New function.
16430         (gen_compile_unit_die): Use it.
16431         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
16432         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
16433         * doc/invoke.texi: Document -grecord-gcc-switches and
16434         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
16435         to -frecord-gcc-switches description.
16436
16437 2011-07-22  Jason Merrill  <jason@redhat.com>
16438
16439         PR c++/30112
16440         * c-decl.c (c_linkage_bindings): Define.
16441
16442 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
16443
16444         PR debug/49815
16445         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
16446
16447 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
16448
16449         * config/i386/i386.c (ix86_option_override_internal): Disallow
16450         MS ABI in x32 mode.
16451         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
16452         only for TARGET_LP64.
16453         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
16454
16455 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
16456
16457         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
16458         avoid warnings when GCC is built with a C++ compiler.
16459
16460 2011-07-22  Martin Jambor  <mjambor@suse.cz>
16461
16462         PR lto/49796
16463         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
16464         if decl node is in another partition, call cgraph_get_node only once.
16465
16466 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
16467
16468         * config.gcc (x86_64-*-linux*): Set
16469         default_gnu_indirect_function to yes.
16470
16471 2011-07-22  Richard Guenther  <rguenther@suse.de>
16472
16473         PR tree-optimization/45819
16474         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
16475         preserve volatile and notrap flags.
16476
16477 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16478             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16479
16480         PR bootstrap/49794
16481         * configure.ac: Test AM_ICONV with CXX.
16482         * configure: Regenerate.
16483         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
16484
16485 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16486
16487         PR bootstrap/49797
16488         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
16489         (set_cloog_options): Use it.
16490
16491 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
16492
16493         PR c++/49756
16494         * gcc.c (main): Call stack_limit_increase (64MB).
16495         * toplev.c (toplev_main): Likewise.
16496
16497 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
16498
16499         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
16500         instead of force_reg.
16501
16502 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
16503
16504         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
16505         needed and use force_reg after convert.
16506         (ix86_expand_call): Likewise.
16507         (ix86_expand_special_args_builtin): Likewise.
16508         (ix86_expand_builtin): Likewise.
16509
16510 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16511
16512         PR middle-end/47654
16513         PR middle-end/49649
16514         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
16515         in parameter.  Initialize v1 and v2 based on the values returned
16516         by clast_name_to_lb_ub.
16517         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
16518         values.
16519         (type_for_clast_bin): Same.
16520         (type_for_clast_expr): Same.
16521         (type_for_clast_eq): Update calls to type_for_clast_expr.
16522         (type_for_clast_for): Same.
16523         (build_iv_mapping): Same.
16524         * graphite-ppl.h (value_min): New.
16525
16526 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16527
16528         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
16529         types whenever possible.
16530
16531 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16532
16533         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
16534         and ub fields.
16535         (new_clast_name_index): Add lb and ub parameters.
16536         (free_clast_name_index): New.
16537         (clast_name_to_lb_ub): New.
16538         (save_clast_name_index): Add lb and ub parameters.
16539         (compute_bounds_for_param): New.
16540         (type_for_level): Removed.
16541         (type_for_clast_for): Removed level parameter.  Do not call
16542         type_for_level.
16543         (graphite_create_new_loop): Store the lb and ub for the clast_name
16544         of the iterator of the loop that has been generated.
16545         (graphite_create_new_loop_guard): Remove parameter level.
16546         (create_params_index): Store the lb and ub of each parameter.
16547         (gloog): Use free_clast_name_index.  Pass to create_params_index
16548         the current scop.
16549
16550 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16551
16552         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
16553         (max_precision_type): Inline max_signed_precision_type.
16554         (type_for_clast_red): Use max_precision_type.
16555         (type_for_clast_bin): Same.
16556         (type_for_clast_for): Same.
16557
16558 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16559
16560         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
16561         type_for_interval.
16562         (gcc_type_for_value): Renamed type_for_value.
16563         (gcc_type_for_clast_term): Renamed type_for_clast_term.
16564         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
16565         (gcc_type_for_clast_red): Renamed type_for_clast_red.
16566         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
16567         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
16568         (graphite_translate_clast_equation): Update calls.
16569         (compute_type_for_level): Renamed type_for_level.
16570         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
16571         (build_iv_mapping): Update calls.
16572         (graphite_create_new_loop_guard): Same.
16573
16574 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16575
16576         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
16577         comment.
16578
16579 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16580
16581         * graphite-clast-to-gimple.c (struct ivs_params): New.
16582         (clast_name_to_gcc): Use ivs_params to pass around parameters.
16583         (clast_to_gcc_expression): Same.
16584         (clast_to_gcc_expression_red): Same.
16585         (gcc_type_for_clast_term): Same.
16586         (gcc_type_for_clast_expr): Same.
16587         (gcc_type_for_clast_red): Same.
16588         (gcc_type_for_clast_bin): Same.
16589         (gcc_type_for_clast_eq): Same.
16590         (graphite_translate_clast_equation): Same.
16591         (graphite_create_guard_cond_expr): Same.
16592         (graphite_create_new_guard): Same.
16593         (graphite_create_new_loop): Same.
16594         (build_iv_mapping): Same.
16595         (translate_clast_user): Same.
16596         (graphite_create_new_loop_guard): Same.
16597         (translate_clast): Same.
16598         (translate_clast_for_loop): Same.
16599         (translate_clast_for): Same.
16600         (translate_clast_guard): Same.
16601         (initialize_cloog_names): Fix typo.
16602         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
16603
16604 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16605
16606         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
16607         (new_clast_name_index): Add level parameter.
16608         (clast_name_to_level): New.
16609         (save_clast_name_index): Add level parameter.
16610         (newivs_to_depth_to_newiv): Removed.
16611         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
16612         (graphite_create_new_loop): Add level parameter.  Pass level to
16613         save_clast_name_index.
16614         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
16615         (create_params_index): Pass level to save_clast_name_index.
16616
16617 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16618
16619         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
16620         recompute type, lb, and ub.  Get them from...
16621         (graphite_create_new_loop_guard): ...here.  Pass in parameter
16622         pointers to type, lb, and ub.
16623         (translate_clast_for_loop): Update function calls.
16624         (translate_clast_for): Same.
16625
16626 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
16627
16628         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
16629         psct_dynamic_dim.
16630         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
16631         (gcc_type_for_iv_of_clast_loop): Update use of level.
16632         (gloog): Start counting nesting level from 0.
16633         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
16634         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
16635         psct_dynamic_dim on level.
16636
16637 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
16638
16639         * config/i386/i386.c (ix86_legitimize_address): Convert to
16640         Pmode if needed.
16641
16642 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
16643
16644         * config/i386/i386.c (function_value_64): Always return pointers
16645         in Pmode.
16646         (ix86_promote_function_mode): New.
16647         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
16648
16649 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16650
16651         PR tree-optimization/49749
16652         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
16653         remove no-longer-used maxrank variable.
16654
16655 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
16656
16657         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
16658
16659 2011-07-21  Jason Merrill  <jason@redhat.com>
16660
16661         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
16662         * recog.h (struct insn_data_d): Check it instead of
16663         HAVE_DESIGNATED_INITIALIZERS.
16664         * genoutput.c (output_insn_data): Likewise.
16665
16666 2011-07-21  Richard Guenther  <rguenther@suse.de>
16667
16668         PR tree-optimization/49770
16669         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
16670         valueized any operand.  Renamed from ...
16671         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
16672         (valueize_shared_reference_ops_from_ref): Return whether we
16673         valueized any operand.
16674         (vn_reference_lookup): Only when we valueized any operand
16675         use the valueized reference for alias analysis.  Do not preserve
16676         the original reference tree in this case.
16677
16678 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
16679
16680         * config/i386/i386.c (ix86_decompose_address): Reject all but
16681         register operands and subregs of DImode hard registers in index.
16682
16683 2011-07-21  Kai Tietz  <ktietz@redhat.com>
16684
16685         * fold-const.c (fold_unary_loc): Preserve indirect
16686         comparison cast to none-boolean type.
16687         * tree-ssa.c (useless_type_conversion_p): Preserve cast
16688         from/to boolean-type.
16689         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
16690         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
16691         * tree-cfg.c (verify_gimple_comparison): Check result
16692         type of comparison expression.
16693         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
16694         of condition result and disallow type-cast sinking into comparison.
16695
16696 2011-07-21  Richard Guenther  <rguenther@suse.de>
16697
16698         * tree-ssa-forwprop.c (combine_conversions): Return whether
16699         we have to run cfg-cleanup.  Properly remove dead stmts.
16700         (ssa_forward_propagate_and_combine): Adjust.
16701
16702 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
16703
16704         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
16705
16706 2011-07-21  Kai Tietz  <ktietz@redhat.com>
16707
16708         * tree-ssa-propagate.c (substitute_and_fold): Use
16709         do_dce flag to deside, if BB's statements are scanned
16710         in last to first, or first to last order.
16711
16712 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
16713
16714         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
16715
16716 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
16717             Uros Bizjak  <ubizjak@gmail.com>
16718             Richard Henderson  <rth@redhat.com>
16719
16720         * config/i386/constraints.md (w): New.
16721
16722         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
16723         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
16724
16725         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
16726         instead of TARGET_64BIT.
16727
16728         * config/i386/i386.md (indirect_jump): Replace
16729         nonimmediate_operand with indirect_branch_operand.
16730         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
16731         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
16732         Convert operand 0 to Pmode for x32 if not PIC.
16733         (*tablejump_1): Replace nonimmediate_operand with
16734         indirect_branch_operand.  Replace constraint "m" with "w".
16735         (*call_vzeroupper): Replace constraint "m" with "w".
16736         (*call): Likewise.
16737         (*call_rex64_ms_sysv_vzeroupper): Likewise.
16738         (*call_rex64_ms_sysv): Likewise.
16739         (*call_value_vzeroupper): Likewise.
16740         (*call_value): Likewise.
16741         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
16742         (*call_value_rex64_ms_sysv): Likewise.
16743         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
16744
16745         * config/i386/predicates.md (indirect_branch_operand): New.
16746         (call_insn_operand): Support x32.
16747
16748 2011-07-20  Michael Eager  <eager@eagercon.com>
16749
16750         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
16751
16752 2011-07-20  Richard Henderson  <rth@redhat.com>
16753
16754         * cfg.c (dump_bb_info): Dump basic_block->flags.
16755         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
16756
16757 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
16758
16759         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
16760         of DImode hard registers in index.
16761         (ix86_legitimate_address_p): Allow subregs of base and index to span
16762         more than a word.  Assert that subregs of base and index satisfy
16763         register_no_elim_operand predicates.  Reject addresses where
16764         base and index have different modes.
16765
16766 2011-07-20  Robert Millan  <rmh@gnu.org>
16767
16768         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
16769
16770 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16771
16772         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
16773         removing now-unnecessary assignment.
16774
16775 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16776
16777         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
16778         memory address space to the type's address space.
16779
16780 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
16781
16782         PR target/36467
16783         PR target/49687
16784         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
16785         and expand appropriately if there is a CONST_INT in operand2.
16786         (usmulqihi3): New insn.
16787         (*sumulqihi3): New insn.
16788         (*osmulqihi3): New insn.
16789         (*oumulqihi3): New insn.
16790         (*muluqihi3.uconst): New insn_and_split.
16791         (*muluqihi3.sconst): New insn_and_split.
16792         (*mulsqihi3.sconst): New insn_and_split.
16793         (*mulsqihi3.uconst): New insn_and_split.
16794         (*mulsqihi3.oconst): New insn_and_split.
16795         (*ashifthi3.signx.const): New insn_and_split.
16796         (*ashifthi3.signx.const7): New insn_and_split.
16797         (*ashifthi3.zerox.const): New insn_and_split.
16798         (mulsqihi3): New insn.
16799         (muluqihi3): New insn.
16800         (muloqihi3): New insn.
16801         * config/avr/predicates.md (const_2_to_7_operand): New.
16802         (const_2_to_6_operand): New.
16803         (u8_operand): New.
16804         (s8_operand): New.
16805         (o8_operand): New.
16806         (s9_operand): New.
16807         (register_or_s9_operand): New.
16808
16809 2011-07-20  Kai Tietz  <ktietz@redhat.com>
16810
16811         * builtins.c (fold_builtin_expect): See through the cast
16812         from truthvalue_type_node to long.
16813
16814 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
16815
16816         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
16817         where we can use them from the standard and altivec instruction
16818         sets, instead of always using the 3 operand VSX forms that require
16819         the destination to overlap one of the inputs.
16820         (vsx_fms*): Ditto.
16821         (vsx_fnma*): Ditto.
16822         (vsx_fnms*): Ditto.
16823
16824         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
16825         for DF types.
16826         (fmsdf4_fpr): Ditto.
16827         (nfmadf4_fpr): Ditto.
16828         (nfmsdf4_fpr): Ditto.
16829
16830 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
16831
16832         * genrecog.c (make_insn_sequence): Correct position numbering
16833         when filtering out match_scratch and match_dup.
16834
16835 2011-07-20  Richard Guenther  <rguenther@suse.de>
16836
16837         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
16838         against already removed statements.
16839         (forward_propagate_into_comparison): Remove dead defining stmts.
16840         (forward_propagate_into_gimple_cond): Likewise.
16841         (forward_propagate_into_cond): Simplify.
16842         (ssa_forward_propagate_and_combine): Handle changed cfg from
16843         forward_propagate_into_comparison.
16844         * tree-ssa-phiopt.c (conditional_replacement): Use proper
16845         locations for newly built statements.
16846
16847 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
16848
16849         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
16850
16851 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16852
16853         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
16854         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
16855
16856 2011-07-20  Richard Guenther  <rguenther@suse.de>
16857
16858         PR middle-end/18908
16859         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
16860         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
16861         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
16862
16863 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
16864
16865         * config/frv/frv.c (frv_register_move_cost): Define explicitly
16866         costs for subclasses of GR_REGS.
16867
16868 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
16869
16870         PR target/49780
16871         * config/i386/predicates.md (no_seg_addres_operand): No more special.
16872         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
16873         of DImode hard registers in base.
16874         (ix86_legitimate_address_p): Allow SImode and DImode base and index
16875         registers.
16876
16877 2011-07-20  Richard Guenther  <rguenther@suse.de>
16878
16879         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
16880         (unify_nodes): Deal with that.
16881         (solve_graph): Likewise.
16882
16883 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
16884
16885         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
16886         canonicalize left operand from ZERO_EXTEND to AND.
16887
16888 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
16889
16890         * target.def (class_max_nregs): New hook.
16891         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
16892         * doc/tm.texi: Regenerate.
16893         * targhooks.c (default_class_max_nregs): New function.
16894         * targhooks.h (default_class_max_nregs): Declare.
16895         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
16896         x_ira_reg_class_min_nregs arrays to unsigned char.
16897         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
16898         hook instead of CLASS_MAX_NREGS macro.
16899         * reginfo.c (restore_register_info): Ditto.
16900         * ira-conflicts.c (process_regs_for_copy): Use
16901         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
16902         Change type rclass and aclass vars to reg_class_t.
16903         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
16904         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
16905         reg_class_t.
16906         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
16907         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
16908
16909         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
16910         * config/i386/i386.c (ix86_class_max_nregs): New function.
16911         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
16912         instead of CLASS_MAX_NREGS macro.
16913         (TARGET_CLASS_MAX_NREGS): Define.
16914         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
16915         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
16916         * config/avr/avr.c (class_max_nregs): Remove function.
16917         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
16918         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
16919         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
16920         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
16921         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
16922         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
16923         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
16924         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
16925         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
16926         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
16927         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
16928         * config/score/score.h (CLASS_MAX_NREGS): Remove.
16929         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
16930         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
16931         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
16932
16933 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
16934
16935         * cif-code.def (OVERWRITABLE): Fix typo and move around.
16936         (TARGET_OPTIMIZATION_MISMATCH): Delete.
16937         (EH_PERSONALITY): Fix typo.
16938         (NON_CALL_EXCEPTIONS): Fix message.
16939         (OPTIMIZATION_MISMATCH): Adjust message.
16940         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
16941
16942 2011-07-19  Ian Lance Taylor  <iant@google.com>
16943
16944         * doc/install.texi (Configuration): Document
16945         --enable-build-poststage1-with-cxx.
16946
16947 2011-07-19  Robert Millan  <rmh@gnu.org>
16948
16949         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
16950         (GLIBC_DYNAMIC_LINKER): Remove.
16951
16952         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
16953         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
16954         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
16955         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
16956         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
16957         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
16958
16959         * config/mips/linux.h: Remove everything except for ...
16960         (GLIBC_DYNAMIC_LINKER): ... this macro.
16961
16962         * config/mips/linux64.h: Remove everything except for ...
16963         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
16964         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
16965         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
16966         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
16967         (GNU_USER_LINK_EMULATIONN32): New macros.
16968
16969         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
16970         Use the new headers.
16971
16972 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
16973
16974         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
16975         Add offset_known_p and size_known_p fields.
16976         (MEM_OFFSET_KNOWN_P): Update accordingly.
16977         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
16978         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
16979         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
16980         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
16981         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
16982         (init_emit_regs): Likewise.
16983
16984 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
16985
16986         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
16987         (MEM_OFFSET): Change from returning an rtx to returning a
16988         HOST_WIDE_INT.
16989         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
16990         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
16991         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
16992         (clear_mem_offset): Declare.
16993         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
16994         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
16995         MEM_OFFSET to get a HOST_WIDE_INT offset.
16996         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
16997         (adjust_offset_for_component_ref): Take a bool "known_p"
16998         parameter and a HOST_WIDE_INT "offset" parameter.
16999         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
17000         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
17001         than an rtx.  Use clear_mem_offset to clear the offset.
17002         * cfgcleanup.c (merge_memattrs): Likewise.
17003         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
17004         * function.c (assign_parm_find_stack_rtl): Likewise.
17005         (assign_parm_setup_stack): Likewise.
17006         * print-rtl.c (print_rtx): Likewise.
17007         * reload.c (find_reloads_subreg_address): Likewise.
17008         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
17009         * var-tracking.c (INT_MEM_OFFSET): Likewise.
17010         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
17011         (get_mem_align_offset): Likewise.
17012         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
17013         (clear_mem_offset): New function.
17014         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
17015         offset rather than an rtx.  Assume both the expressio and offset
17016         are available.
17017         (r10k_needs_protection_p_1): Update accordingly, checking the
17018         expression and offset availability here instead.
17019
17020 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17021
17022         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
17023         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
17024         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
17025         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
17026         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
17027         (clear_mem_size): Declare.
17028         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
17029         (clear_mem_size): New function.
17030         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
17031         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
17032         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
17033         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
17034         to clear the size.
17035         (nonoverlapping_memrefs_p): Likewise.
17036         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
17037         (expand_builtin_init_trampoline): Likewise.
17038         * calls.c (compute_argument_addresses): Likewise.
17039         * cfgcleanup.c (merge_memattrs): Likewise.
17040         * dce.c (find_call_stack_args): Likewise.
17041         * dse.c (record_store, scan_insn): Likewise.
17042         * dwarf2out.c (dw_sra_loc_expr): Likewise.
17043         * expr.c (emit_block_move_hints): Likewise.
17044         * function.c (assign_parm_find_stack_rtl): Likewise.
17045         * print-rtl.c (print_rtx): Likewise.
17046         * reload.c (find_reloads_subreg_address): Likewise.
17047         * rtlanal.c (may_trap_p_1): Likewise.
17048         * var-tracking.c (track_expr_p): Likewise.
17049         * varasm.c (assemble_trampoline_template): Likewise.
17050         * config/arm/arm.c (arm_print_operand): Likewise.
17051         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
17052         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
17053         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
17054         (expand_constant_setmem_prologue): Likewise.
17055         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
17056         * config/rs6000/rs6000.c (expand_block_move): Likewise.
17057         (adjacent_mem_locations): Likewise.
17058         * config/s390/s390.c (s390_expand_setmem): Likewise.
17059         (s390_expand_insv): Likewise.
17060         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
17061         (*extendqi<mode>2_short_displ): Likewise.
17062         * config/sh/sh.c (expand_block_move): Likewise.
17063         * config/sh/sh.md (extv, extzv): Likewise.
17064
17065 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17066
17067         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
17068         (mem_attrs_htab_eq): ...here.
17069         (find_mem_attrs): Replace with...
17070         (set_mem_attrs): ...this function.  Take a mem_attrs structure
17071         rather than individual fields.
17072         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
17073         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
17074         (set_mem_size, change_address, adjust_address_1, offset_address)
17075         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
17076         Update accordingly.
17077
17078 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17079
17080         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
17081         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
17082         Provide a dummy definition of MEM_ADDR_SPACE for generators.
17083         (target_rtl): Add x_mode_mem_attrs.
17084         (mode_mem_attrs): New macro.
17085         (get_mem_attrs): New function.
17086         * emit-rtl.c (get_mem_attrs): Rename to...
17087         (find_mem_attrs): ...this.
17088         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
17089         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
17090         (set_mem_size, change_address, adjust_address_1, offset_address)
17091         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
17092         Update accordingly.
17093         (init_emit_regs): Initialize mode_mem_attrs.
17094
17095 2011-07-19  Richard Guenther  <rguenther@suse.de>
17096
17097         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
17098         TRUTH_*_EXPR handling.
17099         * tree-ssa-operands.c (get_expr_operands): Likewise.
17100         * tree-ssa-pre.c (fully_constant_expression): Likewise.
17101         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
17102         Likewise.
17103         (is_and_or_or): Likewise.
17104         (is_norm_cond_subset_of): Likewise.
17105
17106 2011-07-19  Richard Guenther  <rguenther@suse.de>
17107
17108         * tree.h (fold_build_pointer_plus_loc): New helper function.
17109         (fold_build_pointer_plus_hwi_loc): Likewise.
17110         (fold_build_pointer_plus): Define.
17111         (fold_build_pointer_plus_hwi): Likewise.
17112         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
17113         (fold_builtin_memory_op): Likewise.
17114         (fold_builtin_stpcpy): Likewise.
17115         (fold_builtin_memchr): Likewise.
17116         (fold_builtin_strstr): Likewise.
17117         (fold_builtin_strchr): Likewise.
17118         (fold_builtin_strrchr): Likewise.
17119         (fold_builtin_strpbrk): Likewise.
17120         (fold_builtin_strcat): Likewise.
17121         (expand_builtin_memory_chk): Likewise.
17122         (fold_builtin_memory_chk): Likewise.
17123         * c-typeck.c (build_unary_op): Likewise.
17124         * cgraphunit.c (thunk_adjust): Likewise.
17125         * fold-const.c (build_range_check): Likewise.
17126         (fold_binary_loc): Likewise.
17127         * omp-low.c (extract_omp_for_data): Likewise.
17128         (expand_omp_for_generic): Likewise.
17129         (expand_omp_for_static_nochunk): Likewise.
17130         (expand_omp_for_static_chunk): Likewise.
17131         * tree-affine.c (add_elt_to_tree): Likewise.
17132         * tree-data-ref.c (split_constant_offset_1): Likewise.
17133         * tree-loop-distribution.c (generate_memset_zero): Likewise.
17134         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
17135         * tree-predcom.c (ref_at_iteration): Likewise.
17136         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
17137         (add_to_parts): Likewise.
17138         (create_mem_ref): Likewise.
17139         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
17140         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
17141         (number_of_iterations_le): Likewise.
17142         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
17143         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
17144         (vect_create_addr_base_for_vector_ref): Likewise.
17145         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
17146         (vect_create_cond_for_alias_checks): Likewise.
17147         * tree-vrp.c (extract_range_from_assert): Likewise.
17148         * config/alpha/alpha.c (alpha_va_start): Likewise.
17149         (alpha_gimplify_va_arg_1): Likewise.
17150         * config/i386/i386.c (ix86_va_start): Likewise.
17151         (ix86_gimplify_va_arg): Likewise.
17152         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
17153         * config/mep/mep.c (mep_expand_va_start): Likewise.
17154         (mep_gimplify_va_arg_expr): Likewise.
17155         * config/mips/mips.c (mips_va_start): Likewise.
17156         (mips_gimplify_va_arg_expr): Likewise.
17157         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
17158         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
17159         (rs6000_gimplify_va_arg): Likewise.
17160         * config/s390/s390.c (s390_va_start): Likewise.
17161         (s390_gimplify_va_arg): Likewise.
17162         * config/sh/sh.c (sh_va_start): Likewise.
17163         (sh_gimplify_va_arg_expr): Likewise.
17164         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
17165         * config/spu/spu.c (spu_va_start): Likewise.
17166         (spu_gimplify_va_arg_expr): Likewise.
17167         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
17168         Likewise.
17169         (xstormy16_gimplify_va_arg_expr): Likewise.
17170         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
17171         (xtensa_gimplify_va_arg_expr): Likewise.
17172
17173 2011-07-19  Richard Guenther  <rguenther@suse.de>
17174
17175         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
17176         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
17177         handling.
17178
17179         PR middle-end/18908
17180         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
17181         result of BIT_*_EXPR to bitfield precision.
17182
17183 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
17184
17185         PR tree-optimization/49742
17186         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
17187         as a potential write.
17188
17189 2011-07-19  Richard Guenther  <rguenther@suse.de>
17190
17191         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
17192         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
17193         (forward_propagate_comparison): Simplify, remove obsolete code.
17194
17195 2011-07-19  Richard Guenther  <rguenther@suse.de>
17196
17197         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
17198         BIT_XOR_EXPR, same as the RTL expander does.
17199         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
17200         (verify_gimple_assign_unary): Likewise.
17201         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
17202         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
17203         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
17204
17205 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
17206
17207         PR tree-optimization/49768
17208         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
17209         if offset is smaller than bitoffset, but offset+size is bigger
17210         than bitoffset.
17211
17212 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
17213
17214         PR tree-optimization/49771
17215         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
17216         zero step, set segment length to the size of the data-ref's type.
17217
17218 2011-07-18  Martin Jambor  <mjambor@suse.cz>
17219
17220         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
17221         comments.
17222         (ipcp_values_pool): Declare.
17223         (ipcp_sources_pool): Likewise.
17224         (ipcp_lattice): Changed to forward declaration.
17225         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
17226         cannot_devirtualize.
17227         (ipa_node_params): New fields descriptors, lattices, known_vals,
17228         clone_for_all_contexts and node dead, removed fields params and
17229         count_scale.
17230         (ipa_set_param_count): Removed.
17231         (ipa_get_param_count): Made to work with descriptors vector.
17232         (ipa_get_param): Updated.
17233         (ipa_param_cannot_devirtualize_p): Removed.
17234         (ipa_param_types_vec_empty): Likewise.
17235         (ipa_set_param_used): New function.
17236         (ipa_get_param_used): Updated to use descriptors vector.
17237         (ipa_func_list): Removed.
17238         (ipa_init_func_list): Removed declaration.
17239         (ipa_push_func_to_list_1): Likewise.
17240         (ipa_pop_func_from_list): Likewise.
17241         (ipa_push_func_to_list): Removed.
17242         (ipa_lattice_from_jfunc): Remove declaration.
17243         (ipa_get_jf_pass_through_result): Declare.
17244         (ipa_get_jf_ancestor_result): Likewise.
17245         (ipa_value_from_jfunc): Likewise.
17246         (ipa_get_lattice): Update.
17247         (ipa_lat_is_single_const): New function.
17248         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
17249         (ipa_init_func_list): Likewise.
17250         (ipa_pop_func_from_list): Likewise.
17251         (ipa_get_param_decl_index): Fix coding style.
17252         (count_formal_params): Removed.
17253         (count_formal_params_1): Renamed to count_formal_params.
17254         (ipa_populate_param_decls): Update to use descriptors vector.
17255         (ipa_initialize_node_params): Likewise.
17256         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
17257         (ipa_analyze_params_uses): Likewise.
17258         (ipa_free_node_params_substructures): Likewise and free also lattices
17259         and known values.
17260         (duplicate_array): Removed.
17261         (ipa_edge_duplication_hook): Add the new edge to the list of edge
17262         clones.
17263         (ipa_node_duplication_hook): Update to use new lattices.
17264         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
17265         (ipa_free_all_structures_after_iinln): Likewise.
17266         (ipa_write_node_info): Update to use new lattices.
17267         (ipa_read_node_info): Likewise.
17268         (ipa_get_jf_pass_through_result): New function.
17269         (ipa_get_jf_ancestor_result): Likewise.
17270         (ipa_value_from_jfunc): Likewise.
17271         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
17272         * ipa-cp.c: Reimplemented.
17273         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
17274         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
17275         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
17276         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
17277         * doc/invoke.texi (devirt-type-list-size): Removed description.
17278         (ipa-cp-value-list-size): Added description.
17279
17280 2011-07-18  Richard Henderson  <rth@redhat.com>
17281
17282         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
17283         before calling create_basic_block.
17284
17285 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
17286
17287         PR middle-end/49675
17288         * tree.c (build_common_builtin_nodes): Register
17289         __builtin_return_address, __cyg_profile_func_enter
17290         and __cyg_profile_func_exit.
17291
17292 2011-07-18  Richard Henderson  <rth@redhat.com>
17293
17294         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
17295         (add_labels_and_missing_jumps): ... here.
17296         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
17297
17298 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
17299
17300         PR target/47744
17301         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
17302         of DImode hard registers in PLUS address chains.
17303
17304 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17305
17306         PR bootstrap/49769
17307         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
17308         (alpha*-*-freebsd*): Likewise.
17309         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
17310         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
17311         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
17312         crtprec80.o, crtfastmath.o to extra_parts for all targets.
17313         (ia64*-*-elf*): Remove extra_parts.
17314         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
17315         (sparc64-*-linux*): Likewise.
17316         (sparc64-*-freebsd*): Likewise.
17317
17318         Revert:
17319         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
17320         (ia64*-*-linux*): Likewise.
17321         (mips64*-*-linux*): Likewise.
17322         (mips*-*-linux*): Likewise.
17323
17324 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
17325
17326         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
17327
17328 2011-07-18  Richard Guenther  <rguenther@suse.de>
17329
17330         * gimplify.c (gimplify_expr): Use input_location, not saved_location
17331         when building new trees.
17332
17333 2011-07-18  Richard Guenther  <rguenther@suse.de>
17334
17335         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
17336         expansion result to bitfield precision if required.
17337
17338 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17339
17340         * config.gcc (i[3456x]86-*-netware*): Remove.
17341
17342         * gthr-nks.h: Remove.
17343         * configure.ac (enable_threads): Remove nks.
17344         * configure: Regenerate.
17345
17346         * config/i386/i386.c (ix86_encode_section_info): Remove netware
17347         reference.
17348         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
17349         <netware.h> reference.
17350
17351         * config/i386/netware-libgcc.c,
17352         gcc/config/i386/netware-libgcc.def,
17353         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
17354         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
17355         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
17356         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
17357
17358         * doc/extend.texi (Function Attributes,
17359         callee_pop_aggregate_return): Remove i?86-netware reference.
17360         * doc/install.texi (Configuration, --enable-threads): Remove nks.
17361
17362 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17363
17364         PR target/49746
17365         Revert:
17366         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17367
17368         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
17369         patterns.
17370
17371 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
17372
17373         PR middle-end/49732
17374         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
17375
17376 2011-07-16  Matthias Klose  <doko@ubuntu.com>
17377
17378         * doc/install.texi: Document --enable-static-libjava.
17379
17380 2011-07-15  Richard Henderson  <rth@redhat.com>
17381
17382         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
17383         Replace all three arguments by returning a VEC of edges.
17384         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
17385         pointers and counts.
17386         (fix_edges_for_rarely_executed_code): Merge ...
17387         (rest_of_handle_partition_blocks): ... into...
17388         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
17389         any work was performed.
17390         (pass_partition_blocks): Clear todo_flags_finish.
17391
17392 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
17393             Jakub Jelinek  <jakub@redhat.com>
17394             Jonathan Wakely  <jwakely.gcc@gmail.com>
17395
17396         PR libstdc++/49745
17397         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
17398         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
17399
17400 2011-07-15  Jason Merrill  <jason@redhat.com>
17401
17402         PR testsuite/49741
17403         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
17404         rather than --tool_opts.
17405
17406 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
17407
17408         * doc/plugins.texi (Building GCC plugins): gengtype needs its
17409         corresponding gtype.state.
17410
17411 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17412
17413         PR target/49723
17414         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
17415
17416 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
17417
17418         PR target/48220
17419         * doc/md.texi (Standard Names): Document window_save.
17420         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
17421         expand_debug_expr and expand_debug_source_expr.  If the target has
17422         a window_save instruction, adjust the ENTRY_VALUE_EXP.
17423         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
17424         SSA_NAME_VAR is a parameter.
17425         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
17426         * var-tracking.c (parm_reg_t): New type and associated vector type.
17427         (windowed_parm_regs): New variable.
17428         (adjust_insn): If the target has a window_save instruction and this
17429         is the instruction, make its effect on parameter registers explicit.
17430         (next_non_note_insn_var_location): New function.
17431         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
17432         (vt_add_function_parameter): If the target has a window_save insn,
17433         adjust the incoming RTL and record that in windowed_parm_regs.
17434         (vt_finalize): Free windowed_parm_regs.
17435
17436 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
17437
17438         * doc/invoke.texi (C6X Options): New section.
17439         * doc/md.texi (TI C6X family): New section.
17440         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
17441         tic6x-*-uclinux.
17442         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
17443         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
17444         Provide C6X definitions.
17445         * config/c6x/c6x.md: New file.
17446         * config/c6x/constraints.md: New file.
17447         * config/c6x/predicates.md: New file.
17448         * config/c6x/c6x-sched.md.in: New file.
17449         * config/c6x/c6x-sched.md: New file.
17450         * config/c6x/gensched.sh: New file.
17451         * config/c6x/c6x-mult.md.in: New file.
17452         * config/c6x/genmult.sh: New file.
17453         * config/c6x/c6x-mult.md: New file.
17454         * config/c6x/sync.md: New file.
17455         * config/c6x/c6x-protos.h: New file.
17456         * config/c6x/sfp-machine.h: New file.
17457         * config/c6x/c6x.c: New file.
17458         * config/c6x/c6x.h: New file.
17459         * config/c6x/crti.s: New file.
17460         * config/c6x/crtn.s: New file.
17461         * config/c6x/lib1funcs.asm: New file.
17462         * config/c6x/c6x-modes.def: New file.
17463         * config/c6x/genopt.sh: New file.
17464         * config/c6x/c6x.opt: New file.
17465         * config/c6x/c6x-tables.opt: New file.
17466         * config/c6x/c6x-opts.h: New file.
17467         * config/c6x/c6x-isas.def: New file.
17468         * config/c6x/elf.h: New file.
17469         * config/c6x/elf-common.h: New file.
17470         * config/c6x/uclinux-elf.h: New file.
17471         * config/c6x/t-c6x: New file.
17472         * config/c6x/t-c6x-elf: New file.
17473         * config/c6x/t-c6x-uclinux: New file.
17474         * config/c6x/t-c6x-softfp: New file.
17475         * config/c6x/gtd.c: New file.
17476         * config/c6x/gtf.c: New file.
17477         * config/c6x/ltd.c: New file.
17478         * config/c6x/ltf.c: New file.
17479         * config/c6x/ged.c: New file.
17480         * config/c6x/gef.c: New file.
17481         * config/c6x/led.c: New file.
17482         * config/c6x/lef.c: New file.
17483         * config/c6x/eqd.c: New file.
17484         * config/c6x/eqf.c: New file.
17485         * config/c6x/libgcc-c6xeabi.ver: New file.
17486
17487         Revert
17488         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
17489         PR rtl-optimization/11320
17490         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
17491         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
17492         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
17493         current_sched_info->compute_jump_reg_dependencies. Record which
17494         registers are used and which registers are set by the jump.
17495         Clear deps->reg_conditional_sets after a barrier.
17496         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
17497         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
17498         (init_deps): Initialize reg_conditional_sets.
17499         (free_deps): Clear reg_conditional_sets.
17500         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
17501         Mark registers live on entry of the fallthrough block and conditionally
17502         set as set by the jump. Mark registers live on entry of non-fallthrough
17503         blocks as used by the jump.
17504         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
17505         Mark new parameters as unused.
17506
17507 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
17508
17509         PR tree-opt/49309
17510         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
17511         Use fold_build2_loc instead of build2.
17512         Use the correct type for the new tree.
17513
17514 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17515
17516         PR rtl-optimization/11320
17517         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
17518         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
17519
17520 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
17521
17522         PR target/49487
17523         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
17524         of REG.
17525         (*rotw<mode>): Use const_int_operand for operand2.
17526         Use match_scatch for operand3.
17527         (*rotb<mode>): Ditto
17528         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
17529
17530 2011-07-14  Richard Guenther  <rguenther@suse.de>
17531
17532         PR tree-optimization/49651
17533         * tree-ssa-structalias.c (get_constraint_for_1): Properly
17534         handle dereferences with subvariables.
17535
17536 2011-07-14  Richard Guenther  <rguenther@suse.de>
17537
17538         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
17539         (fold_stmt_1): Do it here directly on gimple and as a first thing.
17540
17541 2011-07-14  Richard Guenther  <rguenther@suse.de>
17542
17543         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
17544         not bool_var when folding bool_var != 1 or bool_var == 0.
17545
17546 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17547
17548         * haifa-sched.c (schedule_insns): Remove outdated comment.
17549         (schedule_block): When computing a known value for TODO_SPEC,
17550         just set it rather than using logical operations.
17551         (try_ready): Likewise.  Use a local variable rather than a
17552         pointer to TODO_SPEC.  Reorder an if statement to move the
17553         easy case to the then block.
17554         * sched-deps.c (dep_spec_p): New static function.
17555         (update_dep): Use it to decide whether to call
17556         change_spec_dep_to_hard.
17557         (get_back_and_forw_lists): Use it.
17558         (sd_resolve_dep): Likewise.
17559         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
17560         (haifa_note_mem_dep): Likewise.
17561         (check_dep): Likewise.
17562         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
17563         (sched_free_deps): Free in two passes.
17564
17565 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
17566
17567         PR middle-end/49736
17568         * expr.c (all_zeros_p): Undo bogus part of last change.
17569
17570 2011-07-14  Matthias Klose <doko@ubuntu.com>
17571
17572         * doc/extend.texi (optimize attribute): Fix typo.
17573
17574 2011-07-14  Richard Guenther  <rguenther@suse.de>
17575
17576         * gimplify.c (gimplify_expr): Only do required conversions.
17577
17578 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
17579
17580         PR target/43746
17581         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
17582         i.e. use default_elf_select_section.
17583         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
17584         (READONLY_DATA_SECTION_ASM_OP): Remove.
17585         (TARGET_ASM_NAMED_SECTION): Move from here...
17586         * config/avr/avr.c: ...to here.
17587         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
17588         (avr_asm_named_section): Make static.
17589
17590 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17591
17592         PR bootstrap/49739
17593         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
17594         and crtfastmath.o for Linux/x86.
17595
17596 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17597
17598         * haifa-sched.c: Include "hashtab.h"
17599         (sched_no_dce): New global variable.
17600         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
17601         SHADOW_P): New macros.
17602         (last_clock_var, cycle_issued_insns): Move declarations.
17603         (must_backtrack): New static variable.
17604         (struct delay_pair): New structure.
17605         (delay_htab, delay_htab_i2): New static variables.
17606         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
17607         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
17608         functions.
17609         (dep_cost_1): If delay pairs exist, try to look up the insns and
17610         use the correct pair delay if we find them.
17611         (rank-for_schedule): Tweak priority for insns that must be scheduled
17612         soon to avoid backtracking.
17613         (queue_insn): Detect conditions which force backtracking.
17614         (ready_add): Likewise.
17615         (struct sched_block_state): Add member shadows_only_p.
17616         (struct haifa_save_data): New structure.
17617         (backtrack_queue): New static variable.
17618         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
17619         unschedule_insns_until, restore_last_backtrack_point,
17620         free_topmost_backtrack_point, free_backtrack_queue,
17621         estimate_insn_tick, estimate_shadow_tick): New functions.
17622         (prune_ready_list): New arg shadows_only_p.  All callers changed.
17623         If true, remove everything that isn't SHADOW_P.  Look up delay
17624         pairs and estimate ticks to avoid scheduling the first insn too early.
17625         (verify_shadows): New function.
17626         (schedule_block): Add machinery to enable backtracking.
17627         (sched_init): Take sched_no_dce into account when setting
17628         DF_LR_RUN_DCE.
17629         (free_delay_pairs): New function.
17630         (init_h_i_d): Initialize INSN_EXACT_TICK.
17631         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
17632         * sched-deps.c (sd_unresolve_dep): New function.
17633         * sched-int. (struct haifa_sched_info): New fields save_state
17634         and restore_state.
17635         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
17636         feeds_backtrack_insn and shadow_p.
17637         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
17638         (sched_no_dce): Declare variable.
17639         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
17640         sd_unresolve_dep): Declare functions.
17641         * modulo-sched.c (sms_sched_info): Clear the two new fields.
17642         * sched-rgn.c (rgn_const_sched_info): Likewise.
17643         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17644         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
17645         (ebb_sched_info): Add them for the two new fields.
17646         (add_deps_for_risky_insns): Call add_delay_dependencies.
17647
17648 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
17649
17650         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
17651         Rename -mr11.
17652         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
17653         (rs6000_call_indirect_aix): Ditto.
17654         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
17655         (call_indirect_aix<ptrsize>_internal): Ditto.
17656         (call_indirect_aix<ptrsize>_nor11): Ditto.
17657         (call_indirect_aix<ptrsize>_internal2): Ditto.
17658         (call_value_indirect_aix<ptrsize>): Ditto.
17659         (call_value_indirect_aix<ptrsize>_internal): Ditto.
17660         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
17661         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
17662         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
17663
17664 2011-07-13  Jason Merrill  <jason@redhat.com>
17665
17666         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
17667
17668 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17669
17670         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
17671         * config/spu/spu.md ("clrsb<mode>2"): New expander.
17672
17673 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
17674
17675         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
17676         * configure: Regenerate.
17677
17678 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17679
17680         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
17681         (asm_file_start): Remove.
17682         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
17683         free_bb_for_insn around code that modifies insns before
17684         restarting df analysis.
17685
17686 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17687
17688         PR target/49541
17689         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
17690         (LINK_SPEC): ... here.
17691
17692 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
17693
17694         * haifa-sched.c (struct sched_block_state): New.
17695         (schedule_block): Move some local variables into such a structure.
17696
17697 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17698
17699         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
17700         * config/i386/t-crtpc: Remove.
17701         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
17702         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
17703         tmake_file.
17704         (x86_64-*-darwin*): Likewise.
17705         (i[34567]86-*-linux*): Likewise.
17706         (x86_64-*-linux*): Likewise.
17707
17708         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
17709         Handle -mpc32, -mpc64, -mpc80.
17710
17711 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17712
17713         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
17714         * config/alpha/t-crtfm: Remove.
17715         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
17716         * config/i386/t-crtfm: Remove.
17717         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
17718         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
17719         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
17720         * config/sparc/t-crtfm: Remove.
17721
17722         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
17723         (alpha*-*-freebsd*): Likewise.
17724         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
17725         (x86_64-*-darwin*): Likewise.
17726         (i[34567]86-*-linux*): Likewise.
17727         (x86_64-*-linux*): Likewise.
17728         (x86_64-*-mingw*): Likewise.
17729         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
17730         (ia64*-*-freebsd*): Likewise.
17731         (ia64*-*-linux*): Likewise.
17732         (mips64*-*-linux*): Likewise.
17733         (mips*-*-linux*): Likewise.
17734         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
17735         (sparc64-*-linux*): Likewise.
17736         (sparc64-*-freebsd*): Likewise.
17737
17738 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17739
17740         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
17741         * config/darwin-crt3.c: Move to ../libgcc/config.
17742         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
17743         ($(T)crt3$(objext)): Remove.
17744         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
17745         ($(T)crt2$(objext)): Remove.
17746         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
17747         (powerpc64-*-darwin*): Likewise.
17748
17749 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
17750
17751         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
17752
17753         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
17754         (addsi_1_zext): This.
17755
17756 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
17757
17758         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
17759         * doc/tm.texi: Regenerate.
17760         * target.def (mergeable_rodata_prefix): New defhookpod.
17761         * varasm.c (mergeable_string_section, mergeable_constant_section):
17762         Use it. Allocate name with alloca.
17763
17764 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
17765
17766         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
17767
17768 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
17769
17770         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
17771         overlap check.
17772
17773 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
17774
17775         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
17776         (count_type_elements): Delete.
17777         (complete_ctor_at_level_p): Declare.
17778         * expr.c (flexible_array_member_p): New function, split out from...
17779         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
17780         parameter with for_ctor_p.  When for_ctor_p is true, return the
17781         number of elements that should appear in the top-level constructor,
17782         otherwise return an estimate of the number of scalars.
17783         (categorize_ctor_elements): Replace p_must_clear with p_complete.
17784         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
17785         (complete_ctor_at_level_p): New function, borrowing union logic
17786         from old categorize_ctor_elements_1.
17787         (mostly_zeros_p): Return true if the constructor is not complete.
17788         (all_zeros_p): Update call to categorize_ctor_elements.
17789         * gimplify.c (gimplify_init_constructor): Update call to
17790         categorize_ctor_elements.  Don't call count_type_elements.
17791         Unconditionally prevent clearing for variable-sized types,
17792         otherwise rely on categorize_ctor_elements to detect
17793         incomplete initializers.
17794
17795 2011-07-13  Richard Guenther  <rguenther@suse.de>
17796
17797         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
17798         the final type is integral.
17799
17800 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
17801
17802         * sched-int.h (struct _dep): Add member cost.
17803         (DEP_COST, UNKNOWN_DEP_COST): New macros.
17804         * sched-deps.c (init_dep_1): Initialize DEP_COST.
17805         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
17806         (sched_change_pattern): Reset it for dependent insns.
17807
17808 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17809
17810         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
17811         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
17812         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
17813         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
17814         (CRT0_S, MCRT0_S): Remove.
17815         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
17816         Remove.
17817         (s-crt0): Remove.
17818         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
17819
17820 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
17821
17822         * cse.c (insert_with_costs): Put semi-colon after empty loop body
17823         on the next line.
17824         * emit-rtl.c (push_to_sequence): Likewise.
17825         * haifa-sched.c (max_issue): Likewise.
17826         * matrix-reorg.c (add_allocation_site): Likewise.
17827         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
17828         * reload.c (alternative_allows_const_pool_ref): Likewise.
17829         * sched-rgn.c (rgn_add_block): Likewise.
17830         (rgn_fix_recovery_cfg): Likewise.
17831         * tree.c (attribute_list_contained): Likewise.
17832
17833 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
17834
17835         * config/i386/i386.c: Tidy processor feature bitmasks.
17836         (m_P4_NOCONA): New.
17837
17838 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
17839
17840         PR rtl-opt/49474
17841         * cprop.c (find_implicit_sets): Correct the condition.
17842
17843 2011-07-12  Richard Henderson  <rth@redhat.com>
17844
17845         PR target/49713
17846         * dwarf2out.h (dwarf_frame_regnum): Remove.
17847         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
17848         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
17849         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
17850         (execute_dwarf2_frame): Initialize them.
17851         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
17852         users of the macros with the variables.
17853         (expand_builtin_dwarf_sp_column): Revert last change.
17854         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
17855         result of DWARF_FRAME_REGNUM into a local variable.
17856
17857 2011-07-12  Richard Henderson  <rth@redhat.com>
17858
17859         PR target/49714
17860         * config/i386/i386.c (x86_output_mi_thunk): Use
17861         machopic_indirect_call_target instead of machopic_indirection_name
17862         directly.
17863
17864 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
17865             Eric Botcazou  <ebotcazou@adacore.com>
17866
17867         * prefix.h: Wrap up in extern "C" block.
17868
17869 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
17870
17871         AMD bdver2 Enablement
17872         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
17873         (case ${target}): Add bdver2.
17874         * config/i386/driver-i386.c (host_detect_local_cpu): Let
17875         -march=native recognize bdver2 processors.
17876         * config/i386/i386-c.c (ix86_target_macros_internal): Add
17877         bdver2 def_and_undef
17878         * config/i386/i386.c (struct processor_costs bdver2_cost): New
17879         bdver2 cost table.
17880         (m_BDVER2): New definition.
17881         (m_AMD_MULTIPLE): Includes m_BDVER2.
17882         (initial_ix86_tune_features): Add bdver2 tuning.
17883         (processor_target_table): Add bdver2 entry.
17884         (static const char *const cpu_names): Add bdver2 entry.
17885         (ix86_option_override_internal): Add bdver2 instruction sets.
17886         (ix86_issue_rate): Add bdver2.
17887         (ix86_adjust_cost): Add bdver2.
17888         (has_dispatch): Add bdver2.
17889         * config/i386/i386.h (TARGET_BDVER2): New definition.
17890         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
17891         (enum processor_type): Add PROCESSOR_BDVER2.
17892         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
17893         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
17894         description.
17895
17896 2011-07-12  Richard Henderson  <rth@redhat.com>
17897
17898         PR target/49714
17899         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
17900         destination address in memory on some paths.
17901
17902 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
17903
17904         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
17905         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
17906         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
17907         * function.c (locate_and_pad_parm): Take it into account.
17908         * target.def (function_arg_round_boundary): New hook.
17909         * targhooks.c (default_function_arg_round_boundary): New function.
17910         * targhooks.h (default_function_arg_round_boundary): Declare.
17911         * doc/tm.texi: Regenerate.
17912
17913 2011-07-12  Richard Guenther  <rguenther@suse.de>
17914
17915         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
17916         Do not perform no-op changes.
17917
17918 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
17919
17920         * config/arm/predicates.md (neon_struct_operand): Make a normal
17921         predicate.
17922         (neon_struct_or_register_operand): New predicate.
17923         * config/arm/neon.md (movmisalign<mode>): Replace predicates
17924         with neon_struct_or_register_operand.
17925         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
17926         neon_struct_operand instead of memory_operand.
17927
17928 2011-07-12  Martin Jambor  <mjambor@suse.cz>
17929
17930         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
17931         * cgraph.c (cgraph_get_node_or_alias): Removed.
17932         (change_decl_assembler_name): Changed all calls to
17933         cgraph_get_node_or_alias to a call to cgraph_get_node.
17934         (cgraph_make_decl_local): Likewise.
17935         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
17936         * varasm.c (default_binds_local_p_1): Likewise.
17937         (decl_binds_to_current_def_p): Likewise.
17938
17939 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
17940
17941         PR tree-optimization/49712
17942         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
17943
17944 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
17945
17946         * genautomata.c (add_arc): Return void.  All callers changed.
17947         (make_automaton): Remove dead code.
17948
17949 2011-07-11  Richard Henderson  <rth@redhat.com>
17950
17951         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
17952         (DW_FRAME_POINTER_REGNUM): New.
17953         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
17954         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
17955         (dwf_regno): New.
17956         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
17957         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
17958         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
17959         Use it.
17960         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
17961         * dwarf2out.h (dwarf_frame_regnum): New.
17962         (struct cfa_loc): Document the domain of the reg member.
17963
17964 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
17965
17966         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
17967         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
17968
17969 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
17970
17971         PR debug/49676
17972         * dwarf2out.c (int_shift_loc_descriptor): New function.
17973         (int_loc_descriptor): If shorter, emit i as
17974         (i >> shift), shift, DW_OP_shl for suitable shift value.
17975         Similarly, try to optimize large negative values using
17976         DW_OP_neg of a positive value if shorter.
17977         (size_of_int_shift_loc_descriptor): New function.
17978         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
17979         changes.
17980         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
17981         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
17982         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
17983         is shorter.
17984         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
17985         addend as added DW_OP_plus if it is shorter.
17986
17987 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17988
17989         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
17990         (DTORS_SECTION_ASM_OP): Define.
17991
17992 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17993
17994         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
17995         * config/t-dfprules: Move to ../libgcc/config.
17996         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
17997         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
17998         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
17999         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
18000         Likewise.
18001         (i[34567]86-*-cygwin*): Likewise.
18002         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
18003         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
18004         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
18005         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
18006         D64PBIT_FUNCS, D128PBIT_FUNCS.
18007
18008 2011-07-11  Richard Guenther  <rguenther@suse.de>
18009
18010         * tree-vrp.c (simplify_conversion_using_ranges): Manually
18011         translate the source value-range through the conversion chain.
18012
18013 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
18014
18015         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
18016
18017 2011-07-11  Arthur Loiret  <aloiret@debian.org>
18018
18019         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
18020         a bi-arch compiler defaulting to 31-bit. In this case:
18021         (tmake_file): Add s390/t-linux64.
18022         * doc/install.texi: Add s390-linux to the list of targets supporting
18023         --enable-targets=all.
18024
18025 2011-07-11  Arthur Loiret  <aloiret@debian.org>
18026             Matthias Klose <doko@debian.org>
18027
18028         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
18029         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
18030         (tm_file): Add mips/linux64.h.
18031         (tmake_file): Add mips/t-linux64.
18032         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
18033         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
18034         instead of hardcoded mabi=n32.
18035         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
18036         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
18037         convention.
18038
18039 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18040
18041         * passes.c (init_optimization_passes): Add invariant motion pass
18042         after induction variable optimization.
18043
18044 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
18045
18046         PR target/39633
18047         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
18048         offsets 1..5 set cc0 in a usable way.
18049
18050 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
18051
18052         * tree.h (call_expr_arg): Remove.
18053         (call_expr_argp): Likewise.
18054
18055 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
18056
18057         * config/sparc/sparc.md (save_register_window_1): Rename to...
18058         (window_save): ...this.
18059         * config/sparc/sparc.c (emit_save_register_window): Rename to...
18060         (emit_window_save): ...this.
18061         (sparc_expand_prologue): Adjust to above renaming.
18062
18063 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
18064
18065         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
18066         of movabs for x32.
18067
18068 2011-07-10  Richard Henderson  <rth@redhat.com>
18069
18070         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
18071         run final, instead of emitting text directly.
18072
18073 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
18074
18075         * config/i386/i386.c (ix86_option_override_internal): Turn on
18076         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
18077         small PIC models for TARGET_X32.
18078
18079 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
18080
18081         PR target/49684
18082         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
18083         $(LIBGCC2_CFLAGS).
18084
18085         PR bootstrap/49680
18086         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
18087         stray notes and debug insns by using prev_nonnote_nondebug_insn
18088         instead of PREV_INSN.
18089
18090 2011-07-09  Richard Henderson  <rth@redhat.com>
18091
18092         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
18093         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
18094         * dwarf2out.c: ... here.
18095         (output_all_cfis): Remove.
18096         (dwarf2out_switch_text_section): Use output_cfis directly.
18097         (size_of_locs): Export.
18098         (output_loc_sequence, output_loc_sequence_raw): Export.
18099         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
18100         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
18101         output_cfa_loc_raw): Move to ...
18102         * dwarfcfi.c: ... here.
18103         * dwarf2out.h: Update decls.
18104
18105 2011-07-09  Richard Henderson  <rth@redhat.com>
18106
18107         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
18108         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
18109         * dwarf2cfi.c: ... here.
18110         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
18111         (DWARF_ROUND, DWARF_CIE_ID): Remove.
18112         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
18113         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
18114         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
18115
18116 2011-07-09  Richard Henderson  <rth@redhat.com>
18117
18118         * dwarf2cfi.c (cie_return_save): New.
18119         (queue_reg_save): Use compare_reg_or_pc.
18120         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
18121         (dwarf2out_frame_debug_expr): Likewise.
18122         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
18123         (initial_return_save): Likewise.
18124         (execute_dwarf2_frame): Save and restore initial return save from
18125         the cie to the fde.
18126         * config/mips/mips.c (mips_frame_set): Remove special case for
18127         DWARF_FRAME_RETURN_COLUMN.
18128
18129 2011-07-09  Richard Henderson  <rth@redhat.com>
18130
18131         * dwarf2cfi.c (lookup_cfa): Remove.
18132         (execute_dwarf2_frame): Assert queues are empty on entry.
18133         Setup initial cfa directly, not via lookup_cfa.
18134         Don't clear args_size state here.
18135
18136 2011-07-09  Richard Henderson  <rth@redhat.com>
18137
18138         * dwarf2cfi.c (add_cfi_vec): New.
18139         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
18140         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
18141         (execute_dwarf2_frame): Set add_cfi_vec.
18142
18143 2011-07-09  Richard Henderson  <rth@redhat.com>
18144
18145         * defaults.h (ASM_COMMENT_START): Move here...
18146         * dwarf2asm.c: ... from here.
18147         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
18148         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
18149         * varasm.c: Likewise.
18150
18151 2011-07-09  Richard Henderson  <rth@redhat.com>
18152
18153         PR debug/49686
18154         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
18155         (create_cfi_notes): ... do it here instead.
18156
18157 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
18158
18159         PR debug/49676
18160         * dwarf2out.c (size_of_int_loc_descriptor): New function.
18161         (address_of_int_loc_descriptor): Use it.
18162         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
18163
18164 2011-07-09  Richard Henderson  <rth@redhat.com>
18165
18166         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
18167         (prologue, epilogue): New.
18168         (return, *rts): New.
18169         (blockage, setd, seti): New.
18170         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
18171         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
18172         (pdp11_saved_regno): New.
18173         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
18174         generate rtl instead of text.
18175         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
18176         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
18177         * config/pdp11/pdp11-protos.h: Update.
18178
18179 2011-07-09  Richard Henderson  <rth@redhat.com>
18180
18181         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
18182         try to insert an rtl prologue here.
18183         (rs6000_output_function_epilogue): Similarly.
18184         * config/rs6000/rs6000.md (prologue): Emit a barrier to
18185         satisfy !TARGET_SCHED_PROLOG.
18186         (epilogue, sibcall_epilogue): Likewise.
18187
18188 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
18189
18190         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
18191         (FP_REG_P): Delete.
18192         (IN_OR_GLOBAL_P): Likewise.
18193
18194 2011-07-08  Jason Merrill  <jason@redhat.com>
18195
18196         PR c++/45437
18197         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
18198         compound assignment.
18199
18200         * cgraph.c (cgraph_add_to_same_comdat_group): New.
18201         * cgraph.h: Declare it.
18202         * ipa.c (function_and_variable_visibility): Make sure thunks
18203         have the right visibility.
18204
18205 2011-07-08  Richard Henderson  <rth@redhat.com>
18206
18207         PR bootstrap/49680
18208         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
18209         any tablejump vector.
18210
18211         PR bootstrap/49680
18212         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
18213         end of the prologue.
18214
18215 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
18216
18217         PR target/49621
18218         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
18219         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
18220         * config/rs6000/vector.md (vector_select_<mode>,
18221         vector_select_<mode>_uns): Change second operand of NE to
18222         CONST0_RTX (<MODE>mode) instead of const0_rtx.
18223         * config/rs6000/altivec.md (*altivec_vsel<mode>,
18224         *altivec_vsel<mode>_uns): Expect second operand of NE to be
18225         zero_constant of the corresponding vector mode.
18226         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
18227         Likewise.
18228
18229 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18230
18231         * graphite-dependences.c (build_alias_set_powerset): Remove
18232         continue from loop, add one more assert.
18233
18234 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
18235
18236         PR target/46779
18237         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
18238         In particular, allow 8-bit values in r28 and r29.
18239         (avr_hard_regno_scratch_ok): Disallow any register that might be
18240         part of the frame pointer.
18241         (avr_hard_regno_rename_ok): Same.
18242         (avr_legitimate_address_p): Don't allow SUBREGs.
18243
18244 2011-07-08  Julian Brown  <julian@codesourcery.com>
18245
18246         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
18247         big-endian mode.
18248         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
18249         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
18250         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
18251         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
18252         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
18253         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
18254         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
18255         registers in big-endian mode.
18256
18257 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
18258
18259         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
18260         in terms of another.
18261         (write_attr_value): Write a cast if necessary.
18262
18263         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
18264         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
18265         (REG_WORDS_BIG_ENDIAN): Document.
18266         * doc/tm.texi: Regenerate.
18267         * reload.c (operands_match_p): Take it into account.
18268         (reload_adjust_reg_for_mode): Likewise.
18269         * rtlanal.c (subreg_get_info): Likewise.
18270
18271 2011-07-08  Richard Guenther  <rguenther@suse.de>
18272
18273         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
18274         folding.
18275
18276 2011-07-08  Kai Tietz  <ktietz@redhat.com>
18277
18278         * fold-const.c (fold_truth_andor): Factored out truth_andor
18279         label from fold_binary as function.
18280         (fold_binary_loc): Replace truth_andor lable
18281         by function fold_truth_andor.
18282
18283 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
18284
18285         PR middle-end/49519
18286         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
18287         check if address is stored in register. If so - give up.
18288         (check_sibcall_argument_overlap_1): Do not perform check of
18289         overlapping when it is call to address.
18290
18291 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
18292
18293         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
18294         of magic '31'.
18295
18296 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
18297
18298         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
18299         GET_MODE_BITSIZE where appropriate.
18300         (widen_leading, expand_parity, expand_ctz, expand_ffs,
18301         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
18302         expand_float, expand_fix): Likewise.
18303         * expr.c (convert_move, convert_modes, expand_expr_real_2,
18304         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
18305         * stor-layout.c (get_mode_bounds): Likewise.
18306         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
18307         Likewise.
18308         * convert.c (convert_to_integer): Likewise.
18309         * expmed.c (expand_shift_1): Likewise.
18310
18311         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
18312         a bitsize.
18313
18314         * optabs.c (expand_binop): Tighten conditions for doubleword
18315         expansions.
18316         (widen_bswap): Assert that mode bitsize and precision are the same.
18317         * stor-layout.c (get_best_mode): Skip modes that have lower
18318         precision than bitsize.
18319         * recog.c (simplify_while_replacing): Assert that bitsize and
18320         precision are the same.
18321
18322 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18323
18324         * Makefile.in (LIBGCOV): Remove.
18325         (libgcc.mvars): Remove LIBGCOV.
18326         * libgov.c: Move to ../libgcc.
18327
18328 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18329
18330         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
18331
18332 2011-07-08  Martin Jambor  <mjambor@suse.cz>
18333
18334         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
18335         is too big for total scalarization.
18336
18337 2011-07-07  Richard Henderson  <rth@redhat.com>
18338
18339         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
18340         (DBX_DEBUGGING_INFO): Undef.
18341
18342 2011-07-07  Richard Henderson  <rth@redhat.com>
18343
18344         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
18345         Handle some opcodes specially for debugging.
18346         * print-rtl.c: Include dwarf2out.h
18347         (print_rtx): Handle NOTE_INSN_CFI.
18348         * Makefile.in (print-rtl.o): Update.
18349
18350 2011-07-07  Richard Henderson  <rth@redhat.com>
18351
18352         * tree-pass.h (pass_dwarf2_frame): Declare.
18353         * passes.c (init_optimization_passes): Add it.
18354         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
18355         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
18356         make static, do not call add_cfis_to_fde.
18357         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
18358         dwarf2out_frame_init): Merge into...
18359         (execute_dwarf2_frame): ... here.  New function.
18360         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
18361         saved_do_cfi_asm to a tri-state variable.
18362         (gate_dwarf2_frame, pass_dwarf2_frame): New.
18363         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
18364         if it has yet to be done.  Don't call dwarf2cfi_function_init.
18365         * dwarf2out.h, debug.h: Update decls.
18366         * final.c (final_start_function): Don't call
18367         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
18368         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
18369         * toplev.c (lang_dependent_init): Likewise.
18370
18371 2011-07-07  Richard Henderson  <rth@redhat.com>
18372
18373         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
18374         FDE_TABLE_INCREMENT): Replace with...
18375         (fde_vec): ... this, a new vector.
18376         (current_fde): Remove.  Replace all users with cfun->fde.
18377         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
18378         (size_of_aranges, dwarf2out_finish): Likewise.
18379         (dwarf2out_alloc_current_fde): Break out from ...
18380         (dwarf2out_begin_prologue): ... here.
18381         (dwarf2out_frame_init): Remove.
18382         * dwarf2cfi.c: Update all users of current_fde.
18383         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
18384         * dwarf2out.h: Update decls.
18385         (dw_fde_node): Add fde_index member.
18386         * function.h (struct function): Add fde member.
18387
18388 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18389             Richard Henderson  <rth@redhat.com>
18390
18391         * dwarf2cfi.c (add_cfi): Remove.
18392         (dwarf2out_cfi_label): Remove force argument.  Only generate the
18393         label name.
18394         (add_fde_cfi): Simplify the different code paths.
18395         (add_cie_cfi): New.
18396         (old_cfa, old_cfa_remember): New.
18397         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
18398         (last_reg_save_label): Remove.
18399         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
18400         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
18401         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
18402         dwarf2out_frame_debug_cfa_expression,
18403         dwarf2out_frame_debug_cfa_restore,
18404         dwarf2out_frame_debug_cfa_window_save,
18405         dwarf2out_frame_debug_expr): Remove label parameter.
18406         (cfi_label_required_p, add_cfis_to_fde): New.
18407         (dwarf2out_frame_debug_after_prologue): New.
18408         (dwarf2cfi_frame_init): Initialize old_cfa.
18409         (dwarf2out_frame_debug_restore_state): Likewise.
18410         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
18411         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
18412         * final.c (final_start_function): Call
18413         dwarf2out_frame_debug_after_prologue.
18414
18415 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18416             Richard Henderson  <rth@redhat.com>
18417
18418         * dwarf2cfi.c (cfi_insn): New.
18419         (dwarf2out_cfi_label): Don't emit cfi label here.
18420         (add_fde_cfi): Create a NOTE_INSN_CFI.
18421         (dwarf2out_frame_debug): Setup cfi_insn.
18422         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
18423         (dwarf2out_cfi_begin_epilogue): Make static.
18424         (dwarf2out_frame_debug_restore_state): Make static.
18425         * dwarf2out.c (output_cfi_directive): Make static.
18426         (dwarf2out_emit_cfi): New.
18427         * dwarf2out.h: Update.
18428         * final.c (final): Remove CFI notes.
18429         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
18430         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
18431         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
18432         * insn-notes.def (NOTE_INSN_CFI): New.
18433         (NOTE_INSN_CFI_LABEL): New.
18434         * rtl.h (union rtunion_def): Add rt_cfi member.
18435         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
18436
18437 2011-07-07  Richard Henderson  <rth@redhat.com>
18438
18439         * dwarf2cfi.c: New file.
18440         * Makefile.in (OBJS): Add it.
18441         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
18442         * gengtype.c (open_base_files): Include dwarf2out.h.
18443         * coretypes.h (enum var_init_status): Move from ...
18444         * rtl.h: ... here.
18445         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
18446         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
18447         expand_builtin_dwarf_sp_column, init_return_column_size,
18448         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
18449         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
18450         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
18451         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
18452         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
18453         compute_barrier_args_size, dwarf2out_args_size,
18454         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
18455         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
18456         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
18457         queue_reg_save, dwarf2out_flush_queued_reg_saves,
18458         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
18459         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
18460         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
18461         dwarf2out_frame_debug_cfa_expression,
18462         dwarf2out_frame_debug_cfa_restore,
18463         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
18464         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
18465         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
18466         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
18467         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
18468         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
18469         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
18470         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
18471         dw_loc_descr_node): Move to dwarf2out.h.
18472         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
18473         mem_loc_descriptor): Export.
18474         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
18475         (dwarf2out_frame_init): Extract CIE generation code to
18476         dwarf2cfi_frame_init.
18477
18478 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
18479
18480         PR target/49660
18481         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
18482         MASK_V8PLUS, remove commented out flag and reorder.
18483
18484 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
18485
18486         PR c/49644
18487         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
18488         one non-complex and one complex argument, call c_save_expr on both
18489         operands.
18490
18491 2011-07-07  Martin Jambor  <mjambor@suse.cz>
18492
18493         PR middle-end/49495
18494         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
18495         (verify_cgraph_node): Some functinality moved to
18496         verify_edge_corresponds_to_fndecl, call it.
18497
18498 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
18499
18500         * config.gcc (*local*): Remove.
18501         * doc/install-old.texi: Don't mention local configurations.
18502
18503 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
18504
18505         PR debug/49522
18506         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
18507         referencing debug insns that have been reset.
18508         (dead_debug_insert_before): Don't assert reg is non-NULL,
18509         instead return immediately if it is NULL.
18510
18511 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
18512
18513         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
18514
18515 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18516
18517         * hw-doloop.c: New file.
18518         * hw-doloop.h: New file.
18519         * Makefile.in (OBJS): Add hw-doloop.o.
18520         (hw-doloop.o): New rule.
18521         ($(obj_out_file)): Add hw-doloop.h dependency.
18522         * config/bfin/bfin.c: Include "hw-doloop.h".
18523         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
18524         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
18525         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
18526         type changed to hwloop_info.  Return bool, true if the loop was
18527         successfully optimized.  Remove code that was moved to
18528         hw-doloop.c, and adjust other parts.
18529         (hwloop_fail): New static function, containing parts that used
18530         to be in bfin_optimize_loop.
18531         (bfin_discover_loop, bfin_discover_loops, free_loops,
18532         bfin_reorder_loops): Remove.
18533         (hwloop_pattern_reg): New static function.
18534         (bfin_doloop_hooks): New variable.
18535         (bfin_reorg_loops): Remove most code, call reorg_loops.
18536         * config/bfin/bfin.md (doloop_end splitter): Also enable if
18537         loop counter is a memory_operand.
18538
18539 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18540
18541         * config.gcc: Support --with-multilib-list for x86 Linux targets.
18542
18543         * configure.ac: Mention x86-64 for --with-multilib-list.
18544         * configure: Regenerated.
18545
18546         * config/i386/gnu-user64.h (SPEC_64): Support x32.
18547         (SPEC_32): Likewise.
18548         (ASM_SPEC): Likewise.
18549         (LINK_SPEC): Likewise.
18550         (TARGET_THREAD_SSP_OFFSET): Likewise.
18551         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
18552         (SPEC_X32): New.
18553
18554         * config/i386/i386.h (TARGET_X32): New.
18555         (TARGET_LP64): New.
18556         (LONG_TYPE_SIZE): Likewise.
18557         (POINTER_SIZE): Likewise.
18558         (POINTERS_EXTEND_UNSIGNED): Likewise.
18559         (OPT_ARCH64): Support x32.
18560         (OPT_ARCH32): Likewise.
18561
18562         * config/i386/i386.opt (mx32): New.
18563
18564         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
18565         (GLIBC_DYNAMIC_LINKERX32): Likewise.
18566         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
18567         (GLIBC_DYNAMIC_LINKERX32): Likewise.
18568
18569         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
18570         (BIONIC_DYNAMIC_LINKERX32): Likewise.
18571         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
18572
18573         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
18574
18575         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
18576
18577         * doc/invoke.texi: Document -mx32.
18578
18579 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
18580
18581         * doc/invoke.texi (mwords-little-endian): Deprecate.
18582         * config/arm/arm.opt (mwords-little-endian): Likewise.
18583         * config/arm/arm.c (arm_option_override): Warn about the deprecation
18584         of -mwords-little-endian.
18585
18586 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
18587
18588         * reload1.c (choose_reload_regs): Use mode sizes to check whether
18589         an old reload register completely defines the required value.
18590
18591 2011-07-07  Richard Guenther  <rguenther@suse.de>
18592
18593         * fold-const.c (fold_unary_loc): Do not strip sign-changes
18594         for NEGATE_EXPR.
18595
18596 2011-07-07  Richard Guenther  <rguenther@suse.de>
18597
18598         * tree-vrp.c (simplify_conversion_using_ranges): New function.
18599         (simplify_stmt_using_ranges): Call it.
18600
18601 2011-07-07  Kai Tietz  <ktietz@redhat.com>
18602
18603         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
18604         (lookup_logical_inverted_value): Likewise.
18605         (simplify_bitwise_binary_1): Likewise.
18606         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
18607
18608 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
18609
18610         * gcc.c (%[Spec]): Don't document.
18611         (struct spec_list): Update comment.
18612         (do_spec_1): Don't handle %[Spec].
18613         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
18614
18615 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
18616
18617         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
18618         default based on TARGET_ASM_NAMED_SECTION.
18619         * common/common-target.def (have_named_sections): Default to true.
18620         * common/config/default-common.c: Don't include tm.h.
18621         * common/config/picochip/picochip-common.c
18622         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
18623         * common/config/m32c/m32c-common.c: Remove.
18624         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
18625         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
18626         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
18627         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
18628         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
18629         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
18630         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
18631
18632 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
18633
18634         PR middle-end/49640
18635         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
18636         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
18637
18638 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18639
18640         PR libmudflap/49550
18641         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
18642
18643 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18644
18645         PR target/39150
18646         * configure.ac (gcc_cv_as_hidden): Also accept
18647         x86_64-*-solaris2.1[0-9]*.
18648         (gcc_cv_as_cfi_directive): Likewise.
18649         (gcc_cv_as_comdat_group_group): Likewise.
18650         (set_have_as_tls): Likewise.
18651         * configure: Regenerate.
18652         * config.gcc (i[34567]86-*-solaris2*): Also handle
18653         x86_64-*-solaris2.1[0-9]*.
18654         * config.host (i[34567]86-*-solaris2*): Likewise.
18655         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
18656         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
18657         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
18658         (TARGET_LD_EMULATION): Use it.
18659         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
18660         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
18661         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
18662         (ASM_CPU64_DEFAULT_SPEC): Define.
18663         (ASM_CPU_SPEC): Use %(asm_cpu_default).
18664         (ASM_SPEC): Redefine.
18665         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
18666         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
18667         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
18668         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
18669         configuration.
18670         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
18671
18672 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18673
18674         * config/sol2.h (ASM_SPEC): Split into ...
18675         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
18676         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
18677         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
18678         (ASM_SPEC): Use ASM_SPEC_BASE.
18679         * config/sparc/sol2.h (ASM_SPEC): Redefine.
18680
18681 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
18682
18683         * config/avr/avr.md (*reload_insi): Change predicate #1 to
18684         const_int_operand.  Ditto for peep2 producing this insn.
18685         Add argument to output_reload_insisf call.
18686         (*movsi,*movsf): Add argument to output_movsisf call.
18687         (*reload_insf): New insn and new peep2 to produce it.
18688         * config/avr/avr-protos.h (output_movsisf): Change prototype.
18689         (output_reload_insisf): Change prototype.
18690         * config/avr/avr.c (avr_asm_len): New function.
18691         (output_reload_insisf): Rewrite.
18692         (output_movsisf): Change prototype.  output_reload_insisf for
18693         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
18694         (adjust_insn_length): Add argument to output_movsisf and
18695         output_reload_insisf call.
18696
18697 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
18698
18699         * emit-rtl.c (paradoxical_subreg_p): New function.
18700         * rtl.h (paradoxical_subreg_p): Declare.
18701         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
18702         apply_distributive_law, simplify_comparison, simplify_set): Use it.
18703         * cse.c (record_jump_cond, cse_insn): Likewise.
18704         * expr.c (force_operand): Likewise.
18705         * rtlanal.c (num_sign_bit_copies1): Likewise.
18706         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
18707         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
18708         (push_reload): Use precision to check for paradoxical subregs.
18709         * expmed.c (extract_bit_field_1): Likewise.
18710
18711         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
18712         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
18713         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
18714         simplify_set, simplify_logical, expand_compound_operation,
18715         make_extraction, force_to_mode, if_then_else_cond, extended_count,
18716         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
18717         record_value_for_reg): Likewise.
18718         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
18719         * simplify-rtx. c (simplify_unary_operation_1,
18720         simplify_binary_operation_1, simplify_const_relational_operation):
18721         Likewise.
18722
18723         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
18724         instead of GET_MODE_BITSIZE where appropriate.
18725         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
18726         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
18727         init_num_sign_bit_copies_in_rep): Likewise.
18728         * cse.c (fold_rtx, cse_insn): Likewise.
18729         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
18730         * simplify-rtx.c (simplify_unary_operation_1,
18731         simplify_const_unary_operation, simplify_binary_operation_1,
18732         simplify_const_binary_operation, simplify_ternary_operation,
18733         simplify_const_relational_operation, simplify_subreg): Likewise.
18734         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
18735         simplify_if_then_else, simplify_set, expand_compound_operation,
18736         expand_field_assignment, make_extraction, if_then_else_cond,
18737         make_compound_operation, force_to_mode, make_field_assignment,
18738         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
18739         extended_count, try_widen_shift_mode, simplify_shift_const_1,
18740         simplify_comparison, record_promoted_value, simplify_compare_const,
18741         record_dead_and_set_regs_1): Likewise.
18742
18743         Revert:
18744         * simplify-rtx.c (simplify_const_binary_operation): Use the
18745         shift_truncation_mask hook instead of performing modulo by width.
18746         Compare against mode precision, not bitsize.
18747         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
18748         Use shift_truncation_mask instead of constructing the value manually.
18749
18750 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18751
18752         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
18753         declaration.
18754         (rs6000_save_toc_in_prologue_p): Ditto.
18755
18756         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
18757         up the static chain (r11) during indirect function calls.
18758         (-msave-toc-indirect): New undocumented debug switch.
18759
18760         * config/rs6000/rs6000.c (struct machine_function): Add
18761         save_toc_in_prologue field to note whether the prologue needs to
18762         save the TOC value in the reserved stack location.
18763         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
18764         to save the TOC in the prologue, do so.
18765         (rs6000_trampoline_init): Don't allow creating AIX style
18766         trampolines if -mno-r11 is in effect.
18767         (rs6000_call_indirect_aix): New function to create AIX style
18768         indirect calls, adding support for -mno-r11 to suppress loading
18769         the static chain, and saving the TOC in the prologue instead of
18770         the call body.
18771         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
18772         TOC in the prologue.
18773
18774         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
18775         register numbers.
18776         (TOC_REGNUM): Ditto.
18777         (STATIC_CHAIN_REGNUM): Ditto.
18778         (ARG_POINTER_REGNUM): Ditto.
18779         (SFP_REGNO): Delete, unused.
18780         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
18781         function descriptor offsets.
18782         (TOC_SAVE_OFFSET_64BIT): Ditto.
18783         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
18784         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
18785         (AIX_FUNC_DESC_SC_32BIT): Ditto.
18786         (AIX_FUNC_DESC_SC_64BIT): Ditto.
18787         (ptrload): New mode attribute for the appropriate load of a pointer.
18788         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
18789         (call_indirect_aix64): Ditto.
18790         (call_value_indirect_aix32): Ditto.
18791         (call_value_indirect_aix64): Ditto.
18792         (call_indirect_nonlocal_aix32_internal): Ditto.
18793         (call_indirect_nonlocal_aix32): Ditto.
18794         (call_indirect_nonlocal_aix64_internal): Ditto.
18795         (call_indirect_nonlocal_aix64): Ditto.
18796         (call): Rewrite AIX indirect function calls.  Add support for
18797         eliminating the static chain, and for moving the save of the TOC
18798         to the function prologue.
18799         (call_value): Ditto.
18800         (call_indirect_aix<ptrsize>): Ditto.
18801         (call_indirect_aix<ptrsize>_internal): Ditto.
18802         (call_indirect_aix<ptrsize>_internal2): Ditto.
18803         (call_indirect_aix<ptrsize>_nor11): Ditto.
18804         (call_value_indirect_aix<ptrsize>): Ditto.
18805         (call_value_indirect_aix<ptrsize>_internal): Ditto.
18806         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
18807         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
18808         (call_nonlocal_aix32): Relocate in the rs6000.md file.
18809         (call_nonlocal_aix64): Ditto.
18810
18811         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
18812         -mno-r11 documentation.
18813
18814 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
18815
18816         PR other/49658
18817         * doc/extend.texi (Compound Literals): Fix typo.
18818
18819 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
18820
18821         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
18822
18823 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
18824
18825         * configure.ac (plugin-version.h): Generate
18826         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
18827         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
18828         macros.
18829
18830         * configure: Regenerate.
18831
18832         * doc/plugins.texi (Building GCC plugins): Mention
18833         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
18834
18835 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
18836
18837         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
18838         * combine.c (make_extraction, gen_lowpart_or_truncate,
18839         apply_distributive_law, simplify_comparison,
18840         reg_truncated_to_mode, record_truncated_value): Use it.
18841         * cse.c (notreg_cost): Likewise.
18842         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
18843         * expr.c (convert_move, convert_modes): Likewise.
18844         * optabs.c (expand_binop, expand_unop): Likewise.
18845         * postreload.c (move2add_last_label): Likewise.
18846         * regmove.c (optimize_reg_copy_3): Likewise.
18847         * rtlhooks.c (gen_lowpart_general): Likewise.
18848         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18849
18850 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
18851
18852         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
18853
18854 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
18855
18856         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
18857         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
18858         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
18859         (simplify_const_unary_operation, simplify_binary_operation_1,
18860         simplify_const_binary_operation, simplify_const_relational_operation):
18861         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
18862         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
18863         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
18864         simplify_shift_const_1, simplify_comparison): Likewise.
18865         * expr.c (convert_modes): Likewise.
18866         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
18867         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
18868         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
18869
18870         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
18871
18872 2011-07-06  Richard Guenther  <rguenther@suse.de>
18873
18874         PR tree-optimization/49645
18875         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
18876         register variables.
18877         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
18878         in type qualification here ...
18879         (copy_reference_ops_from_ref): ... not here.
18880         (vn_reference_lookup_3): ... or here.
18881         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
18882         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
18883
18884 2011-07-06  Ian Lance Taylor  <iant@google.com>
18885
18886         * doc/install.texi (Configuration): It's
18887         --enable-gnu-indirect-function, not --enable-indirect-function.
18888
18889 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
18890
18891         * simplify-rtx.c (simplify_const_binary_operation): Use the
18892         shift_truncation_mask hook instead of performing modulo by width.
18893         Compare against mode precision, not bitsize.
18894         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
18895         Use shift_truncation_mask instead of constructing the value manually.
18896
18897 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
18898
18899         PR middle-end/47383
18900         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
18901         address computation and convert to address_mode if needed.
18902
18903 2011-07-06  Richard Guenther  <rguenther@suse.de>
18904
18905         * tree.c (build_common_tree_nodes_2): Merge with
18906         build_common_tree_nodes.
18907         * tree.h (build_common_tree_nodes): Adjust prototype.
18908         (build_common_tree_nodes_2): Remove.
18909         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
18910         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
18911
18912 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
18913
18914         PR tree-optimization/49618
18915         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
18916         t recurse on the decl.
18917         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
18918         return true if expr isn't known to be defined in current
18919         TU or some other LTO partition.
18920
18921 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
18922
18923         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
18924         override CASE_VALUES_THRESHOLD.
18925
18926         * stmt.c (toplevel): Include params.h.
18927         (case_values_threshold): Use the --param case-values-threshold
18928         value if non-zero, otherwise use machine dependent value.
18929         (expand_case): Use case_values_threshold.
18930
18931         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
18932
18933         * doc/invoke.texi (--param case-values-threshold): Document.
18934
18935 2011-07-05  Richard Henderson  <rth@redhat.com>
18936
18937         * dwarf2out.c (dwarf2out_cfi_label): Make static.
18938         (dwarf2out_flush_queued_reg_saves): Make static.
18939         (dwarf2out_reg_save): Remove.
18940         (dwarf2out_return_save): Remove.
18941         (dwarf2out_return_reg): Remove.
18942         (dwarf2out_reg_save_reg): Remove.
18943         (dwarf2out_def_cfa): Merge into ...
18944         (dwarf2out_frame_init): ... here.
18945         * dwarf2out.h, tree.h: Remove declarations as necessary.
18946
18947 2011-07-05  Richard Henderson  <rth@redhat.com>
18948
18949         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
18950         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
18951         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
18952         the alloc insn.
18953
18954         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
18955         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
18956         (process_epilogue): Don't call dwarf2out_def_cfa.
18957
18958         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
18959         indicate the return address save.
18960         (process_cfa_register): Likewise.
18961
18962         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
18963         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
18964
18965         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
18966         for ar.pfs save at alloc insn.
18967
18968 2011-07-05  Richard Henderson  <rth@redhat.com>
18969
18970         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
18971         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
18972         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
18973         stack pointer save.
18974         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
18975         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
18976         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
18977         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
18978
18979 2011-07-05  Richard Henderson  <rth@redhat.com>
18980
18981         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
18982         VUNSPEC_* constants here instead of via define_constants.
18983         (VUNSPEC_PEM): New constant.
18984         (procedure_entry_mask): New insn.
18985         (prologue): New expander.
18986         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
18987         (vax_expand_prologue): Rename from vax_output_function_prologue;
18988         emit rtl instead of text.
18989         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
18990         (print_operand): Add 'x' prefix.
18991
18992 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
18993
18994         PR middle-end/47715
18995         * calls.c (precompute_register_parameters): Promote the function
18996         argument before checking non-legitimate constant.
18997
18998 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
18999
19000         PR tree-optimization/47654
19001         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
19002         (lst_do_strip_mine_loop): Return an int.
19003         (lst_do_strip_mine): Same.
19004         (scop_do_strip_mine): Same.
19005         (scop_do_block): Loop blocking should strip-mine at least two loops.
19006         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
19007         (scop_do_interchange): Same.
19008         * graphite-poly.h (scop_do_interchange): Update declaration.
19009         (scop_do_strip_mine): Same.
19010
19011 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19012
19013         * graphite-clast-to-gimple.c (precision_for_value): Removed.
19014         (precision_for_interval): Removed.
19015         (gcc_type_for_interval): Use mpz_sizeinbase.
19016
19017 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19018
19019         * graphite-ppl.h (value_max): Correct computation of max.
19020
19021 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19022
19023         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
19024
19025 2011-07-05  Richard Guenther  <rguenther@suse.de>
19026
19027         * c-decl.c (c_init_decl_processing): Defer building common
19028         tree nodes to c_common_nodes_and_builtins.
19029
19030 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
19031
19032         PR tree-optimization/49580
19033         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
19034         the loop's number of iterations.
19035         * tree-parloops.c (transform_to_exit_first_loop): Add the
19036         handling of the loop's number of iterations before the call
19037         to gimple_duplicate_sese_tail.
19038         Insert the stmt caclculating the new rhs of the loop's
19039         condition stmt to the preheader instead of iters_bb.
19040
19041 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19042
19043         PR rtl-optimization/47449
19044         * fwprop.c (forward_propagate_subreg): Don't propagate hard
19045         register nor zero/sign extended hard register.
19046
19047 2011-07-05  Richard Guenther  <rguenther@suse.de>
19048
19049         PR tree-optimization/49518
19050         PR tree-optimization/49628
19051         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
19052         irrelevant and invariant data-references.
19053         (vect_analyze_data_ref_access): For invariant loads clear the
19054         group association.
19055
19056 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
19057
19058         PR rtl-optimization/49619
19059         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
19060         pass VOIDmode as op0_mode to recursive call, and return temp even
19061         when different from tor, just if it is not IOR of the original
19062         PLUS arguments.
19063
19064         PR rtl-optimization/49472
19065         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
19066         negating MULT, negate the second operand instead of first.
19067         (simplify_binary_operation_1) <case MULT>: If one operand is
19068         a NEG and the other is MULT, don't attempt to optimize by negation
19069         of the MULT operand if it only moves the NEG operation around.
19070
19071         PR debug/49602
19072         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
19073         get_current_def return value if it can't be trusted to be
19074         the current value of the variable in the current bb.
19075
19076 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
19077
19078         PR target/49600
19079         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
19080         general register to memory for !TARGET_INTER_UNIT_MOVES.
19081
19082 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
19083
19084         PR target/44643
19085         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
19086         instead of TREE_READONLY.
19087
19088 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
19089
19090         * doc/extend.texi (AVR Built-in Functions): Update documentation
19091         of __builtin_avr_fmul*.
19092         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
19093         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
19094         * config/avr/avr.md (fmul): Rename to fmul_insn.
19095         (fmuls): Rename to fmuls_insn.
19096         (fmulsu): Rename to fmulsu_insn.
19097         (fmul,fmuls,fmulsu): New expander.
19098         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
19099         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
19100         * config/avr/libgcc.S (__fmul): New function.
19101         (__fmuls): New function.
19102         (__fmulsu,__fmulsu_exit): New function.
19103
19104 2011-07-04  Richard Guenther  <rguenther@suse.de>
19105
19106         PR tree-optimization/49615
19107         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
19108         basic-block index check.
19109
19110 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
19111
19112         * longlong.h (count_leading_zeros, count_trailing_zeros,
19113         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
19114         resp. 64.
19115
19116 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
19117
19118         PR tree-optimization/49610
19119         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
19120         a basic block.
19121
19122 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19123             Olivier Hainque  <hainque@adacore.com>
19124             Nicolas Setton  <setton@adacore.com>
19125
19126         * tree.h (TYPE_ARTIFICIAL): New flag.
19127         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
19128         the DIE of the type if it is artificial.
19129         (gen_array_type_die): Likewise.
19130         (gen_enumeration_type_die): Likewise.
19131         (gen_struct_or_union_type_die): Likewise.
19132         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
19133         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
19134
19135 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
19136
19137         * tree-object-size.c (pass_through_call): Handle
19138         BUILT_IN_ASSUME_ALIGNED.
19139
19140 2011-07-01  Martin Jambor  <mjambor@suse.cz>
19141
19142         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
19143
19144 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
19145
19146         PR middle-end/48016
19147         * explow.c (update_nonlocal_goto_save_area): Use proper mode
19148         for stack save area.
19149         * function.c (expand_function_start): Likewise.
19150
19151 2011-07-01  Richard Guenther  <rguenther@suse.de>
19152
19153         PR middle-end/49596
19154         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
19155         may have unknown refs.
19156
19157 2011-07-01  Kai Tietz  <ktietz@redhat.com>
19158
19159         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
19160
19161 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19162
19163         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
19164         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
19165         (Specific, mips-sgi-irix6): Likewise.
19166
19167 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19168
19169         PR libmudflap/49549
19170         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
19171
19172 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
19173
19174         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
19175         [idx]= and [idx1 ... idx2]= before initializers if needed for
19176         array initializers.
19177
19178 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
19179
19180         * config.gcc (score-*-elf): Remove score7.o.
19181         * config/score/t-score-elf: Likewise.
19182         * config/score/score.c: Merge score7 to score.c and
19183         remove forwarding functions.
19184         * config/score/score7.c: Deleted.
19185         * config/score/score7.h: Deleted.
19186
19187 2011-07-01  Richard Guenther  <rguenther@suse.de>
19188
19189         PR tree-optimization/49603
19190         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
19191
19192 2011-06-30  Martin Jambor  <mjambor@suse.cz>
19193
19194         * tree-sra.c (struct access): Rename total_scalarization to
19195         grp_total_scalarization
19196         (completely_scalarize_var): New function.
19197         (sort_and_splice_var_accesses): Set total_scalarization in the
19198         representative access.
19199         (analyze_access_subtree): Propagate total scalarization accross the
19200         tree, no holes in totally scalarized trees, simplify coverage
19201         computation.
19202         (analyze_all_variable_accesses): Call completely_scalarize_var instead
19203         of completely_scalarize_record.
19204
19205 2011-06-30  Richard Henderson  <rth@redhat.com>
19206
19207         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
19208         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
19209         * config/i386/i386.c: Don't include dwarf2out.h.
19210         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
19211         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
19212         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
19213         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
19214         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
19215
19216 2011-06-30  Richard Henderson  <rth@redhat.com>
19217
19218         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
19219         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
19220         * final.c (final_scan_insn): Look for it, and invoke
19221         dwarf2out_frame_debug before the insn if found.
19222
19223 2011-06-30  Richard Henderson  <rth@redhat.com>
19224
19225         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
19226         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
19227
19228 2011-06-30  Richard Henderson  <rth@redhat.com>
19229
19230         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
19231         Define a vector of this type.
19232         (regs_saved_in_regs): Use a VEC.
19233         (num_regs_saved_in_regs): Remove.
19234         (compare_reg_or_pc): New.
19235         (record_reg_saved_in_reg): Split out from...
19236         (dwarf2out_flush_queued_reg_saves): ... here.
19237         (clobbers_queued_reg_save): Update for VEC.
19238         (reg_saved_in): Likewise.
19239         (dwarf2out_frame_debug_init): Likewise.
19240         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
19241         (dwarf2out_frame_debug_cfa_register): Likewise.
19242
19243 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
19244
19245         PR tree-optimization/49572
19246         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
19247         type of the RHS instead of that of the LHS for the expression type.
19248
19249 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
19250
19251         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
19252         unconditionally.
19253
19254 2011-06-30  Richard Guenther  <rguenther@suse.de>
19255
19256         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
19257         * tree-ssa-structalias.c (create_variable_info_for): Do not
19258         add initial constraints for non-var-decls.  Properly handle
19259         globals in other ltrans partitions.
19260         (intra_create_variable_infos): Manually create constraints for
19261         the fake no-alias parameter.
19262         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
19263         and assert there are no clones.
19264
19265 2011-06-30  Richard Guenther  <rguenther@suse.de>
19266
19267         PR tree-optimization/46787
19268         * tree-data-ref.c (dr_address_invariant_p): Remove.
19269         (find_data_references_in_stmt): Invariant accesses are ok now.
19270         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
19271         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19272         invariant loads.
19273
19274 2011-06-30  Martin Jambor  <mjambor@suse.cz>
19275
19276         PR tree-optimization/49094
19277         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
19278         (build_accesses_from_assign): Use it.
19279
19280 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
19281
19282         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
19283         handling of BUILT_IN_ASSUME_ALIGNED.
19284
19285         PR debug/49364
19286         * dwarf2out.c (output_abbrev_section): Don't return early
19287         if abbrev_die_table_in_use is 1.
19288         (dwarf2out_finish): Instead don't call output_abbrev_section
19289         nor emit abbrev_section_label in that case.
19290
19291 2011-06-30  Nick Clifton  <nickc@redhat.com>
19292
19293         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
19294         for the V850E.
19295
19296 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
19297
19298         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
19299         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
19300
19301 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
19302
19303         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
19304         both pattern and original statements if necessary.
19305         (vect_transform_loop): Likewise.
19306         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
19307         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
19308         Mark the pattern statement only if the original statement doesn't
19309         have its own uses.
19310         (process_use): Call vect_mark_relevant with additional parameter.
19311         (vect_mark_stmts_to_be_vectorized): Likewise.
19312         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
19313         (vect_analyze_stmt): Handle both pattern and original statements
19314         if necessary.
19315         (vect_transform_stmt): Don't store vectorized pattern statement
19316         in the original statement.
19317         (vect_is_simple_use_1): Use related pattern statement only if the
19318         original statement is irrelevant.
19319         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
19320
19321 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
19322
19323         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
19324         option.
19325         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
19326         entry.
19327         (TARGET_AVX128_OPTIMAL): New definition.
19328         * config/i386/i386.c (initial_ix86_tune_features): Initialize
19329         X86_TUNE_AVX128_OPTIMAL entry.
19330         (ix86_option_override_internal): Enable the generation
19331         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
19332         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
19333         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
19334
19335 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19336
19337         PR tree-optimization/49539
19338         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
19339         names by means of stmt_references_abnormal_ssa_name.
19340         (associate_plusminus): Call can_propagate_from before propagating
19341         from definition statements.
19342         (ssa_forward_propagate_and_combine): Remove superfluous newline.
19343
19344 2011-06-29  Richard Guenther  <rguenther@suse.de>
19345
19346         * doc/invoke.texi: Document -scev dump modifier.
19347         * tree-pass.h (TDF_SCEV): New dump flag.
19348         * tree-dump.c (dump_option_value_in): Add scev.
19349         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
19350         * tree-scalar-evolution.c: Likewise.
19351
19352 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
19353
19354         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
19355         (cxa_type_match): Correct declaration.
19356         (__gnu_unwind_pr_common): Reconstruct additional indirection
19357         when __cxa_type_match returns succeeded_with_ptr_to_base.
19358
19359 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19360
19361         PR rtl-optimization/49114
19362         * reload.c (struct replacement): Remove SUBREG_LOC member.
19363         (push_reload): Do not set it.
19364         (push_replacement): Likewise.
19365         (subst_reload): Remove dead code.
19366         (copy_replacements): Remove assertion.
19367         (copy_replacements_1): Do not handle SUBREG_LOC.
19368         (move_replacements): Likewise.
19369         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
19370         Detect subregs via recursive descent instead of via SUBREG_LOC.
19371
19372 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
19373
19374         * config/avr/avr.c (avr_encode_section_info): Dispatch to
19375         default_encode_section_info.
19376
19377 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
19378
19379         PR tree-optimization/49545
19380         * builtins.c (get_object_alignment_1): Update function comment.
19381         Do not use DECL_ALIGN for functions, but test
19382         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
19383         * fold-const.c (get_pointer_modulus_and_residue): Don't check
19384         for functions here.
19385         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
19386
19387 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
19388
19389         PR debug/49567
19390         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
19391         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
19392
19393 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
19394
19395         PR target/34734
19396         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
19397         about uninitialized data attributed 'progmem' from here...
19398         (avr_encode_section_info): ...to this new function.
19399         (TARGET_ENCODE_SECTION_INFO): New define.
19400         (avr_section_type_flags): For data in ".progmem.data", remove
19401         section flag SECTION_WRITE.
19402
19403 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
19404
19405         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
19406         _xmulhisi3_exit.
19407         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
19408         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
19409         (__umulhisi3): Ditto.
19410         * config/avr/avr.md (mulhisi3): New insn expender.
19411         (umulhisi3): New insn expender.
19412         (*mulhisi3_call): New insn.
19413         (*umulhisi3_call): New insn.
19414
19415 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
19416
19417         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
19418
19419 2011-06-28  Richard Henderson  <rth@redhat.com>
19420
19421         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
19422         all code and arguments that handled pushes.  Update all callers.
19423
19424 2011-06-28  Richard Henderson  <rth@redhat.com>
19425
19426         * config/arm/arm.c (arm_output_function_prologue): Don't call
19427         thumb1_output_function_prologue.
19428         (arm_expand_prologue): Avoid dead store.
19429         (number_of_first_bit_set): Use ctz_hwi.
19430         (thumb1_emit_multi_reg_push): New.
19431         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
19432         to emit the entire prologue as rtl.
19433         (thumb1_output_interwork): Split out from
19434         thumb1_output_function_prologue.
19435         (thumb1_output_function_prologue): Remove.
19436         (arm_attr_length_push_multi): Handle thumb1.
19437         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
19438         (prologue_thumb1_interwork): New.
19439         (*push_multi): Allow thumb1; use push_mult_memory_operand.
19440         * config/arm/predicates.md (push_mult_memory_operand): New.
19441
19442 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
19443
19444         * config/sparc/sync.md (*stbar): Delete.
19445         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
19446
19447 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
19448
19449         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
19450
19451 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19452
19453         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
19454         (TARGET_64BIT_DEFAULT): Define.
19455         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
19456         of tm_file.
19457         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
19458
19459 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
19460
19461         * common.opt (in_lto_p): New Variable entry.
19462         * flags.h (in_lto_p): Move to common.opt.
19463         * gcc.c: Include params.h.
19464         (set_option_handlers): Also use common_handle_option and
19465         target_handle_option.
19466         (main): Call global_init_params, finish_params and init_options_struct.
19467         * opts.c (debug_type_names): Move from toplev.c.
19468         (print_filtered_help): Access quiet_flag through opts pointer.
19469         (common_handle_option): Return early in the driver for some options.
19470         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
19471         opts pointer.
19472         * toplev.c (in_lto_p): Move to common.opt.
19473         (debug_type_names): Move to opts.c.
19474         * Makefile.in (OBJS): Remove opts.o.
19475         (OBJS-libcommon-target): Add opts.o.
19476         (gcc.o): Update dependencies.
19477
19478 2011-06-28  Kai Tietz  <ktietz@redhat.com>
19479
19480         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
19481
19482 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19483
19484         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
19485         with '=' constraint modifier.
19486         (*divdf3_vfp): Likewise.
19487         ("*mulsf3_vfp"): Likewise.
19488         ("*muldf3_vfp"): Likewise.
19489         ("*mulsf3negsf_vfp"): Likewise.
19490         ("*muldf3negdf_vfp"): Likewise.
19491
19492 2011-06-28  Nick Clifton  <nickc@redhat.com>
19493
19494         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
19495         relaxation when performing an incremental link.
19496
19497 2011-06-28  Kai Tietz  <ktietz@redhat.com>
19498
19499         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
19500         within BB from last to first.
19501
19502 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
19503
19504         * genattr-common.c: New.  Based on genattr.c.
19505         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
19506         (MOSTLYCLEANFILES): Add insn-attr-common.h.
19507         (opts.o): Update dependencies.
19508         (.PRECIOUS): Add insn-attr-common.h.
19509         (simple_rtl_generated_h): Add insn-attr-common.h.
19510         (build/genattr-common.o): New.
19511         (genprogrtl): Add attr-common.
19512         * genattr.c (main): Include insn-attr-common.h.  Don't generate
19513         definitions of DELAY_SLOTS or INSN_SCHEDULING.
19514         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
19515
19516 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
19517
19518         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
19519         avr-*-* and avr-*-rtems* targets.
19520
19521         * config/avr/elf.h: New file.
19522         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
19523         (TARGET_ASM_SELECT_SECTION): Define.
19524         (INIT_SECTION_ASM_OP): Undefine.
19525         (FINI_SECTION_ASM_OP): Undefine.
19526         (READONLY_DATA_SECTION_ASM_OP): Undefine.
19527         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
19528         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
19529         * config/avr/avr.h:
19530         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
19531         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
19532         (MAX_OFILE_ALIGNMENT): Move to elf.h.
19533         (STRING_LIMIT): Move to elf.h.
19534         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
19535         (ASM_DECLARE_OBJECT_NAME): Remove.
19536         (ESCAPES): Remove.
19537         (ASM_OUTPUT_SKIP): Remove.
19538         (DWARF2_DEBUGGING_INFO): Remove.
19539         (OBJECT_FORMAT_ELF): Remove.
19540         (USER_LABEL_PREFIX): Remove.
19541         (ASM_OUTPUT_EXTERNAL): Remove.
19542         (ASM_OUTPUT_ASCII): Remove.
19543         (TYPE_ASM_OP): Remove.
19544         (SIZE_ASM_OP): Remove.
19545         (WEAK_ASM_OP): Remove.
19546         (STRING_ASM_OP): Remove.
19547         (SET_ASM_OP): Remove.
19548         (ASM_WEAKEN_LABEL): Remove.
19549         (TYPE_OPERAND_FMT): Remove.
19550         (ASM_DECLARE_FUNCTION_SIZE): Remove.
19551         (ASM_FINISH_DECLARE_OBJECT): Remove.
19552         (NO_DOLLAR_IN_LABEL): Remove.
19553         (ASM_GENERATE_INTERNAL_LABEL): Remove.
19554         (ASM_OUTPUT_CASE_LABEL): Remove.
19555         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
19556         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
19557         (gas_output_ascii): Remove.
19558         (gas_output_limited_string): Remove.
19559         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
19560         * config/avr/avr-protos.h
19561         (gas_output_ascii): Remove prototye.
19562         (gas_output_limited_string): Remove prototype.
19563
19564 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
19565
19566         PR target/48637
19567         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
19568         asm operands.
19569
19570 2011-06-27  Jan Hubicka  <jh@suse.cz>
19571
19572         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
19573         node instead of references in node.
19574
19575 2011-06-27  Richard Henderson  <rth@redhat.com>
19576
19577         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
19578         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
19579         inside ifdef.
19580
19581 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
19582
19583         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
19584
19585         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
19586         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
19587         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
19588         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
19589         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
19590         (evaluate_stmt, execute_fold_all_builtins): Handle
19591         BUILT_IN_ASSUME_ALIGNED.
19592         * tree-ssa-dce.c (propagate_necessity): Likewise.
19593         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
19594         call_may_clobber_ref_p_1): Likewise.
19595         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
19596         (expand_builtin_assume_aligned): New function.
19597         * doc/extend.texi (__builtin_assume_aligned): Document.
19598
19599         PR debug/49544
19600         * cselib.c (promote_debug_loc): If cselib_preserve_constants
19601         and l has two DEBUG_INSN owned locs instead of just one, adjust
19602         the second location's setting_insn too.
19603
19604 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19605
19606         PR libmudflap/38738
19607         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
19608
19609 2011-06-27  Nick Clifton  <nickc@redhat.com>
19610
19611         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
19612         bit position of highest bit set into a count of the high zero bits.
19613
19614 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
19615
19616         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
19617
19618 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
19619
19620         PR lto/48492
19621         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
19622         to a NULL parent.
19623
19624 2011-06-27  Richard Guenther  <rguenther@suse.de>
19625
19626         PR tree-optimization/49394
19627         * passes.c (execute_one_pass): Restore current_pass after
19628         applying IPA transforms.
19629
19630 2011-06-27  Kai Tietz  <ktietz@redhat.com>
19631
19632         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
19633         out of type precision after operation.
19634         (find_bswap): Take for limit value the integer auto-promotion
19635         into account.
19636
19637 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
19638
19639         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
19640         forward scan as well.
19641
19642 2011-06-27  Tristan Gingold  <gingold@adacore.com>
19643
19644         PR target/44241
19645         * config/vms/vms-protos.h: New file.
19646         * config/vms/vms-crtlmap.map: New file.
19647         * config/vms/vms.c: New file.
19648         * config/vms/make-crtlmap.awk: New file.
19649         * config/vms/vms-crtl.h: File removed.
19650         * config/vms/vms-crtl-64.h: File removed.
19651         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
19652         * config/alpha/vms64.h: Do not include vms-crtl-64.h
19653         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
19654         clear some builtins on VMS.  Calls vms_patch_builtins.
19655         (avms_asm_output_external): Remove.
19656         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
19657         (struct crtl_name_spec): Remove
19658         (DO_CTRL_NAMES): Remove.
19659         * config/ia64/vms.h (struct crtl_name_spec): Remove
19660         (DO_CTRL_NAMES): Remove.
19661         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
19662         clear some builtins on VMS.  Calls vms_patch_builtins.
19663         (ia64_asm_output_external): Remove DO_CRTL_NAME.
19664         * config/ia64/vms64.h: Do not include vms-crtl-64.h
19665         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
19666
19667 2011-06-27  Tristan Gingold  <gingold@adacore.com>
19668
19669         * config/alpha/alpha.c (alpha_end_function): Always generate .end
19670         directive on VMS.
19671
19672 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
19673
19674         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
19675         the function receives nonlocal gotos.
19676
19677 2011-06-27  Richard Guenther  <rguenther@suse.de>
19678
19679         PR tree-optimization/49536
19680         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
19681         For non-scalar inner types use a scalar type according to
19682         the scalar inner mode.
19683
19684 2011-06-27  Richard Guenther  <rguenther@suse.de>
19685
19686         PR tree-optimization/49365
19687         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
19688
19689 2011-06-27  Richard Guenther  <rguenther@suse.de>
19690
19691         PR tree-optimization/49169
19692         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
19693         the alignment of function decls.
19694
19695 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
19696
19697         PR target/47997
19698         * config/darwin.c (darwin_mergeable_string_section): Place string
19699         constants in '.cstring' rather than '.const' when CF/NSStrings are
19700         active.
19701
19702 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
19703
19704         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
19705         (emit_save_register_window): Likewise.
19706         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
19707         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
19708         Swap back %o7/%i7 in register naming.
19709
19710 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
19711
19712         PR driver/49371
19713         * config/darwin.c (darwin_override_options): Improve warning when
19714         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
19715         is given with fpie/fPIE.
19716         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
19717         * config/darwin9.h (PIE_SPEC): New.
19718
19719 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
19720
19721         * timevar.c (timevar_print): Increase width for display of timevar
19722         name.
19723
19724 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
19725
19726         PR c++/46400
19727         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
19728         instead of TYPE_CHAIN for chain_next for types.
19729
19730 2011-06-24  Richard Henderson  <rth@redhat.com>
19731
19732         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
19733         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
19734         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
19735         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
19736         (sparc_flat_expand_prologue): Emit individual instructions
19737         instead of one of the above.
19738
19739 2011-06-24  Easwaran Raman  <eraman@google.com>
19740
19741         PR rtl-optimization/49429
19742         PR target/49454
19743         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
19744         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
19745         used to copy y into x.
19746         * calls.c (initialize_argument_information): Mark
19747         an argument addressable if it is passed by invisible reference.
19748         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
19749         if it is passed by reference.
19750
19751 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
19752
19753         PR rtl-optimization/49504
19754         * rtlanal.c (nonzero_bits1): Properly handle addition or
19755         subtraction of a pointer in Pmode if pointers extend unsigned.
19756         (num_sign_bit_copies1): Likewise.
19757
19758 2011-06-24  Martin Jambor  <mjambor@suse.cz>
19759
19760         PR tree-optimizations/49516
19761         * tree-sra.c (sra_modify_assign): Choose the safe path for
19762         aggregate copies if we also did scalar replacements.
19763
19764 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19765
19766         PR target/49335
19767         * config/arm/predicates.md (add_operator): New.
19768         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
19769
19770 2011-06-24  Andi Kleen  <ak@linux.intel.com>
19771
19772         * tree-sra.c (type_internals_preclude_sra_p): Add msg
19773         parameter. Split up ifs and report reason in *msg.
19774         (reject): Add.
19775         (find_var_candiate): Add msg variable.
19776         Split up ifs and report reason to reject.
19777         (find_param_candidates): Add msg variable.
19778         Pass msg to type_internals_preclude_sra_p.
19779
19780 2011-06-23  Jeff Law  <law@redhat.com>
19781
19782         PR middle-end/48770
19783         * reload.h (reload): Change to return a bool.
19784         * ira.c (ira): If requested by reload, run a fast DCE pass after
19785         reload has completed.  Fix comment typo.
19786         * reload1.c (need_dce): New file scoped static.
19787         (reload): Set reload_completed here.  Return whether or not a DCE
19788         pass after reload is needed.
19789         (delete_dead_insn): Set need_dce as needed.
19790
19791         PR middle-end/49465
19792         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
19793         to detect threading through joiner block.  If there was already
19794         an edge to the new target, then do not change the PHI nodes.
19795
19796 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
19797
19798         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
19799         get_pointer_alignment to see if base isn't sufficiently aligned.
19800
19801 2011-06-23  Jan Hubicka  <jh@suse.cz>
19802
19803         PR tree-optimize/49373
19804         * tree-pass.h (all_late_ipa_passes): Declare.
19805         * cgraphunit.c (init_lowered_empty_function): Fix properties.
19806         (cgraph_optimize): Execute late passes; remove unreachable funcions
19807         after materialization.
19808         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
19809         LTOing.
19810         * passes.c (all_late_ipa_passes): Declare.
19811         (dump_passes, register_pass): Handle late ipa passes.
19812         (init_optimization_passes): Move ipa_pta to late passes; schedule
19813         fixup_cfg at beggining of all_passes.
19814         (apply_ipa_transforms): New function.
19815         (execute_one_pass): When doing simple ipa pass, apply all transforms.
19816
19817 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
19818
19819         * params.c: Include common/common-target.h.  Don't include tm.h.
19820         (lang_independent_params): Move from toplev.c.
19821         (global_init_params): New.
19822         * params.h (global_init_params): Declare.
19823         * target.def (default_params): Move to common-target.def.
19824         * toplev.c (lang_independent_options): Remove.
19825         (lang_independent_params): Move to params.c.
19826         (general_init): Use global_init_params.
19827         * common/common-target.def (option_default_params): Move from
19828         target.def.
19829         * common/config/ia64/ia64-common.c: Include params.h.
19830         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19831         from ia64.c.
19832         * common/config/rs6000/rs6000-common.c: Include params.h.
19833         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19834         from rs6000.c.
19835         * common/config/sh/sh-common.c: Include params.h.
19836         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19837         from sh.c.
19838         * common/config/spu/spu-common.c: Include params.h.
19839         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19840         from spu.c.
19841         * config/ia64/ia64.c (ia64_option_default_params,
19842         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
19843         * config/rs6000/rs6000.c (rs6000_option_default_params,
19844         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
19845         * config/sh/sh.c (sh_option_default_params,
19846         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
19847         * config/spu/spu.c (spu_option_default_params,
19848         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
19849         * Makefile.in (OBJS): Remove params.o.
19850         (OBJS-libcommon-target): Add params.o.
19851         (params.o, $(common_out_object_file)): Update dependencies.
19852         * doc/tm.texi: Regenerate.
19853
19854 2011-06-23  Alan Modra  <amodra@gmail.com>
19855
19856         PR bootstrap/49383
19857         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
19858         invocation for 2011-06-09 changes.
19859
19860 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
19861
19862         PR libgomp/49490
19863         * omp-low.c (expand_omp_for_static_nochunk): Only
19864         use n ceil/ nthreads size for the first n % nthreads threads in the
19865         team instead of all threads except for the last few ones which
19866         get less work or none at all.
19867
19868         PR debug/49496
19869         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
19870         uses.
19871
19872 2011-06-22  Richard Guenther  <rguenther@suse.de>
19873
19874         PR tree-optimization/49493
19875         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
19876         Refer to the alias target of variables.
19877         (associate_varinfo_to_alias_1): Remove.
19878         (ipa_pta_execute): Do not associate aliases with anything.
19879         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
19880         (cgraph_function_node): Likewise.
19881         (cgraph_function_or_thunk_node): Likewise.
19882         (varpool_variable_node): Likewise.
19883
19884 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
19885
19886         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
19887         * config.gcc (arm*-*-linux*): Default to gnu tls.
19888         (arm*-*-*): Add --with-tls option.
19889         (all_defaults): Add 'tls'.
19890
19891 2011-06-22  Richard Henderson  <rth@redhat.com>
19892
19893         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
19894         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
19895         (dwarf2out_frame_debug_cfa_window_save): Rename from
19896         dwarf2out_window_save; make static.
19897         * tree.h (dwarf2out_window_save): Don't declare.
19898
19899         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
19900         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
19901         (emit_save_register_window): Rename from gen_save_register_window;
19902         emit the insn and add REG_CFA_* notes.
19903         (sparc_expand_prologue): Update to match.
19904         * config/sparc/sparc.md (save_register_window_1): Simplify from
19905         save_register_window<P:mode>.
19906
19907 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
19908
19909         PR target/49497
19910         * config/i386/i386.md (*lea_general_2): Always allow SImode.
19911         (*lea_general_2_zext): Likewise.
19912         (imul to lea peepholes): Use const359_operand and check
19913         TARGET_PARTIAL_REG_STALL.
19914
19915         * config/i386/predicates.md (const359_operand): New.
19916
19917 2011-06-22  Michael Matz  <matz@suse.de>
19918
19919         * cgraphunit.c (assemble_thunk): Use correct return type.
19920
19921 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
19922             Dmitry Melnik  <dm@ispras.ru>
19923
19924         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
19925         (neon_output_shift_immediate): Ditto.
19926         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
19927         prototype.
19928         (neon_output_shift_immediate): Ditto.
19929         * config/arm/neon.md (vashl<mode>3): Modified constraint.
19930         (vashr<mode>3_imm): New insn pattern.
19931         (vlshr<mode>3_imm): Ditto.
19932         (vashr<mode>3): Modified constraint.
19933         (vlshr<mode>3): Ditto.
19934         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
19935         predicate.
19936         (imm_for_neon_rshift_operand): Ditto.
19937         (imm_lshift_or_reg_neon): Ditto.
19938         (imm_rshift_or_reg_neon): Ditto.
19939
19940         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
19941
19942 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
19943
19944         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
19945         builtin calls even if likelyvalue is not CONSTANT.
19946         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
19947         Return get_value_for_expr of first operand
19948         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
19949         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
19950         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
19951         their non-checking counterparts.
19952         (call_may_clobber_ref_p_1): Likewise.
19953         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
19954         like their non-checking counterparts.
19955         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19956         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
19957         like their non-checking counterparts.
19958         (find_func_clobbers): Likewise.
19959         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
19960         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
19961
19962         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
19963         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
19964         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
19965         of base type reference as argument.
19966         (resolve_addr_in_expr): Likewise.  Fix keep computation.
19967         (convert_descriptor_to_signed): Renamed to...
19968         (convert_descriptor_to_mode): ... this.  For wider types convert to
19969         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
19970         (typed_binop): New function.
19971         (scompare_loc_descriptor, ucompare_loc_descriptor,
19972         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
19973         default to unsigned type instead of signed.
19974
19975         PR debug/47858
19976         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
19977         (gimple_build_debug_source_bind_stat): New prototype.
19978         (gimple_build_debug_source_bind): Define.
19979         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
19980         gimple_debug_source_bind_get_value,
19981         gimple_debug_source_bind_get_value_ptr,
19982         gimple_debug_source_bind_set_var,
19983         gimple_debug_source_bind_set_value): New inlines.
19984         * gimple.c (gimple_build_debug_source_bind_stat): New function.
19985         * gimple-pretty-print.c (dump_gimple_debug): Handle
19986         GIMPLE_DEBUG_SOURCE_BIND.
19987         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
19988         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
19989         * tree-parloops.c (eliminate_local_variables,
19990         separate_decls_in_region): Likewise.
19991         (separate_decls_in_region_debug): Renamed from
19992         separate_decls_in_region_debug_bind.  Handle
19993         gimple_debug_source_bind_p.
19994         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
19995         prototypes.
19996         (DECL_HAS_DEBUG_ARGS_P): Define.
19997         (struct tree_function_decl): Add has_debug_args_flag field.
19998         * tree.c (debug_args_for_decl): New variable.
19999         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
20000         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
20001         (rewrite_debug_stmt_uses): New function.
20002         (rewrite_stmt): Use it to rewrite debug stmt uses.
20003         * rtl.def (DEBUG_PARAMETER_REF): New.
20004         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
20005         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
20006         DEBUG_PARAMETER_REF.
20007         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
20008         * print-rtl.c (print_rtx): Likewise.
20009         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
20010         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
20011         debug stmts in the first bb.
20012         * tree-inline.c (remap_ssa_name): If remapping default def
20013         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
20014         a source bind debug stmt.
20015         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
20016         (maybe_move_debug_stmts_to_successors): Likewise.
20017         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
20018         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
20019         debug args vector from old_decl to new_decl.
20020         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
20021         or modified parameters, add debug bind stmts before call
20022         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
20023         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
20024         on DECL_DEBUG_EXPRs from debug args vector.
20025         (expand_debug_source_expr): New function.
20026         (expand_debug_locations): Use it for source bind insns.
20027         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
20028         * var-tracking.c (prepare_call_arguments): Add debug args
20029         to call_arguments if any.
20030         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
20031         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
20032         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
20033         (get_ref_die_offset, parameter_ref_descriptor): New functions.
20034         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
20035         (gen_subprogram_die): Handle parameters identified by
20036         DEBUG_PARAMETER_REF.
20037
20038 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
20039
20040         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
20041         * doc/install.texi (Configuration): Document --with-tls.
20042         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
20043         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
20044         (arm_tls_descseq_addr): New.
20045         (legitimize_tls_address): Add tlsdesc support.
20046         (arm_cannot_copy_insn_p): Check for tlscall.
20047         (arm_emit_tls_decoration): Likewise.
20048         * config/arm/arm.h (TARGET_GNU2_TLS): New.
20049         (OPTION_DEFAULT_SPECS): Add with-tls support.
20050         * config/arm/arm.md (R1_REGNUM): Define.
20051         (tlscall): New.
20052         * config/arm/arm.opt (tls_type): New enumeration type and values.
20053         (mtls-dialect): New switch.
20054         * config/arm/arm-opts.h (enum tls_type): New.
20055
20056 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
20057
20058         * attribs.c (register_attribute): Added assert to check that all
20059         attribute specs are registered with a name that is not empty and
20060         does not start with '_'.
20061         (decl_attributes): Avoid the lookup of the "naked" attribute spec
20062         if the function has no attributes.
20063         * tree.c (is_attribute_with_length_p): Removed.
20064         (is_attribute_p): Removed.
20065         (private_is_attribute_p): New.
20066         (private_lookup_attribute): New.
20067         (lookup_attribute): Removed.
20068         (lookup_ident_attribute): New.
20069         (remove_attribute): Require the first argument to be in the form
20070         'text', not '__text__'.  Updated asserts.
20071         (merge_attributes): Use lookup_ident_attributes instead of
20072         lookup_attribute.
20073         (merge_dllimport_decl_attributes): Use remove_attribute.
20074         (attribute_list_contained): Likewise.
20075         (attribute_list_equal): Immediately return 1 if the arguments are
20076         identical pointers.
20077         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
20078         'int'.  Require the first argument to be in the form 'text', not
20079         '__text__'.  Require the second argument to be an identifier.
20080         (lookup_attribute): Made inline.  Require the first argument to be
20081         in the form 'text', not '__text__'.
20082         (private_is_attribute_p, private_lookup_attribute): New.
20083         Updated comments.
20084
20085 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
20086
20087         * builtins.c: Add sync_ or SYNC__ to builtin names.
20088         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
20089         * omp-low.c: Add sync_ or SYNC__ to builtin names.
20090
20091 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
20092
20093         PR target/33049
20094         * config/avr/avr.md (extzv): New expander.
20095         (*extzv): New insn.
20096         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
20097         * config/avr/constraints.md (C04): New constraint.
20098         * doc/md.texi (Machine Constraints): Document it.
20099
20100 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
20101
20102         PR middle-end/49489
20103         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
20104         unsignedp argument instead of 1 for clrsb_optab.
20105         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
20106         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
20107         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
20108         * optabs.c (widen_leading): Call widen_operand and expand_unop
20109         with 0 as unsignedp argument instead of 1 for clrsb_optab.
20110         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
20111
20112 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
20113
20114         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
20115
20116 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
20117
20118         * gensupport.c (add_define_attr): New static function.
20119         (is_predicable): Allow multi-alternative lists for the "predicable"
20120         attribute.
20121         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
20122         (process_one_cond_exec): Call alter_attrs_for_insn.
20123         * doc/md.texi (Defining Attributes): Mention some standard names.
20124         (Conditional Execution): Update documentation for "predicable".
20125
20126         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
20127         __builtin_clrsbll): Document.
20128         * doc/rtl.texi (clrsb): New entry.
20129         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
20130         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
20131         (expand_unop): Handle clrsb_optab.
20132         (init_optabs): Initialize it.
20133         * optabs.h (enum optab_index): New entry OTI_clrsb.
20134         (clrsb_optab): Define.
20135         * genopinit.c (optabs): Add an entry for it.
20136         * builtins.c (expand_builtin): Handle clrsb builtin functions.
20137         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
20138         BUILT_IN_CLRSBLL): New.
20139         * rtl.def (CLRSB): New code.
20140         * dwarf2out.c (mem_loc_descriptor): Handle it.
20141         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
20142         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
20143         and popcount.
20144         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
20145         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
20146         (__ctzDI2): Move declaration.
20147         * config/bfin/bfin.md (clrsbsi2): New expander.
20148         (signbitssi2): Use the CLRSB rtx.
20149         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
20150         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
20151
20152 2011-06-21  Richard Guenther  <rguenther@suse.de>
20153
20154         * ipa-inline-transform.c (inline_transform): Fix previous change.
20155
20156 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
20157
20158         PR tree-optimization/49478
20159         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
20160         with constant operand.
20161
20162 2011-06-21  Richard Guenther  <rguenther@suse.de>
20163
20164         * ipa-inline-transform.c (inline_transform): Fix typo.
20165
20166 2011-06-21  Richard Guenther  <rguenther@suse.de>
20167
20168         PR tree-optimization/49483
20169         * tree-vect-stmts.c (vectorizable_assignment): Also handle
20170         VIEW_CONVERT_EXPR conversions.
20171
20172 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
20173
20174         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
20175         * config/avr/avr-tables.opt: New file (generated).
20176         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
20177         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
20178         avr-mcus.def.
20179         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
20180         (avr_option_override): Don't process -mmcu= argument here.  Set
20181         avr_current_device using avr_mcu_index.
20182         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
20183         * config/avr/avr.opt (mmcu=): Use Enum.
20184         * config/avr/t-avr (avr-devices.o): Update dependencies.
20185         ($(srcdir)/config/avr/avr-tables.opt): New.
20186         * target.def (help): Remove.
20187         * doc/tm.texi.in (TARGET_HELP): Remove.
20188         * doc/tm.texi: Regenerate.
20189         * opts.c: Don't include target.h.
20190         (common_handle_option): Don't call targetm.help.
20191         * system.h (TARGET_HELP): Poison.
20192         * Makefile.in (opts.o): Update dependencies.
20193
20194 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20195
20196         * config/usegld.h: New file.
20197         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
20198         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
20199         (LIB_SPEC): Likewise.  Search /lib.
20200         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
20201         (RDYNAMIC_SPEC): Handle GNU ld.
20202         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
20203         Define.
20204         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
20205         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
20206         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
20207         (STACK_CHECK_STATIC_BUILTIN): Define.
20208         * config/sol2.opt (compat-bsd): Remove.
20209         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
20210         * config/sol2-bi.h: New file.
20211         * config/sol2-gld.h: Remove.
20212         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
20213         (NO_DBX_BNSYM_ENSYM): Remove.
20214         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
20215         (STACK_CHECK_STATIC_BUILTIN): Remove.
20216         Test USE_GLD instead of TARGET_GNU_LD.
20217         * config/i386/sol2-10.h: Rename to ...
20218         * config/i386/sol2-bi.h .. this.
20219         (SUBTARGET_EXTRA_SPECS): Redefine.
20220         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
20221         (MULTILIB_DEFAULTS): Remove.
20222         (DEFAULT_ARCH32_P): Define.
20223         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
20224         (ARCH64_SUBDIR): Define.
20225         Test USE_GLD instead of TARGET_GNU_LD.
20226         (I386_EMULATION): Rename to ...
20227         (ARCH32_EMULATION): ... this.
20228         (X86_64_EMULATION): Rename to ...
20229         (ARCH64_EMULATION): ... this.
20230         (TARGET_LD_EMULATION): Remove.
20231         (LINK_ARCH_SPEC): Remove.
20232         * config/i386/sol2-gas.h: Remove.
20233         * config/i386/t-sol2-10: Rename to ...
20234         * config/i386/t-sol2-64: ... this.
20235         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
20236         (AS_SPARC64_FLAG): Define.
20237         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
20238         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
20239         depending on TARGET_CPU_DEFAULT.
20240         (CPP_CPU_SPEC): Redefine.
20241         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
20242         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
20243         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
20244         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
20245         ASM_ARCH_DEFAULT_SPEC): Redefine.
20246         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20247         LINK_ARCH_DEFAULT_SPEC.
20248         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
20249         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
20250         (ARCH64_SUBDIR): Define.
20251         (LINK_ARCH64_SPEC): Redefine.
20252         (CC1_SPEC): Redefine.
20253         (OPTION_DEFAULT_SPECS): Redefine.
20254         (MULTILIB_DEFAULTS): Define.
20255         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
20256         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
20257         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
20258         (NO_DBX_BNSYM_ENSYM): Remove.
20259         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
20260         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
20261         (TARGET_ASM_NAMED_SECTION): Likewise.
20262         (STACK_CHECK_STATIC_BUILTIN): Remove.
20263         * config/sparc/sol2-bi.h: Remove.
20264         * config/sparc/sol2-gas-bi.h: Remove.
20265         * config/sparc/sol2-gas.h: Remove.
20266         * config/sparc/sol2-gld-bi.h: Remove.
20267         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
20268         common parts ...
20269         (*-*-solaris2*): ... here.
20270
20271 2011-06-21  Christian Bruel  <christian.bruel@st.com>
20272
20273         PR other/43564
20274         * ipa-inline.c (can_inline_edge_p): Check
20275         !DECL_DISREGARD_INLINE_LIMITS.
20276
20277 2011-06-21  Christian Bruel  <christian.bruel@st.com>
20278
20279         PR middle-end/49139
20280         * cgraphunit.c (process_function_and_variable_attributes): warn when
20281         always_inline functions that are not inline.
20282         * ipa-inline-transform.c (inline_transform): Always call
20283         optimize_inline.
20284         * tree-inline.c (tree_inlinable_function_p): Use error instead
20285         of sorry.
20286         (expand_call_inline): Likewise.
20287
20288 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
20289
20290         * Makefile.in (dg_target_exps): Set.
20291         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
20292         instead of 7, try to divide it more evenly.
20293
20294 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
20295
20296         PR target/49089
20297         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
20298         (avx256_split_unaligned_store): New definition.
20299         (ix86_option_override_internal): Enable avx256 unaligned load/store
20300         splitting only when avx256_split_unaligned_load/store is set.
20301
20302 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
20303
20304         * regrename.c (scan_rtx_reg): Handle the case where we write to an
20305         open chain in a smaller mode without failing the entire block.
20306
20307 2011-06-21  Alan Modra  <amodra@gmail.com>
20308
20309         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
20310         CONST high part large-toc address.
20311         (rs6000_tls_referenced_p): Make static.
20312         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
20313
20314 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20315
20316         PR target/49385
20317         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
20318         one of the operands is a register.
20319
20320 2011-06-20  Kai Tietz  <ktietz@redhat.com>
20321
20322         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
20323         operations in combination with binary and.
20324
20325 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
20326
20327         * regrename.c (do_replace): Don't update notes.
20328
20329 2011-06-20  Alan Modra  <amodra@gmail.com>
20330
20331         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
20332         of toc-relative address in CONST.
20333         (rs6000_delegitimize_address): Recognize changed address.
20334         (rs6000_legitimize_reload_address): Likewise.
20335         (rs6000_emit_move): Don't force these constants to memory.
20336         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
20337         toc-relative address in CONST.
20338         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
20339         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
20340
20341 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20342
20343         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
20344         (count_trailing_zeros): Likewise.
20345
20346 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20347
20348         PR other/49325
20349         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
20350         .init_array can be used with .ctors on targets.
20351         * configure: Regenerated.
20352
20353 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
20354
20355         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
20356         if the element type is volatile.
20357
20358 2011-06-18  Jan Hubicka  <jh@suse.cz>
20359
20360         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
20361         extra name aliases.
20362         (lto_symtab_resolve_can_prevail_p): Likewise.
20363         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
20364         * cgraphbuild.c (record_reference): Remove extra body alias code.
20365         (mark_load): Likewise.
20366         (mark_store): Likewise.
20367         * cgraph.h (varpool_node): Remove extra_name filed;
20368         add alias_of and extraname_alias.
20369         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
20370         (varpool_alias_aliased_node): New inline function.
20371         (varpool_variable_node): New function.
20372         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
20373         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
20374         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
20375         (input_varpool_node): Likewise.
20376         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
20377         (varpool_externally_visible_p): Remove extra body alias code.
20378         (function_and_variable_visibility): Likewise.
20379         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
20380         (ipa_pta_execute): Use it.
20381         * varpool.c (varpool_remove_node): Remove extra name alias code.
20382         (varpool_mark_needed_node): Likewise.
20383         (varpool_analyze_pending_decls): Analyze aliases.
20384         (assemble_aliases): New functoin.
20385         (varpool_assemble_decl): Use it.
20386         (varpool_create_variable_alias): New function.
20387         (varpool_extra_name_alias): Rewrite.
20388         (varpool_for_node_and_aliases): New function.
20389
20390 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
20391
20392         PR target/49411
20393         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
20394         last_arg_constant and last argument doesn't match its predicate,
20395         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
20396         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
20397         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
20398         spelling of error message.
20399         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
20400         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
20401         const_0_to_255_operand instead of const_int_operand.
20402
20403         Revert:
20404         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
20405
20406         * config/i386/sse.md (blendbits): Remove mode attribute.
20407         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
20408         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
20409         Check integer value of operand 3 in insn constraint.
20410
20411 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
20412
20413         PR rtl-optimization/48542
20414         * reload.c (find_equiv_reg): Stop looking when finding a
20415         setjmp-type call.
20416         * reload1.c (reload_as_needed): Invalidate all reload
20417         registers when crossing a setjmp-type call.
20418
20419 2011-06-16  Jeff Law  <law@redhat.com>
20420
20421         * tree-ssa-threadupdate.c (struct redirection_data): New field
20422         intermediate_edge.
20423         (THREAD_TARGET2): Define.
20424         (redirection_data_eq): Also check that the intermediate edge is equal.
20425         (lookup_redirection_data): Drop useless argument.  Extract the
20426         outgoing_edge and intermediate edge from E.  Callers updated.
20427         (copy_phi_args, update_destination_phis): New functions.
20428         (fix_duplicate_block_edges): Likewise.
20429         (create_edge_and_update_destination_phis): Duplicate all the edges
20430         hung off e->aux.  Use copy_phi_args.
20431         (create_duplicates): Use fix_duplicate_block_edges.
20432         (fixup_template_block): Likewise.
20433         (redirect_edges): If necessary, redirect the joiner block's incoming
20434         edge to the duplicate of the joiner block.
20435         (thread_block): Don't muck up loops when threading through a joiner
20436         block.
20437         (thread_through_loop_header): Handle threading through a joiner block.
20438         (mark_threaded_blocks, register_jump_thread): Likewise.
20439         * tree-flow.h (register_jump_thread): Add new argument.  Callers
20440         updated.
20441         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
20442         (thread_across_edge): Handle threading through a joiner block.
20443
20444 2011-06-16  Martin Jambor  <mjambor@suse.cz>
20445
20446         PR tree-optimization/49343
20447         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
20448         calculate offset, provide 2nd operand for the new COMPONENT_REF.
20449
20450 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
20451
20452         * config/darwin-protos.h (machopic_select_rtx_section): Move to
20453         inside RTX_CODE ifdef.
20454
20455 2011-06-16  Tom de Vries  <tom@codesourcery.com>
20456
20457         PR target/45098
20458         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
20459         Disallow NULL pointer for pointer arithmetic.
20460
20461 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20462
20463         PR target/49398
20464         Revert.
20465         2011-06-10  Wei Guozhi  <carrot@google.com>
20466
20467         PR target/45335
20468         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
20469         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
20470         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
20471         related peephole2.
20472         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
20473         related peephole2.
20474         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
20475         (arm_legitimate_ldrd_p): New prototype.
20476         (arm_output_ldrd): New prototype.
20477         * config/arm/arm.c (arm_check_ldrd_operands): New function.
20478         (arm_legitimate_ldrd_p): New function.
20479         (arm_output_ldrd): New function.
20480
20481 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
20482
20483         PR middle-end/46500
20484         * doc/tm.texi.in: Update Copyright date.
20485         * doc/tm.texi: Regenerate.
20486         * targhooks.c (default_setup_incoming_varargs): Replace
20487         CUMULATIVE_ARGS* argument type with cumulative_args_t.
20488         (default_pretend_outgoing_varargs_named): Likewise.
20489         (hook_pass_by_reference_must_pass_in_stack): Likewise.
20490         (hook_callee_copies_named): Likewise.
20491         (default_function_arg_advance): Likewise.
20492         (default_function_arg): Likewise.
20493         (default_function_incoming_arg): Likewise.
20494         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
20495         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
20496         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
20497         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
20498         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
20499         * targhooks.h (default_setup_incoming_varargs): Likewise.
20500         (default_pretend_outgoing_varargs_named): Likewise.
20501         (hook_pass_by_reference_must_pass_in_stack): Likewise.
20502         (hook_callee_copies_named): Likewise.
20503         (default_function_arg_advance): Likewise.
20504         (default_function_arg): Likewise.
20505         (default_function_incoming_arg): Likewise.
20506         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
20507         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
20508         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
20509         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
20510         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
20511         * target.def (pass_by_reference): Likewise.
20512         (setup_incoming_varargs, strict_argument_naming): Likewise.
20513         (pretend_outgoing_varargs_named, callee_copies): Likewise.
20514         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
20515         (function_incoming_arg): Likewise.
20516         * target.h: Don't include "tm.h" .
20517         (cumulative_args_t): New typedef.
20518         [GCC_TM_H] (get_cumulative_args): New static inline function.
20519         [GCC_TM_H] (pack_cumulative_args): Likewise.
20520         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
20521         argument type with cumulative_args_t.
20522         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
20523         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
20524         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
20525         (frv_arg_partial_bytes, frv_function_arg): Likewise.
20526         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
20527         (frv_function_arg_1): Likewise.
20528         * config/s390/s390.c (s390_pass_by_reference): Likewise.
20529         (s390_function_arg_advance, s390_function_arg): Likewise.
20530         * config/m32c/m32c.c (m32c_function_arg): Likewise.
20531         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
20532         (m32c_strict_argument_naming): Likewise.
20533         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
20534         (spu_function_arg_advance): Likewise.
20535         (spu_setup_incoming_varargs): Likewise.  Make static.
20536         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
20537         Remove prototype.
20538         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
20539         CUMULATIVE_ARGS* argument type with cumulative_args_t.
20540         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
20541         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
20542         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
20543         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
20544         (mep_pass_by_reference, mep_function_arg): Likewise.
20545         (mep_function_arg_advance): Likewise.
20546         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
20547         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
20548         (m32r_function_arg, m32r_function_arg_advance): Likewise.
20549         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
20550         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
20551         (ix86_function_arg, ix86_pass_by_reference): Likewise.
20552         (ix86_setup_incoming_varargs): Likewise.
20553         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
20554         (sh_strict_argument_naming): Likewise.
20555         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
20556         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
20557         (sh_function_arg_advance, sh_function_arg): Likewise.
20558         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
20559         (pdp11_function_arg_advance): Likewise.
20560         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
20561         Likewise.
20562         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
20563         * config/avr/avr.c (avr_function_arg): Likewise.
20564         (avr_function_arg_advance): Likewise.
20565         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
20566         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
20567         (xtensa_function_arg_1): Likewise.
20568         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
20569         Likewise.
20570         (xstormy16_function_arg): Likewise.
20571         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
20572         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
20573         (fr30_function_arg_advance): Likewise.
20574         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
20575         (lm32_function_arg, lm32_function_arg_advance): Likewise.
20576         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
20577         (moxie_function_arg, moxie_function_arg_advance): Likewise.
20578         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
20579         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
20580         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
20581         (cris_function_arg, cris_function_incoming_arg): Likewise.
20582         (cris_function_arg_advance, cris_function_arg_1): Likewise.
20583         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
20584         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
20585         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
20586         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
20587         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
20588         (mn10300_arg_partial_bytes): Likewise.
20589         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
20590         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
20591         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
20592         (ia64_function_arg_1): Likewise.
20593         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
20594         (m68k_function_arg): Likewise.
20595         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
20596         (rs6000_function_arg, setup_incoming_varargs): Likewise.
20597         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
20598         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
20599         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
20600         (picochip_arg_advance): Likewise.
20601         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
20602         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
20603         (mcore_function_arg_advance): Likewise.
20604         * config/score/score.c (score_pass_by_reference): Likewise.
20605         (score_function_arg_advance): Likewise.
20606         (score_arg_partial_bytes): Likewise.  Make static.
20607         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
20608         * config/arm/arm.c (arm_arg_partial_bytes): Replace
20609         CUMULATIVE_ARGS* argument type with cumulative_args_t.
20610         (arm_function_arg, arm_function_arg_advance): Likewise.
20611         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
20612         * config/pa/pa.c (pa_pass_by_reference): Likewise.
20613         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
20614         (pa_function_arg): Likewise.
20615         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
20616         (mips_function_arg, mips_function_arg_advance): Likewise.
20617         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
20618         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
20619         * config/vax/vax.c (vax_function_arg): Likewise.
20620         (vax_function_arg_advance): Likewise.
20621         * config/h8300/h8300.c (h8300_function_arg): Likewise.
20622         (h8300_function_arg_advance): Likewise.
20623         * config/v850/v850.c (v850_pass_by_reference): Likewise.
20624         (v850_strict_argument_naming, v850_function_arg): Likewise.
20625         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
20626         (v850_setup_incoming_varargs): Likewise.
20627         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
20628         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
20629         (mmix_function_arg, mmix_pass_by_reference): Likewise.
20630         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
20631         with const void *.
20632         * config/bfin/bfin.c (setup_incoming_varargs): Replace
20633         CUMULATIVE_ARGS* argument type with cumulative_args_t.
20634         (bfin_function_arg_advance, bfin_function_arg): Likewise.
20635         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
20636         * calls.c (emit_call_1): Change type of args_so_far to
20637         cumulative_args_t.  Changed all callers.
20638         (initialize_argument_information): Likewise.
20639         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
20640         * dse.c (get_call_args): Likewise.
20641         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
20642         * function.c (pass_by_reference, reference_callee_copied): Likewise.
20643         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
20644         New member args_so_far_v.  Changed all users.
20645         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
20646         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
20647         * config/mips/mips.c (mips_output_args_xfer): Likewise.
20648         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
20649         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
20650         * config/microblaze/microblaze.c (microblaze_expand_prologue):
20651         Likewise.
20652         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
20653         m32r_pass_by_reference.
20654
20655 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
20656
20657         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
20658         argument to be a VEC of statements.
20659         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
20660         assert that pattern statements have to have their vector type set.
20661         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
20662         Change the first argument to be a VEC of statements.  Update
20663         documentation.
20664         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
20665         (vect_handle_widen_mult_by_const): New function.
20666         (vect_recog_widen_mult_pattern):  Change the first argument to be a
20667         VEC of statements.  Update documentation.  Check that the constant is
20668         INTEGER_CST.  Support multiplication by a constant that fits an
20669         intermediate type - call vect_handle_widen_mult_by_const.
20670         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
20671         call.  Handle additional pattern statements if necessary.
20672
20673 2011-06-16  Nick Clifton  <nickc@redhat.com>
20674
20675         PR target/49427
20676         * config.gcc: Set cpu_type to v850 for any V850 architecture.
20677         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
20678         md_file, extra_modes, out_file and extra_options are these are all
20679         deduced from cpu_type.
20680
20681 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
20682
20683         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
20684         truncation mask to 63.
20685
20686 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
20687
20688         PR target/49313
20689         PR target/29524
20690         * longlong.h: Add AVR support:
20691         (count_leading_zeros): New macro.
20692         (count_trailing_zeros): New macro.
20693         (COUNT_LEADING_ZEROS_0): New macro.
20694         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
20695         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
20696         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
20697         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
20698         (LIB2FUNCS_EXCLUDE): Add _clz.
20699         * config/avr/libgcc.S (XCALL): Move up in file.
20700         (XJMP): New C Macro.
20701         (DEFUN): New asm macro.
20702         (ENDF): New asm macro.
20703         (__ffssi2): New function.
20704         (__ffshi2): New function.
20705         (__loop_ffsqi2): New function.
20706         (__ctzsi2): New function.
20707         (__ctzhi2): New function.
20708         (__clzdi2): New function.
20709         (__clzsi2): New function.
20710         (__clzhi2): New function.
20711         (__paritydi2): New function.
20712         (__paritysi2): New function.
20713         (__parityhi2): New function.
20714         (__parityqi2): New function.
20715         (__popcounthi2): New function.
20716         (__popcountsi2): New function.
20717         (__popcountdi2): New function.
20718         (__popcountqi2): New function.
20719         (__bswapsi2): New function.
20720         (__bswapdi2): New function.
20721         (__ashldi3): New function.
20722         (__ashrdi3): New function.
20723         (__lshrdi3): New function.
20724         Fix suspicous lines.
20725
20726 2011-06-16  Richard Guenther  <rguenther@suse.de>
20727
20728         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
20729         the same as x != 0.
20730         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
20731         to (bool) X & 1.
20732         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
20733         equality compares against zero for the lower bit.
20734
20735 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
20736
20737         PR tree-optimization/49419
20738         * tree-vrp.c (execute_vrp): Call init_range_assertions
20739         before estimate_numbers_of_iterations, call
20740         free_number_of_iterations_estimates before calling
20741         remove_range_assertions.
20742
20743 2011-06-16  Revital Eres  <revital.eres@linaro.org>
20744
20745         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
20746         (struct partial_schedule): Add rows_length field.
20747         (verify_partial_schedule): Check rows_length.
20748         (ps_insert_empty_row): Handle rows_length.
20749         (create_partial_schedule): Likewise.
20750         (free_partial_schedule): Likewise.
20751         (reset_partial_schedule): Likewise.
20752         (create_ps_insn): Remove rest_count argument.
20753         (remove_node_from_ps): Update rows_length.
20754         (add_node_to_ps): Update rows_length and call create_ps_insn
20755         without passing row_rest_count.
20756         (rotate_partial_schedule): Update rows_length.
20757
20758 2011-06-16  Revital Eres  <revital.eres@linaro.org>
20759
20760         * ddg.c (add_intra_loop_mem_dep): New function.
20761         (build_intra_loop_deps): Call it.
20762
20763 2011-06-13  Jeff Law  <law@redhat.com>
20764
20765         * df-problems.c (df_lr_local_compute): Manually CSE
20766         PIC_OFFSET_TABLE_REGNUM.
20767         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
20768         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
20769
20770 2011-06-13  Jan Hubicka  <jh@suse.cz>
20771
20772         * cgraphunit.c (handle_alias_pairs): New function.
20773         (cgraph_finalize_compilation_unit): Use it.
20774         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
20775         as externally visible.
20776
20777 2011-06-15  Richard Guenther  <rguenther@suse.de>
20778
20779         * expr.c (expand_expr_real_2): Reduce all integral types to
20780         bitfield precision.
20781         (expand_expr_real_1): Likewise.
20782
20783 2011-06-15  Martin Jambor  <mjambor@suse.cz>
20784
20785         PR tree-optimization/48613
20786         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
20787         ipa_node_params_vector is NULL.
20788
20789 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
20790
20791         PR debug/49382
20792         * dwarf2out.c (dw_loc_list_node): Add force field.
20793         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
20794         location in the list, even if it is modified before first real insn.
20795         (output_loc_list): Emit empty ranges with force flag set.
20796         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
20797
20798 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
20799
20800         PR target/49349
20801         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
20802         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
20803         above a fence.  Update comments.
20804         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
20805         placed just above it.  Do not allow NULL place_to_insert.
20806
20807 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
20808
20809         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
20810         (slpeel_tree_peel_loop_to_edge): Don't call
20811         remove_dead_stmts_from_loop.
20812         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
20813         remove irrelevant pattern statements.  For irrelevant statements
20814         check if it is the last statement of a detected pattern, use
20815         corresponding pattern statement instead.
20816         (destroy_loop_vec_info): No need to remove pattern statements,
20817         only free stmt_vec_info.
20818         (vect_transform_loop): For irrelevant statements check if it is
20819         the last statement of a detected pattern, use corresponding
20820         pattern statement instead.
20821         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
20822         pattern statements.  Set basic block for the new statement.
20823         (vect_pattern_recog): Update documentation.
20824         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
20825         operands of pattern statements.
20826         (vectorizable_call): Fix printing.  In case of a pattern statement
20827         use the lhs of the original statement when creating a dummy
20828         statement to replace the original call.
20829         (vect_analyze_stmt): For irrelevant statements check if it is
20830         the last statement of a detected pattern, use corresponding
20831         pattern statement instead.
20832         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
20833         statements use gsi of the original statement.
20834
20835 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
20836
20837         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
20838         common/common-target-def.h.
20839         * target.def (default_target_flags, handle_option,
20840         supports_split_stack, optimization_table, init_struct,
20841         except_unwind_info, unwind_tables_default, have_named_sections):
20842         Move to common/common-target.def.
20843         * target.h (enum opt_levels, struct default_options): Move to
20844         common/common-target.h.
20845         * targhooks.c (default_except_unwind_info,
20846         dwarf2_except_unwind_info, sjlj_except_unwind_info,
20847         default_target_handle_option, empty_optimization_table): Move to
20848         common/common-targhooks.c.
20849         * targhooks.h (default_except_unwind_info,
20850         dwarf2_except_unwind_info, sjlj_except_unwind_info,
20851         default_target_handle_option, empty_optimization_table): Move to
20852         common/common-targhooks.h.
20853         * common/common-target-def.h: Include common/common-targhooks.h.
20854         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
20855         defined.
20856         * common/common-target.def (handle_option, option_init_struct,
20857         option_optimization_table, default_target_flags,
20858         except_unwind_info, supports_split_stack, unwind_tables_default,
20859         have_named_sections): Move from target.def.
20860         (HOOK_PREFIX): Undefine at end of file.
20861         * common/common-target.h: Include input.h.
20862         (enum opt_levels, struct default_options): Move from target.h.
20863         * common/common-targhooks.c, common/common-targhooks.h: New.
20864         * config.gcc (target_has_targetm_common): Default to yes.
20865         (moxie*): Set target_has_targetm_common=no.
20866         (hppa*-*-*): Don't set target_has_targetm_common=yes.
20867         * doc/tm.texi: Regenerate.
20868         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
20869         (C_TARGET_DEF_H): Add common/common-targhooks.h.
20870         (GCC_OBJS): Remove vec.o.
20871         (OBJS): Remove hooks.o and vec.o.
20872         (OBJS-libcommon-target): Add vec.o, hooks.o and
20873         common/common-targhooks.o.
20874         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
20875         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
20876         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
20877         cfglayout.o, $(out_object_file), $(common_out_object_file)):
20878         Update dependencies.
20879         (common/common-targhooks.o): New.
20880         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
20881         * common/config/pa/pa-common.c: Include more headers.  Take
20882         copyright dates from pa.c.
20883         (pa_option_optimization_table, pa_handle_option,
20884         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
20885         TARGET_HANDLE_OPTION): Move from pa.c.
20886         * common/config/alpha/alpha-common.c,
20887         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
20888         common/config/bfin/bfin-common.c,
20889         common/config/cris/cris-common.c,
20890         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
20891         common/config/h8300/h8300-common.c,
20892         common/config/i386/i386-common.c,
20893         common/config/ia64/ia64-common.c,
20894         common/config/iq2000/iq2000-common.c,
20895         common/config/lm32/lm32-common.c,
20896         common/config/m32c/m32c-common.c,
20897         common/config/m32r/m32r-common.c,
20898         common/config/m68k/m68k-common.c,
20899         common/config/mcore/mcore-common.c,
20900         common/config/mep/mep-common.c,
20901         common/config/microblaze/microblaze-common.c,
20902         common/config/mips/mips-common.c,
20903         common/config/mmix/mmix-common.c,
20904         common/config/mn10300/mn10300-common.c,
20905         common/config/pdp11/pdp11-common.c,
20906         common/config/picochip/picochip-common.c,
20907         common/config/rs6000/rs6000-common.c,
20908         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
20909         common/config/score/score-common.c, common/config/sh/sh-common.c,
20910         common/config/sparc/sparc-common.c,
20911         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
20912         common/config/vax/vax-common.c,
20913         common/config/xstormy16/xstormy16-common.c,
20914         common/config/xtensa/xtensa-common.c: New.
20915         * config/alpha/alpha.c: Include common/common-target.h.
20916         (alpha_option_optimization_table, alpha_handle_option,
20917         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20918         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
20919         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
20920         * config/arm/arm.c (arm_option_optimization_table,
20921         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
20922         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
20923         arm-common.c.
20924         * config/avr/avr.c (avr_option_optimization_table,
20925         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
20926         to avr-common.c.
20927         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
20928         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
20929         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
20930         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
20931         * config/cris/cris.c (cris_option_optimization_table,
20932         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20933         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
20934         cris-common.c.
20935         * config/fr30/fr30.c (fr30_option_optimization_table,
20936         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
20937         to fr30-common.c.
20938         * config/frv/frv.c (frv_option_optimization_table,
20939         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
20940         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
20941         * config/h8300/h8300.c (h8300_option_optimization_table,
20942         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
20943         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
20944         * config/i386/i386-protos.h (ix86_handle_option): Declare.
20945         * config/i386/i386.c: Include common/common-target.h.
20946         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
20947         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
20948         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
20949         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
20950         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
20951         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
20952         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
20953         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
20954         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
20955         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
20956         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
20957         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
20958         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
20959         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
20960         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
20961         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
20962         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
20963         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
20964         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
20965         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
20966         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
20967         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
20968         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
20969         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
20970         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
20971         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
20972         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
20973         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
20974         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
20975         ix86_option_optimization_table, ix86_option_init_struct,
20976         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
20977         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
20978         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
20979         i386-common.c.
20980         * config/i386/t-i386 (i386.o): Update dependencies.
20981         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
20982         * config/ia64/ia64.c (ia64_option_optimization_table,
20983         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
20984         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20985         ia64_handle_option): Move to ia64-common.c.
20986         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
20987         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
20988         * config/lm32/lm32.c (lm32_option_optimization_table,
20989         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
20990         to lm32-common.c.
20991         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
20992         m32c-common.c.
20993         * config/m32r/m32r.c (m32r_option_optimization_table,
20994         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20995         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
20996         m32r_handle_option): Move to m32r-common.c.
20997         (m32r_memory_move_cost): Remove comment referring to
20998         TARGET_HANDLE_OPTION.
20999         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
21000         Move to m68k-common.c.
21001         * config/mcore/mcore.c (mcore_option_optimization_table,
21002         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
21003         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
21004         * config/mep/mep.c (mep_option_optimization_table,
21005         mep_handle_option, TARGET_HANDLE_OPTION,
21006         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
21007         Move to mep-common.c.
21008         * config/microblaze/microblaze.c
21009         (microblaze_option_optimization_table,
21010         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
21011         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
21012         * config/mips/mips.c (mips_handle_option,
21013         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
21014         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
21015         mips-common.c.
21016         * config/mmix/mmix.c (mmix_option_optimization_table,
21017         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
21018         Move to mmix-common.c.
21019         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
21020         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
21021         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21022         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
21023         * config/pa/pa.c: Include common/common-target.h.
21024         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
21025         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21026         pa_handle_option): Move to pa-common.c.
21027         (pa_option_override): Use targetm_common.except_unwind_info.
21028         (pa_asm_output_mi_thunk, pa_function_section): Use
21029         targetm_common.have_named_sections.
21030         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
21031         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21032         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
21033         pdp11_handle_option, pdp11_option_init_struct): Move to
21034         pdp11-common.c.
21035         * config/picochip/picochip.c (picochip_option_optimization_table,
21036         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
21037         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
21038         * config/rs6000/rs6000.c: Include common/common-target.h.
21039         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
21040         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
21041         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
21042         rs6000_handle_option): Move to rs6000-common.c.
21043         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
21044         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
21045         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
21046         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
21047         * config/s390/s390.c (processor_flags_table,
21048         s390_option_optimization_table, s390_option_init_struct,
21049         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
21050         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
21051         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
21052         * config/s390/s390.h (processor_flags_table): Declare.
21053         * config/score/score.c (score_option_optimization_table,
21054         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21055         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
21056         score_handle_option): Move to score-common.c.
21057         * config/sh/sh.c (sh_option_optimization_table,
21058         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
21059         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21060         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
21061         * config/sparc/sparc.c: Include common/common-target.h.
21062         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
21063         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
21064         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
21065         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
21066         spu_option_init_struct): Move to spu-common.c.
21067         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
21068         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
21069         * config/v850/v850.c (small_memory_physical_max,
21070         v850_handle_memory_optionn v850_handle_option,
21071         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
21072         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
21073         v850-common.c.
21074         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
21075         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
21076         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
21077         Move to xtensa-common.c.
21078         * cfglayout.c: Include common/common-target.h.
21079         (fixup_reorder_chain): Use targetm_common.have_named_sections.
21080         * cfgrtl.c: Include common/common-target.h.
21081         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
21082         targetm_common.have_named_sections.
21083         * dbxout.c: Include common/common-target.h.
21084         (dbxout_function_end): Use targetm_common.have_named_sections.
21085         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
21086         targetm_common.except_unwind_info.
21087         * dwarf2out.c: Include common/common-target.h.
21088         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
21089         dwarf2out_begin_prologue, dwarf2out_frame_init,
21090         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
21091         targetm_common.except_unwind_info.
21092         * except.c: Include common/common-target.h.
21093         (init_eh, finish_eh_generation,
21094         output_one_function_exception_table): Use
21095         targetm_common.except_unwind_info.
21096         (switch_to_exception_section): Use targetm_common.have_named_sections.
21097         * explow.c: Include common/common-target.h.
21098         * expr.c: Include common/common-target.h.
21099         (build_personality_function): Use targetm_common.except_unwind_info.
21100         * function.c: Include common/common-target.h.
21101         (expand_function_end): Use targetm_common.except_unwind_info.
21102         * haifa-sched.c: Include common/common-target.h.
21103         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
21104         * lto-opts.c: Include common/common-target.h instead of target.h.
21105         (lto_reissue_options): Use targetm_common.handle_option.
21106         * opts.c: Include common/common-target.h.
21107         (target_handle_option): Use targetm_common.handle_option.
21108         (init_options_struct): Update comment referring to
21109         targetm.target_option.optimization.  Use
21110         targetm_common.default_target_flags,
21111         targetm_common.unwind_tables_default and
21112         targetm_common.option_init_struct.
21113         (default_options_optimization): Use
21114         targetm_common.option_optimization_table.
21115         (finish_options): Use targetm_common.except_unwind_info,
21116         targetm_common.unwind_tables_default,
21117         targetm_common.have_named_sections and
21118         targetm_common.supports_split_stack.
21119         * toplev.c: Include common/common-target.h.
21120         (process_options): Use targetm_common.have_named_sections.
21121         * tree-tailcall.c: Include common/common-target.h.
21122         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
21123         * tree.c: Include common/common-target.h.
21124         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
21125         * varasm.c: Include common/common-target.h.
21126         (resolve_unique_section, hot_function_section,
21127         default_function_section): Use targetm_common.have_named_sections.
21128
21129 2011-06-14  Easwaran Raman  <eraman@google.com>
21130
21131         PR rtl-optimization/44194
21132         * dse.c: Include tree-flow.h
21133         (insn_info): Add new field non_frame_wild_read.
21134         (group_info): Add new fields escaped_n and escaped_p.
21135         (kill_on_calls): New variable.
21136         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
21137         (dse_step0): Initialize kill_on_calls.
21138         (can_escape): New function.
21139         (set_usage_bits): Add additional parameter; record information
21140         about escaped locations.
21141         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
21142         (dse_step2_nospill): Set kill_on_calls based on
21143         group->escaped_n and group->escaped_n.
21144         (add_wild_read): Refactor into...
21145         (reset_active_stores): ... New function, and
21146         (free_read_records): ... New function.
21147         (add_non_frame_wild_read): New function.
21148         (scan_insn): Call add_non_frame_wild_read on non-const calls.
21149         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
21150         (dse_step5_nospill): Call scan_reads_nospill for instructions
21151         marked as non_frame_wild_read.
21152         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
21153
21154 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
21155
21156         * common/common-target-def.h, common/common-target.def,
21157         common/common-target.h, common/config/default-common.c,
21158         common/config/pa/pa-common.c: New files.
21159         * Makefile.in (common_out_file, common_out_object_file,
21160         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
21161         (OBJS-libcommon-target): Include $(common_out_object_file).
21162         (prefix.o): Update dependencies.
21163         ($(common_out_object_file), common/common-target-hooks-def.h,
21164         s-common-target-hooks-def-h): New.
21165         (s-tm-texi): Also check timestamp on common-target.def.
21166         (build/genhooks.o): Update dependencies.
21167         * config.gcc (common_out_file, target_has_targetm_common): Define.
21168         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
21169         TARGET_ALWAYS_STRIP_DOTDOT.
21170         * configure.ac (common_out_object_file): Define.
21171         (common_out_file, common_out_object_file): Substitute.
21172         (common): Create directory.
21173         * configure: Regenerate.
21174         * doc/tm.texi.in (targetm_common): Document.
21175         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
21176         * doc/tm.texi: Regenerate.
21177         * genhooks.c (hook_array): Also include common/common-target.def.
21178         * prefix.c (tm.h): Don't include.
21179         (common/common-target.h): Include.
21180         (ALWAYS_STRIP_DOTDOT): Don't define.
21181         (update_path): Use targetm_common.always_strip_dotdot instead of
21182         ALWAYS_STRIP_DOTDOT.
21183         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
21184
21185 2011-06-14  David Li  <davidxl@google.com>
21186
21187         * passes.c (execute_function_todo): Remove TODO_dump_func.
21188         (execute_one_pass): Remove TODO_dump_func.
21189         (execute_function_dump): New function.
21190         * tree-vrp.c: Remove TODO_dump_func.
21191         * regrename.c: Remove TODO_dump_func.
21192         * fwprop.c: Remove TODO_dump_func.
21193         * tree-into-ssa.c: Remove TODO_dump_func.
21194         * tree-complex.c: Remove TODO_dump_func.
21195         * tracer.c: Remove TODO_dump_func.
21196         * tree-loop-distribution.c: Remove TODO_dump_func.
21197         * postreload-gcse.c: Remove TODO_dump_func.
21198         * postreload.c: Remove TODO_dump_func.
21199         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
21200         * tree-tailcall.c: Remove TODO_dump_func.
21201         * ipa-cp.c: Remove TODO_dump_func.
21202         * final.c: Remove TODO_dump_func.
21203         * tree-emutls.c: Remove TODO_dump_func.
21204         * omp-low.c: Remove TODO_dump_func.
21205         * tree-ssa-dse.c: Remove TODO_dump_func.
21206         * tree-ssa-uncprop.c: Remove TODO_dump_func.
21207         * auto-inc-dec.c: Remove TODO_dump_func.
21208         * reorg.c: Remove TODO_dump_func.
21209         * tree-ssa-copyrename.c: Remove TODO_dump_func.
21210         * tree-ssa-ccp.c: Remove TODO_dump_func.
21211         * compare-elim.c: Remove TODO_dump_func.
21212         * mode-switching.c: Remove TODO_dump_func.
21213         * modulo-sched.c: Remove TODO_dump_func.
21214         * tree-call-cdce.c: Remove TODO_dump_func.
21215         * cse.c: Remove TODO_dump_func.
21216         * web.c: Remove TODO_dump_func.
21217         * tree-stdarg.c: Remove TODO_dump_func.
21218         * lto-streamer-out.c: Remove TODO_dump_func.
21219         * tree-ssa-math-opts.c: Remove TODO_dump_func.
21220         * tree-ssa-dom.c: Remove TODO_dump_func.
21221         * tree-nrv.c: Remove TODO_dump_func.
21222         * loop-init.c: Remove TODO_dump_func.
21223         * gimple-low.c: Remove TODO_dump_func.
21224         * ipa-inline.c: Remove TODO_dump_func.
21225         * tree-ssa-sink.c: Remove TODO_dump_func.
21226         * jump.c: Remove TODO_dump_func.
21227         * ifcvt.c: Remove TODO_dump_func.
21228         * tree-ssa-loop.c: Remove TODO_dump_func.
21229         * recog.c: Remove TODO_dump_func.
21230         * dse.c: Remove TODO_dump_func.
21231         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
21232         * matrix-reorg.c: Remove TODO_dump_func.
21233         * tree-eh.c: Remove TODO_dump_func.
21234         * regmove.c: Remove TODO_dump_func.
21235         * function.c: Remove TODO_dump_func.
21236         * tree-vectorizer.c: Remove TODO_dump_func.
21237         * ipa-split.c: Remove TODO_dump_func.
21238         * gcse.c: Remove TODO_dump_func.
21239         * tree-if-conv.c: Remove TODO_dump_func.
21240         * init-regs.c: Remove TODO_dump_func.
21241         * tree-ssa-phiopt.c: Remove TODO_dump_func.
21242         * implicit-zee.c: Remove TODO_dump_func.
21243         * lower-subreg.c: Remove TODO_dump_func.
21244         * bt-load.c: Remove TODO_dump_func.
21245         * tree-dfa.c: Remove TODO_dump_func.
21246         * except.c: Remove TODO_dump_func.
21247         * emit-rtl.c: Remove TODO_dump_func.
21248         * store-motion.c: Remove TODO_dump_func.
21249         * cfgexpand.c: Remove TODO_dump_func.
21250         * tree-cfgcleanup.c: Remove TODO_dump_func.
21251         * cfgcleanup.c: Remove TODO_dump_func.
21252         * tree-ssa-pre.c: Remove TODO_dump_func.
21253         * tree-sra.c: Remove TODO_dump_func.
21254         * tree-mudflap.c: Remove TODO_dump_func.
21255         * tree-ssa-copy.c: Remove TODO_dump_func.
21256         * cfglayout.c: Remove TODO_dump_func.
21257         * tree-ssa-forwprop.c: Remove TODO_dump_func.
21258         * tree-ssa-dce.c: Remove TODO_dump_func.
21259         * ira.c: Remove TODO_dump_func.
21260         * tree-ssa.c: Remove TODO_dump_func.
21261         * integrate.c: Remove TODO_dump_func.
21262         * tree-optimize.c: Remove TODO_dump_func.
21263         * tree-ssa-phiprop.c: Remove TODO_dump_func.
21264         * tree-object-size.c: Remove TODO_dump_func.
21265         * combine.c: Remove TODO_dump_func.
21266         * bb-reorder.c: Remove TODO_dump_func.
21267         * cprop.c: Remove TODO_dump_func.
21268         * var-tracking.c: Remove TODO_dump_func.
21269         * tree-profile.c: Remove TODO_dump_func.
21270         * tree-vect-generic.c: Remove TODO_dump_func.
21271         * reg-stack.c: Remove TODO_dump_func.
21272         * sched-rgn.c: Remove TODO_dump_func.
21273         * tree-ssa-structalias.c: Remove TODO_dump_func.
21274         * tree-switch-conversion.c: Remove TODO_dump_func.
21275         * tree-cfg.c: Remove TODO_dump_func.
21276         * tree-ssa-reassoc.c: Remove TODO_dump_func.
21277         * combine-stack-adj.c: Remove TODO_dump_func.
21278         * dce.c: Remove TODO_dump_func.
21279         * tree-ssanames.c: Remove TODO_dump_func.
21280         * regcprop.c: Remove TODO_dump_func.
21281
21282 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21283
21284         PR middle-end/47364
21285         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
21286         and properly handle result not in Pmode.
21287
21288 2011-06-14  Robert Millan  <rmh@gnu.org>
21289
21290         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
21291         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
21292         `config/linux.h'.
21293
21294         * config/i386/kfreebsd-gnu64.h: New file.
21295         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
21296         with `i386/kfreebsd-gnu64.h'.
21297
21298         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
21299         (GNU_USER_LINK_EMULATION64): New macros.
21300         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
21301         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
21302         of hardcoding `elf_i386' and `elf_x86_64'.
21303
21304 2011-06-14  Nick Clifton  <nickc@redhat.com>
21305
21306         PR target/49403
21307         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
21308
21309         PR target/49402
21310         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
21311
21312 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
21313
21314         PR fortran/49103
21315         * tree.h (DECL_NONSHAREABLE): Define.
21316         (struct tree_decl_common): Change decl_common_unused to
21317         decl_nonshareable_flag.
21318         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
21319         Ignore vars with DECL_NONSHAREABLE bit set.
21320         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
21321         on stores to automatic aggregate vars.
21322
21323         PR rtl-optimization/49390
21324         Revert:
21325         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21326
21327         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21328         MEM_ALIAS_SET.
21329
21330 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
21331             Tom de Vries  <tom@codesourcery.com>
21332
21333         PR target/45098
21334         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
21335         Document changed semantics.
21336         (max_stmt_executions, max_stmt_executions_int): Declare.
21337         * tree-data-ref.c (estimated_loop_iterations)
21338         (estimated_loop_iterations_int): Move functions...
21339         * tree-ssa-loop-niter.c (estimated_loop_iterations)
21340         (estimated_loop_iterations_int): here.
21341         (record_estimate): Change nb_iterations_upper_bound and
21342         nb_iterations_estimate semantics.
21343         (max_stmt_executions, max_stmt_executions_int): New function.
21344         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
21345         (max_stmt_executions_tree): this.
21346         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
21347         estimated_loop_iterations_tree.
21348         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
21349         max_stmt_executions_int instead of estimated_loop_iterations_int.
21350         * predict.c (predict_loops): Idem.
21351         * tree-parloops.c (parallelize_loops): Idem.
21352         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
21353         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
21354         (init_omega_for_ddr_1): Idem.
21355         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
21356         (loop_prefetch_arrays): Idem
21357         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
21358         max_stmt_executions instead of estimated_loop_iterations.
21359         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
21360         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
21361         instead of nb_iterations_upper_bound.
21362
21363 2011-06-13  Jan Hubicka  <jh@suse.cz>
21364
21365         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
21366
21367 2011-06-14  Richard Henderson  <rth@redhat.com>
21368
21369         PR debug/48459
21370         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
21371         (based_loc_descr): Assert it's true.
21372         (compute_frame_pointer_to_fb_displacement): Set it, rather than
21373         aborting immediately.
21374
21375 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
21376             Mingfeng Wu  <mingfeng@faraday-tech.com>
21377
21378         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
21379
21380 2011-06-13  Jan Hubicka  <jh@suse.cz>
21381
21382         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
21383
21384 2011-06-13  Jan Hubicka  <jh@suse.cz>
21385
21386         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
21387         similarly to DECL_COMDAT.
21388         * cgraphunit.c (cgraph_analyze_function): Likewise.
21389         * ipa.c (function_and_variable_visibility): Likewise.
21390
21391 2011-06-13  Jan Hubicka  <jh@suse.cz>
21392
21393         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
21394         BINFO_VIRTUALS when streaming for ltrans unit.
21395
21396 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
21397
21398         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
21399         (movdi_internal64): Same.
21400
21401 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
21402
21403         PR target/44618
21404         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
21405         a set of similar patterns, where the MATCH_OPERAND for the function
21406         argument is replaced with individual references to hardware registers.
21407         (save_fpregs_<mode>): Ditto
21408         (restore_gpregs_<mode>): Ditto
21409         (return_and_restore_gpregs_<mode>): Ditto
21410         (return_and_restore_fpregs_<mode>): Ditto
21411         (return_and_restore_fpregs_aix_<mode>): Ditto
21412
21413 2011-06-13  Jan Hubicka  <jh@suse.cz>
21414
21415         * ipa-utils.c (postorder_stack): New structure.
21416         (ipa_reverse_postorder): Handle aliases.
21417
21418 2011-06-13  Jan Hubicka  <jh@suse.cz>
21419
21420         * ipa-inline.c (reset_edge_caches): Walk aliases.
21421         (update_caller_keys): Do not test inlinability of aliases.
21422         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
21423         (do_estimate_growth): Fix typo.
21424
21425 2011-06-13  Jan Hubicka  <jh@suse.cz>
21426
21427         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
21428         (can_remove_node_now_p): ... here; handle same comdat groups.
21429         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
21430         (inline_call): Update use of can_remove_node_now_p.
21431
21432 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21433
21434         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
21435         condition to disallow non-identical memory locations.
21436         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
21437         preference to bit manipulation instructions.
21438
21439 2011-06-13  Jan Hubicka  <jh@suse.cz>
21440
21441         * cgraph.c (cgraph_for_node_thunks_and_aliases,
21442         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
21443         (nonremovable_p): New function.
21444         (cgraph_can_remove_if_no_direct_calls_p): New function.
21445         (used_from_object_file_p): New functoin.
21446         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
21447         references from aliases.
21448         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
21449         * ipa-inline.c (check_caller_edge): New function.
21450         (want_inline_function_called_once_p): Use it; accept aliases called
21451         once, too.
21452         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
21453
21454 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21455
21456         PR target/48454
21457         * config/arm/neon.md (vec_pack_trunc): Set the lengths
21458         correctly for the case with Quad vectors.
21459
21460 2011-06-13  Jakub Jelinek  <jakub@redhat.com>
21461             Ira Rosen  <ira.rosen@linaro.org>
21462
21463         PR tree-optimization/49352
21464         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
21465         all, make sure loop_use_stmt after the loop is a def stmt of a used
21466         SSA_NAME that is the only one defined inside of the loop.  Don't
21467         check for COND_EXPR and GIMPLE_BINARY_RHS.
21468         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
21469         check_reduction is true.
21470
21471 2011-06-11  Jan Hubicka  <jh@suse.cz>
21472
21473         PR middle-end/49373
21474         * ipa.c (cgraph_externally_visible_p): Check resolution info.
21475
21476 2011-06-11  Jan Hubicka  <jh@suse.cz>
21477
21478         PR middle-end/48836
21479         * ipa-inline-transform.c: Include tree-pass.h
21480         (inline_transform): Set TODO_update_ssa_only_virtuals.
21481         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
21482
21483 2011-06-11  Jan Hubicka  <jh@suse.cz>
21484
21485         PR middle-end/49378
21486         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
21487         aliases and thunks.
21488
21489 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
21490
21491         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
21492         Take number of iterations to peel into account for equally frequent
21493         misalignment values.
21494
21495 2011-06-11  Jan Hubicka  <jh@suse.cz>
21496
21497         * lto-streamer-out.c (produce_symtab): Stream out the newly
21498         represented aliases.
21499
21500 2011-06-11  Jan Hubicka  <jh@suse.cz>
21501
21502         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
21503         varying args.
21504         (ipa_update_after_lto_read): Likewise.
21505         (ipa_write_node_info): Do not sream call_with_var_arguments.
21506         (ipa_read_node_info): Likewise.
21507
21508 2011-06-11  Jan Hubicka  <jh@suse.cz>
21509
21510         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
21511
21512 2011-06-11  Jan Hubicka  <jh@suse.cz>
21513
21514         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
21515         (lto_symtab_resolve_can_prevail_p): Likewise.
21516         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
21517         * cgraph.c (same_body_aliases_done): New global var.
21518         (cgraph_same_body_alias_1): Rename to ...
21519         (cgraph_create_function_alias): ... this one; reorg to new
21520         representation.
21521         (cgraph_same_body_alias): Use cgraph_create_function_alias;
21522         record references when asked to.
21523         (cgraph_add_thunk): Fix formating.
21524         (cgraph_get_node): Kill same body alias code.
21525         (cgraph_node_for_asm): Likewise.
21526         (cgraph_remove_same_body_alias): Remove.
21527         (cgraph_remove_node): Kill same body alias code.
21528         (cgraph_mark_address_taken_node): Mark also the aliased function
21529         as having address taken.
21530         (dump_cgraph_node): Dump same body aliases.
21531         (cgraph_for_node_thunks_and_aliases): Update for new alias
21532         representation.
21533         (cgraph_for_node_and_aliases): Likewise.
21534         * cgraph.h (same_body): Kll pointer.
21535         (same_body_alias): Update comment.
21536         (same_body_aliases_done): Declare.
21537         (cgraph_remove_same_body_alias): Remove declaration.
21538         (cgraph_create_function_alias): Declare.
21539         (cgraph_process_same_body_aliases): Declare.
21540         (cgraph_function_with_gimple_body_p): Check for alias.
21541         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
21542         (cgraph_alias_aliased_node): New function.
21543         (cgraph_function_node): Update for new aliases.
21544         (cgraph_function_or_thunk_node): Likewise.
21545         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
21546         (inline_call): Remove dead aliases.
21547         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
21548         name hack for same body aliases.
21549         (clone_of_p): Look through aliases.
21550         (verify_cgraph_node): Verify aliases.
21551         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
21552         (cgraph_process_same_body_aliases): New function.
21553         (process_function_and_variable_attributes): Disable weakref warning on
21554         alias.
21555         (cgraph_analyze_functions): Handle aliases.
21556         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
21557         (assemble_thunks): Rename to ...
21558         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
21559         (cgraph_expand_function): Remove alias output code.
21560         (cgraph_output_in_order): Skip aliases.
21561         (cgraph_preserve_function_body_p): Aliases don't need preserving.
21562         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
21563         (ipa_record_reference): Do not assert on alias references.
21564         (ipa_ref_has_aliases_p): New function.
21565         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
21566         (ipa_ref_has_aliases_p): Declare.
21567         * lto-cgraph.c (lto_output_node): Handle aliases.
21568         (input_node): Likewise.
21569         * lto-streamer-out.c (lto_output): Skip aliases.
21570         (produce_symtab): Kill same_body_alias code.
21571         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
21572         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
21573         * ipa-inline.c (update_caller_keys): Walk aliases.
21574         (inline_small_functions): Fix thinko in previous patch.
21575         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
21576         (function_and_variable_visibility): Do not walk same body aliases.
21577         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
21578         (ipa_pta_execute): Use it.
21579
21580 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
21581
21582         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
21583         (*vec_dupv2df): Rename from vec_dupv2df.
21584         (vec_dupv2df): New expander.
21585
21586 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
21587
21588         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
21589
21590 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
21591
21592         * config/i386/i386.md: Use default value in "isa" attribute.
21593         * config/i386/sse.md: Ditto.
21594         * config/i386/mmx.md: Ditto.
21595
21596 2011-06-10  Wei Guozhi  <carrot@google.com>
21597
21598         PR target/45335
21599         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
21600         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
21601         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
21602         related peephole2.
21603         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
21604         related peephole2.
21605         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
21606         (arm_legitimate_ldrd_p): New prototype.
21607         (arm_output_ldrd): New prototype.
21608         * config/arm/arm.c (arm_check_ldrd_operands): New function.
21609         (arm_legitimate_ldrd_p): New function.
21610         (arm_output_ldrd): New function.
21611
21612 2011-06-10  David Li  <davidxl@google.com>
21613
21614         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
21615         * passes.c (passr_eq): New function.
21616         (create_pass_tab): New function.
21617         (pass_traverse): New function.
21618         (dump_one_pass): New function.
21619         (dump_pass_list): New function.
21620         (dump_passes): New function.
21621
21622 2011-06-10  Jan Hubicka  <jh@suse.cz>
21623
21624         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
21625         setting the nothrow flag.
21626         * ipa-reference.c (propagate): Skip aliases.
21627         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
21628         (propagate_nothrow): Skip aliases; do not update cgraph.
21629         (local_pure_const): Do not update cgraph.
21630         * tree-profile.c (tree_profiling): Do fixup_cfg.
21631
21632 2011-06-10  Jan Hubicka  <jh@suse.cz>
21633
21634         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
21635         (cgraph_local_node_p): ... here; handle aliases.
21636         (has_addr_references_p): Break out from ...;
21637         (cgraph_remove_unreachable_nodes) ... here.
21638
21639 2011-06-10  Jan Hubicka  <jh@suse.cz>
21640
21641         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
21642         * common.opt (flag_inline_functions_called_once): Do not
21643         initialize to 1.
21644
21645 2011-06-10  Jan Hubicka  <jh@suse.cz>
21646
21647         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
21648         (ipcp_initialize_node_lattices): Do not deal with aliases;
21649         Do not try to propagate through thunks.
21650         (ipcp_change_tops_to_bottom): Do not deal with aliases.
21651
21652 2011-06-10  Jan Hubicka  <jh@suse.cz>
21653
21654         * ipa-prop.c (ipa_write_node_info): Stream jump functions
21655         for indirect calls.
21656         (ipa_read_node_info): Likewise.
21657
21658 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21659
21660         PR lto/49302
21661         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
21662         (build_and_insert_call): Likewise.
21663         (build_and_insert_ref): New.
21664         (gimple_expand_builtin_pow): Minor cleanup.
21665         (gimple_expand_builtin_cabs): New.
21666         (execute_cse_sincos): Add case for BUILT_IN_CABS.
21667
21668 2011-06-10  Jan Hubicka  <jh@suse.cz>
21669
21670         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
21671         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
21672         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
21673         (ipcp_propagate_stage): Skip aliases when propagating.
21674         (ipcp_need_redirect_p): Skip aliases.
21675         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
21676         collect_callers_of_node.
21677         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
21678         for aliases.
21679         (ipa_compute_jump_functions): Look through aliases.
21680
21681 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21682
21683         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
21684
21685 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
21686
21687         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
21688         Adjust comments.
21689         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
21690
21691 2011-06-10  Jan Hubicka  <jh@suse.cz>
21692
21693         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
21694         Update call of gimple_get_virt_method_for_binfo.
21695         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
21696         refuse_thunks parameter.
21697         (gimple_fold_call): Update.
21698         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
21699
21700 2011-06-10  Jan Hubicka  <jh@suse.cz>
21701
21702         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
21703         (not_all_callers_have_enough_arguments_p): ... this one; turn into
21704         worker for cgraph_for_node_and_aliases.
21705         (convert_callers_for_node): Break out from ...
21706         (convert_callers): ... here.
21707         (modify_function): Use collect_callers_of_node.
21708         (ipa_early_sra): Use cgraph_for_node_and_aliases.
21709
21710 2011-06-10  Richard Guenther  <rguenther@suse.de>
21711
21712         PR tree-optimization/49361
21713         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
21714         when not already in gimple form.
21715
21716 2011-06-10  Richard Guenther  <rguenther@suse.de>
21717
21718         PR bootstrap/49344
21719         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
21720         FOR_EACH_PHI_OR_STMT_USE.
21721
21722 2011-06-10  Jan Hubicka  <jh@suse.cz>
21723
21724         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
21725         (clone_inlined_nodes): ... here.
21726         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
21727         to real destination prior inlining.
21728         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
21729         can_early_inline_edge_p, want_early_inline_function_p,
21730         want_early_inline_function_p, want_inline_small_function_p,
21731         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
21732         edge_badness, update_all_callee_keys, lookup_recursive_calls,
21733         add_new_edges_to_heap, inline_small_functions, flatten_function,
21734         inline_always_inline_functions, early_inline_small_functions): Use
21735         cgraph_function_or_thunk_node.
21736         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
21737         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
21738         (do_estimate_edge_growth_1): Break out from ...
21739         (do_estimate_growth) ... here; walk aliases.
21740         (inline_generate_summary): Skip aliases.
21741
21742 2011-06-10  Richard Guenther  <rguenther@suse.de>
21743
21744         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
21745         forward when combining, visit inserted stmts when a stmt was changed.
21746
21747 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
21748
21749         * tree.h (error_operand_p): Add.
21750         * dbxout.c (dbxout_type_fields): Use the latter.
21751         * c-decl.c (add_stmt): Likewise.
21752         * gimplify.c (omp_add_variable, omp_notice_variable,
21753         gimplify_scan_omp_clauses): Likewise.
21754
21755 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
21756
21757         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
21758         when a value is actually passed in regs.
21759
21760 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
21761             Laurent Rougé  <laurent.rouge@menta.fr>
21762
21763         * doc/invoke.texi (SPARC options): Add -mflat.
21764         * config/sparc/sparc.opt: Likewise.
21765         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
21766         (sparc_flat_expand_prologue): Declare.
21767         (sparc_flat_expand_epilogue): Likewise.
21768         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
21769         (CPP_ENDIAN_SPEC): Replace with...
21770         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
21771         (CPP_SPEC): Adjust to above change.
21772         (EXTRA_SPECS): Likewise.
21773         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
21774         (INCOMING_REGNO): Likewise.
21775         (OUTGOING_REGNO): Likewise.
21776         (LOCAL_REGNO): Likewise.
21777         (SETUP_FRAME_ADDRESSES): Likewise.
21778         (FIXED_REGISTERS): Set 0 for %fp.
21779         (CALL_USED_REGISTERS): Likewise.
21780         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
21781         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
21782         (RETURN_ADDR_REGNUM): Define.
21783         (RETURN_ADDR_RTX): Use it.
21784         (INCOMING_RETURN_ADDR_REGNUM): Define.
21785         (INCOMING_RETURN_ADDR_RTX): Use it.
21786         (DWARF_FRAME_RETURN_COLUMN): Likewise.
21787         (EH_RETURN_REGNUM): Define.
21788         (EH_RETURN_STACKADJ_RTX): Use it.
21789         (EH_RETURN_HANDLER_RTX): Delete.
21790         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
21791         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
21792         Delete.
21793         (struct machine_function): Add frame_size, apparent_frame_size,
21794         frame_base_reg, frame_base_offset, n_global_fp_regs and
21795         save_local_in_regs_p fields.
21796         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
21797         sparc_frame_base_offset, sparc_n_global_fp_regs,
21798         sparc_save_local_in_regs_p): New macros.
21799         (sparc_option_override): Error out if -fcall-saved-REG is specified
21800         for Out registers.
21801         (eligible_for_restore_insn): Fix formatting.
21802         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
21803         (eligible_for_sibcall_delay): Likewise.
21804         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
21805         (sparc_legitimate_address_p): Adjust to above change.
21806         (save_global_or_fp_reg_p): New predicate.
21807         (return_addr_reg_needed_p): Likewise.
21808         (save_local_or_in_reg_p): Likewise.
21809         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
21810         (SORR_SAVE, SORR_RESTORE): Delete.
21811         (sorr_pred_t): New typedef.
21812         (sorr_act_t): New enum.
21813         (save_or_restore_regs): Rename to...
21814         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
21815         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
21816         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
21817         mechanism.  Add CFI information for double-word saves in 32-bit mode.
21818         (emit_adjust_base_to_offset): New function extracted from...
21819         (emit_save_or_restore_regs): ...this.  Rename the rest to...
21820         (emit_save_or_restore_regs_global_fp_regs): ...this.
21821         (emit_save_or_restore_regs_local_in_regs): New function.
21822         (gen_create_flat_frame_[123]): New functions.
21823         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
21824         (sparc_flat_expand_prologue): New function.
21825         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
21826         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
21827         (sparc_flat_expand_epilogue): New function.
21828         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
21829         (output_return): Likewise.
21830         (output_sibcall): Likewise.
21831         (sparc_output_mi_thunk): Likewise.
21832         (sparc_frame_pointer_required): Likewise.
21833         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
21834         function optimization.
21835         * config/sparc/sparc.md (flat): New attribute.
21836         (prologue): Add TARGET_FLAT handling.
21837         (save_register_window): Disable if TARGET_FLAT.
21838         (create_flat_frame_[123]): New patterns.
21839         (epilogue): Add TARGET_FLAT handling.
21840         (sibcall_epilogue): Likewise.
21841         (eh_return): New expander.
21842         (eh_return_internal): New insn and splitter.
21843         (return_internal): Add TARGET_FLAT handling.
21844         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
21845         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
21846         (nonlocal_goto): Add TARGET_FLAT handling.
21847         * config/sparc/t-elf: Add -mflat multilib.
21848         * config/sparc/t-leon: Likewise.
21849
21850 2011-06-10  Jan Hubicka  <jh@suse.cz>
21851
21852         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
21853         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
21854         (self_recursive_p): Use cgraph_function_node.
21855         (propagate_pure_const): Likewise.
21856         (propagate_nothrow): Likewise.
21857         * ipa-reference.c (ipa_reference_get_not_read_global): Use
21858         cgraph_function_node.
21859         (propagate_bits): Likewise.
21860         (propagate): Likewise.
21861
21862 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21863             Richard Earnshaw  <rearnsha@arm.com>
21864
21865         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
21866         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
21867         (*thumb2_movdi_vfp): Delete.
21868         (*arm_movdi_vfp_cortexa8): Delete.
21869         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
21870         (*movdi_vfp_cortexa8): Likewise.
21871
21872 2011-06-10  Richard Guenther  <rguenther@suse.de>
21873
21874         * stor-layout.c (initialize_sizetypes): Give names to all
21875         sizetype kinds.
21876
21877 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
21878
21879         PR tree-optimization/49318
21880         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
21881         irrelevant pattern statements.
21882
21883 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
21884
21885         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
21886
21887         PR bootstrap/49354
21888         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
21889         to last assignment.
21890
21891 2011-06-09  Jan Hubicka  <jh@suse.cz>
21892
21893         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
21894         do not recompute reachable flag.
21895         (cgraph_finalize_function, cgraph_analyze_functions): Set
21896         redefined_extern_inline here.
21897
21898 2011-06-09  Jan Hubicka  <jh@suse.cz>
21899
21900         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
21901         (cgraph_only_called_directly_p): ... this one; bring offline.
21902         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
21903         varpool_used_from_object_file_p): Drop names from the declaratoin.
21904         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
21905         collect_callers_of_node): New.
21906         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
21907         (cgraph_edge_recursive_p): Use cgraph_function_node.
21908         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
21909         (cgraph_node_cannot_be_local_p_1): Break out from ...
21910         (cgraph_node_can_be_local_p): ... here; walk aliases.
21911         (cgraph_for_node_thunks_and_aliases): New function.
21912         (cgraph_for_node_and_aliases): New function.
21913         (cgraph_make_node_local_1): Break out from ...
21914         (cgraph_make_node_local) ... here; use
21915         cgraph_for_node_thunks_and_aliases.
21916         (cgraph_set_nothrow_flag_1): Break out from ...
21917         (cgraph_set_nothrow_flag) ... here;
21918         use cgraph_for_node_thunks_and_aliases.
21919         (cgraph_set_const_flag_1): Break out from ...
21920         (cgraph_set_const_flag) ... here;
21921         use cgraph_for_node_thunks_and_aliases.
21922         (cgraph_set_pure_flag_1): Break out from ...
21923         (cgraph_set_pure_flag) ... here;
21924         use cgraph_for_node_thunks_and_aliases.
21925         (cgraph_propagate_frequency_1): Break out from ...
21926         (cgraph_propagate_frequency) ... here; use
21927         cgraph_for_node_thunks_and_aliases.
21928         (cgraph_used_from_object_file_p): Do not care about aliases.
21929         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
21930         New functions.
21931         (collect_callers_of_node_1, collect_callers_of_node): New functions.
21932
21933 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
21934
21935         PR rtl-optimization/49154
21936         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
21937         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
21938         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
21939         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
21940         * config/cris/cris.h (cris_register_move_cost): Remove
21941         !TARGET_V32 code.  Tweak comments.
21942
21943 2011-06-09  Jan Hubicka  <jh@suse.cz>
21944
21945         * cgraphbuild.c (record_eh_tables): Mark personality function as having
21946         address taken.
21947
21948 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
21949
21950         PR rtl-optimization/49154
21951         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
21952         is a matching slot in the hashtable, assign it to classes_ptr.
21953
21954         PR rtl-optimization/49154
21955         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
21956         register classes.
21957         * doc/tm.texi: Regenerate.
21958
21959 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
21960
21961         PR target/49307
21962         * config/sh/sh.md (UNSPEC_CHKADD): New.
21963         (chk_guard_add): New define_insn_and_split.
21964         (symGOT_load): Use chk_guard_add instead of blockage.
21965
21966 2011-06-09  Kai Tietz  <ktietz@redhat.com>
21967
21968         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
21969
21970 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
21971
21972         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
21973
21974 2011-06-09  Wei Guozhi  <carrot@google.com>
21975
21976         PR target/46975
21977         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
21978         (peephole2 for conditional move): Generate 16 bit instructions.
21979
21980 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
21981
21982         * config/i386/i386.md (*movdi_internal_rex64): Merge
21983         alternatives 6 and 8.
21984
21985 2011-06-09  David Li  <davidxl@google.com>
21986
21987         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
21988         * passes.c (passr_eq): New function.
21989         (create_pass_tab): New function.
21990         (pass_traverse): New function.
21991         (dump_one_pass): New function.
21992         (dump_pass_list): New function.
21993         (dump_passes): New function.
21994
21995 2011-06-09  David Li  <davidxl@google.com>
21996
21997         * tree-complex.c (tree_lower_complex): Gate cleanup.
21998         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
21999         (execute_optimize_stdarg): Ditto.
22000         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
22001         (execute_cleanup_eh_1): Ditto.
22002         (execute_cleanup_eh): Ditto.
22003         * gcse.c (gate_rtl_pre): Ditto.
22004         (execute_rtl_pre): Ditto.
22005         * except.c (finish_eh_generation): Ditto.
22006         (convert_to_eh_region_ranges): Ditto.
22007         * cprop.c (one_cprop_pass): Ditto.
22008
22009 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
22010
22011         PR target/48673
22012         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
22013         in all basic blocks.
22014
22015 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22016
22017         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
22018         (HAVE_ENABLE_EXECUTE_STACK): Define.
22019         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
22020         (HAVE_ENABLE_EXECUTE_STACK): Define.
22021         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
22022         (HAVE_ENABLE_EXECUTE_STACK): Define.
22023         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
22024         (ENABLE_EXECUTE_STACK): Remove.
22025         (HAVE_ENABLE_EXECUTE_STACK): Define.
22026         [IN_LIBGCC2]: Don't include <windows.h>.
22027         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
22028         (HAVE_ENABLE_EXECUTE_STACK): Define.
22029         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
22030         (HAVE_ENABLE_EXECUTE_STACK): Define.
22031         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
22032         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
22033         (HAVE_ENABLE_EXECUTE_STACK): Define.
22034         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
22035         (HAVE_ENABLE_EXECUTE_STACK): Define.
22036         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
22037         (HAVE_ENABLE_EXECUTE_STACK): Define.
22038         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
22039         (HAVE_ENABLE_EXECUTE_STACK): Define.
22040         * config/alpha/alpha.c (alpha_trampoline_init): Test
22041         HAVE_ENABLE_EXECUTE_STACK.
22042         * config/i386/i386.c (ix86_trampoline_init): Likewise.
22043         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
22044         (sparc64_initialize_trampoline): Likewise.
22045         * libgcc2.c [L_enable_execute_stack]: Remove.
22046         * system.h (ENABLE_EXECUTE_STACK): Poison.
22047         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
22048         * doc/tm.texi: Regenerate.
22049         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
22050
22051 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
22052
22053         PR middle-end/49308
22054         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
22055         variable.  After resetting and rescanning insn continue with previous
22056         statement.
22057
22058 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22059
22060         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
22061         (gcc_cv_ld_hidden): Likewise.
22062         * configure: Regenerate.
22063         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
22064         (ix86_stack_protect_fail): Mark unused.
22065         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
22066         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
22067         [TARGET_MACHO]: Don't define.
22068         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
22069         (TARGET_STACK_PROTECT_FAIL): Likewise.
22070         (rs6000_stack_protect_fail): Mark unused.
22071         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
22072         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
22073
22074 2011-06-08  Andi Kleen  <ak@linux.intel.com>
22075
22076         * varasm.c (get_section): Print location of other conflict
22077         for section conflicts.
22078
22079 2011-06-08  Andi Kleen  <ak@linux.intel.com>
22080
22081         * config/i386/driver-i386.c (host_detect_local_cpu):
22082         Add model 0x2d Intel CPU.
22083
22084 2011-06-08  Andi Kleen  <ak@linux.intel.com>
22085
22086         * reginfo.c (global_regs_decl): Add.
22087         (globalize_reg): Add decl parameter. Compute location.  Pass location
22088         to warnings and add inform. Store decl in global_regs_decl.
22089         * rtl.h (globalize_reg): Update prototype.
22090         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
22091
22092 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
22093
22094         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
22095
22096 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22097
22098         PR target/49305
22099         * config/sh/predicates.md (general_movsrc_operand): Check
22100         mode for memory with indexed address for QI and HImode.
22101         (general_movdst_operand): Likewise.
22102
22103 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
22104
22105         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
22106
22107 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
22108
22109         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
22110         (num_ssa_operands): Likewise.
22111         (op_iter_init_phiuse): Forward-declare.
22112         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
22113
22114 2011-06-08  Nick Clifton  <nickc@redhat.com>
22115
22116         * doc/invoke.texi (ARM Options): Update description of
22117         -mthumb-interwork.
22118
22119 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
22120
22121         * config/i386/driver-i386.c (host_detect_local_cpu): Support
22122         unknown Intel family 0x6 CPUs.
22123
22124 2011-06-08  Martin Jambor  <mjambor@suse.cz>
22125
22126         * tree-sra.c (mark_rw_status): Removed.
22127         (analyze_access_subtree): New parameter parent instead of
22128         mark_read and mark_write, propagate from that.
22129
22130 2011-06-08  Julian Brown  <julian@codesourcery.com>
22131
22132         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
22133         for double-precision helper functions in hard-float mode if only
22134         single-precision arithmetic is supported in hardware.
22135
22136 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
22137
22138         PR rtl-optimization/49303
22139         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
22140         code_motion_path_driver returned 0 or 1.
22141         (sel_region_finish): Clear h_d_i_d.
22142
22143 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22144
22145         * config/sh/sh.c (prepare_move_operands): Set pic register
22146         appropriately for global and local dynamic tls models even
22147         if flag_pic is unset.
22148
22149 2011-06-07  Jason Merrill  <jason@redhat.com>
22150
22151         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
22152
22153 2011-06-07  Xinliang David Li  <davidxl@google.com>
22154         * passes.c (enable_disable_pass): Handle assembler name.
22155         (is_pass_explicitly_enabled_or_disabled): Ditto.
22156
22157 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22158
22159         PR tree-optimization/48497
22160         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
22161
22162 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22163
22164         PR tree-optimization/46728
22165         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
22166         to use gimple_val_nonnegative_real_p.
22167         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
22168         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
22169
22170 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
22171
22172         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
22173
22174 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
22175
22176         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
22177         constant vectors.
22178
22179 2011-06-07  Richard Guenther  <rguenther@suse.de>
22180
22181         * stor-layout.c (initialize_sizetypes): Initialize all
22182         sizetypes based on target definitions.
22183         (set_sizetype): Remove.
22184         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
22185         * tree.h (set_sizetype): Remove.
22186
22187 2011-06-07  Nick Clifton  <nickc@redhat.com>
22188
22189         * config.gcc: Unify V850 architecture options and add support for
22190         newer V850 architectures.
22191         * config/v850/t-v850e: Delete.
22192
22193 2011-06-07  Richard Guenther  <rguenther@suse.de>
22194
22195         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
22196         Call set_sizetype from here.
22197
22198 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
22199
22200         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
22201         (*maddhisi4tb, *maddhisi4tt): New define_insns.
22202
22203 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
22204             Andrew Stubbs  <ams@codesourcery.com>
22205
22206         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
22207         multiplies.
22208         * doc/md.texi (Canonicalization of Instructions): Document widening
22209         multiply canonicalization.
22210
22211 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
22212
22213         PR gcov-profile/49299
22214         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
22215
22216 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
22217
22218         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
22219         a pointer.
22220         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
22221         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
22222         vect_recog_pow_pattern): Likewise.
22223         (vect_pattern_recog_1): Remove declaration.
22224         (widened_name_p): Remove declaration.  Add new argument to specify
22225         whether to check that both types are either signed or unsigned.
22226         (vect_recog_widen_mult_pattern): Update documentation.  Handle
22227         unsigned patterns and multiplication by constants.
22228         (vect_pattern_recog_1): Update vect_recog_func references.  Use
22229         statement information from the statement returned from pattern
22230         detection functions.
22231         (vect_pattern_recog): Update vect_recog_func reference.
22232         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
22233         multiplication by a constant use the type of the other operand.
22234
22235 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22236
22237         PR rtl-optimization/49145
22238         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
22239
22240 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
22241
22242         PR debug/49262
22243         * dwarf2out.c (native_encode_initializer): Decrement count in each
22244         iteration.
22245
22246         PR debug/49294
22247         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
22248         non-MODE_INT modes.
22249
22250         PR c++/49264
22251         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
22252         if stmt folded into nothing.
22253         * tree-inline.c (fold_marked_statements): If a builtin at the end of
22254         a bb folded into nothing, just update cgraph edges and move to next bb.
22255         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
22256         to be NULL.  Don't compute count and frequency if new_call is NULL.
22257
22258 2011-06-04  Diego Novillo  <dnovillo@google.com>
22259
22260         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
22261         (cgraph.o): Likewise.
22262         (cgraphunit.o): Likewise.
22263         * cgraphunit.c: Include lto-streamer.h
22264         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
22265         if LTO is enabled.
22266         * lto-streamer-in.c (unpack_value_fields): Call
22267         streamer_hooks.unpack_value_fields if set.
22268         (lto_materialize_tree): For unhandled nodes, first try to
22269         call lto_streamer_hooks.alloc_tree, if it exists.
22270         (lto_input_ts_decl_common_tree_pointers): Move reading of
22271         DECL_INITIAL to lto_streamer_read_tree.
22272         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
22273         (lto_streamer_read_tree): New.
22274         (lto_reader_init): Rename from lto_init_reader.
22275         Move initialization code to lto/lto.c.
22276         * lto-streamer-out.c (pack_value_fields): Call
22277         streamer_hooks.pack_value_fields if set.
22278         (lto_output_tree_ref): For tree nodes that are not normally indexable,
22279         call streamer_hooks.indexable_with_decls_p before giving up.
22280         (lto_output_ts_decl_common_tree_pointers): Move handling
22281         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
22282         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
22283         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
22284         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
22285         (lto_streamer_write_tree): New.
22286         (lto_output): Call lto_streamer_init directly.
22287         (lto_writer_init): Remove.
22288         * lto-streamer.c (streamer_hooks): New.
22289         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
22290         instead of lto_preload_common_nodes.
22291         (lto_is_streamable): Move from lto-streamer.h
22292         (lto_streamer_hooks_init): New.
22293         (streamer_hooks): New.
22294         (streamer_hooks_init): New.
22295         * lto-streamer.h (struct output_block): Forward declare.
22296         (struct lto_input_block): Likewise.
22297         (struct data_in): Likewise.
22298         (struct bitpack_d): Likewise.
22299         (struct streamer_hooks): Declare.
22300         (streamer_hooks): Declare.
22301         (lto_streamer_hooks_init): Declare.
22302         (lto_streamer_write_tree): Declare.
22303         (lto_streamer_read_tree): Declare.
22304         (streamer_hooks_init): Declare.
22305         (lto_is_streamable): Move to lto-streamer.c
22306
22307 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22308
22309         * longlong.h (smul_ppmm): The resulting register pair contains the
22310         higher order word first.
22311
22312 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22313
22314         PR tree-optimization/46728
22315         * builtins.c (powi_table): Remove.
22316         (powi_lookup_cost): Remove.
22317         (powi_cost): Remove.
22318         (expand_powi_1): Remove.
22319         (expand_powi): Remove.
22320         (expand_builtin_pow_root): Remove.
22321         (expand_builtin_pow): Remove.
22322         (expand_builtin_powi): Eliminate handling of constant exponent.
22323         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
22324
22325 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22326
22327         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
22328
22329 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22330
22331         * dce.c (reset_unmarked_insns_debug_uses): New.
22332         (delete_unmarked_insns): Skip debug insns.
22333         (prescan_insns_for_dce): Likewise.
22334         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
22335         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
22336         active reg can be found.
22337         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
22338         (convert_regs_1): Use it.
22339
22340 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22341
22342         * tree-pretty-print.c (dump_function_header): Add flags.
22343         Don't dump decl_uid with nouid.
22344         * tree-pretty-print.h (dump_function_header): Adjust.
22345         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
22346         * passes.c (pass_init_dump_file): Pass dump_flags on.
22347         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
22348
22349 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22350
22351         PR bootstrap/49270
22352         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
22353
22354 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
22355
22356         PR tree-optimization/49243
22357         * calls.c (setjmp_call_p): Also check if fndecl has the
22358         returns_twice attribute.
22359
22360 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22361
22362         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
22363         -ffast-math etc.
22364
22365 2011-06-06  Richard Henderson  <rth@redhat.com>
22366             Georg-Johann Lay  <avr@gjlay.de>
22367
22368         PR target/42210
22369         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
22370         New predicates.
22371         * config/avr/avr.md ("insv"): New insn expander.
22372         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
22373         "*insv.not.io", "*insv.reg"): New insns.
22374
22375 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
22376
22377         PR target/49285
22378         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
22379         to nonimmediate_operand from memory_operand for the operand that is to
22380         be forced to memory by the expander.  Lose the constraints.
22381
22382 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
22383
22384         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
22385         EH return when delayed branches are disabled.
22386
22387 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
22388
22389         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
22390         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
22391         calculation.
22392         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
22393         Simplify MODE_V1DF and MODE_V2SF handling.
22394         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
22395         Simplify MODE_SF handling.
22396
22397 2011-06-04  Jan Hubicka  <jh@suse.cz>
22398
22399         PR tree-optimization/48893
22400         PR tree-optimization/49091
22401         PR tree-optimization/49179
22402         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
22403         Bounds check.
22404
22405 2011-06-04  Jan Hubicka  <jh@suse.cz>
22406
22407         PR lto/48954
22408         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
22409         bitmaps.
22410
22411 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
22412
22413         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
22414
22415 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
22416
22417         PR target/49281
22418         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
22419         to be strictly smaller than 1 << shiftcount.
22420
22421 2011-06-04  Jan Hubicka  <jh@suse.cz>
22422
22423         PR tree-optimize/48929
22424         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
22425         of empty predicate.
22426
22427 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
22428
22429         PR debug/48333
22430         * calls.c (emit_call_1): Prefer the __builtin declaration of
22431         builtin functions.
22432
22433 2011-06-03  Diego Novillo  <dnovillo@google.com>
22434
22435         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
22436         (lto_input_tree_pointers): Likewise.
22437         * lto-streamer-out.c (pack_value_fields): Likewise.
22438         (lto_output_tree_pointers): Likewise.
22439         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
22440         and OPTIMIZATION_NODE.
22441
22442 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22443
22444         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
22445         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
22446         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
22447         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
22448         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
22449         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
22450         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
22451         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
22452         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
22453         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
22454         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
22455         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
22456         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
22457         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
22458         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
22459         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
22460         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
22461         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
22462         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
22463         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
22464         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
22465         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
22466         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
22467         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
22468         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
22469         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
22470         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
22471         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
22472         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
22473         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
22474         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
22475         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
22476         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
22477         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
22478         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
22479         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
22480         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
22481         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
22482         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
22483         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
22484         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
22485         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
22486         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
22487         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
22488         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
22489         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
22490         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
22491         * system.h (MD_UNWIND_SUPPORT): Poison.
22492         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
22493         * doc/tm.texi: Regenerate.
22494         * unwind-dw2.c: Include md-unwind-support.h instead of
22495         MD_UNWIND_SUPPORT.
22496         * config/ia64/unwind-ia64.c: Likewise.
22497         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
22498
22499 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
22500
22501         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
22502
22503 2011-06-03  Richard Henderson  <rth@redhat.com>
22504             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22505
22506         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
22507         (sigill_hdlr): Correct insn, insn size.
22508         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
22509
22510 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22511
22512         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
22513         t-slibgcc-dummy.
22514         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
22515         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
22516         * config/mips/t-iris: Remove.
22517         * config/mips/t-irix6: New file.
22518         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
22519
22520 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22521
22522         * Makefile.in (LIB2ADDEHDEP): Remove.
22523         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
22524         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
22525         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
22526         * config/t-darwin (LIB2ADDEHDEP): Remove.
22527         * config/t-freebsd (LIB2ADDEHDEP): Remove.
22528         * config/t-linux (LIB2ADDEHDEP): Remove.
22529
22530 2011-06-03  Diego Novillo  <dnovillo@google.com>
22531
22532         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
22533         (lto_register_var_decl_in_symtab): Likewise.
22534         (lto_register_function_decl_in_symtab): Likewise.
22535         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
22536         logic to uniquify_nodes.
22537
22538 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22539
22540         * config/alpha/t-osf5: Remove.
22541         * config/alpha/t-osf-pthread: Remove.
22542         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
22543         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
22544
22545 2011-06-03  Julian Brown  <julian@codesourcery.com>
22546
22547         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
22548         (strongarm1110): Use strongarm tuning.
22549         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
22550         * config/arm/arm.c (arm_strongarm_tune): New.
22551         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
22552         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
22553         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
22554         setting, using previous defaults or 1 for Cortex-A5.
22555         (arm_option_override): Set max_insns_skipped from current tuning.
22556
22557 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
22558
22559         * doc/install.texi (Options specification): Document --with-specs.
22560
22561 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22562
22563         * config/arm/neon.md (orndi3_neon): Actually split it.
22564
22565 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
22566
22567         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
22568         * var-tracking.c (reverse_op): Limite recurse depth to 5.
22569
22570 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
22571
22572         PR debug/47590
22573         * target.def (delay_sched2, delay_vartrack): New.
22574         * doc/tm.texi.in: Update.
22575         * doc/tm.texi: Rebuild.
22576         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
22577         * var-tracking.c (gate_handle_var_tracking): Likewise.
22578         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
22579         (bfin_flag_var_tracking): Drop.
22580         (output_file_start): Don't save and override flag_var_tracking.
22581         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
22582         (bfin_reorg): Test original variables.
22583         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
22584         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
22585         (ia64_flag_var_tracking): Drop.
22586         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
22587         (ia64_file_start): Don't save and override flag_var_tracking.
22588         (ia64_override_options_after_change): Ditto
22589         flag_schedule_insns_after_reload.
22590         (ia64_reorg): Test original variables.
22591         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
22592         (picochip_flag_var_tracking): Drop.
22593         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
22594         (picochip_option_override): Don't save and override
22595         flag_schedule_insns_after_reload.
22596         (picochip_asm_file_start): Ditto flag_var_tracking.
22597         (picochip_reorg): Test original variables.
22598         * config/spu/spu.c (spu_flag_var_tracking): Drop.
22599         (TARGET_DELAY_VARTRACK): Define.
22600         (spu_var_tracking): New.
22601         (spu_machine_dependent_reorg): Call it.
22602         (asm_file_start): Don't save and override flag_var_tracking.
22603
22604 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
22605
22606         PR target/49163
22607         * config/sh/predicates.md (general_movsrc_operand): Return 0
22608         for memory and memory subreg of which address is an invalid
22609         indexed address for QI and HImode.
22610         (general_movdst_operand): Likewise.
22611
22612 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
22613
22614         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
22615         edges only, when there is a non-local label in the function.
22616         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
22617
22618 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
22619
22620         * config/i386/constraints.md (Y3): New register constraint.
22621         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
22622         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
22623         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
22624         *sse2_interleave_lowv2df.
22625
22626 2011-06-02  Julian Brown  <julian@codesourcery.com>
22627
22628         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
22629         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
22630         (arm_cortex_a5_tune): New.
22631
22632 2011-06-02  Julian Brown  <julian@codesourcery.com>
22633
22634         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
22635         * config/arm/arm.c (arm_default_branch_cost): New.
22636         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
22637         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
22638         (arm_fa726_tune): Set branch_cost field using
22639         arm_default_branch_cost.
22640         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
22641         current_tune structure.
22642         * dojump.c (tm_p.h): Include file.
22643
22644 2011-06-02  Julian Brown  <julian@codesourcery.com>
22645
22646         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
22647         tuning.
22648         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
22649         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
22650         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
22651         field.
22652         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
22653         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
22654         (arm_fa726te_tune): Add prefer_constant_pool setting.
22655         (arm_v6t2_tune, arm_cortex_tune): New.
22656         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
22657         prefer_constant_pool setting.
22658
22659 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
22660
22661         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
22662         switch statement.
22663         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
22664         (*movdf_internal) <case 6,7,8>: Ditto.
22665
22666         * config/i386/constraints.md (Y4): New register constraint.
22667         * config/i386/sse.md (vec_set<mode>_0): Merge with
22668         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
22669         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
22670         *vec_extractv2di_1_sse.
22671         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
22672         and *vec_concatv2di_rex64_sse.
22673
22674 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
22675
22676         PR target/48807
22677         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
22678         of cgraph_local_info for null before attempting to use it.
22679
22680 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
22681
22682         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
22683         (current_function_dynamic_alloc_count): Delete.
22684         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
22685         (expand_builtin_nonlocal_goto): Remove obsolete comment.
22686         (expand_builtin_update_setjmp_buf): Remove dead code.
22687         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
22688         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
22689         support.
22690         * function.c (instantiate_virtual_regs): Likewise.
22691         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
22692         for a block with a single abnormal incoming edge.
22693         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
22694         (SETJMP_VIA_SAVE_AREA): Delete.
22695         * config/sparc/sparc-protos.h (load_got_register): Declare.
22696         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
22697         (load_got_register): Make global.
22698         (sparc_frame_pointer_required): Add 'static'.
22699         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
22700         (sparc_builtin_setjmp_frame_value): New function.
22701         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
22702         (save_stack_nonlocal): New expander.
22703         (restore_stack_nonlocal): Likewise.
22704         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
22705         (nonlocal_goto_internal): New insn.
22706         (goto_handler_and_restore): Delete.
22707         (builtin_setjmp_setup): Likewise.
22708         (do_builtin_setjmp_setup): Likewise.
22709         (setjmp): Likewise.
22710         (builtin_setjmp_receiver): New expander.
22711
22712 2011-06-01  David Li  <davidxl@google.com>
22713
22714         PR middle-end/49261
22715         * tree-pretty-print.c (dump_function_header): Format cleanup.
22716
22717 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
22718
22719         PR target/49238
22720         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
22721         needed when original operands are used for msw_skip comparison.
22722
22723 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
22724
22725         PR debug/49250
22726         * var-tracking.c (add_uses, add_stores): Don't call
22727         cselib_subst_to_values on ENTRY_VALUE.
22728
22729 2011-06-01  Diego Novillo  <dnovillo@google.com>
22730
22731         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
22732         output_record_start with LTO_null instead of output_zero.
22733         (lto_output_ts_binfo_tree_pointers): Likewise.
22734         (lto_output_tree): Likewise.
22735         (output_eh_try_list): Likewise.
22736         (output_eh_region): Likewise.
22737         (output_eh_lp): Likewise.
22738         (output_eh_regions): Likewise.
22739         (output_bb): Likewise.
22740         (output_function): Likewise.
22741         (output_unreferenced_globals): Likewise.
22742         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
22743         instead of NUM_TREE_CODES.
22744         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
22745         (lto_output_int_in_range): Change << to >> when shifting VAL.
22746
22747 2011-06-01  Diego Novillo  <dnovillo@google.com>
22748
22749         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
22750         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
22751
22752 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
22753
22754         PR target/45074
22755         * optabs.h (valid_multiword_target_p): Declare.
22756         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
22757         doing multi-word operations.
22758         * optabs.c (expand_binop): Likewise.
22759         (expand_doubleword_bswap): Likewise.
22760         (expand_absneg_bit): Likewise.
22761         (expand_unop): Likewise.
22762         (expand_copysign_bit): Likewise.
22763         (multiword_target_p): New function.
22764
22765 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
22766
22767         PR rtl-optimization/48830
22768         PR rtl-optimization/48808
22769         PR rtl-optimization/48792
22770         * reload.c (push_reload): Check contains_reg_of_mode.
22771         * reload1.c (strip_paradoxical_subreg): New function.
22772         (gen_reload_chain_without_interm_reg_p): Use it to handle
22773         paradoxical subregs.
22774         (emit_output_reload_insns, gen_reload): Likewise.
22775
22776 2011-06-01  David Li  <davidxl@google.com>
22777
22778         * predict.c : Change pass name
22779         * ipa.c: Ditto.
22780         * dce.c: Ditto.
22781         * tree-profile.c: Ditto.
22782         * except.c: Ditto.
22783
22784 2011-06-01  David Li  <davidxl@google.com>
22785
22786         * tree-pretty-print.c (dump_function_header): New function.
22787         * final.c (rest_of_clean_state): Use header dumper.
22788         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
22789         * passes.c (pass_init_dump_file): Use header dumper.
22790
22791 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
22792
22793         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
22794         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
22795         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
22796         New functions.
22797         (mem_loc_descriptor): Use them.
22798
22799         * var-tracking.c (create_entry_value): New function.
22800         (vt_add_function_parameter): Use it.
22801
22802 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22803
22804         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
22805         Include <signal.h>, <ucontext.h>.
22806         (sigill_caught): Define.
22807         (sigill_hdlr): New function.
22808         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
22809         insns can be executed.
22810         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
22811         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
22812
22813 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22814
22815         * config/t-slibgcc-darwin: Move to ...
22816         * config/t-slibgcc-dummy: ... this.  Clarify comments.
22817         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
22818         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
22819         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
22820         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
22821         Remove i386/t-crtstuff from tmake_file.
22822         (i[34567]86-*-solaris2*): Remove t-svr4,
22823         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
22824         t-slibgcc-dummy.
22825         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
22826         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
22827         sparc/t-crtfm from tmake_file.
22828         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
22829         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
22830         Remove extra_parts.
22831         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
22832         * config/i386/t-nwld (SHLIB_LINK): Remove.
22833         * config/i386/t-rtems-i386: Rename to ...
22834         * config/i386/t-rtems: ... this.
22835         ($(T)crti.o, $(T)crtn.o): Remove.
22836         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
22837         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
22838         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
22839         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
22840         EXTRA_MULTILIB_PARTS): Remove.
22841         * config/sparc/t-sol2-64: Likewise.
22842         * config/sparc/t-sol2: Remove.
22843         * config/sparc/t-crtin: Remove.
22844         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
22845         * config/i386/gmon-sol2.c: Remove.
22846         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
22847         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
22848         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
22849         * config/i386/sol2-gc1.asm: Remove.
22850         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
22851         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
22852         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
22853         * config/t-slibgcc-sld: Remove.
22854
22855 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
22856
22857         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
22858         base_type_for_mode with op_mode instead of mode.
22859
22860 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
22861
22862         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
22863         Cortex-A15.
22864         * config/arm/arm-tune.md: Regenerate.
22865         * config/arm/arm-tables.opt: Regenerate.
22866         * config/arm/arm.c (FL_DIV): Rename...
22867         (FL_THUMB_DIV): ... to this.
22868         (FL_ARM_DIV): Define.
22869         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
22870         (arm_arch_hwdiv): Remove.
22871         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
22872         (arm_issue_rate): Add cortexr5.
22873         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
22874         __ARM_ARCH_EXT_IDIV__.
22875         (TARGET_IDIV): Define.
22876         (arm_arch_hwdiv): Remove.
22877         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
22878         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
22879         (divsi3, udivsi3): New patterns.
22880         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
22881         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
22882
22883 2011-06-01  Martin Jambor  <mjambor@suse.cz>
22884
22885         * ipa-utils.c (ipa_dfs_info): New field scc_no.
22886         * ipa-utils.c (searchc): Set scc_no.
22887
22888 2011-06-01  Martin Jambor  <mjambor@suse.cz>
22889
22890         * ipa-utils.c (searchc_env): New field allow_overwritable.
22891         (searchc): do not ignore edges to overwritable nodes if indicated
22892         by env->allow_overwritable.
22893         (ipa_reduced_postorder): Set env.allow_overwritable.
22894
22895 2011-06-01  Richard Guenther  <rguenther@suse.de>
22896
22897         * tree.c (free_lang_data): Do not reset boolean_type_node nor
22898         char_type_node.
22899         * lto-streamer.c (lto_record_common_node): Take node pointer,
22900         do not register types.
22901         (lto_preload_common_nodes): Explicitly skip preloading nodes
22902         that differ between frontends.
22903
22904 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
22905
22906         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
22907         NON_FLOAT_REGS.
22908
22909 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
22910
22911         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
22912         parameter value for dump. Dump cost on outermost call only.
22913         (rs6000_memory_move_cost): Dump cost on outermost call only.
22914
22915 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
22916
22917         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
22918         DW_OP_GNU_convert ops.
22919
22920         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
22921         cselib_preserve_constants.
22922         (cselib_lookup_1): If cselib_preserve_constants,
22923         a new VALUE is being created for REG and there is a VALUE for the
22924         same register in wider mode, add another loc with lowpart SUBREG of
22925         the wider VALUE.
22926         (cselib_subst_to_values): Handle ENTRY_VALUE.
22927         * var-tracking.c  (replace_expr_with_values): Return NULL for
22928         ENTRY_VALUE too.
22929         * dwarf2out.c (convert_descriptor_to_signed): New function.
22930         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
22931         instead of two shifts.
22932         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
22933         the right mode if needed.
22934         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
22935         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
22936         convert_descriptor_to_signed.
22937         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
22938         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
22939
22940         PR target/48688
22941         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
22942
22943 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
22944
22945         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
22946         of X87MODEI12 and SWI48x instead of SSEMODEI24.
22947         (SWI248x): New mode iterator, rename from X87MODEI.
22948         (X87MODEI): Remove mode iterator.
22949         (X87MODEI12): Ditto.
22950         (SSEMODEI24): Ditto.
22951
22952 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
22953
22954         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
22955         * doc/invoke.texi: Document max-vartrack-expr-depth.
22956         * var-tracking.c (EXPR_DEPTH): New.
22957         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
22958
22959 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
22960
22961         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
22962         * config/i386/sse.md: Add n to negated FMA pattern names.
22963
22964 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
22965
22966         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
22967
22968 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
22969
22970         * gengtype-state.c (read_state_params_structs): Initialize previous.
22971
22972 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
22973
22974         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
22975         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
22976
22977 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
22978
22979         * config/i386/i386.md (*movtf_internal): Avoid allocating general
22980         registers.  Penalize F*r->o alternative to prevent partial memory
22981         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
22982         CONST_DOUBLE immediates when optimizing function for size.  Do not move
22983         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
22984         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
22985         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
22986         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
22987         alternatives.
22988         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
22989
22990         (fp_register_operand splitters): Use fp_register_operand
22991         constraint.  Do not use FP_REG_P in insn condition.
22992         (any_fp_register_operand splitters): Use any_fp_register_operand
22993         constraint.  Do not use ANY_FP_REG_P in insn condition.
22994
22995 2011-05-31  Jan Hubicka  <jh@suse.cz>
22996
22997         * cgraph.h (cgraph_inline_failed_t): Give enum a name
22998         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
22999         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
23000         (lto_output_edge): Use output_enum and var_len_unsigned.
23001         (lto_output_varpool_node): Likewise.
23002         (input_overwrite_node): Do not take resolution parameter;
23003         extract it from a bitpack.
23004         (input_node): Do not read resolution; use input_enum and
23005         var_len_unsigned.
23006         (input_varpool_node): Likewise.
23007         (input_edge): Likewise.
23008         (input_cgraph_1): Likewise.
23009
23010 2011-05-31  Richard Guenther  <rguenther@suse.de>
23011
23012         * gimple.c (gimple_register_canonical_type): Do not register
23013         any types via gimple_register_type.
23014
23015 2011-05-31  Jan Hubicka  <jh@suse.cz>
23016
23017         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
23018         of thunks.
23019
23020 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
23021
23022         PR rtl-optimization/49235
23023         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
23024         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
23025
23026 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
23027
23028         PR tree-optimization/49093
23029         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
23030         data references.
23031
23032 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
23033
23034         PR debug/49047
23035         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
23036         for concrete functions containing the code of cloned functions.
23037
23038 2011-05-31  Richard Guenther  <rguenther@suse.de>
23039
23040         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
23041         to ...
23042         (forward_propagate_into_comparison_1): ... this.
23043         (forward_propagate_comparison): Rename to ...
23044         (forward_propagate_into_comparison): ... this.  Split out
23045         real forward propagation code to ...
23046         (forward_propagate_comparison): ... this.
23047         (forward_propagate_into_gimple_cond): Remove looping.
23048         (forward_propagate_into_cond): Likewise.
23049         (simplify_not_neg_expr): Return whether we have done something.
23050         (simplify_gimple_switch): Likewise.
23051         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
23052         (ssa_forward_propagate_and_combine): ... this.  Re-structure
23053         to do a forward forward-propagation walk on BBs and a backward
23054         stmt combining walk on BBs.  Consistently re-scan changed statements.
23055         (pass_forwprop): Adjust.
23056
23057 2011-05-30  Ian Lance Taylor  <iant@google.com>
23058
23059         * godump.c (go_format_type): Correct length of name added to
23060         obstack for anonymous field.
23061
23062 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
23063
23064         PR target/49186
23065         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
23066         part of the second operand is 0.
23067
23068 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
23069
23070         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
23071         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
23072         to memory for !TARGET_MEMORY_MISMATCH_STALL.
23073         (*movdf_internal_rex64): Do not penalize F->r alternative.
23074         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
23075         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
23076         when optimizing function for size.  Do not move CONST_DOUBLEs
23077         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
23078         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
23079         SUBREGs.  Do not check for MEM_P operands in the insn condition,
23080         check for ANY_FP_REGNO_P instead.
23081         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
23082         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
23083         function for speed.
23084         * config/i386/i386.c (ix86_option_override_internal): Do not
23085         set TARGET_INTEGER_DFMODE_MOVES here.
23086
23087 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
23088
23089         PR target/49168
23090         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
23091
23092 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
23093
23094         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
23095         DW_TAG_rvalue_reference_type even for
23096         -gdwarf-4 -fno-debug-types-section.
23097
23098 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23099
23100         PR tree-optimization/46728
23101         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
23102         (build_and_insert_binop): New.
23103         (gimple_expand_builtin_pow): Reorder args for
23104         build_and_insert_call; use build_and_insert_binop; add more
23105         optimizations for fractional exponents.
23106
23107 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
23108
23109         PR bootstrap/49190
23110
23111         Revert:
23112         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
23113
23114         * tree.h (struct tree_identifier): Inherit from tree_typed, not
23115         tree_common.
23116         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
23117         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
23118         TS_BASE instead of TS_COMMON.
23119         * varasm.c (assemble_name): Remove assert.
23120
23121 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
23122
23123         * config.gcc: Keep obselete list sorted.
23124
23125 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
23126             Eric Botcazou  <ebotcazou@adacore.com>
23127
23128         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
23129         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
23130         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
23131         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
23132         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
23133
23134 2011-05-30  Richard Guenther  <rguenther@suse.de>
23135
23136         * gimple.c (gimple_types_compatible_p_1): Compare record
23137         and union type members properly.
23138
23139 2011-05-30  Richard Guenther  <rguenther@suse.de>
23140
23141         PR tree-optimization/49210
23142         * ipa-split.c (split_function): Care for the case where the call
23143         result is not trivially convertible to the result holding variable.
23144
23145 2011-05-30  Richard Guenther  <rguenther@suse.de>
23146
23147         PR tree-optimization/49218
23148         * tree-vrp.c (adjust_range_with_scev): Properly check whether
23149         overflow occured.
23150
23151 2011-05-30  Richard Guenther  <rguenther@suse.de>
23152
23153         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
23154         New function split out from ...
23155         (forward_propagate_into_gimple_cond): ... here.  Adjust.
23156         (forward_propagate_into_cond): Likewise.
23157         (forward_propagate_comparison): Also propagate into
23158         comparisons on assignment RHS.  Change return value to
23159         behave similar to forward_propagate_into_cond.
23160         (tree_ssa_forward_propagate_single_use_vars): Handle
23161         strict-overflow warnings properly for forward_propagate_comparison.
23162
23163 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23164
23165         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
23166         from plugin linker.
23167         * configure: Regenerate.
23168
23169 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
23170
23171         PR tree-optimization/49199
23172         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
23173         non-reduction operands are either defined in the loop or by induction.
23174
23175 2011-05-29  Xinliang David Li  <davidxl@google.com>
23176
23177         * opts-global.c (handle_common_deferred_options): Handle new options.
23178         * passes.c (register_one_dump_file): Call register_pass_name.
23179         (execute_one_pass): Check explicit enable/disable flag.
23180         (passr_hash): New function.
23181         (passr_eq): Ditto.
23182         (register_pass_name): Ditto.
23183         (get_pass_by_name): Ditto.
23184         (pass_hash): Ditto.
23185         (pass_eq): Ditto.
23186         (enable_pass): Ditto.
23187         (disable_pass): Ditto.
23188         (is_pass_explicitly_enabled_or_disabled): Ditto.
23189
23190 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
23191
23192         * config/i386/i386.md (*movoi_internal_avx): Use
23193         standard_sse_constant_opcode for alternative 0.
23194         (*movti_internal_sse): Ditto.
23195         (*movti_internal_rex64): Use standard_sse_constant_opcode for
23196         alternative 2.
23197         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
23198         sselog1 type moves.
23199         (*movsi_internal): Ditto.
23200         (*movdi_internal): Ditto.  Add ssecvt type moves.
23201
23202 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
23203
23204         PR target/48830
23205         * rtlanal.c (simplify_subreg_regno): Adjust comment.
23206
23207 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
23208
23209         PR rtl-optimization/49095
23210         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
23211         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
23212
23213 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
23214
23215         PR target/43995
23216         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
23217         recurse_p argument.  Only follow register copies if it is set,
23218         and prevent mips_find_pic_call_symbol from recursing.
23219         (mips_find_pic_call_symbol): Add a recurse_p argument.
23220         Pass it to mips_pic_call_symbol_from_set.
23221         (mips_annotate_pic_calls): Update accordingly.
23222
23223 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
23224
23225         * emit-rtl.c (try_split): Use a loop to search for
23226         NOTE_INSN_CALL_ARG_LOCATIONs.
23227
23228 2011-05-29  Richard Guenther  <rguenther@suse.de>
23229
23230         PR tree-optimization/49217
23231         * ipa-pure-const.c (propagate_pure_const): Fix typos.
23232
23233 2011-05-28  Jan Hubicka  <jh@suse.cz>
23234
23235         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
23236         length.
23237         (string_slot_free): Remove
23238         (create_output_block): Initialize obstack.
23239         (destroy_output_block): Free obstack.
23240         (lto_string_index): Add PERSISTENT parameter; do not duplicate
23241         the string unless it needs to be added into the hash.
23242         (lto_output_string_with_length): Add persistent attribute;
23243         handle NULL strings.
23244         (lto_output_string): Add PERSISTENT parameter.
23245         (output_string_cst, output_identifier): Simplify.
23246         (lto_output_location_bitpack): Update.
23247         (lto_output_builtin_tree): Update.
23248         * lto-streamer.h (struct output_block): Add obstack.
23249         (lto_output_string, lto_output_string_with_length): Remove
23250         declarations; functions are static now.
23251
23252 2011-05-28  Jan Hubicka  <jh@suse.cz>
23253
23254         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
23255         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
23256         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
23257         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
23258         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
23259         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
23260         unpack_ts_decl_with_vis_value_fields,
23261         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
23262         lto_get_builtin_tree): Use enum and variable length i/o.
23263         * basic-block.h (profile_status_d): Add PROFILE_LAST.
23264         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
23265         New functions.
23266         (bp_pack_enum, bp_unpack_enum): New macros.
23267
23268 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23269
23270         * genrecog.c: Remove redundant forward declarations.
23271
23272 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23273
23274         * config.gcc: Deprecate mips*-*-openbsd*.
23275
23276 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23277
23278         PR bootstrap/49195
23279         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
23280         for match_op_dup.
23281
23282 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
23283
23284         PR middle-end/48981
23285         * gengtype.c (vec_prefix_type): New function.
23286         (note_def_vec): Use vec_prefix_type and change the length
23287         attribute to be based on the prefix.
23288         * vec.c: Include coretypes.h before vec.h.
23289         (struct vec_prefix): Remove.
23290         (vec_gc_p_reserve): Change the offsetof to sizeof.
23291         (vec_gc_p_reserve_exact): Likewise.
23292         (vec_heap_p_reserve): Likewise.
23293         (vec_heap_p_reserve_exact): Likewise.
23294         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
23295         (vec_stack_p_reserve): Change the offsetof to sizeof.
23296         (vec_stack_p_reserve_exact): Likewise.
23297         * vec.h (struct vec_prefix): New struct definition.
23298         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
23299         (VEC_T_GTY(T,B)): Likewise.
23300         (DEF_VEC_FUNC_P(T)): Use prefix field.
23301         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
23302         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
23303
23304 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23305
23306         PR tree-optimization/46728
23307         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
23308         (powi_as_mults): Add gimple_set_location.
23309         (build_and_insert_call): New.
23310         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
23311         0.5, 0.25, 0.75, 1./3., or 1./6.
23312
23313 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
23314
23315         * doc/contrib.texi: Update copyright years.
23316         (Contributors): Add Zdenek Sojka.
23317
23318 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
23319
23320         * c-decl.c (c_push_function_context): Copy the current statement
23321         list stack.
23322         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
23323         (finish_struct): Call building_stmt_list_p instead of checking
23324         cur_stmt_list.
23325         * c-parser.c (c_parser_postfix_expression): Likewise.
23326         * c-typeck.c (c_end_compound_stmt): Likewise.
23327         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
23328         * tree-iterator.c (stmt_list_cache): Change to a VEC.
23329         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
23330         (free_stmt_list): Likewise.
23331         * tree.h (struct tree_statement_list): Include typed_tree instead
23332         of tree_common.
23333         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
23334         as TS_TYPED instead of TS_COMMON.
23335
23336 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23337             Uros Bizjak  <ubizjak@gmail.com>
23338
23339         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
23340         (HAVE_AS_IX86_TLSGDPTL): Define.
23341         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
23342         (HAVE_AS_IX86_TLSLDMPLT): Define.
23343         * configure: Regenerate.
23344         * config.in: Regenerate.
23345         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
23346         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
23347         TARGET_SUN_TLS, use @tlsgdplt or @plt.
23348         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
23349         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
23350         @tlsldmplt or @plt.
23351         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
23352
23353 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
23354
23355         * sched-int.h (struct _haifa_deps_insn_data): New members cond
23356         and reverse_cond.
23357         (INSN_COND, INSN_REVERSE_COND): New macros.
23358         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
23359         once.
23360         (sched_get_condition_with_rev): Cache the results, and look them up
23361         if possible.
23362         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
23363         are clobbered by the current insn.
23364         * target.def (exposed_pipline): New sched data hook.
23365         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
23366         * doc/tm.texi: Regenerate.
23367
23368 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23369
23370         PR tree-optimization/49170
23371         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
23372         sincos or cexp.
23373
23374 2011-05-27  Richard Guenther  <rguenther@suse.de>
23375
23376         PR middle-end/49189
23377         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
23378         of comparisons.
23379
23380 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
23381
23382         * haifa-sched.c (sched_scan_info): Remove.
23383         (schedule_block): Call sched_extend_luids rather than sched_init_luids
23384         with NULL args.
23385         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
23386         Remove functions.
23387         (sched_scan): Remove.
23388         (sched_extend_luids): Renamed from luids_extend_insn and no longer
23389         static.  All callers changed.
23390         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
23391         static.  All callers changed.
23392         (sched_init_luids): Remove all arguments except the first.  All
23393         callers changed.  Don't use sched_scan.
23394         (haifa_init_h_i_d): Likewise.
23395         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
23396         manually rather than using sched_init_luids.  Likewise with
23397         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
23398         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
23399         rather than sched_init_luids with NULL args.
23400         * sel-sched-ir.c (new_insns): Remove variable.
23401         (sched_scan): New static function, previously in haifa-sched.c.  Remove
23402         all arguments but the first two; all callers changed.
23403         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
23404         rather than sched_init_luids.
23405         (sel_init_bbs): Remove second argument.  All callers changed.
23406         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
23407         with NULL arguments.
23408         (create_insn_rtx_from_pattern): Likewise.
23409         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
23410         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
23411         (sched_init_insn_luid, sched_extend_luids): Declare.
23412         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
23413         declarations.
23414
23415 2011-05-27  Richard Guenther  <rguenther@suse.de>
23416
23417         PR middle-end/49177
23418         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
23419         A CMP B ? (T) true : (T) false for non-integral types T again.
23420
23421 2011-05-27  Jan Hubicka  <jh@suse.cz>
23422
23423         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
23424         so 0 means NULL string.
23425         (lto_output_string_with_length): ... here.
23426         (lto_output_string, output_string_cst, output_identifier): Update
23427         handling of NULL strings.
23428         (lto_output_location_bitpack): New function.
23429         (lto_output_location): Use it.
23430         (lto_output_tree_ref): Use output_record_start.
23431         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
23432         len values.
23433         * lto-streamer-in.c (string_for_index): Break out from ...; offset
23434         values by 1.
23435         (input_string_internal): ... here;
23436         (input_string_cst, input_identifier, lto_input_string): Update handling
23437         of NULL strings.
23438         (lto_input_location_bitpack): New function
23439         (lto_input_location): Use it.
23440         (unpack_ts_type_common_value_fields): Pack align & alias in var len
23441         values.
23442         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
23443         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
23444         (bp_pack_value): Sanity check the value range.
23445         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
23446         New functions.
23447         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
23448         New functions.
23449
23450 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
23451
23452         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
23453         call_arg_location instructions down the floor.
23454
23455 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
23456
23457         PR rtl-optimization/49154
23458         * ira.c (setup_pressure_classes): Process class without sublcasses
23459         as a candidate for pressure classes.
23460
23461 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
23462
23463         PR rtl-optimization/48575
23464         * genrecog.c (position_type): New enum.
23465         (position): New structure.
23466         (decision): Use position structure instead of a string.
23467         (root_pos, peep2_insn_pos_list): New variables.
23468         (next_position, compare_positions): New functions.
23469         (new_decision): Use position structures instead of strings.
23470         (maybe_both_true): Likewise.
23471         (change_state): Likewise.
23472         (write_tree): Likewise.
23473         (make_insn_sequence): Likewise.
23474
23475 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
23476
23477         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
23478         TS_BASE instead of TS_COMMON.
23479         (find_decls_types_r): Check for TS_TYPED structure before looking at
23480         TREE_TYPE.
23481         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
23482         Add chain field.
23483         (BLOCK_CHAIN): Use new chain field.
23484
23485 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
23486
23487         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
23488         moves expensive on Power7 also.
23489
23490 2011-05-26  Richard Guenther  <rguenther@suse.de>
23491
23492         * fold-const.c (fold_unary_loc): Remove bogus code.
23493
23494 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
23495
23496         * tree.h (struct tree_identifier): Inherit from tree_typed, not
23497         tree_common.
23498         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
23499         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
23500         TS_BASE instead of TS_COMMON.
23501         * varasm.c (assemble_name): Remove assert.
23502
23503 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
23504
23505         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
23506         substituted first.
23507         * libgcc-std.ver: Delete file.
23508
23509 2011-05-26  Richard Guenther  <rguenther@suse.de>
23510
23511         PR tree-optimization/48702
23512         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
23513         only when we know the base address is within bounds.
23514         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
23515         assume the base address of TARGET_MEM_REFs is in bounds.
23516
23517 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23518
23519         PR target/49099
23520         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
23521         declaration in TARGET_SOLARIS.
23522
23523 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
23524
23525         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
23526         The instruction is then expanded explicitly.
23527         (supported_compare): Callable instruction.
23528         (compare): Likewise.
23529
23530 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
23531
23532         PR c++/49165
23533         * gimplify.c (shortcut_cond_r): Don't special case
23534         COND_EXPRs if they have void type on one of their arms.
23535
23536 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
23537
23538         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
23539         to reduce duplication, and to achieve a slightly more logical order
23540         of operations.
23541
23542 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
23543
23544         PR tree-optimization/49161
23545         * tree-vrp.c (struct case_info): New type.
23546         (compare_case_labels): Sort case_info structs instead of
23547         trees, and not primarily by CASE_LABEL uids but by
23548         label_for_block indexes.
23549         (find_switch_asserts): Put case labels into struct case_info
23550         array instead of TREE_VEC, adjust sorting, compare label_for_block
23551         values instead of CASE_LABELs.
23552
23553 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23554
23555         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
23556         ("orndi3_neon"): Likewise.
23557         ("bic<mode>3_neon"): Likewise.
23558
23559 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
23560
23561         PR tree-optimization/49038
23562         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
23563         Ensure at least one epilogue iteration if required by data
23564         accesses with gaps.
23565         * tree-vectorizer.h (struct _loop_vec_info): Add new field
23566         to mark loops that require peeling for gaps.
23567         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
23568         (vect_get_known_peeling_cost): Take peeling for gaps into
23569         account.
23570         (vect_transform_loop): Generate epilogue if required by data
23571         access with gaps.
23572         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
23573         loop as requiring an epilogue if there are gaps in the end of
23574         the strided group.
23575
23576 2011-05-25  Ian Lance Taylor  <iant@google.com>
23577
23578         * godump.c (go_format_type): Output the first field with a usable
23579         Go type, if any.
23580
23581 2011-05-25  Ian Lance Taylor  <iant@google.com>
23582
23583         * godump.c (go_format_type): Check for invalid type names, pointer
23584         target types, and struct field types.
23585
23586 2011-05-25  Jason Merrill  <jason@redhat.com>
23587
23588         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
23589
23590 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
23591
23592         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
23593
23594 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
23595
23596         * config/i386/i386.md (*movqi_extv_1)): Put back
23597         "register_operand" check in "type" calculation.
23598         (*movqi_extzv_2): Likewise.
23599
23600 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
23601
23602         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
23603
23604 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
23605
23606         PR bootstrap/49160
23607         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
23608         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
23609         __divxc3, __divtc3): Wrap definitions in #ifndef.
23610
23611 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
23612
23613         PR target/49142
23614         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
23615         "register_operand" check and replace q_regs_operand with
23616         QIreg_operand in "type" calculation.
23617         (*movqi_extv_1): Likewise.
23618         (*movqi_extzv_2_rex64): Likewise.
23619         (*movqi_extzv_2): Likewise.
23620
23621         * config/i386/predicates.md (QIreg_operand): New.
23622
23623 2011-05-25  Richard Guenther  <rguenther@suse.de>
23624
23625         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
23626         type-based offset disambiguation, streamline MEM_REF and
23627         TARGET_MEM_REF handling.
23628
23629 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
23630
23631         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
23632         (bdesc_special_args): Add pause intrinsic.
23633
23634         * config/i386/i386.md (UNSPEC_PAUSE): New.
23635         (pause): Likewise.
23636         (*pause): Likewise.
23637         * config/i386/ia32intrin.h (__pause): Likewise.
23638
23639         * doc/extend.texi (X86 Built-in Functions): Add documentation for
23640         pause intrinsic.
23641
23642 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23643
23644         PR tree-optimization/46728
23645         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
23646         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
23647
23648 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
23649
23650         * tree.h (struct tree_exp): Inherit from struct tree_typed.
23651         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
23652         instead of TS_COMMON.
23653
23654 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
23655
23656         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
23657         LIBGCC2_GNU_PREFIX is defined.
23658         (__N): New macro.
23659         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
23660         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
23661         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
23662         __clz_tab): Define using __N.
23663         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
23664         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
23665         * target.def (libfunc_gnu_prefix): New hook.
23666         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
23667         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
23668         * doc/tm.texi: Regenerate.
23669         * system.h (LIBGCC2_GNU_PREFIX): Poison.
23670         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
23671         account.
23672         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
23673         (init_optabs): Likewise for the bswap libfuncs.
23674         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
23675         and divide.
23676         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
23677         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
23678         * libgcc-std.ver: Remove.
23679         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
23680         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
23681         libgcc-std.ver.
23682         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
23683         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
23684         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
23685         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
23686         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
23687         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
23688         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
23689         * config/fixed-bit.h (FIXED_OP): Define differently depending on
23690         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
23691         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
23692
23693 2011-05-25  Jan Hubicka  <jh@suse.cz>
23694
23695         * lto-streamer-out.c (output_record_start): Use lto_output_enum
23696         (lto_output_tree): Use output_record_start.
23697         * lto-streamer-in.c (input_record_start): Use lto_input_enum
23698         (lto_get_pickled_tree): Use input_record_start.
23699         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
23700         (lto_value_range_error): New function.
23701         * lto-streamer.h (lto_value_range_error): Declare.
23702         (lto_output_int_in_range, lto_input_int_in_range): New functions.
23703         (lto_output_enum, lto_input_enum): New macros.
23704
23705 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
23706
23707         * common.opt (flag_stack_usage_info): New variable.
23708         (-Wstack-usage): New option.
23709         * doc/invoke.texi (Warning options): Document -Wstack-usage.
23710         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
23711         <OPT_fstack_usage>: Likewise.
23712         * toplev.c (output_stack_usage): Handle -Wstack-usage.
23713         * calls.c (expand_call): Test flag_stack_usage_info variable instead
23714         of flag_stack_usage.
23715         (emit_library_call_value_1): Likewise.
23716         * explow.c (allocate_dynamic_stack_space): Likewise.
23717         * function.c (instantiate_virtual_regs ): Likewise.
23718         (prepare_function_start): Likewise.
23719         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
23720         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
23721         * config/arm/arm.c (arm_expand_prologue): Likewise.
23722         (thumb1_expand_prologue): Likewise.
23723         * config/avr/avr.c (expand_prologue): Likewise.
23724         * config/i386/i386.c (ix86_expand_prologue): Likewise.
23725         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
23726         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
23727         * config/mips/mips.c (mips_expand_prologue): Likewise.
23728         * config/pa/pa.c (hppa_expand_prologue): Likewise.
23729         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
23730         * config/s390/s390.c (s390_emit_prologue): Likewise.
23731         * config/sh/sh.c (sh_expand_prologue): Likewise.
23732         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
23733         * config/spu/spu.c (spu_expand_prologue): Likewise.
23734
23735 2011-05-25  Richard Guenther  <rguenther@suse.de>
23736
23737         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
23738         (gimple_canonical_types_compatible_p): Likewise.
23739
23740 2011-05-25  Jan Hubicka  <jh@suse.cz>
23741
23742         PR middle-end/49062
23743         * ipa.c (function_and_variable_visibility): Only add to same
23744         comdat group list if DECL_ONE_ONLY.
23745
23746 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
23747
23748         PR rtl-optimization/49014
23749         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
23750
23751 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
23752
23753         PR target/49128
23754         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
23755
23756 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
23757
23758         PR rtl-optimization/48757
23759         * ira-build.c (loop_with_eh_edge_p): Rename to
23760         loop_with_complex_edge_p, check edges on complexity, make function
23761         conditional.
23762         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
23763         conditional.
23764
23765 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
23766
23767         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
23768         force flag_ira_share_save_slots to 0.
23769
23770 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
23771
23772         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
23773         (vt_initialize): Set PROLOGUE_BB unconditionally.
23774         Add block comment about CFA_BASE_RTX machinery.
23775         Reset FP_CFA_OFFSET to -1 on all invalid paths.
23776         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
23777
23778 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
23779
23780         PR objc/48187
23781         * c-parser.c (c_parser_objc_class_instance_variables): More robust
23782         parsing of syntax error in ObjC instance variable lists.  In
23783         particular, avoid an infinite loop if there is a stray ']'.
23784         Updated error message.
23785
23786 2011-05-24  Ian Lance Taylor  <iant@google.com>
23787
23788         * godump.c (go_define): Don't accept a string immediately after
23789         another operand.
23790
23791 2011-05-24  Ian Lance Taylor  <iant@google.com>
23792
23793         * godump.c (struct godump_container): Add invalid_hash field.
23794         (go_format_type): Return false if type is found in invalid_hash.
23795         (go_output_typedef): Add invalid type to invalid_hash.
23796         (go_finish): Create and delete invalid_hash.
23797
23798 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23799
23800         PR tree-optimization/46728
23801         * tree-ssa-math-opts.c (powi_table): New.
23802         (powi_lookup_cost): New.
23803         (powi_cost): New.
23804         (powi_as_mults_1): New.
23805         (powi_as_mults): New.
23806         (gimple_expand_builtin_powi): New.
23807         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
23808         (gate_cse_sincos): Remove sincos/cexp restriction.
23809
23810 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23811
23812         PR target/3746
23813         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
23814         mips-tdump native.
23815         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
23816         * mips-tdump.c: Likewise.
23817
23818 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
23819
23820         PR target/49128
23821         * config/i386/driver-i386.c (host_detect_local_cpu): Always
23822         add -mno-XXX.  Handle FMA.
23823
23824 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
23825
23826         PR rtl-optimization/48633
23827         * ira-build.c (loop_with_eh_edge_p): New function.
23828         (mark_loops_for_removal): Use it.
23829
23830 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
23831
23832         PR rtl-optimization/48971
23833         * ira.c (setup_pressure_classes): Don't check register move cost
23834         for classes with one registers.  Don't add pressure class if there
23835         is a pressure class with the same available hard registers.
23836         Check contains_reg_of_mode.  Fix a typo in collecting
23837         temp_hard_regset.  Ignore hard registers not belonging to a class.
23838
23839 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
23840
23841         PR target/49133
23842         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
23843
23844 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
23845             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23846
23847         PR gcov-profile/48845
23848         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
23849
23850 2011-05-24  Richard Guenther  <rguenther@suse.de>
23851
23852         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
23853         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
23854         (gimple_types_compatible_p_1): Adjust.
23855         (iterative_hash_canonical_type): Do not bother about complete vs.
23856         incomplete types.
23857         (gimple_canonical_types_compatible_p): Likewise.
23858
23859 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23860
23861         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
23862
23863 2011-05-24  Richard Guenther  <rguenther@suse.de>
23864
23865         PR bootstrap/49078
23866         * gimple.c (gimple_register_canonical_type): Revert
23867         previous change.
23868         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
23869         does not for a tree for the case where it matters.  Cache
23870         pointer-type alias-sets.
23871
23872 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
23873
23874         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
23875         (OBJS): Remove options.o, opts-common.o and prefix.o.
23876         (OBJS-libcommon-target): New.
23877         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
23878         (BACKEND): Include libcommon-target.a.
23879         (MOSTLYCLEANFILES): Include libcommon-target.a.
23880         (libcommon-target.a): New.
23881         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
23882         prefix.o.
23883
23884 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
23885
23886         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
23887         parts of output shared with the driver.
23888         * optc-gen.awk: Don't generate parts of output not shared with the
23889         driver.
23890         * opth-gen.awk: Remove GCC_DRIVER conditionals.
23891         * doc/options.texi (SourcerInclude): Mention options-save.c.
23892         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
23893         (OBJS): Add options-save.o.
23894         (options-save.c, options-save.o): New.
23895         (options.o): Update dependencies.
23896         (gcc-options.o): Remove.
23897         (mostlyclean): Remove options-save.c.
23898
23899 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
23900
23901         PR debug/49032
23902         * dbxout.c: Include cgraph.h.
23903         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
23904         and without value expr, return NULL if no varpool node exists for
23905         it or if it is not needed.
23906         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
23907
23908         PR c/49120
23909         * c-decl.c (start_decl): Convert expr to void_type_node.
23910
23911 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
23912
23913         PR rtl-optimization/48826
23914         * emit-rtl.c (try_split): When splitting a call that is followed
23915         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
23916
23917 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
23918
23919         * cfgexpand.c (expand_debug_expr): For unused non-addressable
23920         parameters passed in memory prefer using DECL_INCOMING_RTL over
23921         the pseudos it will be copied into.
23922
23923 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
23924
23925         PR target/47315
23926         * config/i386/i386.c (ix86_option_override_internal): Save the
23927         initial options after checking vzeroupper.
23928
23929 2011-05-23  David Li  <davidxl@google.com>
23930
23931         PR tree-optimization/48988
23932         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
23933         Initialize has_valid_pred for each pred chain.
23934
23935 2011-05-23  Richard Guenther  <rguenther@suse.de>
23936
23937         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
23938         (iterative_hash_gimple_type): Always hash type names.
23939
23940 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
23941
23942         * c-typeck.c (build_function_call_vec): Tweak call to
23943         check_function_arguments.
23944
23945 2011-05-23  Richard Guenther  <rguenther@suse.de>
23946
23947         PR tree-optimization/49115
23948         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
23949         is not necessarily carried out, do not claim it kills the ref.
23950         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
23951
23952 2011-05-23  Richard Guenther  <rguenther@suse.de>
23953
23954         PR middle-end/15419
23955         * builtins.c (fold_builtin_memory_op): Be less restrictive about
23956         what pointer types we accept for folding.
23957
23958 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23959
23960         * gthr-gnat.c: Remove.
23961         * gthr-gnat.h: Remove.
23962         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
23963         * config/t-freebsd (LIB2ADDEH): Likewise.
23964         * config/t-linux (LIB2ADDEH): Likewise.
23965         * config/t-sol2 (LIB2ADDEH): Likewise.
23966         * config/ia64/t-vms (LIB2ADDEH): Likewise.
23967         * configure.ac (target_thread_file): Remove gnat handling.
23968         * configure: Regenerate.
23969         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
23970
23971 2011-05-23  Tristan Gingold  <gingold@adacore.com>
23972             Eric Botcazou  <ebotcazou@adacore.com>
23973
23974         * gcov.c (create_file_names): If no object directory is specified,
23975         keep the directory of the file.
23976
23977 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23978
23979         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
23980         * configure: Regenerate.
23981
23982 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
23983
23984         PR middle-end/48973
23985         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
23986         failed and the comparison has a single bit signed type, use
23987         constm1_rtx instead of const1_rtx for true value.
23988         (do_store_flag): If ops->type is single bit signed type, disable
23989         signel bit test optimization and pass -1 instead of 1 as last
23990         parameter to emit_store_flag_force.
23991
23992 2011-05-23  Tom de Vries  <tom@codesourcery.com>
23993
23994         PR target/45098
23995         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
23996         function.
23997         (infer_loop_bounds_from_undefined): Use new function.
23998
23999 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
24000
24001         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
24002         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
24003         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
24004         and -O0 otherwise.
24005         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
24006
24007 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24008
24009         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
24010         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
24011         returns true.
24012
24013 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
24014
24015         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
24016
24017 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24018
24019         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
24020         UNSPEC_MOVE_PIC pattern.
24021
24022 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24023
24024         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
24025         (sparc-*-rtems*): Likewise.
24026         (sparc64-*-elf*): Likewise.
24027         (sparc64-*-rtems*): Likewise.
24028         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
24029         * config/sparc/t-crtin: New file.
24030         * config/sparc/t-sol2 (crti.o): Delete rule.
24031         (crtn.o): Likewise.
24032         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
24033         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
24034         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
24035         (ENDFILE_SPEC): Add crtn.o.
24036
24037 2011-05-22  Tom de Vries  <tom@codesourcery.com>
24038
24039         PR middle-end/48689
24040         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
24041         CODE_CONTAINS_STRUCT (TS_COMMON).
24042
24043 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
24044
24045         PR middle-end/49029
24046         * expmed.c (extract_fixed_bit_field): Test whether target can be used
24047         only after deciding which mode to use.
24048
24049 2011-05-22  Tom de Vries  <tom@codesourcery.com>
24050
24051         PR target/45098
24052         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
24053         for call to get_shiftadd_cost.
24054
24055 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
24056
24057         PR target/49104
24058         * config/i386/cpuid.h (bit_MMXEXT): New define.
24059
24060 2011-05-22  Nick Clifton  <nickc@redhat.com>
24061
24062         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
24063         initialisation of non-existant args[2] element.  Use args[] array
24064         not arg[] array to pass arguments to build_function_type_list.
24065
24066 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
24067
24068         PR tree-optimization/49087
24069         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
24070
24071 2011-05-21  Jason Merrill  <jason@redhat.com>
24072
24073         PR c++/49092
24074         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
24075         static storage duration.
24076
24077 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
24078
24079         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
24080         frame pointer.
24081
24082 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
24083
24084         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
24085         false if there are call-saved registers here...
24086         (sparc_can_use_return_insn_p): ...but here instead.
24087         (save_or_restore_regs): Fix thinko.
24088         (sparc_expand_prologue): Use current_function_is_leaf.
24089         (sparc_frame_pointer_required): Likewise.
24090
24091 2011-05-21  Nick Clifton  <nickc@redhat.com>
24092
24093         PR target/49098
24094         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
24095
24096 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
24097
24098         * gengtype.c (walk_type): Implemented "atomic" GTY option.
24099         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
24100
24101 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
24102
24103         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
24104         * optc-gen.awk: Move common code to opt-read.awk.
24105         * opth-gen.awk: Likewise.
24106         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
24107
24108 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
24109
24110         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
24111
24112 2011-05-20  Tom de Vries  <tom@codesourcery.com>
24113
24114         PR target/45098
24115         * tree-ssa-loop-ivopts.c: Include expmed.h.
24116         (get_shiftadd_cost): New function.
24117         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
24118
24119 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
24120
24121         PR bootstrap/49086
24122         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
24123         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
24124
24125 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
24126
24127         * Makefile.in: Update comment referring to $(OBJS-common).
24128
24129 2011-05-20  Ian Lance Taylor  <iant@google.com>
24130
24131         * godump.c (go_output_typedef): Put enum constants in the macro
24132         hash table to avoid duplicate Go const definitions.
24133
24134 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
24135
24136         * Makefile.in (LIBDEPS): Add libcommon.a.
24137         (LIBS): Likewise.
24138         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
24139         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
24140         pretty-print.o and version.o.
24141         (OBJS-libcommon): New.
24142         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
24143         (BACKEND): Add libcommon.a.
24144         (MOSTLYCLEANFILES): Likewise.
24145         (libcommon.a): New.
24146         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
24147         (cpp$(exeext)): Likewise.
24148         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
24149         pretty-print.o and input.o.
24150         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
24151         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
24152         (errors.o): Remove.
24153         (mips-tfile): Don't explicitly use version.o.
24154         (mips-tdump): Likewise.
24155         (gcov.o): Depend on $(DIAGNOSTIC_H).
24156         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
24157         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
24158         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
24159         * gcov-dump.c: Include intl.h and diagnostic.h.
24160         (main): Initialize diagnostics.
24161         * gcov.c: Include diagnostic.h.
24162         (fnotice): Remove.
24163         (main): Initialize diagnostics.
24164         * lto-wrapper.c: Include diagnostic.h.
24165         (main): Initialize diagnostics.
24166
24167 2011-05-20  Michael Matz  <matz@suse.de>
24168
24169         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
24170
24171 2011-05-20  Michael Matz  <matz@suse.de>
24172             Richard Guenther  <rguenther@suse.de>
24173
24174         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
24175         use lto_streamer_cache_append directly instead of returning a VEC.
24176         (preload_common_node): Remove.
24177         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
24178         track seen nodes.
24179         (lto_streamer_cache_create): Call lto_preload_common_nodes.
24180
24181 2011-05-20  Richard Guenther  <rguenther@suse.de>
24182
24183         PR tree-optimization/49079
24184         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
24185         MEM_REFs correctly for the trailing array access detection.
24186         Special case constants the same way as decls for overall size
24187         constraining.
24188
24189 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
24190
24191         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
24192         argument expansion.
24193
24194 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
24195
24196         PR tree-optimization/49073
24197         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
24198         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
24199         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
24200
24201 2011-05-20  Richard Guenther  <rguenther@suse.de>
24202
24203         PR middle-end/48849
24204         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
24205         of pointer types the same way the middle-end does.
24206
24207 2011-05-20  Richard Guenther  <rguenther@suse.de>
24208
24209         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
24210         or pointer-to chains.  Delay all fixup to uniquify_nodes.
24211
24212 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
24213
24214         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
24215         (fma4_fmaddsub): Likewise
24216
24217 2011-05-19  Jan Hubicka  <jh@suse.cz>
24218
24219         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
24220         (GIMPLE_TYPE_PAIR_SIZE): New macro.
24221         (type_pair_cache): New static var.
24222         (lookup_type_pair): Use fixed sized custom hash; make inline.
24223         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
24224         calls of lookup_type_pair.
24225         (print_gimple_types_stats): Remove cache stats.
24226         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
24227         and gtc_ob.
24228
24229 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
24230
24231         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
24232         when TARGET_RDRND is active.
24233         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
24234         Generate dummy SImode target register when target is NULL.
24235
24236 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
24237
24238         * config/arm/arm-fpus.def: New.
24239         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
24240         arm-fpus.def.
24241         * config/arm/arm-tables.opt: Regenerate.
24242         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
24243         (arm_option_override): Don't decode FPU name to string here.
24244         * config/arm/arm.opt (mfpu=): Use Enum.
24245         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
24246         Update dependencies.
24247
24248 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
24249
24250         * collect2.c: Include diagnostic.h.
24251         (fatal_perror, fatal, error, fancy_abort): Remove.
24252         (main): Set progname.  Call xmalloc_set_program_name and
24253         diagnostic_initialize.
24254         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
24255         scan_libraries, resolve_lib_name): Call fatal_error instead of
24256         fatal and fatal_perror.
24257         * collect2.h (error, fatal, fatal_perror): Don't declare.
24258         * tlink.c: Include diagnostic-core.h.
24259         (recompile_files): Call fatal_error instead of fatal_perror.
24260         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
24261         pretty-print.o and input.o.
24262         (collect2.o, tlink.o): Update dependencies.
24263
24264 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24265
24266         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
24267
24268 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24269
24270         PR target/40483
24271         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
24272         COMDAT group syntax, both SPARC and x86 variants.
24273         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
24274         * configure: Regenerate.
24275         * config/sol2.h (TARGET_SOLARIS): Define.
24276         (PUSHSECTION_FORMAT): Remove.
24277         (SECTION_NAME_FORMAT): Define.
24278         * config/sol2.c: Include hashtab.h.
24279         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
24280         expansion, using SECTION_NAME_FORMAT.
24281         (solaris_comdat_htab): New variable.
24282         (struct comdat_entry): Define.
24283         (comdat_hash): New function.
24284         (comdat_eq): New function.
24285         (solaris_elf_asm_comdat_section): New function.
24286         (solaris_define_comdat_signature): New function.
24287         (solaris_code_end): New function.
24288         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
24289         (solaris_code_end): Declare.
24290         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
24291         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
24292         solaris_code_end.
24293         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
24294         Remove ATTRIBUTE_UNUSED.
24295         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
24296         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
24297         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
24298         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
24299         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
24300         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
24301         (PUSHSECTION_FORMAT): Remove.
24302         (SECTION_NAME_FORMAT): Redefine.
24303
24304 2011-05-19  Kai Tietz  <ktietz@redhat.com>
24305
24306         * tree-cfg.c (verify_gimple_assign_binary): Barf on
24307         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
24308         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
24309
24310 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
24311             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24312
24313         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
24314
24315 2011-05-19  Richard Guenther  <rguenther@suse.de>
24316
24317         PR middle-end/48985
24318         * tree-object-size.c (addr_object_size): If the pointed-to
24319         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
24320
24321 2011-05-19  Richard Guenther  <rguenther@suse.de>
24322
24323         * gimple.c (gimple_types_compatible_p_1): Compare names of
24324         the types themselves.
24325         (iterative_hash_gimple_type): And hash them that way.
24326         (gimple_register_type_1): If we register a main variant properly
24327         initialize the leader to ourselves.
24328
24329 2011-05-19  Tom de Vries  <tom@codesourcery.com>
24330
24331         PR target/45098
24332         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
24333         get_loop_invariant_expr_id.
24334         (get_loop_invariant_expr_id): Use get_expr_id.
24335         (parm_decl_cost): New function.
24336         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
24337         Improve bound cost estimation.  Use different inv_expr_id for elim and
24338         express cases.
24339
24340 2011-05-19  Tom de Vries  <tom@codesourcery.com>
24341
24342         PR target/45098
24343         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
24344         cost_base.cost == 0.
24345
24346 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
24347
24348         PR target/49002
24349         * config/i386/sse.md
24350         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
24351         load cast.
24352
24353 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
24354
24355         PR tree-optimization/49039
24356         * tree-vrp.c (extract_range_from_binary_expr): For
24357         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
24358         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
24359
24360 2011-05-18  Tom de Vries  <tom@codesourcery.com>
24361
24362         PR target/45098
24363         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
24364
24365 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
24366
24367         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
24368         (*tls_global_dynamic_64): Ditto.
24369         (*tls_local_dynamic_base_32_gnu): Ditto.
24370         (*tls_local_dynamic_base_64): Ditto.
24371         (tls_initial_exec_64_sun): Ditto.
24372
24373 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
24374
24375         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
24376         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
24377         bf592-none.
24378         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
24379         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
24380         * config/bfin/bfin.c (bfin_cpus): Add bf592.
24381         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
24382         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
24383         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
24384         * config/bfin/elf.h (LIB_SPEC): Add bf592.
24385
24386 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
24387
24388         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
24389         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
24390         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
24391         target_thread_pointer, arm_structure_size_boundary, struct
24392         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
24393         struct abi_name, arm_all_abis): Remove.
24394         (arm_option_override) Don't process most enumerated option values here.
24395         Don't process target_fpe_name here.  Work with integer not string for
24396         structure size boundary; use separate diagnostics for each case.
24397         * config/arm/arm.h (enum float_abi_type, enum
24398         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
24399         to arm-opts.h.
24400         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
24401         arm_structure_size_boundary): Remove.
24402         * config/arm/arm.opt (mabi=): Use Enum and Init.
24403         (arm_abi_type): New Enum and EnumValue entries.
24404         (mfloat-abi=): Use Enum and Init.
24405         (float_abi_type): New Enum and EnumValue entries.
24406         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
24407         (mfp16-format=): Use Enum and Init.
24408         (arm_fp16_format_type): New Enum and EnumValue entries.
24409         (mstructure-size-boundary=): Use UInteger and Init.
24410         (mtp=): Use Enum and Init.
24411         (arm_tp_type): New Enum and EnumValue entries.
24412
24413 2011-05-18  Richard Guenther  <rguenther@suse.de>
24414
24415         PR tree-optimization/49018
24416         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
24417         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
24418         gimple_has_side_effects.
24419
24420 2011-05-18  Richard Guenther  <rguenther@suse.de>
24421
24422         * gimple.c (gimple_register_type_1): New function, split out from ...
24423         (gimple_register_type): ... here.  Avoid infinite recursion.
24424
24425 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
24426
24427         PR tree-optimization/41881
24428         * tree-vectorizer.h (struct _loop_vec_info): Add new field
24429         reduction_chains along with a macro for its access.
24430         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
24431         (destroy_loop_vec_info): Free reduction chains.
24432         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
24433         (vect_is_slp_reduction): New function.
24434         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
24435         (vect_create_epilog_for_reduction): Support SLP reduction chains.
24436         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
24437         definition types for reduction chains.
24438         (vect_supported_load_permutation_p): Don't allow permutations for
24439         reduction chains.
24440         (vect_analyze_slp_instance): Support reduction chains.
24441         (vect_analyze_slp): Try to build SLP instance from reduction chains.
24442         (vect_get_constant_vectors):  Handle reduction chains.
24443         (vect_schedule_slp_instance): Mark the first statement of the
24444         reduction chain as reduction.
24445
24446 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
24447
24448         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
24449         names for group elements access.
24450         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
24451         reduction chains as well.  Remove data reference and interleaving
24452         related words from the fields names.
24453         * tree-vect-loop.c (vect_transform_loop): Use new names for group
24454         elements access.
24455         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
24456         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
24457         vect_update_interleaving_chain, vect_same_range_drs,
24458         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
24459         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
24460         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
24461         vect_analyze_group_access, vect_analyze_data_ref_access,
24462         vect_create_data_ref_ptr, vect_transform_strided_load,
24463         vect_record_strided_load_vectors): Likewise.
24464         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
24465         vect_model_load_cost, vectorizable_store, vectorizable_load,
24466         vect_remove_stores, new_stmt_vec_info): Likewise.
24467         * tree-vect-slp.c (vect_build_slp_tree,
24468         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
24469
24470 2011-05-18  Richard Guenther  <rguenther@suse.de>
24471
24472         PR middle-end/48989
24473         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
24474         operand verification.
24475         (verify_gimple_assign_binary): Likewise.
24476         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
24477         to non-1-precision BOOLEAN_TYPEs.
24478
24479 2011-05-18  Tom de Vries  <tom@codesourcery.com>
24480
24481         PR target/45098
24482         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
24483
24484 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
24485
24486         PR tree-optimization/49000
24487         * tree-ssa.c (execute_update_addresses_taken): Call
24488         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
24489         be rewritten and decl has been marked for renaming, reset
24490         the debug stmt.
24491
24492 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
24493
24494         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
24495         enum_opts_set when testing if attributes have set -mfpmath=.
24496
24497 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24498
24499         * config/mips/mips.c (mips_handle_option): Remove unused variable.
24500
24501 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
24502
24503         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
24504         info->entry with 0
24505         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
24506         id.transform_lang_insert_block with NULL.
24507
24508 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
24509
24510         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
24511         (output_fp_compare): Change args 3 and 4 to bool.
24512         (ix86_expand_call): Change arg 6 to bool.
24513         (ix86_attr_length_immediate_default): Change arg 2 to bool.
24514         (ix86_attr_length_vex_default): Change arg 3 to bool.
24515         * config/i386/i386.md: Update all uses.
24516         * config/i386/i386.c: Ditto.
24517         (ix86_flags_dependent): Change return type to bool.
24518
24519 2011-05-17  Richard Guenther  <rguenther@suse.de>
24520
24521         * gimple.c (type_hash_pair_compare): Fix comparison.
24522
24523 2011-05-17  Richard Guenther  <rguenther@suse.de>
24524
24525         * gimple.c (iterative_hash_gimple_type): Simplify singleton
24526         case some more, fix final hash value of the non-singleton case.
24527
24528 2011-05-17  Richard Guenther  <rguenther@suse.de>
24529
24530         PR bootstrap/49013
24531         Revert
24532         2011-05-16  Richard Guenther  <rguenther@suse.de>
24533
24534         * gimple.c (gimple_types_compatible_p_1): Use names of the
24535         type itself, not its main variant.
24536         (iterative_hash_gimple_type): Likewise.
24537
24538 2011-05-17  Richard Guenther  <rguenther@suse.de>
24539
24540         * gimple.c (gimple_register_canonical_type): Use the main-variant
24541         leader for computing the canonical type.
24542
24543 2011-05-17  Nick Clifton  <nickc@redhat.com>
24544
24545         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
24546         moves.
24547
24548         * config/rx/rx.md: Add peephole to remove redundant extensions
24549         after loads.
24550         (bitset_in_memory): Use rx_restricted_mem_operand.
24551         (bitinvert_in_memory): Likewise.
24552         (bitclr_in_memory): Likewise.
24553
24554 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
24555             Nick Clifton  <nickc@redhat.com>
24556
24557         * config/rx/rx.md: Add peepholes to match a register move followed
24558         by a comparison of the moved register.  Replace these with an
24559         addition of zero that does both actions in one instruction.
24560
24561 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
24562
24563         PR target/48986
24564         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
24565         predicate to allow CONST_INT.
24566         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
24567
24568 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
24569
24570         * opts-common.c (opt_enum_arg_to_value): New.
24571         * opts.h (opt_enum_arg_to_value): Declare.
24572         * config/i386/i386.opt (fpmath): Remove.
24573         (mfpmath=): Use Enum, Init and Save.
24574         (fpmath_unit): New Enum and EnumValue entries.
24575         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
24576         name for function fpmath state.
24577         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
24578         * config/i386/i386.c: Include diagnostic.h.
24579         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
24580         (ix86_target_string): Take enum fpmath_unit value instead of string.
24581         (ix86_debug_options): Update call to ix86_target_string.
24582         (ix86_option_override_internal): Don't process fpmath strings here.
24583         (x86_function_specific_save, ix86_function_specific_restore):
24584         Don't handle fpmath state specially.
24585         (ix86_function_specific_print): Pass fpmath state to
24586         ix86_target_string instead of printing in this function.
24587         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
24588         Handle enum attributes.
24589         (IX86_ATTR_ENUM, ix86_opt_enum): New.
24590         (ix86_valid_target_attribute_tree): Update option_strings
24591         handling.  Handle fpmath as enum option.
24592         (ix86_can_inline_p): Update field names for function fpmath state.
24593         (ix86_expand_builtin): Update call to ix86_target_string.
24594         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
24595         (ix86_fpmath): Remove.
24596         * config/i386/t-i386 (i386.o): Update dependencies.
24597
24598 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
24599
24600         PR preprocessor/48677
24601         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
24602         from decoded_options[0], not from itself.
24603
24604 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
24605
24606         * config/i386/constraints.md (z): New constraint.
24607         * config/i386/i386.c (c): New mode attribute.
24608         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
24609         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
24610         constraint for operand 0.
24611         (*call_vzeroupper): Ditto.
24612         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
24613         (*call_rex64_ms_sysv_vzeroupper): Ditto.
24614         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
24615         Use "lzm" constraint for operand 0.
24616         (*call_pop_vzeroupper): Ditto.
24617         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
24618         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
24619         constraint for operand 0.
24620         (*sibcall_vzeroupper): Ditto.
24621         (*sibcall_rex64_ms_sysv): Ditto.
24622         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
24623         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
24624         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
24625         (*sibcall_pop_vzeroupper): Ditto.
24626         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
24627         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
24628         mode iterator.  Use "<c>zm" constraint for operand 1.
24629         (*call_value_vzeroupper): Ditto.
24630         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
24631         for operand 1.
24632         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
24633         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
24634         *call_value_pop_1.  Use "lzm" constraint for operand 1.
24635         (*call_value_pop_vzeroupper): Ditto.
24636         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
24637         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
24638         mode iterator.  Use "Uz" constraint for operand 1.
24639         (*sibcall_value_vzeroupper): Ditto.
24640         (*sibcall_value_rex64_ms_sysv): Ditto.
24641         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
24642         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
24643         constraint for operand 1.
24644         (*sibcall_value_pop_vzeroupper): Ditto.
24645         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
24646         and "z" constraint for operand 2.
24647         (*tls_global_dynamic_32_gnu): Ditto.
24648         (*tls_local_dynamic_base_32_gnu): Ditto.
24649         (*tls_local_dynamic_base_64): Ditto.
24650         (*tls_local_dynamic_32_once): Ditto.
24651         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
24652         Update all callers.
24653         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
24654
24655 2011-05-16  Richard Guenther  <rguenther@suse.de>
24656
24657         * gimple.c (gimple_types_compatible_p_1): Use names of the
24658         type itself, not its main variant.
24659         (iterative_hash_gimple_type): Likewise.
24660
24661 2011-05-16  Richard Guenther  <rguenther@suse.de>
24662
24663         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
24664         always visit pointer target and function result and argument types.
24665
24666 2011-05-16  Jason Merrill  <jason@redhat.com>
24667
24668         PR c++/48999
24669         * tree-inline.c (copy_statement_list): Put back recursion.
24670
24671 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
24672
24673         PR target/27663
24674         PR target/41076
24675         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
24676         * config/avr/avr.md ("*ior<mode>qi.byte0",
24677         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
24678
24679 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
24680
24681         PR target/45099
24682         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
24683         register is needed for a function argument.
24684
24685 2011-05-16  Richard Guenther  <rguenther@suse.de>
24686
24687         * gimple.c (struct type_hash_pair): New type.
24688         (type_hash_pair_compare): New function.
24689         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
24690
24691 2011-05-16  Revital Eres  <revital.eres@linaro.org>
24692
24693         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
24694
24695 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
24696
24697         * config/i386/i386.md (floating point move splitters): Fix
24698         usage of standard_80387_constant_p.
24699         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
24700
24701 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
24702
24703         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
24704
24705 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
24706
24707         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
24708         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
24709         (tree_ssa_lim_finalize): Likewise.
24710
24711 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
24712
24713         * config/i386/constraint.md (Yd, Yx): New register constraints.
24714         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
24715         Yd conditional register constraint.
24716         (*movtf_internal): Use standard_sse_constant_opcode.
24717         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
24718         Yx conditional register constraint.
24719         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
24720         Yd conditional register constraint.  Use standard_sse_constant_p to
24721         check for valid SSE constants and call standard_sse_constant_opcode to
24722         output SSE insn.
24723         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
24724         constants and call standard_sse_constant_opcode to output SSE insn.
24725         * config/i386/i386.c (ix86_option_ovverride_internal): Set
24726         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
24727         optimize_size is set.
24728         (standard_sse_constant_opcode): Output conditional AVX insn templates.
24729
24730 2011-05-14  Tobias Burnus  <burnus@net-b.de>
24731
24732         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
24733
24734 2011-05-13  Martin Jambor  <mjambor@suse.cz>
24735
24736         * ipa-prop.c (ipa_cst_from_jfunc): New function.
24737         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
24738         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
24739         (evaluate_conditions_for_ipcp_clone): Removed.
24740         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
24741         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
24742         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
24743
24744 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
24745
24746         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
24747         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
24748         lieu of MAY_HAVE_DEBUG_STMTS.
24749         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
24750         debug statements if !MAY_HAVE_DEBUG_STMTS.
24751
24752 2011-05-13  Martin Thuresson  <martint@google.com>
24753
24754         PR gcov-profile/47793
24755         * libgcov.c (gcov_exit): Support relative profile paths.
24756         * doc/invoke.texi (-fprofile-dir): Update for above change.
24757
24758 2011-05-13  Richard Guenther  <rguenther@suse.de>
24759
24760         * gimple.c (gimple_canonical_types_compatible_p): Do not use
24761         type-pair caching, do not compare hashes.
24762
24763 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
24764
24765         PR middle-end/48965
24766         * tree-cfg.c (edge_to_cases_cleanup): Return true.
24767         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
24768
24769 2011-05-13  Kai Tietz  <ktietz@redhat.com>
24770
24771         * gimplify.c (gimplify_expr): Make sure operand is boolified.
24772         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
24773         compatible type for TRUTH_NOT_EXPR.
24774
24775 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
24776
24777         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
24778         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
24779         can_create_pseudo_p ().
24780
24781 2011-05-13  Richard Guenther  <rguenther@suse.de>
24782
24783         PR lto/48978
24784         * gimple.c (iterative_hash_gimple_type): Revert change in
24785         pointer target and function result and argument hashing.
24786
24787 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
24788
24789         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
24790         (*movxf_internal_nointeger): Ditto.
24791         (*movdf_internal_rex64): Ditto.
24792         (*movdf_internal): Ditto.
24793         (*movdf_internal_nointeger): Ditto.
24794         (*movsf_internal): Ditto.
24795         (sincos splitters): Use can_create_pseudo ().
24796
24797 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
24798
24799         * config/i386/i386-opts.h: New.
24800         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
24801         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
24802         ix86_section_threshold): Remove.
24803         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
24804         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
24805         OPT_mbranch_cost_.
24806         (ix86_option_override_internal): Don't decode strings for options
24807         other than -march=, -mtune= and -mfpmath=.  Don't allow for
24808         __attribute__ uses in remaining diagnostics for options with
24809         string arguments.  Don't check for integer arguments being negative.
24810         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
24811         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
24812         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
24813         ix86_branch_cost, ix86_section_threshold): Remove.
24814         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
24815         HeaderInclude.
24816         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
24817         but not Var.
24818         (masm=): Use Enum and Init.
24819         (asm_dialect): New Enum and EnumValue entries.
24820         (mbranch-cost=): Use UInteger.
24821         (mlarge-data-threshold=): Use UInteger and Init.
24822         (mcmodel=): Use Enum and Init.
24823         (cmodel): New Enum and EnumValue entries.
24824         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
24825         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
24826         mregparm=): Use UInteger.
24827         (mstringop-strategy=): Use Enum and Init.
24828         (stringop_alg): New Enum and EnumValue entries.
24829         (mtls-dialect=): Use Enum and Init.
24830         (tls_dialect): New Enum and EnumValue entries.
24831         (mabi=): Use Enum and Init.
24832         (calling_abi): New Enum and EnumValue entries.
24833         (mveclibabi=): Use Enum and Init.
24834         (ix86_veclibabi): New Enum and EnumValue entries.
24835
24836 2011-05-13  Nick Clifton  <nickc@redhat.com>
24837
24838         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
24839         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
24840
24841 2011-05-13  Kai Tietz  <ktietz@redhat.com>
24842
24843         PR middle-end/48984
24844         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
24845         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
24846         (gimple_boolify): Check for cast for boolean_type_node instead for
24847         BOOLEAN_TYPE.
24848
24849 2011-05-13  Richard Guenther  <rguenther@suse.de>
24850
24851         PR tree-optimization/48172
24852         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
24853         multiplying by number of iterations for equal step.
24854         (vect_create_cond_for_alias_checks): Likewise.
24855
24856 2011-05-13  Andreas Schwab  <schwab@redhat.com>
24857
24858         * configure.ac: Use AS_HELP_STRING throughout.
24859         * configure: Regenerate.
24860
24861 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
24862
24863         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
24864         (ix86_emit_restore_regs_using_mov): Likewise.
24865         (ix86_emit_restore_sse_regs_using_mov): Likewise.
24866
24867 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
24868
24869         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
24870         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
24871         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
24872         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
24873         RTX_OK_FOR_OLO10_P): ...here.
24874         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
24875         SYMBOLIC_CONST.
24876
24877 2011-05-12  Kai Tietz  <ktietz@redhat.com>
24878
24879         * gimplify.c (gimple_boolify): Re-boolify expression
24880         arguments even if expression type is of kind BOOLEAN_TYPE.
24881         (gimplify_boolean_expr): Removed.
24882         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
24883         and XOR. Additional take care that we keep expression's type.
24884         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
24885         of TRUTH_AND|OR|XOR_EXPR.
24886
24887 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
24888
24889         PR tree-optimization/48975
24890         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
24891         on all bbs here and free and clear ifc_bbs at the end.
24892
24893 2011-05-12  Richard Guenther  <rguenther@suse.de>
24894
24895         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
24896         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
24897         until after simple checks.
24898         (gimple_types_compatible_p): Likewise.
24899         (iterative_hash_gimple_type): Always hash pointer targets
24900         and function return and argument types.
24901         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
24902         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
24903         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
24904         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
24905         completely in the simple compare section.
24906         (gimple_register_canonical_type): Query the cache again after
24907         registering.
24908
24909 2011-05-12  Richard Guenther  <rguenther@suse.de>
24910
24911         PR tree-optimization/48172
24912         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
24913         the number of iterations from the segment size calculation.
24914         (vect_create_cond_for_alias_checks): Adjust.
24915
24916 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
24917
24918         PR debug/48967
24919         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
24920         if validate_subreg fails.
24921
24922 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
24923
24924         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
24925         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
24926         early.
24927
24928 2011-05-12  DJ Delorie  <dj@redhat.com>
24929
24930         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
24931         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
24932         created builtin into rx_builtins array.
24933         (rx_builtin_decl): New function.
24934         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
24935
24936 2011-05-12  DJ Delorie  <dj@redhat.com>
24937             Nick Clifton  <nickc@redhat.com>
24938
24939         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
24940         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
24941         (rx_is_legitimate_address): Add pre-decrement and post-increment
24942         addressing in HImode and QImode.  Fix test for out of range
24943         REG+INT addressing.
24944         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
24945         (rx_align_for_label): Test label before extracting its usage count.
24946         (rx_adjust_insn_lengths): Fix selection of insn codes.
24947         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
24948
24949 2011-05-11  Jason Merrill  <jason@redhat.com>
24950
24951         * tree.c (type_hash_canon): Use struct tree_type_non_common.
24952
24953 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
24954
24955         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
24956         reindent the subsequent block.
24957
24958 2011-05-11  Satoru Takabayashi  <satorux@google.com>
24959             Paul Pluzhnikov  <ppluzhnikov@google.com>
24960
24961         * doc/install.texi (Configuration): Document --with-linker-hash-style.
24962         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
24963         * config.in: Add LINKER_HASH_STYLE.
24964         * configure.ac: Add --with-linker-hash-style.
24965         * configure: Regenerate.
24966
24967 2011-05-11  Richard Guenther  <rguenther@suse.de>
24968
24969         PR middle-end/48964
24970         * gimple.c (iterative_hash_canonical_type): Fix typo.
24971
24972 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
24973
24974         * config/i386/i386.c (legitimize_tls_address)
24975         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
24976         expanders directly for TARGET_GNU2_TLS.  Determine pic and
24977         __tls_get_addr symbol reference here.  Update call to
24978         gen_tls_global_dynamic_{32,64} for added arguments.
24979         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
24980         expanders directly for TARGET_GNU2_TLS.  Determine
24981         __tls_get_addr symbol reference here.  Update call to
24982         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
24983         unique UNSPEC REG_EQUIV to libcall block.
24984         (ix86_tls_get_addr): Declare static.
24985         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
24986         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
24987         Do not determine pic and __tls_get_addr symbol reference here. Do not
24988         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
24989         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
24990         (tls_global_dynamic_64): Add operand 2.  Do not determine
24991         __tls_get_addr symbol reference here.  Do not call
24992         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
24993         (tls_local_dynamic_base64): Ditto for operand 1.
24994
24995 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
24996
24997         * function.c (expand_function_start): Initialize stack_check_probe_note
24998         only if the generic stack checking mechanism is used.
24999
25000 2011-05-11  Richard Guenther  <rguenther@suse.de>
25001
25002         PR tree-optimization/15256
25003         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
25004         (A & B) | C, combine (A op CST1) op CST2.
25005         (tree_ssa_forward_propagate_single_use_vars): Only bother to
25006         visit assigns that have uses.
25007
25008 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
25009
25010         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
25011         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
25012         (unpack_ts_type_common_value_fields): ...this.  Update comment.
25013         (unpack_value_fields): Adjust for renaming.
25014         (lto_input_ts_type_tree_pointers): Split into...
25015         (lto_input_ts_type_common_tree_pointer): ...this and...
25016         (lto_input_ts_type_non_common_tree_pointers): ...this.
25017         (lto_input_tree_pointers): Adjust for above split.
25018         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
25019         (pack_ts_type_common_value_fields): ...this.  Update comment.
25020         (lto_output_ts_type_tree_pointers): Split into...
25021         (lto_output_ts_type_common_tree_pointers): ...this and...
25022         (lto_output_ts_type_non_common_tree_pointers): ...this.
25023         (lto_output_tree_pointers): Adjust for above split.
25024         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
25025         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
25026         * stor-layout.c (vector_type_mode): Adjust location of mode field.
25027         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
25028         Define.
25029         (struct tree_type): Split into...
25030         (struct tree_type_common: ...this and...
25031         (struct tree_type_with_lang_specific): ...this and...
25032         (struct tree_type_non_common): ...this.  Adjust accessor macros
25033         accordingly.
25034         (TYPE_VALUES_RAW): Define.
25035         (union tree_node): Update for above changes.
25036         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
25037         TS_TYPE_NON_COMMON.
25038         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
25039         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
25040         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
25041         * treestructu.def (TS_TYPE): Remove.
25042         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
25043         Define.
25044
25045 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
25046
25047         PR debug/48159
25048         * tree-ssa.c (reset_debug_uses): New function.
25049         * tree-flow.h (reset_debug_uses): New prototype.
25050         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
25051         * tree-loop-distribution.c (generate_loops_for_partition): Call
25052         reset_debug_uses on the stmts that will be removed.  Keep around
25053         all debug stmts, don't count them as bits in partition bitmap.
25054         (generate_builtin): Don't count debug stmts or labels as bits in
25055         partition bitmap.
25056
25057 2011-05-11  Richard Guenther  <rguenther@suse.de>
25058
25059         * gimple.c (gimple_type_hash_1): Merge with ...
25060         (gimple_type_hash): ... this.
25061         (gtc_visit): Remove mode parameter and simplify accordingly.
25062         (gimple_types_compatible_p_1): Likewise.
25063         (gimple_types_compatible_p): Likewise.
25064         (iterative_hash_gimple_type): Likewise.
25065         (visit): Likewise.
25066         (gimple_type_eq): Adjust.
25067
25068 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25069
25070         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
25071         enters the branch create an anti edge in the opposite direction
25072         to prevent the creation of reg-moves.
25073         * modulo-sched.c: Adjust comment to reflect the fact we are
25074         scheduling closing branch.
25075         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
25076         (stage_count): New field in struct partial_schedule.
25077         (calculate_stage_count): New function.
25078         (normalize_sched_times): Rename to reset_sched_times and handle
25079         incrementing the sched time of the nodes by a constant value
25080         passed as parameter.
25081         (duplicate_insns_of_cycles): Skip closing branch.
25082         (sms_schedule_by_order): Schedule closing branch.
25083         (ps_insn_find_column): Handle closing branch.
25084         (sms_schedule): Call reset_sched_times and adjust the code to
25085         support scheduling of the closing branch.
25086         (ps_insert_empty_row): Update calls to normalize_sched_times
25087         and rotate_partial_schedule functions.
25088
25089 2011-05-11  Richard Guenther  <rguenther@suse.de>
25090
25091         PR middle-end/48953
25092         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
25093
25094 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
25095
25096         * opts.c (finish_options): Move warning settings from process_options.
25097         * toplev.c (process_options): Move warning settings to finish_options.
25098
25099 2011-05-11  Richard Guenther  <rguenther@suse.de>
25100
25101         PR tree-optimization/18041
25102         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
25103         (simplify_bitwise_binary): ... this.  Handle operand conversions
25104         by applying them to the result instead.
25105         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
25106
25107 2011-05-11  Richard Guenther  <rguenther@suse.de>
25108
25109         * gimple.c (gimple_canonical_types_compatible_p): Split out
25110         from gimple_types_compatible_p and friends.  Do not recurse
25111         to pointed-to types.
25112         (gimple_canonical_type_eq): Use it.
25113         (iterative_hash_canonical_type): Split out from
25114         iterative_hash_gimple_type and friends.  Do not recurse
25115         to pointed-to types.
25116         (gimple_canonical_type_hash): Use it, allocate the hash here.
25117
25118 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25119
25120         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
25121         recognizing doloop.
25122
25123 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25124
25125         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
25126         instead of PREV_INSN.
25127
25128 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25129
25130         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
25131         * loop-doloop.c (doloop_condition_get): Likewise.
25132         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
25133         (doloop_end): New.
25134         * config/arm/arm.md (*addsi3_compare0): Remove "*".
25135
25136 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
25137
25138         * tree.def (CASE_LABEL_EXPR): Add an operand.
25139         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
25140
25141 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25142
25143         * c-decl.c (c_override_global_bindings_to_false): Remove.
25144         (global_bindings_p): Don't check
25145         c_override_global_bindings_to_false.
25146         * c-tree.h (c_override_global_bindings_to_false): Remove.
25147         * c-typeck.c (composite_type): Don't set
25148         c_override_global_bindings_to_false.
25149
25150 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
25151
25152         PR target/48857, 48495
25153         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
25154         (VSX_MODE): Ditto.
25155         (VSX_MOVE_MODE): Ditto.
25156         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
25157         VSX vector types.  Add V2DImode.
25158         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
25159         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
25160         (MODES_TIEABLE_P): Ditto.
25161
25162         * config/rs6000/rs6000.c (rs6000_emit_move): Use
25163         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
25164         VSX_VECTOR_MODE.
25165         (init_cumulative_args): Ditto.
25166         (rs6000_function_arg_boundary): Ditto.
25167         (rs6000_function_arg_advance_1): Ditto.
25168         (rs6000_function_arg): Ditto.
25169         (rs6000_function_ok_for_sibcall): Ditto.
25170         (emit_frame_save): Ditto.
25171         (rs6000_function_value): Ditto.
25172         (rs6000_libcall_value): Ditto.
25173
25174 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25175
25176         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
25177         i386/darwin-lib.h to $libgcc_tm_file.
25178         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
25179
25180 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25181
25182         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
25183
25184 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25185
25186         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
25187         * config/rs6000/rs6000-tables.opt: New file (generated).
25188         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
25189         rs6000/rs6000-tables.opt to extra_options.
25190         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
25191         * config/rs6000/rs6000.c (rs6000_select): Remove.
25192         (processor_target_table): Move contents to rs6000-cpus.def.
25193         (darwin_rs6000_override_options): Check
25194         global_options_set.x_rs6000_cpu_index instead of
25195         rs6000_select[1].string.
25196         (rs6000_option_override_internal): Likewise.
25197         (rs6000_handle_option): Don't assert that global structures are in
25198         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
25199         (rs6000_default_cpu): New variable.
25200         (rs6000_file_start): Set it instead of local default_cpu.  Check
25201         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
25202         global_options_set.x_rs6000_tune_index instead of rs6000_select.
25203         (rs6000_darwin_file_start): Check rs6000_default_cpu and
25204         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
25205         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
25206         rs6000_select): Remove.
25207         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
25208         Remove.
25209         (mcpu=, mtune=): Use Var, Init, Enum and Save.
25210         * config/rs6000/t-rs6000
25211         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
25212         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
25213         global_options_set.x_rs6000_cpu_index instead of
25214         rs6000_select[1].string.
25215         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
25216         global_options_set.x_rs6000_cpu_index instead of
25217         rs6000_select[1].string.
25218
25219 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25220
25221         * config.gcc (libgcc_tm_file): Define instead of including files
25222         from ../../libgcc/config/ in tm_file.
25223         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
25224         * configure: Regenerate.
25225         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
25226         libgcc_tm.h, cs-libgcc_tm.h): New.
25227         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
25228         (clean): Remove libgcc_tm.h.
25229         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
25230         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
25231         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
25232
25233 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
25234
25235         PR target/48896
25236         * config/avr/avr.c (avr_ret_register): Return unsigned int
25237         instead of int.
25238         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
25239         it to avr_libcall_value.
25240         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
25241         expand_expr.
25242         (avr_expand_binop_builtin): Ditto.
25243         (avr_expand_unop_builtin): Ditto.
25244
25245 2011-05-10  DJ Delorie  <dj@redhat.com>
25246
25247         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
25248         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
25249         * config/rx/rx.c (rx_align_for_label): Add label and
25250         uses_threshold parameters.  Do not align when the label is not
25251         used enough.
25252         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
25253
25254 2011-05-10  Richard Guenther  <rguenther@suse.de>
25255
25256         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
25257         a series of conversions and apply foldings similar to what
25258         fold-const does.
25259         (tree_ssa_forward_propagate_single_use_vars): Call it.
25260
25261 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
25262
25263         PR tree-optimization/48611
25264         PR tree-optimization/48794
25265         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
25266         referenced from RESX or EH_DISPATCH arguments.
25267
25268         PR debug/48928
25269         * dfp.c (decimal_to_decnumber): Handle conversion from
25270         dconst{1,2,m1,half}.
25271
25272 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25273
25274         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
25275         for !flag_prefer_avx128.
25276         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
25277
25278 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
25279
25280         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
25281         (fold_ternary_loc): Use expr_location_or.
25282
25283 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
25284
25285         PR debug/48853
25286         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
25287         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
25288         Pmode and mem_mode is not VOIDmode.
25289
25290 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
25291
25292         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
25293         TYPE_QUAL_RESTRICT): Convert to enum.
25294
25295 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25296
25297         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
25298         (const_pow2_1_to_8_operand): Ditto.
25299         (const_pow2_1_to_128_operand): Ditto.
25300         (const_pow2_1_to_32768_operand): Ditto.
25301         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
25302         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
25303         in insn constraint to check integer value of operand 3.
25304         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
25305
25306         (PINSR_MODE): New mode iterator.
25307         (sse2p4_1): New mode attribute.
25308         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
25309         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
25310         iterator.  Use const_int_operand instead of
25311         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
25312         exact_log2 in insn constraint to check integer value of operand 3.
25313
25314 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25315
25316         * config/i386/sse.md (blendbits): Remove mode attribute.
25317         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
25318         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
25319         Check integer value of operand 3 in insn constraint.
25320
25321 2011-05-09  Richard Guenther  <rguenther@suse.de>
25322
25323         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
25324         for diagnostics.
25325         (lto_symtab_merge): Likewise.  Do not register types here.
25326         (lto_symtab_merge_decls_2): Likewise.
25327         (lto_symtab_merge_decls_1): Likewise.
25328         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
25329         * gimple.c (enum gtc_mode): Declare.
25330         (gimple_types_compatible_p): Make static.
25331
25332 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25333
25334         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
25335         temporary register to match Pmode.
25336
25337 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25338
25339         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
25340         and *vec_concatv4si_1_avx.
25341
25342 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25343
25344         PR rtl-optimization/48927
25345         * ira-conflicts.c (commutative_constraint_p): Use
25346         recog_data.alternative_enabled_p to disable alternatives where
25347         "enabled" attribute is false.
25348         (get_dup_num): Ditto.
25349         * ira-lives.c (single_reg_class): Ditto.
25350         (ira_implicitly_set_insn_hard_regs): Ditto.
25351
25352 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
25353
25354         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
25355         (dataflow_set_preserve_mem_locs): Likewise.
25356
25357 2011-05-09  Philipp Thomas  <pth@suse.de>
25358
25359         * config/mep/mep.c (mep_validate_vliw): Syntax description
25360         should not be translated.
25361
25362 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
25363
25364         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
25365         * config/mips/mips-tables.opt: New file (generated).
25366         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
25367         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
25368         MIPS_ARCH_OPTION_NATIVE): Define.
25369         * config/mips/mips.c (mips_cpu_info_table): Move contents to
25370         mips-cpus.def.
25371         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
25372         mips_parse_cpu): Remove.
25373         (mips_cpu_info_from_opt, mips_default_arch): New.
25374         (mips_handle_option): Don't assert that global structures are in
25375         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
25376         (mips_option_override): Use new variables and functions to set
25377         state of these options.  Use strcmp to check for individual CPU names.
25378         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
25379         definition.
25380         * config/mips/mips.opt (march=): Use ToLower and Enum.
25381         (mips): Use ToLower, Enum and Var.
25382         (mtune=): Use ToLower and Enum.
25383         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
25384
25385 2011-05-08  Jan Hubicka  <jh@suse.cz>
25386
25387         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
25388         Arrange type pairs to be UID ordered.
25389         (gimple_lookup_type_leader): Make inline.
25390
25391 2011-05-09  Nick Clifton  <nickc@redhat.com>
25392
25393         PR target/48899
25394         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
25395         PROCESSOR_DEFAULT.
25396
25397         PR target/48897
25398         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
25399         variable 's'.
25400
25401 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
25402
25403         * combine.c (simplify_comparison): Abstract out parts into...
25404         (simplify_compare_const): ... new function.
25405         (try_combine): Generalize parallel arithmetic/compare combining
25406         to call simplify_compare_const() and CANONICALIZE_COMPARE().
25407
25408 2011-05-08  Jan Hubicka  <jh@suse.cz>
25409
25410         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
25411         (cgraph_create_virtual_clone): Call hooks once virtual clone
25412         is finished.
25413         * cgraph.h (cgraph_clone_node): Update prototype.
25414         * ipa-cp.c (ipcp_estimate_growth): Use
25415         estimate_ipcp_clone_size_and_time.
25416         * ipa-inline-transform.c (clone_inlined_nodes): Update.
25417         * lto-cgraph.c (input_node): Update.
25418         * ipa-inline.c (recursive_inlining): Update.
25419         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
25420         (evaluate_conditions_for_known_args): Break out from ...
25421         (evaluate_conditions_for_edge): ... here.
25422         (evaluate_conditions_for_ipcp_clone): New function.
25423         (inline_node_duplication_hook): Update clone summary based
25424         on parameter map.
25425         (estimate_callee_size_and_time): Rename to ...
25426         (estimate_node_size_and_time): take NODE instead of EDGE;
25427         take POSSIBLE_TRUTHS as argument.
25428         (estimate_callee_size_and_time): Update.
25429         (estimate_ipcp_clone_size_and_time): New function.
25430         (do_estimate_edge_time): Update.
25431
25432 2011-05-08  Richard Guenther  <rguenther@suse.de>
25433
25434         PR middle-end/48908
25435         PR middle-end/48905
25436         * expmed.c (expand_shift_1): Compute adjusted constant shift
25437         amount manually.
25438
25439 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
25440
25441         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
25442
25443 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
25444
25445         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
25446
25447 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
25448
25449         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
25450
25451 2011-05-07  Jan Hubicka  <jh@suse.cz>
25452
25453         * ipa-inline-transform.c (inline_call): Account when program size
25454         decreases.
25455         * ipa-inline.c (relative_time_benefit): New function.
25456         (edge_badness): Reorganize to be power 2 based; fix thinko when
25457         computing badness for negative growth; update comments to match
25458         reality; better dumps.
25459
25460 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
25461
25462         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
25463         type to bool and adjust comment.
25464         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
25465         (fold_mathfn_compare): Remove calls to global_bindings_p.
25466         (fold_inf_compare): Likewise.
25467         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
25468         * c-tree.h (global_bindings_p): Adjust prototype.
25469         * c-decl.c (global_bindings_p): Return bool and simplify.
25470
25471 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
25472
25473         PR tree-optimization/48837
25474         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
25475         when accumulator transformation is performed.
25476
25477 2011-05-06  Jan Hubicka  <jh@suse.cz>
25478
25479         * i386.h (ix86_tune_indices): Add
25480         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
25481         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
25482         * i386.c (initial_ix86_tune_features): Add
25483         X86_SOFTARE_PREFETCHING_BENEFICIAL.
25484         (software_prefetching_beneficial_p): Remove predicate.
25485         (ix86_option_override_internal): Use new macro.
25486
25487 2011-05-06  Jan Hubicka  <jh@suse.cz>
25488
25489         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
25490
25491 2011-05-06  Jan Hubicka  <jh@suse.cz>
25492
25493         * cgraph.c (cgraph_add_thunk): Create real function node instead
25494         of alias node; finalize it and mark needed/reachale; arrange visibility
25495         to be right and add it into the corresponding same comdat group list.
25496         (dump_cgraph_node): Dump thunks.
25497         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
25498         cgraph_function_with_gimple_body_p,
25499         cgraph_first_function_with_gimple_body,
25500         cgraph_next_function_with_gimple_body): New functions.
25501         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
25502         New macros.
25503         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
25504         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
25505         * cgraphunit.c (cgraph_finalize_function): Only look into possible
25506         devirtualization when optimizing.
25507         (verify_cgraph_node): Verify thunks.
25508         (cgraph_analyze_function): Analyze thunks.
25509         (cgraph_mark_functions_to_output): Output thunks only in combination
25510         with function they are assigned to.
25511         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
25512         alias into normal node.
25513         (assemble_thunks): New functoin.
25514         (cgraph_expand_function): Use it.
25515         * lto-cgraph.c (lto_output_node): Stream thunks.
25516         (input_overwrite_node): Stream in thunks.
25517         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
25518         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
25519         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
25520         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
25521         (inline_analyze_function): Do not care about thunk jump functions.
25522         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
25523         * ipa-prop.c (ipa_prop_write_jump_functions): Use
25524         cgraph_function_with_gimple_body_p.
25525         * passes.c (do_per_function_toporder): Use
25526         cgraph_function_with_gimple_body_p.
25527         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
25528         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
25529         (function_called_by_processed_nodes_p): Likewise.
25530
25531 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
25532
25533         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
25534         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
25535         entries.
25536         (mabi=): Replace with separate entries for mabi=altivec,
25537         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
25538         mabi=ieeelongdouble and mabi=ibmlongdouble.
25539         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
25540         check for -mabi=spe without SPE ABI support here.
25541         (rs6000_handle_option): Replace OPT_mabi_ handling with
25542         OPT_mabi_altivec and OPT_mabi_spe handling.
25543
25544 2011-05-06  Cary Coutant  <ccoutant@google.com>
25545
25546         * dwarf2out.c (contains_subprogram_definition): New function.
25547         (should_move_die_to_comdat): Call it.
25548
25549 2011-05-06  Jeff Law  <law@redhat.com>
25550
25551         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
25552         remove_ctrl_stmt_and_useless_edges.
25553         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
25554         (fixup_template_block, thread_single_edge): Likewise.
25555         (mark_threaded_blocks): Use THREAD_TARGET.
25556
25557 2011-05-06  Alan Modra  <amodra@gmail.com>
25558
25559         PR target/48900
25560         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
25561         const0_rtx as the arg to the dummy __tls_get_addr libcall.
25562
25563 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
25564
25565         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
25566         constraint modifier to "r".
25567
25568 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
25569
25570         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
25571         fall through for OPT_mcmodel_.
25572
25573 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25574
25575         * config/s390/s390.c (s390_asm_trampoline_template): Comment
25576         instruction sizes.
25577         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
25578
25579 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25580
25581         PR target/47930
25582         * config/arm/arm.opt (marm): Document it.
25583         (mthumb): Reject negative variant.
25584
25585 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
25586
25587         PR target/48898
25588         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
25589         Fix typo in "ccvt" variable name.
25590
25591 2011-05-06  Tristan Gingold  <gingold@adacore.com>
25592
25593         PR target/48895
25594         * config/vms/vms-ar.c (main): Remove cwd variable.
25595
25596 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
25597
25598         PR debug/48902
25599         * var-tracking.c (prepare_call_arguments): Move else before #endif.
25600
25601 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
25602
25603         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
25604         * gimplify.c (gimplify_switch_expr): Likewise.
25605         * omp-low.c (expand_omp_sections): Likewise.
25606         * tree-eh.c (lower_try_finally_switch): Likewise.
25607         (lower_eh_dispatch): Likewise.
25608         * tree.h (build_case_label): Declare.
25609         * tree.c (build_case_label): Define.
25610
25611 2011-05-05  Jason Merrill  <jason@redhat.com>
25612
25613         PR c++/40975
25614         * tree-inline.c (copy_tree_r): Use copy_statement_list.
25615         (copy_statement_list): Don't recurse.
25616         * stor-layout.c (copy_self_referential_tree_r): Don't allow
25617         STATEMENT_LIST.
25618
25619 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
25620
25621         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
25622         through from -mfpu= handling.
25623         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
25624
25625 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
25626
25627         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
25628         POST_MODIFY.
25629
25630 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
25631
25632         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
25633         for 11.31.
25634         (hppa[12]*-*-hpux11*): Ditto.
25635         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
25636         * config/ia64/hpux-unix2003.h: New.
25637         * config/pa/pa-hpux1131.opt: New.
25638         * config/pa/pa-hpux1131.h: New.
25639         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
25640         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
25641         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
25642
25643 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
25644
25645         PR debug/48853
25646         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
25647         instead of mode as 3rd argument to recursive call.
25648         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
25649         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
25650         VOIDmode.
25651         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
25652         don't give up if mode is Pmode and mem_mode is not VOIDmode.
25653         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
25654         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
25655
25656 2011-05-05  Julian Brown  <julian@codesourcery.com>
25657
25658         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
25659         parenthesis in D-register case.
25660
25661 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
25662
25663         * opt-functions.awk (var_type_struct): Handle Enum options.
25664         * optc-gen.awk: Don't check range of variables of character type.
25665         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
25666         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
25667         rs6000_sdata_name, rs6000_explicit_options): Remove.
25668         (rs6000_option_override_internal): Check for -malign-power here.
25669         Use global_options_set instead of rs6000_explicit_options.
25670         (rs6000_parse_fpu_option): Remove.
25671         (rs6000_handle_option): Access variables via opts and opts_set
25672         pointers.  Use error_at and warning_at.  Add fall-through
25673         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
25674         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
25675         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
25676         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
25677         here.  Don't use rs6000_parse_fpu_option.
25678         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
25679         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
25680         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
25681         (mrecip=): Use Var.
25682         (mspe): Use Var and Save.
25683         (mtraceback=): Use Enum and Var.
25684         (rs6000_traceback_type): New Enum and EnumValue entries.
25685         (mfloat-gprs=): Use Enum, Var and Save.
25686         (rs6000_float_gprs): New Enum and EnumValue entries.
25687         (mlong-double-): use Var and Save.
25688         (msched-costly-dep=, minsert-sched-nops=): Use Var.
25689         (malign-): Use Enum and Var.
25690         (rs6000_alignment_flags): New Enum and EnumValue entries.
25691         (mfpu=): Use Enum.
25692         (fpu_type_t): New Enum and EnumValue entries.
25693         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25694         global_options_set instead of rs6000_explicit_options.
25695         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25696         global_options_set instead of rs6000_explicit_options.
25697         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25698         global_options_set instead of rs6000_explicit_options.
25699         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25700         global_options_set instead of rs6000_explicit_options.
25701         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
25702         global_options_set instead of rs6000_explicit_options.
25703         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
25704         global_options_set instead of rs6000_explicit_options.
25705         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
25706         definition.
25707         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
25708         global_options_set instead of rs6000_explicit_options.
25709         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
25710         (rs6000_cmodel): New Enum and EnumValue entries.
25711         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
25712         global_options_set instead of rs6000_explicit_options.
25713         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
25714         (mtls-size=): Use Enum and Var.
25715         (rs6000_tls_size): New Enum and EnumValue entries.
25716
25717 2011-05-05  Michael Matz  <matz@suse.de>
25718
25719         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
25720         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
25721         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
25722         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
25723         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
25724         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
25725         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
25726         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
25727         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
25728         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
25729         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
25730         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
25731         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
25732         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
25733         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
25734         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
25735
25736 2011-05-05  Richard Guenther  <rguenther@suse.de>
25737
25738         * expmed.c (expand_variable_shift): Rename to ...
25739         (expand_shift_1): ... this.  Take an expanded shift amount.
25740         For rotates recurse directly not building trees for the shift amount.
25741         (expand_variable_shift): Wrap around expand_shift_1.
25742         (expand_shift): Adjust.
25743
25744 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
25745
25746         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
25747
25748 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
25749
25750         * tree.h (get_pending_sizes): Remove prototype.
25751         (put_pending_size): Likewise.
25752         (put_pending_sizes): Likewise.
25753         * stor-layout.c (pending_sizes): Delete.
25754         (get_pending_sizes): Likewise.
25755         (put_pending_size): Likewise.
25756         (put_pending_sizes): Likewise.
25757         (variable_size): Do not call put_pending_size and tidy up.
25758         * function.h (struct function): Remove dont_save_pending_sizes_p.
25759         * lto-streamer-in.c (input_function): Do not stream it.
25760         * lto-streamer-out.c (output_function): Likewise.
25761         * tree-inline.c (initialize_cfun): Do not copy it.
25762         * c-decl.c (store_parm_decls): Do not set it.
25763         * omp-low.c (create_task_copyfn): Likewise.
25764         * tree-optimize.c (tree_rest_of_compilation): Likewise.
25765
25766 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
25767
25768         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
25769         conditions.
25770         (*movdf_internal): Ditto.
25771         (*movdf_internal_nointeger): Ditto.
25772         (*movsf_internal): Ditto.
25773
25774 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
25775
25776         * c-decl.c (finish_decl): Don't call get_pending_sizes.
25777         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
25778         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
25779         (c_variable_size): Remove.
25780         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
25781         call put_pending_sizes.
25782         (get_parm_info): Add parameter expr.  Use it to set
25783         arg_info->pending_sizes.
25784         (store_parm_decls): Use arg_info->pending_sizes instead or calling
25785         get_pending_sizes.
25786         * c-parser.c (c_parser_parms_declarator): Update call to
25787         c_parser_parms_list_declarator.
25788         (c_parser_parms_list_declarator): Take parameter expr.  Update
25789         call to push_parm_decl.  Update recursive call.  Don't call
25790         get_pending_sizes.  Update calls to get_parm_info.
25791         (c_parser_objc_method_definition): Update calls to
25792         c_parser_objc_method_decl and objc_start_method_definition.
25793         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
25794         (c_parser_objc_method_decl): Add parameter expr.  Update call to
25795         grokparm.
25796         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
25797         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
25798         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
25799
25800 2011-05-05  Michael Hope  <michael.hope@linaro.org>
25801
25802         PR pch/45979
25803         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
25804         __ARM_EABI__ hosts.
25805
25806 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25807
25808         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
25809         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
25810         (spu_output_mi_thunk): New function.
25811
25812 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25813
25814         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
25815         targetm.asm_out.print_operand.
25816         * config/sol2.c: Include target.h.
25817
25818 2011-05-04  Jan Hubicka  <jh@suse.cz>
25819
25820         * ipa-inline.c (reset_edge_caches): New function.
25821         (update_caller_keys): Add check_inlinablity_for; do not
25822         reset edge caches; remove now unnecesary loop.
25823         (update_callee_keys): Add comments; reset node_growth_cache of callee.
25824         (update_all_callee_keys): Likewise.
25825         (inline_small_functions): Sanity check cache; update code
25826         recomputing it.
25827
25828 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
25829
25830         PR rtl-optimization/47612
25831         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
25832         as the last insn of the sequence to be moved.
25833
25834 2011-05-04  Tobias Burnus  <burnus@net-b.de>
25835
25836         PR fortran/48864
25837         * doc/invoke.texi (Ofast): Document that it
25838         enables Fortran's -fno-protect-parens.
25839
25840 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
25841
25842         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
25843
25844 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
25845
25846         * stor-layout.c (variable_size): Do not issue errors.
25847
25848 2011-05-04  Richard Guenther  <rguenther@suse.de>
25849
25850         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
25851         for array-ref indices.
25852         (tree_coverage_counter_addr): Likewise.
25853         (build_fn_info_type): Use size_int for index types.
25854         (build_gcov_info): Likewise.
25855
25856 2011-05-04  Richard Guenther  <rguenther@suse.de>
25857
25858         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
25859         to build_int_cst.
25860         * c-typeck.c (really_start_incremental_init): Use bitsize_int
25861         for constructor indices.
25862         (push_init_level): Likewise.
25863
25864 2011-05-04  Richard Guenther  <rguenther@suse.de>
25865
25866         * explow.c (promote_mode): Move variable declarations before code.
25867
25868 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
25869
25870         * tree.h (build_function_type_array): Declare.
25871         (build_varargs_function_type_array): Declare.
25872         (build_function_type_vec, build_varargs_function_type_vec): Define.
25873         * tree.c (build_function_type_array_1): New function.
25874         (build_function_type_array): New function.
25875         (build_varargs_function_type_array): New function.
25876
25877 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
25878
25879         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
25880         before setting STMT_VINFO_TYPE.
25881
25882 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25883
25884         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
25885         instead of spu_pass_by_reference.
25886
25887 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25888
25889         * calls.c (emit_library_call_value_1): Invoke
25890         promote_function_mode hook on libcall arguments.
25891         * explow.c (promote_function_mode, promote_mode): Handle TYPE
25892         argument being NULL.
25893         * targhooks.c (default_promote_function_mode): Lisewise.
25894         * config/s390/s390.c (s390_promote_function_mode): Likewise.
25895         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
25896
25897         * doc/tm.texi: Document that TYPE argument might be NULL.
25898
25899 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
25900
25901         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
25902
25903 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
25904
25905         From Bernd Schmidt
25906         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
25907
25908 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25909
25910         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
25911         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
25912         Move ...
25913         * mips-tfile.c: ... here.
25914         Don't include coretypes.h, tm.h, filenames.h.
25915         (saber_stop): Remove definition and all calls.
25916         [__SABER__]: Remove.
25917         (__LINE__): Remove default.
25918         (Size_t, Ptrdiff_t): Remove definitions.
25919         Replace by size_t, ptrdiff_t.
25920         [!MIPS_DEBUGGING_INFO]: Remove.
25921         (SHASH_SIZE, THASH_SIZE): Remove defaults.
25922         (progname): Add const.
25923         (STATIC): Remove.
25924         Replace all uses by static.
25925         (ALIGN_SYMTABLE_OFFSET): Remove default.
25926         * mips-tdump.c: Don't include coretypes.h, tm.h.
25927         Remove !MIPS_IS_STAB guard.
25928         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
25929         $(TM_H), filenames.h dependencies.
25930         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
25931
25932 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
25933
25934         From Jie Zhang
25935         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
25936         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
25937
25938 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
25939
25940         From Bernd Schmidt
25941         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
25942         account and save/restore RETS.
25943         (PROFILE_BEFORE_PROLOGUE): Define.
25944         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
25945         the push insn to use predecrement.
25946
25947 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
25948
25949         From Jie Zhang
25950         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
25951
25952 2011-05-04  Nick Clifton  <nickc@redhat.com>
25953
25954         * config/mn10300/mn10300.c: Include cfgloop.h.
25955         (DUMP): New macro.
25956         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
25957         Lcc or a FLcc insn into the instruction stream.
25958         (mn10300_block_contains_call): New function.  Returns true if the
25959         given basic block contains a CALL insn.
25960         (mn10300_loop_contains_call_insn): New function.  Returns true if
25961         the given loop contains a CALL insn.
25962         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
25963         to use the SETLB and Lcc or FLcc insns.
25964         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
25965         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
25966         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
25967         disable the SETLB optimization.
25968         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
25969         __SETLB__ or __NO_SETLB__.
25970         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
25971         (movsf_internal): Handle MDR register.
25972         (cmpsi): Make visible.
25973         (setlb): New pattern.
25974         (Lcc): New pattern.
25975         (FLcc): New pattern.
25976
25977 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
25978
25979         PR target/48860
25980         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
25981         for reg<->xmm moves.
25982         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
25983         (vec_concatv2di_rex64_sse): Ditto.
25984         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
25985         (*vec_extractv2di_1_rex64): Ditto.
25986
25987         Revert:
25988         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
25989
25990         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
25991         reg<->xmm moves.
25992         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
25993
25994 2011-05-04  Richard Guenther  <rguenther@suse.de>
25995
25996         * tree.h (int_const_binop): Remove notrunc argument.
25997         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
25998         create integer constants that are properly truncated.
25999         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
26000         (const_binop): Remove zero notrunc argument to int_const_binop.
26001         (size_binop_loc): Likewise.
26002         (fold_div_compare): Likewise.
26003         (maybe_canonicalize_comparison_1): Likewise.
26004         (fold_comparison): Likewise.
26005         (fold_binary_loc): Likewise.
26006         (multiple_of_p): Likewise.
26007         * expr.c (store_constructor): Likewise.
26008         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
26009         (maybe_fold_stmt_addition): Likewise.
26010         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
26011         * stor-layout.c (layout_type): Likewise.
26012         * tree-data-ref.c (tree_fold_divides_p): Likewise.
26013         * tree-sra.c (build_ref_for_offset): Likewise.
26014         (build_user_friendly_ref_for_offset): Likewise.
26015         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
26016         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
26017         * tree-ssa-loop-niter.c (inverse): Likewise.
26018         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
26019         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
26020         * tree-switch-conversion.c (check_range): Likewise.
26021         (build_constructors): Likewise.
26022         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
26023         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
26024         (extract_range_from_assert): Likewise.
26025         (vrp_int_const_binop): Likewise.
26026         (extract_range_from_binary_expr): Likewise.
26027         (extract_range_from_unary_expr): Likewise.
26028         (check_array_ref): Likewise.
26029         (find_case_label_range): Likewise.
26030         (simplify_div_or_mod_using_ranges): Likewise.
26031         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
26032         comparing case labels for merging.
26033
26034 2011-05-03  Mark Wielaard  <mjw@redhat.com>
26035
26036         * dwarf2out.c (debug_str_hash_forced): Removed.
26037         (gen_label_for_indirect_string): Removed.
26038         (get_debug_string_label): Removed.
26039         (AT_string_form): Generate label directly.
26040         (output_indirect_string): Test indirect_string_node for
26041         DW_FORM_strp instead of checking label and refcount.
26042         (prune_indirect_string): Removed.
26043         (prune_unused_types): Don't check debug_str_hash_forced or
26044         call prune_indirect_string.
26045
26046 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
26047
26048         PR other/48093
26049         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
26050
26051 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
26052
26053         PR debug/47994
26054         PR debug/47919
26055         * combine.c (try_combine): Skip debug insns at m_split tests.
26056
26057 2011-04-26  Mark Wielaard  <mjw@redhat.com>
26058
26059         PR42288
26060         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
26061         when info_section_emitted.
26062
26063 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
26064
26065         * config/mips/mips-opts.h: New.
26066         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
26067         to mips-opts.h.
26068         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
26069         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
26070         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
26071         via opts pointer.
26072         * config/mips/mips.h (enum mips_code_readable_setting): Move to
26073         mips-opts.h.
26074         (mips_abi, mips_code_readable): Don't declare.
26075         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
26076         (mabi=): Use Enum and Var.
26077         (mips_abi): New Enum and EnumValue entries.
26078         (mcode-readable=): Use Enum and Var.
26079         (mips_code_readable_setting): New Enum and EnumValue entries.
26080         (mr10k-cache-barrier=): Use Enum and Var.
26081         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
26082
26083 2011-05-03  Jan Hubicka  <jh@suse.cz>
26084
26085         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
26086         replace hash by pointer map.
26087         (cgraph_node_set_element_def, cgraph_node_set_element,
26088         const_cgraph_node_set_element, varpool_node_set_element_def,
26089         varpool_node_set_element, const_varpool_node_set_element): Remove.
26090         (free_cgraph_node_set, free_varpool_node_set): New function.
26091         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
26092         * tree-emutls.c: Free varpool node set.
26093         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
26094         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
26095         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
26096         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
26097         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
26098         Move here from ipa.c; implement using pointer_map
26099         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
26100         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
26101         debug_cgraph_node_set, varpool_node_set_new,
26102         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
26103         dump_varpool_node_set, debug_varpool_node_set):
26104         Move to ipa-uitls.c.
26105         * passes.c (ipa_write_summaries): Update.
26106
26107 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26108
26109         From Mike Frysinger:
26110         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
26111         bf542/bf544/bf547/bf548/bf549.
26112
26113 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
26114
26115         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
26116
26117 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26118
26119         From Bernd Schmidt:
26120         * config/bfin/bfin.md (MOVCC): New mode_macro.
26121         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
26122         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
26123         comments from generated assembly.
26124
26125 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26126
26127         From Bernd Schmidt
26128         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
26129         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
26130         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
26131         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
26132         * config/bfin/lib1funcs.asm (___muldi3): New function.
26133
26134 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26135
26136         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
26137         build_function_type_list instead of build_function_type.
26138         Rearrange initialization of `args' to do so.
26139
26140 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26141
26142         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
26143         instead of build_function_type.
26144
26145 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26146
26147         * config/rs6000/rs6000.c (spe_init_builtins): Call
26148         build_function_type_list instead of build_function_type.
26149         (paired_init_builtins, altivec_init_builtins): Likewise.
26150         (builtin_function_type): Likewise.
26151
26152 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26153
26154         * config/sh/sh.c (sh_media_init_builtins): Call
26155         build_function_type_list instead of build_function_type.
26156
26157 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26158
26159         * config/sparc/sparc.c (sparc_file_end): Call
26160         build_function_type_list instead of build_function_type.
26161
26162 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26163
26164         * config/alpha/alpha.c (alpha_init_builtins): Call
26165         build_function_type_list instead of build_function_type.
26166
26167 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26168
26169         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
26170         build_function_type_list instead of build_function_type.
26171
26172 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26173
26174         * config/iq2000/i2000.c (iq2000_init_builtins): Call
26175         build_function_type_list instead of build_function_type.
26176         Delete `endlink' variable.
26177
26178 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26179
26180         * config/avr/avr.c (avr_init_builtins): Call
26181         build_function_type_list instead of build_function_type.
26182
26183 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26184
26185         * config/picochip/picochip.c (picochip_init_builtins): Call
26186         build_function_type_list instead of build_function_type.
26187         Delete `endlink' variable.
26188
26189 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26190
26191         * config/bfin/bfin.c (bfin_init_builtins): Call
26192         build_function_type_list instead of build_function_type.
26193
26194 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26195
26196         From Bernd Schmidt
26197         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
26198         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
26199
26200 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26201
26202         From Jie Zhang:
26203         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
26204         libbffastfp overrides libgcc when -mfast-fp.
26205
26206 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26207
26208         Originally from Bernd Schmidt
26209         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
26210         * config/bfin/bfin.c (override_options): Test it and error if
26211         TARGET_FDPIC.
26212
26213 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26214
26215         Originally From Bernd Schmidt
26216         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
26217         FD-PIC.
26218
26219 2011-05-03  Jeff Law  <law@redhat.com>
26220
26221         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
26222         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
26223         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
26224         than accessing AUX field directly.  Free the AUX field before
26225         clearing it.
26226         (thread_block, thread_through_loop_header): Likewise.
26227         (thread_single_edge, mark_threaded_blocks): Likewise.
26228         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
26229         (register_jump_thread): Do not attempt to thread to a NULL edge.
26230
26231 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
26232
26233         * function.c (init_function_start): Call decide_function_section.
26234         * varasm.c (decide_function_section): New function.
26235         (assemble_start_function): When not using
26236         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
26237         or first_function_block_is_cold.
26238         * rtl.h (decide_function_section): Declare.
26239
26240 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
26241             Jakub Jelinek  <jakub@redhat.com>
26242
26243         PR target/48774
26244         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
26245         only succeed if req_mode is the same as set_mode.
26246
26247 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
26248
26249         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
26250         * genemit.c (gen_exp): Handle RETURN.
26251         * emit-rtl.c (verify_rtx_sharing): Likewise.
26252         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
26253         * rtl.c (copy_rtx): RETURN is shared.
26254         * rtl.h (enum global_rtl_index): Add GR_RETURN.
26255         (ret_rtx): New.
26256         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
26257         * config/s390/s390.c (s390_emit_epilogue): Likewise.
26258         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
26259         * config/cris/cris.c (cris_expand_return): Likewise.
26260         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
26261         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
26262         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
26263         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
26264         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
26265         Likewise.
26266         * config/v850/v850.c (expand_epilogue): Likewise.
26267         * config/bfin/bfin.c (bfin_expand_call): Likewise.
26268         * config/arm/arm.md (epilogue): Likewise.
26269         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
26270         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
26271         variable to ret_reg.
26272
26273 2011-05-03  Richard Guenther  <rguenther@suse.de>
26274
26275         PR lto/48846
26276         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
26277         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
26278         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
26279
26280 2011-05-03  Richard Guenther  <rguenther@suse.de>
26281
26282         * c-decl.c (grokdeclarator): Instead of looking at
26283         TREE_OVERFLOW check if the constant fits in the index type.
26284
26285 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
26286
26287         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
26288         (vec_store_lanes<mode><mode>): Likewise.
26289
26290 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
26291
26292         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
26293         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
26294         convert_optab_index values.
26295         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
26296         * genopinit.c (optabs): Initialize the new optabs.
26297         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
26298         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
26299         (expand_STORE_LANES): New functions.
26300         * tree.h (build_array_type_nelts): Declare.
26301         * tree.c (build_array_type_nelts): New function.
26302         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
26303         (vect_model_load_cost): Likewise.
26304         (vect_store_lanes_supported, vect_load_lanes_supported)
26305         (vect_record_strided_load_vectors): Declare.
26306         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
26307         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
26308         (vect_transform_strided_load): Split out statement recording into...
26309         (vect_record_strided_load_vectors): ...this new function.
26310         * tree-vect-stmts.c (create_vector_array, read_vector_array)
26311         (write_vector_array, create_array_ref): New functions.
26312         (vect_model_store_cost): Add store_lanes_p argument.
26313         (vect_model_load_cost): Add load_lanes_p argument.
26314         (vectorizable_store): Try to use store-lanes functions for
26315         interleaved stores.
26316         (vectorizable_load): Likewise load-lanes and loads.
26317         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
26318         to vect_model_store_cost.
26319         (vect_build_slp_tree): Likewise vect_model_load_cost.
26320
26321 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
26322
26323         * hooks.h (hook_bool_mode_uhwi_false): Declare.
26324         * hooks.c (hook_bool_mode_uhwi_false): New function.
26325         * target.def (array_mode_supported_p): New hook.
26326         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
26327         * doc/tm.texi: Regenerate.
26328         * stor-layout.c (mode_for_array): New function.
26329         (layout_type): Use it.
26330         * config/arm/arm.c (arm_array_mode_supported_p): New function.
26331         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
26332
26333 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
26334
26335         PR target/48723
26336         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
26337         for -fstack-check if the size to allocate is negative.
26338
26339 2011-05-02  Lawrence Crowl  <crowl@google.com>
26340
26341         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
26342         (timevar_cond_start): New for starting a timer only when it is not
26343         already running.
26344         (timevar_cond_stop): New for stopping a timer when it was not already
26345         running.
26346
26347         * timevar.c (timevar_stop): Enable start/stop timers to start again.
26348         (timevar_cond_start): New as above.
26349         (timevar_cond_stop): New as above.
26350
26351         * timevar.def: Add start/stop timers for compiler phases,
26352         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
26353         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
26354         and TV_PHASE_FINALIZE.
26355         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
26356         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
26357         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
26358         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
26359         Make unused TV_OVERLOAD into a start/stop timer.
26360
26361         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
26362         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
26363         to indicate that they are start/stop timers.
26364
26365         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
26366         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
26367         Move initialization to do_compile.
26368         (do_compile): Add initialization from above.
26369         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
26370
26371         * c-decl.c (c_write_global_declarations): Add start/stop of
26372         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
26373
26374         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
26375         or TV_PARSE_INLINE, as appropriate.
26376         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
26377         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
26378
26379 2011-05-02  Jason Merrill  <jason@redhat.com>
26380
26381         PR c++/40975
26382         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
26383
26384 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
26385
26386         PR c/35445
26387         * c-decl.c (finish_decl): Only create a composite if the types are
26388         compatible.
26389
26390 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
26391
26392         * config/fr30/fr30-protos.h (Mmode): Don't define.
26393         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
26394         definition where used.
26395         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
26396         define.  Expand definitions where used.
26397         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
26398         Expand definitions where used.
26399         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
26400         rx_function_arg, rx_function_arg_advance,
26401         rx_function_arg_boundary): Expand definitions of those macros.
26402         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
26403         definition where used.
26404
26405 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
26406
26407         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
26408         reg<->xmm moves.
26409         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
26410         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
26411         with *movv2sf_internal_rex64_avx.
26412         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
26413         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
26414         Use %v prefix in insn mnemonic to handle TARGET_AVX.
26415         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
26416         "vex" in "prefix" attribute calculation.
26417         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
26418
26419 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
26420
26421         PR target/47951
26422         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
26423         inputs match the output.
26424
26425 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
26426
26427         PR target/47955
26428         * config/m68k/m68k.c (m68k_expand_prologue): Set
26429         current_function_static_stack_size.
26430
26431 2011-05-02  Jan Hubicka  <jh@suse.cz>
26432
26433         * lto-streamer.c (lto_streamer_cache_insert_1,
26434         lto_streamer_cache_lookup, lto_streamer_cache_create,
26435         lto_streamer_cache_delete): Use pointer map instead of hashtable.
26436         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
26437
26438 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
26439
26440         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
26441         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
26442         config/m68k/t-opts: New files.
26443         * config/m68k/m68k-tables.opt: New file (generated).
26444         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
26445         extra_options and m68k/t-opts to tmake_file.
26446         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
26447         (all_isas): Initialize using m68k-isas.def.
26448         (all_microarchs): Initialize using m68k-microarchs.def.
26449         (m68k_find_selection): Remove.
26450         (m68k_handle_option): Don't assert that global structures are in
26451         use.  Use error_at.  Access variables via opts pointer.  Don't
26452         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
26453         directly for -m68020-40 and -m68020-60.
26454         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
26455         m68k_tune_entry here.
26456         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
26457         to m68k-opts.h.
26458         (m68k_library_id_string): Remove declaration.
26459         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
26460         (m68k_library_id_string): New Variable.
26461         (march=, mcpu=, mtune=): Use Enum and Var.
26462
26463 2011-05-02  Richard Guenther  <rguenther@suse.de>
26464
26465         * varasm.c (output_constructor_regular_field): Compute zero-based
26466         index with double-ints.  Make sure to ICE instead of producing
26467         wrong code.
26468         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
26469         in asserts.  Properly use a signed type.
26470
26471 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
26472
26473         * config/i386/sse.md (V): New mode iterator.
26474         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
26475         TARGET_SSE2.
26476         (V_256): Rename from AVX256MODE.
26477         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
26478         condition to all users.
26479         (VF1): Ditto.
26480         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
26481         condition to all users.
26482         (VF_128): Make V4SF mode unconditional.
26483         (VF_256): Rename from AVX256MODEF2P.
26484         (VI4F_128): Rename from SSEMODE4S.
26485         (VI8F_128): Rename from SSEMODE2D.
26486         (VI4F_256): Rename from AVX256MODE8P.
26487         (VI8F_256): Rename from AVX256MODE4P.
26488         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
26489         (ssescalarmodesuffix): Remove SF and DF modes.
26490         (SSEMODE124): Remove.
26491         (SSEMODE1248): Ditto.
26492         (SSEMODEF2P): Ditto.
26493         (AVXMODEF2P): Ditto.
26494         (AVXMODEFDP): Ditto.
26495         (AVXMODEFSP): Ditto.
26496         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
26497         unconditional.
26498         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
26499         unconditional.
26500         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
26501         xop_pcmov_<mode>256.  Use V mode iterator.
26502
26503         Adjust RTX patterns globally for renamed mode attributes.
26504
26505 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26506
26507         * haifa-sched.c (sched_emit_insn): Emit insn before first
26508         non-scheduled insn.  Inform back-end about new insn.  Add
26509         new insn to scheduled_insns list.
26510
26511 2011-05-02  Richard Guenther  <rguenther@suse.de>
26512
26513         PR tree-optimization/48822
26514         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
26515         (process_scc): Indicate which iteration we start.
26516
26517 2011-05-02  Jan Hubicka  <jh@suse.cz>
26518
26519         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
26520         (lto_section_overrun): New.
26521         * lto-section-out.c (append_block): Rename to ...
26522         (lto_append_block): ... this one; export.
26523         (lto_output_1_stream): Move lto lto-streamer.h
26524         (lto_output_data_stream): Update.
26525         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
26526         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
26527         functions.
26528
26529 2011-05-02  Richard Guenther  <rguenther@suse.de>
26530
26531         * tree.c (tree_code_counts): New global array.
26532         (record_node_allocation_statistics): Count individual tree codes.
26533         (dump_tree_statistics): Dump individual code stats.
26534
26535 2011-05-01  Jan Hubicka  <jh@suse.cz>
26536
26537         * ipa-inline.c (caller_growth_limits): Fix thinko when
26538         looking for largest stack frame.
26539         * ipa-inline.h (dump_inline_summary): Declare.
26540         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
26541         on stack usage.
26542         (dump_inline_summary): Export.
26543         (debug_inline_summary): Declare as DEBUG_FUNCTION.
26544
26545 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
26546
26547         * reginfo.c (memory_move_cost): Change rclass argument type form
26548         'enum reg_class' to reg_class_t.
26549         * reload.h (memory_move_cost): Update prototype.
26550         * postreload.c reload_cse_simplify_set): Change type dclass var to
26551         reg_class_t.
26552         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
26553         Update prototype.
26554         (ira_allocate_and_set_costs): Change aclass argument type form
26555         'enum reg_class' to reg_class_t.
26556         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
26557         Change aclass argument type to reg_class_t.
26558         (update_conflict_hard_reg_costs): Change type aclass and pref vars
26559         to reg_class_t.
26560         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
26561         memory_move_cost call.
26562
26563         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
26564         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
26565         Change type tmp var to reg_class_t.
26566
26567 2011-04-30  Jan Hubicka  <jh@suse.cz>
26568
26569         * ipa-inline.c (can_inline_edge_p): Disregard limits when
26570         inlining into function with flatten attribute.
26571         (want_inline_small_function_p): Be more realistic about inlining
26572         cold calls where callee size grows.
26573
26574 2011-04-30  Jan Hubicka  <jh@suse.cz>
26575
26576         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
26577         flags.
26578
26579 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
26580
26581         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
26582         PRINT_OPERAND_PUNCT_VALID_P): Remove.
26583         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
26584         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
26585         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26586         (print_operand): Rename to...
26587         (sparc_print_operand): ...this. Make static. Adjust
26588         sparc_print_operand function call.
26589         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
26590         functions.
26591
26592 2011-04-30  Jan Hubicka  <jh@suse.cz>
26593
26594         PR middle-end/48752
26595         * ipa-inline.c (early_inliner): Disable when doing late
26596         addition of function.
26597
26598 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
26599
26600         * dwarf2out.c (get_address_mode): New inline.
26601         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
26602         if not dwarf_strict emit
26603         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
26604         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
26605         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
26606         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
26607         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
26608         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
26609         mem_loc_descriptor callers.
26610         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
26611         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
26612         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
26613         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
26614         (base_types): New variable.
26615         (get_base_type_offset, calc_base_type_die_sizes,
26616         base_type_for_mode, mark_base_types, base_type_cmp,
26617         move_marked_base_types): New functions.
26618         (calc_die_sizes): Assert that die_offset is 0 or equal to
26619         next_die_offset.
26620         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
26621         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
26622         callers.  If not dwarf_strict, call mem_loc_descriptor even for
26623         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
26624         (gen_subprogram_die): Don't give up on call site parameters
26625         with non-integral or large integral modes.  Adjust
26626         mem_loc_descriptor callers.
26627         (prune_unused_types): Call prune_unused_types_mark on base_types
26628         vector entries.
26629         (resolve_addr): Call mark_base_types.
26630         (dwarf2out_finish): Call move_marked_base_types.
26631
26632         PR tree-optimization/48809
26633         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
26634         type.
26635         (gen_inbound_check): Don't compute index_expr - range_min in utype
26636         again, instead reuse SSA_NAME initialized in build_arrays.
26637         Remove two useless gsi_for_stmt calls.
26638
26639 2011-04-29  Jeff Law  <law@redhat.com>
26640
26641         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
26642
26643 2011-04-29  Martin Jambor  <mjambor@suse.cz>
26644
26645         * cgraph.h (cgraph_postorder): Remove declaration.
26646         * ipa-utils.h (ipa_free_postorder_info): Declare.
26647         (ipa_reverse_postorder): Likewise.
26648         * cgraphunit.c: Include ipa-utils.h.
26649         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
26650         * ipa-inline.c: Include ipa-utils.h.
26651         (ipa_inline): Update call to ipa_reverse_postorder.
26652         * ipa-pure-const.c (propagate_pure_const): Update call to
26653         ipa_reduced_postorder and ipa_print_order.  Call
26654         ipa_free_postorder_info to clean up.
26655         (propagate_nothrow): Likewise.
26656         * ipa-reference.c (propagate): Removed a useless call to
26657         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
26658         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
26659         * ipa.c: Include ipa-utils.h.
26660         (ipa_profile): Update call to ipa_reverse_postorder.
26661         (cgraph_postorder): Moved to...
26662         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
26663         (ipa_utils_print_order): Renamed to ipa_print_order.
26664         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
26665         comments.
26666         (ipa_free_postorder_info): New function.
26667         * passes.c: Include ipa-utils.h.
26668         (do_per_function_toporder): Update call to ipa_reverse_postorder.
26669         (ipa_write_summaries): Likewise.
26670         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
26671         (cgraphunit.o): Likewise.
26672         (ipa.o): Likewise.
26673         (ipa-inline.o): Likewise.
26674
26675 2011-04-29  Jan Hubicka  <jh@suse.cz>
26676
26677         * ipa-inline.h (clause_t): Turn into unsigned int.
26678         * ipa-inline-analysis.c (add_clause): Do more simplification.
26679         (and_predicates): Shortcut more cases.
26680         (predicates_equal_p): Move forward; check that clauses are properly
26681         ordered.
26682         (or_predicates): Shortcut more cases.
26683         (edge_execution_predicate): Rewrite as...
26684         (set_cond_stmt_execution_predicate): ... this function; handle
26685         __builtin_constant_p.
26686         (set_switch_stmt_execution_predicate): New .
26687         (compute_bb_predicates): New.
26688         (will_be_nonconstant_predicate): Update TODO.
26689         (estimate_function_body_sizes): Use compute_bb_predicates
26690         and free them later, always try to estimate if stmt is constant.
26691         (estimate_time_after_inlining, estimate_size_after_inlining):
26692         Gracefully handle optimized out edges.
26693         (read_predicate): Fix off by one error.
26694
26695 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
26696
26697         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
26698
26699 2011-04-27  Xinliang David Li  <davidxl@google.com>
26700
26701         * tree-profile.c (init_ic_make_global_vars): Set
26702         tls attribute on ic vars.
26703         * coverage.c (coverage_end_function): Initialize
26704         function_list with zero.
26705
26706 2011-04-29  Richard Guenther  <rguenther@suse.de>
26707
26708         * builtins.c (fold_builtin_classify_type): Use integer_type_node
26709         for the type of the result.
26710         (fold_builtin_isascii): Likewise.
26711         (fold_builtin_toascii): Use integer_type_node where appropriate.
26712         (fold_builtin_logb): Likewise.
26713         (fold_builtin_frexp): Likewise.
26714         (fold_builtin_strstr): Likewise.
26715         (fold_builtin_strpbrk): Likewise.
26716         (fold_builtin_fputs): Likewise.
26717         (fold_builtin_sprintf): Likewise.
26718         (fold_builtin_snprintf): Likewise.
26719         (fold_builtin_printf): Likewise.
26720         (do_mpfr_remquo): Use a proper type for the assigned constant.
26721         (do_mpfr_lgamma_r): Likewise.
26722         * dwarf2out.c (resolve_one_addr): Use size_int.
26723         * except.c (init_eh): Likewise.
26724         (assign_filter_values): Use integer_type_node for filter values.
26725         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
26726         indices.
26727         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
26728         for EH region numbers.
26729         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
26730         for the shift amount.
26731
26732 2011-04-29  Richard Guenther  <rguenther@suse.de>
26733
26734         * expr.h (expand_shift): Rename to ...
26735         (expand_variable_shift): ... this.
26736         (expand_shift): Take a constant shift amount.
26737         * expmed.c (expand_shift): Rename to ...
26738         (expand_variable_shift): ... this.
26739         (expand_shift): New wrapper around expand_variable_shift.
26740         * expr.c (convert_move, emit_group_load_1, emit_group_store,
26741         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
26742         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
26743         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
26744         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
26745         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
26746         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
26747         emit_store_flag_1, emit_store_flag): Likewise.
26748         * builtins.c (expand_builtin_signbit): Likewise.
26749         * calls.c (load_register_parameters): Likewise.
26750         * function.c (assign_parm_setup_block): Likewise.
26751         * lower-subreg.c (resolve_shift_zext): Likewise.
26752         * optabs.c (widen_bswap, expand_abs_nojump,
26753         expand_one_cmpl_abs_nojump, expand_float): Likewise.
26754         * spu/spu.c (spu_expand_extv): Likewise.
26755         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
26756
26757 2011-04-29  Richard Guenther  <rguenther@suse.de>
26758
26759         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
26760         for the remapped region number.
26761         * predict.c (build_predict_expr): Use integer_type_node for the
26762         predict kind.
26763         * fold-const.c (fold_binary_loc): Use integer_type_node for
26764         the shift amount.  Use a proper type for the PLUS_EXPR operand.
26765
26766 2011-04-29  Michael Matz  <matz@suse.de>
26767
26768         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
26769         other trees that just builtins.
26770         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
26771
26772 2011-04-29  Richard Guenther  <rguenther@suse.de>
26773
26774         * tree-nested.c (get_trampoline_type): Use size_int.
26775         (get_nl_goto_field): Likewise.
26776         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
26777         for all indexes.
26778         (lower_eh_constructs_2): Likewise.
26779         (lower_resx): Likewise.
26780         (lower_eh_dispatch): Likewise.
26781         * tree-mudflap.c (mf_build_string): Use size_int.
26782         (mudflap_register_call): Use integer_type_node for the flag.
26783         (mudflap_enqueue_constant): Use size_int.
26784         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
26785         instead of rebuilding it.
26786
26787 2011-04-29  Richard Guenther  <rguenther@suse.de>
26788
26789         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
26790         Handle OBJ_TYPE_REF.
26791         (find_func_aliases_for_call): Use it more consistently.
26792
26793 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
26794
26795         * haifa-sched.c (last_nondebug_scheduled_insn): New.
26796         (rank_for_schedule): Use it.
26797         (schedule_block): Set it.
26798
26799 2011-04-28  David Li  <davidxl@google.com>
26800
26801         * tree.c (crc32_string): Use crc32_byte.
26802         (crc32_byte): New function.
26803         * tree.h (crc32_byte): New function.
26804         * gcov.c (read_graph_file): Handle new cfg_cksum.
26805         (read_count_file): Ditto.
26806         * profile.c (instrument_values): Ditto.
26807         (get_exec_counts): Ditto.
26808         (read_profile_edge_counts): Ditto.
26809         (compute_branch_probabilities): Ditto.
26810         (compute_value_histograms): Ditto.
26811         (branch_prob): Ditto.
26812         (end_branch_prob): Ditto.
26813         * coverage.c (read_counts_file): Ditto.
26814         (get_coverage_counts): Ditto.
26815         (tree_coverage_counter_addr): Ditto.
26816         (coverage_checksum_string): Ditto.
26817         (coverage_begin_output): Ditto.
26818         (coverage_end_function): Ditto.
26819         (build_fn_info_type): Ditto.
26820         (build_fn_info_value): Ditto.
26821         * libgcov.c (gcov_exit): Ditto.
26822         * gcov-dump.c (tag_function): Ditto.
26823         (compute_checksum): Remove.
26824
26825 2011-04-29  Alan Modra  <amodra@gmail.com>
26826
26827         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26828         unspec plus offset.  Tidy macho code.
26829
26830 2011-04-29  Martin Jambor  <mjambor@suse.cz>
26831
26832         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
26833         node instead of a decl.  Update all callers.
26834         * cgraph.h: Update declaration.
26835
26836 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
26837
26838         PR tree-optimization/48765
26839         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
26840         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
26841         to indicate if loop aware SLP is being used.  Scan the statements
26842         and update the vectorization factor according to the type of
26843         vectorization before statement analysis.
26844         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
26845         pass it to vect_analyze_loop_operations.
26846         (vectorizable_reduction): Set number of copies to 1 in case of pure
26847         SLP statement.
26848         * tree-vect-stmts.c (vectorizable_conversion,
26849         vectorizable_assignment, vectorizable_shift,
26850         vectorizable_operation, vectorizable_type_demotion,
26851         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
26852         Likewise.
26853         (vectorizable_condition): Move the check that it is not SLP
26854         vectorization before the number of copies check.
26855         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
26856         to vectorize the loop using SLP.
26857
26858 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
26859
26860         PR middle-end/48597
26861         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
26862         inline asm.
26863
26864 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
26865
26866         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
26867         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
26868         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
26869         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
26870         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
26871         linux*.h headers.
26872         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
26873         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26874         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26875         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26876         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26877         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
26878         REG_NAME.
26879         * config/i386/linux.h (REG_NAME): Don't define.
26880         * config/i386/linux64.h (REG_NAME): Don't define.
26881         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
26882         Undefine before defining.
26883
26884 2011-04-28  Jan Hubicka  <jh@suse.cz>
26885
26886         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
26887         nonconstant_names array.
26888         (estimate_function_body_sizes): Build nonconstant_names array; handle
26889         BUILT_IN_CONSTANT_P.
26890
26891 2011-04-28  Richard Guenther  <rguenther@suse.de>
26892
26893         PR bootstrap/48804
26894         Revert
26895         2011-04-28  Richard Guenther  <rguenther@suse.de>
26896
26897         * tree-ssa-structalias.c (solve_constraints): Build succ graph
26898         as late as possible.
26899
26900 2011-04-28  Richard Guenther  <rguenther@suse.de>
26901
26902         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
26903         (debug_constraint): Do it here.
26904         (dump_constraints): And here.
26905         (rewrite_constraints): And here.
26906         (dump_constraint_edge): Remove.
26907         (dump_constraint_graph): Rewrite to produce DOT output.
26908         (solve_constraints): Build succ graph as late as possible.
26909         Dump constraint graphs before and after solving.
26910
26911 2011-04-28  Richard Guenther  <rguenther@suse.de>
26912
26913         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26914         New function split out from ...
26915         (find_func_aliases): ... here.  Call it.
26916         (find_func_aliases_for_call): Likewise.
26917
26918 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
26919
26920         * internal-fn.h (internal_fn_name_array): Declare.
26921         (internal_fn_flags_array): Likewise.
26922
26923 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
26924
26925         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
26926         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
26927         Move from sse.md.
26928         (ssemodefsuffix): Remove.
26929         (ssevecmodesuffix): New mode attribute.
26930         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
26931         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
26932         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
26933         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
26934         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
26935         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
26936         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
26937         ssemodesuffix mode attribute.
26938         (float splitters): Use ssevecmodesuffix mode attribute.
26939         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
26940         (sseinsmode): Rename from avxvecmode.
26941         (avxsizesuffix): Rename from avxmodesuffix.
26942         (sseintvecmode): Rename from avxpermvecmode.
26943         (ssedoublevecmode): Rename from ssedoublesizemode.
26944         (ssehalfvecmode): Rename from avxhalfvecmode.
26945         (ssescalarmode): Rename from avxscalarmode.
26946         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
26947         templates for ssemodesuffix mode attribute.
26948         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
26949         mode attribute.
26950
26951         Adjust RTX patterns globally for renamed mode attributes.
26952
26953 2011-04-27  Jan Hubcika  <jh@suse.cz>
26954
26955         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
26956         * ipa-inline-analysis.c: Include alloc-pool.h.
26957         (edge_predicate_pool): New.
26958         (trye_predicate_p): New function
26959         (false_predicate_p): New function.
26960         (add_clause): Sanity check that false clauses are "optimized";
26961         never add clauses to predicate that is already known to be false.
26962         (and_predicate): Use flase_predicate_p.
26963         (evaulate_predicate): Rename to ...
26964         (evaluate_predicate): ... this one; update all callers; assert
26965         that false is not listed among possible truths.
26966         (dump_predicate): Use true_predicate_p.
26967         (account_size_time): Use false_predicate_p.
26968         (evaulate_conditions_for_edge): Rename to ...
26969         (evaluate_conditions_for_edge) ... this one.
26970         (edge_set_predicate): New function.
26971         (inline_edge_duplication_hook): Duplicate edge predicates.
26972         (inline_edge_removal_hook): Free edge predicates.
26973         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
26974         (dump_inline_summary): Update.
26975         (estimate_function_body_sizes): Set edge predicates.
26976         (estimate_calls_size_and_time): Handle predicates.
26977         (estimate_callee_size_and_time): Update.
26978         (remap_predicate): Add toplev_predicate; update comment.
26979         (remap_edge_predicates): New function.
26980         (inline_merge_summary): Compute toplev predicate; update.
26981         (read_predicate): New function.
26982         (read_inline_edge_summary): Use it.
26983         (inline_read_section): Likewise.
26984         (write_predicate): New function.
26985         (write_inline_edge_summary): Use it.
26986         (inline_write_summary): Likewise.
26987         (inline_free_summary): Free alloc pool and edge summary vec.
26988
26989 2011-04-27  Richard Guenther  <rguenther@suse.de>
26990
26991         * tree-ssa-structalias.c (changed_count): Remove.
26992         (changed): Use a bitmap.
26993         (unify_nodes): Adjust.
26994         (do_sd_constraint): Likewise.
26995         (do_ds_constraint): Likewise.
26996         (do_complex_constraint): Likewise.
26997         (solve_graph): Likewise.
26998
26999 2011-04-27  Jan Hubicka  <jh@suse.cz>
27000
27001         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
27002
27003 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
27004
27005         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
27006         (avx_vperm2f128_*_operand): Ditto.
27007         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
27008         Use avx_vpermilp_parallel in insn condition.
27009         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
27010         Use avx_vperm2f128_parallel in insn condition.
27011
27012 2011-04-27  Richard Guenther  <rguenther@suse.de>
27013
27014         * Makefile.in (tree-ssa-structalias.o): Remove
27015         gt-tree-ssa-structalias.h dependency.
27016         (GTFILES): Remove tree-ssa-structalias.c.
27017         * tree.c (allocate_decl_uid): New function.
27018         (make_node_stat): Use it.
27019         (copy_node_stat): Likewise.
27020         * tree.h (allocate_decl_uid): Declare.
27021         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
27022         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
27023         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
27024         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
27025         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
27026         (struct heapvar_map): Likewise.
27027         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
27028         heapvar_insert): Likewise.
27029         (make_heapvar_for): Rename to ...
27030         (make_heapvar): ... this.  Simplify.
27031         (fake_var_decl_obstack): New global var.
27032         (build_fake_var_decl): New function.
27033         (make_constraint_from_heapvar): Adjust.
27034         (handle_lhs_call): Likewise.
27035         (create_function_info_for): Likewise.
27036         (intra_create_variable_infos): Likewise.
27037         (init_alias_vars): Allocate fake_var_decl_obstack.
27038         (init_alias_heapvars, delete_alias_heapvars): Remove.
27039         (compute_points_to_sets): Do not call init_alias_heapvars.
27040         (ipa_pta_execute): Likewise.
27041         (delete_points_to_sets): Free fake_var_decl_obstack.
27042
27043 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27044
27045         * config/spu/divmovti4.c (union qword_UTItype): New data type.
27046         (si_from_UTItype, si_to_UTItype): New functions.
27047         (__udivmodti4): Use them to implement type-punning.
27048         * config/spu/multi3.c (union qword_TItype): New data type.
27049         (si_from_TItype, si_to_TItype): New functions.
27050         (__multi3): Use them to implement type-punning.
27051
27052 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27053
27054         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
27055
27056 2011-04-27  Jan Hubicka  <jh@suse.cz>
27057
27058         * ipa-prop.c (function_insertion_hook_holder): New holder.
27059         (ipa_add_new_function): New function.
27060         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
27061         Register/deregister holder.
27062
27063 2011-04-27  Richard Guenther  <rguenther@suse.de>
27064
27065         PR tree-optimization/48772
27066         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
27067
27068 2011-04-27  Richard Guenther  <rguenther@suse.de>
27069
27070         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
27071         TARGET_MEM_REF handling.
27072
27073 2011-04-27  Nick Clifton  <nickc@redhat.com>
27074
27075         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
27076         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
27077         (REG_CLASS_NAMES): Likewise.
27078         (REG_CLASS_CONTENTS): Likewise.
27079         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
27080         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
27081         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
27082         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
27083         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
27084         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
27085         duplicate register classes.
27086         (frv_class_likely_spilled_p): Likewise.
27087         (frv_register_move_cost): Likewise.
27088
27089         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
27090         end of the regno_reg_class array.
27091
27092 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
27093
27094         PR c/48742
27095         * c-typeck.c (build_binary_op): Don't wrap arguments if
27096         int_operands is true.
27097
27098 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
27099
27100         PR target/48767
27101         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
27102         targetm.calls.must_pass_in_stack for void type.
27103
27104 2011-04-26  Jan Hubicka  <jh@suse.cz>
27105
27106         * cgraphbuild.c (build_cgraph_edges): Update call
27107         of cgraph_create_edge and cgraph_create_indirect_edge.
27108         * cgraph.c (cgraph_create_edge_including_clones,
27109         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
27110         cgraph_update_edges_for_call_stmt_node): Do not take nest
27111         argument; do not initialize call_stmt_size/time.
27112         (dump_cgraph_node): Do not dump nest.
27113         (cgraph_clone_edge): Do not take loop_nest argument;
27114         do not propagate it; do not clone call_stmt_size/time.
27115         (cgraph_clone_node): Likewise.
27116         (cgraph_create_virtual_clone): Update.
27117         * cgraph.h (struct cgraph_edge): Remove
27118         call_stmt_size/call_stmt_time/loop_nest.
27119         (cgraph_create_edge, cgraph_create_indirect_edge,
27120         cgraph_create_edge_including_clones, cgraph_clone_node): Update
27121         prototype.
27122         * tree-emutls.c (gen_emutls_addr): Update.
27123         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
27124         loop_nest; handle indirect calls, too.
27125         (clone_inlined_nodes): Do not care about updating inline summaries.
27126         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
27127         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
27128         stream call_stmt_size/call_stmt_time/loop_nest.
27129         * ipa-inline.c (edge_badness): Update.
27130         (ipa_inline): dump summaries after inlining.
27131         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
27132         New.
27133         (inline_edge_summary): New function.
27134         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
27135         (inline_edge_removal_hook): Handle edge summaries.
27136         (inline_edge_duplication_hook): New hook.
27137         (inline_summary_alloc): Alloc hooks.
27138         (initialize_growth_caches): Do not register removal hooks.
27139         (free_growth_caches); Do not free removal hook.
27140         (dump_inline_edge_summary): New function.
27141         (dump_inline_summary): Use it.
27142         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
27143         (inline_update_callee_summaries): New function.
27144         (inline_merge_summary): Use it.
27145         (do_estimate_edge_time, do_estimate_edge_growth): Update.
27146         (read_inline_edge_summary): New function.
27147         (inline_read_section): Use it.
27148         (write_inline_edge_summary): New function.
27149         (inline_write_summary): Use it.
27150         (inline_free_summary): Free edge new holders.
27151         * tree-inline.c (copy_bb): Update.
27152
27153 2011-04-26  Jason Merrill  <jason@redhat.com>
27154
27155         * tree-eh.c (lower_try_finally_switch): Create the label along with
27156         the CASE_LABEL_EXPR.
27157
27158 2011-04-26  David S. Miller  <davem@davemloft.net>
27159             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27160
27161         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
27162         * configure: Regenerate.
27163
27164 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
27165
27166         PR target/48258
27167         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
27168         reduction.
27169         (VEC_reduc): New code iterator and splitters for vector reduction.
27170         (VEC_reduc_name): Ditto.
27171         (VEC_reduc_rtx): Ditto.
27172         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
27173         (reduc_<VEC_reduc_name>_v4sf): Ditto.
27174
27175         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
27176         support for extracting SF on VSX.
27177
27178         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
27179         generating xscvspdp.
27180         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
27181         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
27182         double add, minimum, maximum vector reduction.
27183         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
27184         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
27185         optimize double vector reduction.
27186         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
27187
27188 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
27189
27190         * config/fr30/fr30.h (inhibit_libc): Don't define.
27191         * config/m32r/m32r-protos.h: Correct comment.
27192         * config/v850/v850.h (GHS_default_section_names,
27193         GHS_current_section_names): Use tree, not union tree_node *.
27194
27195 2011-04-26  Xinliang David Li  <davidxl@google.com>
27196
27197         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
27198         * c-family/c-opts.c (c_common_handle_option): Set
27199         warn_maybe_uninitialized.
27200         * opts.c (common_handle_option): Ditto.
27201         * common.opt:  New option.
27202         * tree-ssa.c (warn_uninit): Add one more parameter.
27203         (warn_uninitialized_var): Pass warning code.
27204         * tree-flow.h: Interface change.
27205
27206 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27207
27208         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
27209         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
27210         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
27211
27212 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27213
27214         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
27215         * config/mips/mips.opt (mmips-tfile): Remove.
27216
27217         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
27218         mips-tdump reference to ...
27219         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
27220         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
27221         reference by Tru64 UNIX.
27222
27223 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
27224
27225         PR debug/48768
27226         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
27227         is error_mark_node, set value to NULL.
27228
27229         PR tree-optimization/48734
27230         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
27231         if return value from maybe_fold_*_comparsions isn't something
27232         the code is prepared to handle.
27233
27234 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
27235
27236         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
27237         mode check.
27238         (ext_QIreg_nomode_operands): Remove.
27239         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
27240         (*andsi_1): Ditto.
27241         (*andhi_1): Ditto.
27242
27243 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
27244
27245         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
27246
27247 2011-04-26  Richard Guenther  <rguenther@suse.de>
27248
27249         * c-typeck.c (build_unary_op): Do not expand array-refs via
27250         pointer arithmetic.  Only adjust qualifiers for function types.
27251
27252 2011-04-26  Richard Guenther  <rguenther@suse.de>
27253
27254         PR middle-end/48694
27255         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
27256         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
27257         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
27258         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
27259
27260 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
27261
27262         * doc/extend.texi: Document __underlying_type.
27263
27264 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
27265
27266         * config/rs6000/titan.md (automata_option "progress"): Remove.
27267
27268 2011-04-25  Jeff Law  <law@redhat.com>
27269
27270         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
27271
27272 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
27273
27274         * system.h (ENUM_BITFIELD): Remove.
27275
27276 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
27277             Eric Botcazou  <ebotcazou@adacore.com>
27278
27279         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
27280         for STORE_FLAG_VALUE==-1 case.
27281
27282 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
27283
27284         PR target/43804
27285         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
27286         LEGITIMATE_PIC_OPERAND_P.
27287
27288 2011-04-24  Jan Hubicka  <jh@suse.cz>
27289
27290         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
27291         WPA hack.
27292         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
27293         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
27294         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
27295         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
27296         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
27297         Sanity check predicate length.
27298         (remap_predicate): Likewise; sanity check jump functions.
27299         (inline_read_section, inline_write_summary): Sanity check
27300         predicate length.
27301
27302 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
27303
27304         PR other/48748
27305         * doc/extend.texi (Type Traits): Document __is_standard_layout,
27306         __is_literal_type, and __is_trivial; update throughout about
27307         possibly cv-qualified void types.
27308
27309 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
27310
27311         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
27312         testsuite and make it version agnostic.
27313
27314 2011-04-22  Jan Hubicka  <jh@suse.cz>
27315
27316         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
27317
27318 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
27319
27320         PR c/48685
27321         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
27322         to VOID_TYPE even around MODIFY_EXPR.
27323
27324 2011-04-22  Mike Stump  <mikestump@comcast.net>
27325
27326         * gensupport.c (read_md_rtx): Fix typo in comment.
27327         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
27328         comment.
27329
27330 2011-04-22  Jan Hubicka  <jh@suse.cz>
27331
27332         * gengtype.c (open_base_files): Add ipa-inline.h include.
27333         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
27334         ipa-prop.c; update all uses.
27335         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
27336         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
27337         merge summary of inlined function into former caller.
27338         * ipa-inline.c (max_benefit): Remove.
27339         (edge_badness): Compensate for removal of benefits.
27340         (update_caller_keys): Use
27341         reset_node_growth_cache/reset_edge_growth_cache.
27342         (update_callee_keys): Likewise.
27343         (update_all_callee_keys): Likewise.
27344         (inline_small_functions): Do not collect max_benefit; do not reset
27345         estimated_growth; call free_growth_caches and initialize_growth_caches.
27346         * ipa-inline.h (struct condition, type clause_t, struct predicate,
27347         struct size_time_entry): New structures.
27348         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
27349         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
27350         and estimated_growth.
27351         (edge_growth_cache_entry): New structure.
27352         (node_growth_cache, edge_growth_cache): New global vars.
27353         (estimate_growth): Turn into inline.
27354         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
27355         initialize_growth_caches, free_growth_caches): Declare.
27356         (estimate_edge_growth): Rewrite.
27357         (estimate_edge_time): Implement as inline cache lookup.
27358         (reset_node_growth_cache, reset_edge_growth_cache): New inline
27359         functions.
27360         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
27361         (NUM_CONDITIONS): New constant.
27362         (predicate_conditions): New enum.
27363         (IS_NOT_CONSTANT): New constant.
27364         (edge_removal_hook_holder): New var.
27365         (node_growth_cache, edge_growth_cache): New global vars.
27366         (true_predicate, single_cond_predicate, false_predicate,
27367         not_inlined_predicate, add_condition, add_clause, and_predicates,
27368         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
27369         dump_clause, dump_predicate, account_size_time,
27370         evaulate_conditions_for_edge): New functions.
27371         (inline_summary_alloc): Move to heap.
27372         (inline_node_removal_hook): Clear condition and entry vectors.
27373         (inline_edge_removal_hook): New function.
27374         (initialize_growth_caches, free_growth_caches): New function.
27375         (dump_inline_summary): Update.
27376         (edge_execution_predicate): New function.
27377         (will_be_nonconstant_predicate): New function.
27378         (estimate_function_body_sizes): Compute BB and constantness predicates.
27379         (compute_inline_parameters): Do not clear estimated_growth.
27380         (estimate_edge_size_and_time): New function.
27381         (estimate_calls_size_and_time): New function.
27382         (estimate_callee_size_and_time): New function.
27383         (remap_predicate): New function.
27384         (inline_merge_summary): New function.
27385         (do_estimate_edge_time): New function based on...
27386         (estimate_edge_time): ... this one.
27387         (do_estimate_edge_growth): New function.
27388         (do_estimate_growth): New function based on....
27389         (estimate_growth): ... this one.
27390         (inline_analyze_function): Analyze after deciding on jump functions.
27391         (inline_read_section): New function.
27392         (inline_read_summary): Use it.
27393         (inline_write_summary): Write all the new data.
27394         * ipa-prop.c (ipa_get_param_decl_index): Export.
27395         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
27396         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
27397         Declare.
27398         (ipa_get_lattice): Move here from ipa-cp.c
27399         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
27400         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
27401         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
27402         cgraph_edge_inlinable_p): Remove.
27403         * cgraphunit.c: Include ipainline.h
27404         (cgraph_process_new_functions): Update call of
27405         compute_inline_parameters.
27406
27407 2011-04-22  Richard Guenther  <rguenther@suse.de>
27408
27409         * tree.c (build_int_cst): Properly create canonicalized integer
27410         constants.
27411         (build_int_cst_type): Remove scary comments.
27412
27413 2011-04-22  Xinliang David Li  <davidxl@google.com>
27414
27415         * toplev.c (process_options): Enable -Werror=coverage-mismatch
27416         by default when -Wno-error is not specified.
27417         * opts-global.c (decode_options): Remove call to
27418         control_warning_options.
27419
27420 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
27421
27422         PR tree-optimization/48717
27423         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
27424         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
27425
27426 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
27427
27428         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
27429         definition where used.
27430
27431 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
27432
27433         PR c/48716
27434         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
27435         TREE_STATIC variables declared inside of some OpenMP construct.
27436
27437 2011-04-22  Martin Jambor  <mjambor@suse.cz>
27438
27439         PR middle-end/48585
27440         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
27441
27442 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
27443
27444         PR c/36750
27445         * c-typeck.c (pop_init_level): Do not warn about initializing
27446         with ` = {0}'.
27447
27448 2011-04-22  Alan Modra  <amodra@gmail.com>
27449
27450         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
27451         when returning call_cookie.
27452         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
27453         pointers, to functions with no more vector args than the current
27454         function, and some non-local calls for ABI_V4.
27455         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
27456         sibcall_nonlocal_aix64): Combine to ..
27457         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
27458         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
27459         (sibcall_value_nonlocal_aix<mode>): ..likewise.
27460         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
27461         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
27462         operand.
27463         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
27464         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
27465         sibcall_value_symbolic_64): Delete.
27466
27467 2011-04-21  Xinliang David Li  <davidxl@google.com>
27468
27469         * cgraph.h: Remove pid.
27470         * cgraph.c: Remove pid.
27471         * value-prof.c (init_node_map): New function.
27472         (del_node_map): New function.
27473         (find_func_by_funcdef_no): New function.
27474         (gimple_ic_transform): Call new function.
27475         * cgraphunit.c (cgraph_finalize_function): Remove pid.
27476         * function.c (get_last_funcdef_no): New function.
27477         * function.h (get_last_funcdef_no): New function.
27478         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
27479         to libgcov function.
27480         (tree-profiling): Call node map init and delete function.
27481
27482 2011-04-21  Ian Lance Taylor  <iant@google.com>
27483
27484         * godump.c (go_format_type): Use exported Go name for anonymous
27485         field name.
27486
27487 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
27488
27489         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
27490         Call builtin_function_type_list instead of builtin_function_type.
27491         (UNARY, BINARY, TRINARY, QUAD): Likewise.
27492
27493 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
27494
27495         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
27496         build_function_type_list instead of build_function_type.
27497         Delete variable `endlink'.
27498
27499 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
27500
27501         * config/s390/s390.c (s390_init_builtins): Call
27502         build_function_type_list instead of build_function_type.
27503
27504 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
27505
27506         * config/ia64/ia64.c (ia64_init_builtins): Call
27507         build_function_type_list instead of builtin_function_type.
27508
27509 2011-04-21  Easwaran Raman  <eraman@google.com>
27510
27511         * cfgexpand.c (stack_var): Remove OFFSET...
27512         (add_stack_var): ...and its reference here...
27513         (expand_stack_vars): ...and here.
27514         (stack_var_cmp): Sort by descending order of size.
27515         (partition_stack_vars): Change heuristic.
27516         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
27517         (dump_stack_var_partition): Add newline after each partition.
27518
27519 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
27520             Jeff Law  <law@redhat.com>
27521
27522         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
27523         * gengtype.c (matching_file_name_substitute): Likewise.
27524
27525 2011-04-21  Richard Guenther  <rguenther@suse.de>
27526
27527         PR lto/48703
27528         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
27529
27530 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
27531
27532         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
27533
27534 2011-04-21  Richard Guenther  <rguenther@suse.de>
27535
27536         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
27537         file name.
27538
27539 2011-04-21  Richard Guenther  <rguenther@suse.de>
27540
27541         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
27542         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
27543         Use DECL_P, not SSA_VAR_P.
27544         (ptr_derefs_may_alias_p): Likewise.
27545         (ptr_deref_may_alias_ref_p_1): Likewise.
27546         (decl_refs_may_alias_p): Likewise.
27547         (refs_may_alias_p_1): Likewise.
27548         (ref_maybe_used_by_call_p_1): Likewise.
27549         (call_may_clobber_ref_p_1): Likewise.
27550         (indirect_ref_may_alias_decl_p): Assume indirect refrences
27551         are either MEM_REF or TARGET_MEM_REF.
27552         (indirect_refs_may_alias_p): Likewise.
27553         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
27554         for MEM_EXPR of indirect calls.
27555
27556 2011-04-21  Tristan Gingold  <gingold@adacore.com>
27557
27558         * vmsdbgout.c (write_srccorr): Compute file length from the string.
27559         (dst_file_info_struct): Remove flen field.
27560         (lookup_filename): Remove code that set flen field.
27561
27562 2011-04-21  Tristan Gingold  <gingold@adacore.com>
27563
27564         * config/ia64/ia64.c (ia64_start_function): Add a guard.
27565
27566 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
27567
27568         PR target/48708
27569         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
27570         vec_extract and vec_concat for non-SSE4_1 targets.
27571
27572 2011-04-21  Richard Guenther  <rguenther@suse.de>
27573
27574         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
27575         return statements.
27576
27577 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
27578
27579         * config/i386/cygming.h (union tree_node, TREE): Don't define or
27580         undefine.
27581         (FILE): Don't undefine.
27582
27583 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
27584
27585         * config/alpha/alpha.c (struct machine_function): Use rtx, not
27586         struct rtx_def *.
27587         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
27588         struct rtx_def *.
27589         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
27590         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
27591         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
27592         rtx_def *.
27593         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
27594         definitions where used.
27595         * config/microblaze/microblaze.h (struct microblaze_args): Use
27596         rtx, not struct rtx_def *.
27597         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
27598         rtx_def *.
27599         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
27600         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
27601         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
27602         not struct rtx_def *.
27603         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
27604         struct rtx_def *.
27605         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
27606         rtx_def *.
27607         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
27608
27609 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
27610
27611         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
27612         operand_equal_p to compare DR_BASE_ADDRESSes.
27613         (vect_check_interleaving): Likewise.
27614
27615 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
27616
27617         PR target/46329
27618         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
27619         for all Neon struct constants.
27620
27621 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
27622
27623         * target.def (legitimate_constant_p): New hook.
27624         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
27625         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
27626         * doc/tm.texi: Regenerate.
27627         * hooks.h (hook_bool_mode_rtx_true): Declare.
27628         * hooks.c (hook_bool_mode_rtx_true): Define.
27629         * system.h (LEGITIMATE_CONSTANT_P): Poison.
27630         * calls.c (precompute_register_parameters): Replace uses of
27631         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
27632         (emit_library_call_value_1): Likewise.
27633         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
27634         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
27635         * ira-costs.c (scan_one_insn): Likewise.
27636         * recog.c (general_operand, immediate_operand): Likewise.
27637         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
27638         * reload1.c (init_eliminable_invariants): Likewise.
27639
27640         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
27641         mode argument.
27642         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
27643         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
27644         argument.
27645         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27646         * config/alpha/predicates.md (input_operand): Update call to
27647         alpha_legitimate_constant_p.
27648
27649         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
27650         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
27651         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
27652         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27653         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
27654         (arm_legitimate_constant_p): New functions.
27655         (arm_cannot_force_const_mem): Make static.
27656
27657         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
27658
27659         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
27660         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
27661         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
27662         instead of bfin_legitimate_constant_p.
27663         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
27664         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27665
27666         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
27667
27668         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
27669
27670         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
27671         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
27672         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27673         (frv_legitimate_constant_p): Make static.  Add a mode argument.
27674
27675         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
27676         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
27677         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
27678
27679         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
27680         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
27681         * config/i386/i386.c (legitimate_constant_p): Rename to...
27682         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
27683         argument.
27684         (ix86_cannot_force_const_mem): Update accordingly.
27685         (ix86_legitimate_address_p): Likewise.
27686         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27687         * config/i386/i386.md: Update commentary.
27688
27689         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
27690         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
27691         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27692         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
27693
27694         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
27695
27696         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
27697         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
27698         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27699         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
27700
27701         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
27702         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
27703         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
27704
27705         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
27706         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27707         (m32r_legitimate_constant_p): New function.
27708
27709         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
27710         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
27711         LEGITIMATE_CONSTANT_P.
27712         (LEGITIMATE_CONSTANT_P): Delete.
27713         * config/m68k/m68k.c (m68k_expand_prologue): Call
27714         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
27715         (m68k_legitimate_constant_p): New function.
27716         * config/m68k/m68k.md: Update comments.
27717
27718         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
27719         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27720         (mcore_legitimate_constant_p): New function.
27721
27722         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
27723         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
27724         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
27725         Add a mode argument.
27726         (mep_legitimate_address): Update accordingly.
27727         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27728
27729         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
27730         Delete.
27731         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
27732         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
27733         static.  Check OP's mode for VOIDmode.
27734         (microblaze_legitimate_constant_p): New function.
27735         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27736
27737         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
27738         * config/mips/mips.c (mips_legitimate_constant_p): New function.
27739         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
27740         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27741         * config/mips/predicates.md: Update comments.
27742
27743         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
27744         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
27745         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27746         (mmix_legitimate_constant_p): Make static, return a bool, and take
27747         a mode argument.
27748         (mmix_print_operand_address): Update accordingly.
27749
27750         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
27751         Delete.
27752         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
27753         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
27754         static.  Add a mode argument.
27755         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27756
27757         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
27758
27759         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
27760         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27761         (pa_legitimate_constant_p): New function.
27762
27763         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
27764
27765         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
27766         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27767         (pdp11_legitimate_constant_p): New function.
27768
27769         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
27770         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27771         (rs6000_legitimate_constant_p): New function.
27772
27773         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
27774         (rx_legitimate_constant_p): ...this.
27775         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
27776         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
27777         (rx_legitimate_constant_p): ...this.
27778         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27779         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
27780
27781         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
27782         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
27783         * config/s390/s390.c (legitimate_constant_p): Rename to...
27784         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
27785         and add a mode argument.
27786         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27787
27788         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
27789
27790         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
27791         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27792         (sh_legitimate_constant_p): New function.
27793
27794         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
27795         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
27796         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27797         (legitimate_constant_p): Rename to...
27798         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
27799         argument.
27800         (constant_address_p): Update accordingly.
27801
27802         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
27803         argument and return a bool.
27804         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
27805         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27806         (spu_legitimate_constant_p): Add a mode argument and return a bool.
27807         (spu_rtx_costs): Update accordingly.
27808         * config/spu/predicates.md (vec_imm_operand): Likewise.
27809
27810         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
27811
27812         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
27813         * config/v850/v850.c (v850_legitimate_constant_p): New function.
27814         (TARGET_LEGITIMATE_CONSTANT_P): Define.
27815
27816         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
27817         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
27818         * config/vax/vax.c (legitimate_constant_p): Likewise.
27819
27820         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
27821         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27822         (xtensa_legitimate_constant_p): New function.
27823
27824 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
27825
27826         * target.def (cannot_force_const_mem): Add a mode argument.
27827         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
27828         * doc/tm.texi: Regenerate.
27829         * hooks.h (hook_bool_mode_rtx_false): Declare.
27830         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
27831         (hook_bool_mode_const_rtx_true): Likewise.
27832         (hook_bool_mode_rtx_false): New function.
27833         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
27834         to be non-VOID.  Update call to cannot_force_const_mem.
27835         (find_reloads): Update accordingly.
27836         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
27837         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
27838         argument.
27839         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
27840         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
27841         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
27842         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
27843         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
27844         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
27845         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
27846         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
27847         (m68k_cannot_force_const_mem): ...this new function.
27848         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
27849         argument.
27850         (mips_const_insns, mips_legitimize_const_move): Update calls.
27851         (mips_secondary_reload_class): Likewise.
27852         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
27853         (pa_cannot_force_const_mem): ...this new function.
27854         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
27855         (rs6000_cannot_force_const_mem): ...this new function.
27856         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
27857         argument.
27858         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
27859         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
27860         to...
27861         (xtensa_cannot_force_const_mem): ...this new function.
27862
27863 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
27864
27865         * config/mips/mips.c (mips16_build_function_stub): Call
27866         build_function_type_list instead of build_function_type.
27867         (mips16_build_call_stub): Likewise.
27868
27869 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
27870
27871         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
27872         instead of build_function_type.
27873
27874 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
27875
27876         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
27877         instead of build_function_type.
27878
27879 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
27880
27881         PR target/48678
27882         * config/i386/i386.md (insv): Change operand 0 constraint to
27883         "register_operand".  Change operand 1 and 2 constraint to
27884         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
27885         * config/i386/sse.md (sse4_1_pinsrb): Export.
27886         (sse2_pinsrw): Ditto.
27887         (sse4_1_pinsrd): Ditto.
27888         (sse4_1_pinsrq): Ditto.
27889         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
27890         * config/i386/i386.c (ix86_expand_pinsr): New.
27891
27892 2011-04-20  Easwaran Raman  <eraman@google.com>
27893
27894         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
27895         containing union type only with -fstrict-aliasing.
27896
27897 2011-04-20  Jim Meyering  <meyering@redhat.com>
27898
27899         Remove useless if-before-free tests.
27900         * calls.c (expand_call, save_area): Likewise.
27901         * cfgcleanup.c (try_forward_edges): Likewise.
27902         * collect2.c (collect_execute): Likewise.
27903         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
27904         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
27905         * coverage.c (coverage_checksum_string): Likewise.
27906         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
27907         * cselib.c (cselib_init): Likewise.
27908         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
27909         (df_set_clean_cfg): Likewise.
27910         * function.c (free_after_compilation): Likewise.
27911         * gcc.c (do_spec_1, main): Likewise.
27912         * gcov.c (create_file_names): Likewise.
27913         * gensupport.c (identify_predicable_attribute): Likewise.
27914         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
27915         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
27916         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
27917         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
27918         * ipa-pure-const.c (local_pure_const): Likewise.
27919         * ipa-reference.c (propagate): Likewise.
27920         * ira-costs.c (free_ira_costs): Likewise.
27921         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
27922         * matrix-reorg.c (mat_free): Likewise.
27923         * prefix.c (get_key_value): Likewise.
27924         * profile.c (compute_value_histograms): Likewise.
27925         * reload1.c (free_reg_equiv): Likewise.
27926         * sched-deps.c (free_deps): Likewise.
27927         * sel-sched-ir.c (fence_clear): Likewise.
27928         * sese.c (set_rename, if_region_set_false_region): Likewise.
27929         * tree-data-ref.c (free_rdg): Likewise.
27930         * tree-eh.c (lower_try_finally): Likewise.
27931         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
27932         * tree-ssa-live.c (delete_var_map): Likewise.
27933         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
27934         * tree-ssa-pre.c (phi_trans_add): Likewise.
27935
27936 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
27937
27938         PR tree-optimization/48611
27939         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
27940         beyond ERT_MUST_NOT_THROW region.
27941
27942 2011-04-20  Catherine Moore  <clm@codesourcery.com>
27943
27944         * config/mips/mips.opt (mfix-24k): New.
27945         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
27946         * config/mips/mips.md (length): Increase by 4 for stores if
27947         fixing 24K errata.
27948         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
27949         all noreorder if fixing 24K errata.
27950         * doc/invoke.texi: Document mfix-24k.
27951
27952 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
27953
27954         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
27955         quad-word modes, reduce to 9-bit index range when above 1016 limit.
27956
27957 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
27958
27959         * config/arm/arm.c (arm_gen_constant): Move movw support ....
27960         (const_ok_for_op): ... to here.
27961
27962 2011-04-20  Kai Tietz  <ktietz@redhat.com>
27963
27964         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
27965         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
27966
27967 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
27968
27969         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
27970
27971 2011-04-20  Richard Guenther  <rguenther@suse.de>
27972
27973         PR tree-optimization/47892
27974         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
27975         are if-convertible.
27976
27977 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
27978
27979         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
27980
27981 2011-04-20  Tristan Gingold  <gingold@adacore.com>
27982
27983         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
27984
27985 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
27986
27987         PR target/18145
27988
27989         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
27990         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
27991         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
27992         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
27993         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
27994
27995         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
27996         New prototype.
27997
27998         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
27999         (avr_asm_named_section, avr_asm_output_aligned_common,
28000         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
28001         New functions to update...
28002         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
28003         (avr_asm_init_sections): Overwrite section callbacks for
28004         data_section, bss_section.
28005         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
28006         from here to...
28007         (avr_file_end): ...here.
28008
28009 2011-04-20  Richard Guenther  <rguenther@suse.de>
28010
28011         PR middle-end/48695
28012         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
28013         objects and types here.  Adjust for their offset before comparing.
28014
28015 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
28016
28017         * tree-vect-stmts.c (vectorizable_store): Only chain one related
28018         statement per copy.
28019
28020 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
28021
28022         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
28023         (GIMPLE_H): Include $(INTERNAL_FN_H).
28024         (OBJS-common): Add internal-fn.o.
28025         (internal-fn.o): New rule.
28026         * internal-fn.def: New file.
28027         * internal-fn.h: Likewise.
28028         * internal-fn.c: Likewise.
28029         * gimple.h: Include internal-fn.h.
28030         (GF_CALL_INTERNAL): New gf_mask.
28031         (gimple_statement_call): Put fntype into a union with a new
28032         internal_fn field.
28033         (gimple_build_call_internal): Declare.
28034         (gimple_build_call_internal_vec): Likewise.
28035         (gimple_call_same_target_p): Likewise.
28036         (gimple_call_internal_p): New function.
28037         (gimple_call_internal_fn): Likewise.
28038         (gimple_call_fntype): Return null for internal calls.
28039         (gimple_call_set_fntype): Assert that the function is not internal.
28040         (gimple_call_set_fn): Likewise.
28041         (gimple_call_set_fndecl): Likewise.
28042         (gimple_call_set_internal_fn): New function.
28043         (gimple_call_addr_fndecl): Handle null functions.
28044         (gimple_call_return_type): Likewise null types.
28045         * gimple.c (gimple_build_call_internal_1): New function.
28046         (gimple_build_call_internal): Likewise.
28047         (gimple_build_call_internal_vec): Likewise.
28048         (gimple_call_same_target_p): Likewise.
28049         (gimple_call_flags): Handle calls to internal functions.
28050         (gimple_call_fnspec): New function.
28051         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
28052         (gimple_has_side_effects): Handle null functions.
28053         (gimple_rhs_has_side_effects): Likewise.
28054         (gimple_call_copy_skip_args): Handle calls to internal functions.
28055         * cfgexpand.c (expand_call_stmt): Likewise.
28056         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
28057         * gimple-fold.c (gimple_fold_call): Handle null functions.
28058         (gimple_fold_stmt_to_constant_1): Don't fold
28059         calls to internal functions.
28060         * gimple-low.c (gimple_check_call_args): Handle calls to internal
28061         functions.
28062         * gimple-pretty-print.c (dump_gimple_call): Likewise.
28063         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
28064         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
28065         (do_warn_unused_result): Likewise.
28066         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
28067         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
28068         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
28069         the target of a call.
28070         (initialize_hash_element): Update accordingly.
28071         (hashable_expr_equal_p): Use gimple_call_same_target_p.
28072         (iterative_hash_hashable_expr): Handle calls to internal functions.
28073         (print_expr_hash_elt): Likewise.
28074         * tree-ssa-pre.c (can_value_number_call): Likewise.
28075         (eliminate): Handle null functions.
28076         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
28077         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
28078         (find_func_aliases): Likewise.
28079         * value-prof.c (gimple_ic_transform): Likewise.
28080         (gimple_indirect_call_to_profile): Likewise.
28081         * lto-streamer-in.c (input_gimple_stmt): Likewise.
28082         * lto-streamer-out.c (output_gimple_stmt): Likewise.
28083
28084 2011-04-19  Jan Hubicka  <jh@suse.cz>
28085
28086         * ipa-inline-transform.c (save_inline_function_body): Add comments.
28087         * ipa-inline.c (inline_small_functions): Compute summaries first,
28088         populate heap later.
28089
28090 2011-04-19  Jan Hubicka  <jh@suse.cz>
28091
28092         * cgraph.h (save_inline_function_body): Remove.
28093         * ipa-inline-transform.c: New file, broke out of...
28094         * ipa-inline.c: ... this one; Update toplevel comment.
28095         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
28096         make global.
28097         (update_noncloned_frequencies): Move to ipa-inline-transform.c
28098         (cgraph_mark_inline_edge): Rename to inline_call; move to
28099         ipa-inline-transform.c.
28100         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
28101         move to ipa-inline-transform.c
28102         (recursive_inlining, inline_small_functions, flatten_function,
28103         ipa_inline, inline_always_inline_functions,
28104         early_inline_small_functions): Update.
28105         (inline_transform): Move to ipa-inline-transform.c.
28106         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
28107         Declare.
28108         * Makefile.in (ipa-inline-transform.o): New file.
28109         * cgraphunit.c (save_inline_function_body): Move to
28110         ipa-inline-transform.c
28111
28112 2011-04-19  DJ Delorie  <dj@redhat.com>
28113
28114         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
28115         registers if we already know there aren't any.
28116         (m32c_emit_epilogue): Don't emit a barrier here.
28117         (m32c_emit_eh_epilogue): Likewise.
28118         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
28119         operands at expand time.
28120         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
28121         int" wchar type.
28122         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
28123         duplicates.  Provide aliases instead.
28124         * config/m32c/prologue.md (eh_return): Emit a barrier here.
28125         (eh_epilogue): Add a "(return)" here as a hint to other parts of
28126         the compiler.
28127
28128 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
28129
28130         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
28131         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
28132         (general_or_i64_p, sparc_register_move_cost): New function.
28133
28134 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28135
28136         * doc/install.texi (Configuration, --enable-threads): Remove mach.
28137         Add lynx, mipssde.  Sort table.
28138
28139 2011-04-19  Xinliang David Li  <davidxl@google.com>
28140
28141         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
28142         not negative.
28143
28144 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
28145
28146         PR target/48678
28147         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
28148         is a SUBREG with non-MODE_INT mode inside of it.
28149
28150 2011-04-19  Martin Jambor  <mjambor@suse.cz>
28151
28152         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
28153         also according to actual contants.
28154         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
28155         (gimple_fold_call): Use it.
28156         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
28157
28158 2011-04-19  Martin Jambor  <mjambor@suse.cz>
28159
28160         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
28161         non-pointer assignments.
28162
28163 2011-04-19  Martin Jambor  <mjambor@suse.cz>
28164
28165         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
28166         account anc_offset and otr_type from the indirect edge info.
28167         * ipa-prop.c (get_ancestor_addr_info): New function.
28168         (compute_complex_ancestor_jump_func): Assignment analysis moved to
28169         get_ancestor_addr_info, call it.
28170         (ipa_note_param_call): Do not initialize information about polymorphic
28171         calls, return the indirect call graph edge.  Remove the last
28172         parameter, adjust all callers.
28173         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
28174         parameters.  Initialize polymorphic information in the indirect edge.
28175
28176 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
28177
28178         PR lto/48148
28179         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
28180         the types if they have different enumeration identifiers.
28181
28182 2011-04-19  Jan Hubicka  <jh@suse.cz>
28183
28184         * cgraph.h (cgraph_optimize_for_size_p): Declare.
28185         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
28186         * predict.c (cgraph_optimize_for_size_p): Break out from ...
28187         (optimize_function_for_size_p) ... here.
28188
28189 2011-04-19  Richard Guenther  <rguenther@suse.de>
28190
28191         PR lto/48207
28192         * tree.c (free_lang_data): Do not reset the decl-assembler-name
28193         langhook.
28194
28195 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
28196
28197         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
28198         if DECL_NO_INLINE_WARNING_P is set on the function.
28199
28200 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
28201
28202         PR fortran/47976
28203         * reload1.c (inc_for_reload): Return void. All callers changed.
28204         (emit_input_reload_insns): Don't try to delete previous output
28205         reloads to a register, or record spill_reg_store for autoincs.
28206
28207 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
28208
28209         * gengtype.h: Updated copyright year.
28210         (struct input_file_st): Add inpisplugin field.
28211         (type_fileloc): New function.
28212         * gengtype.c
28213         (write_typed_struct_alloc_def): Add gcc_assert.
28214         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
28215         (write_typed_alloc_defns): Don't output for plugin files.
28216         (input_file_by_name): Clear inpisplugin field.
28217         (main): Set inpisplugin field for plugin files.
28218
28219 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
28220
28221         * gengtype-state.c (string_eq): New.
28222         (read_state): Use string_eq instead of strcmp when creating the
28223         state_ident_tab.
28224
28225 2011-04-19  Wei Guozhi  <carrot@google.com>
28226
28227         PR target/47855
28228         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
28229         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
28230         linkage.
28231         * config/arm/constraints.md (Uu): New constraint.
28232         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
28233
28234 2011-04-19  Tristan Gingold  <gingold@adacore.com>
28235
28236         * config.gcc (-*-*-*vms): Added.
28237         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
28238         definitions moved.
28239         * config/vms/vms-ld.c: New file.
28240         * config/vms/vms-ar.c: New file.
28241         * config/vms/t-vmsnative: New file.
28242
28243 2011-04-18  Xinliang David Li  <davidxl@google.com>
28244
28245         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
28246
28247 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
28248
28249         PR middle-end/48661
28250         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
28251         if TREE_TYPE (v) is non-NULL.
28252
28253         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
28254         gimple_get_virt_mehtod_for_binfo.
28255         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
28256         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
28257         callers.
28258         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28259
28260 2011-04-18  Michael Matz  <matz@suse.de>
28261             Steve Ellcey  <sje@cup.hp.com>
28262
28263         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
28264         use its mode as source mode if it isn't VOIDmode.
28265
28266 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
28267
28268         * doc/passes.texi: Fill crossref nodes.
28269
28270 2011-04-18  Jim Meyering  <meyering@redhat.com>
28271
28272         Fix doubled-word typos in comments and strings
28273         * config/alpha/vms-unwind.h: s/for for/for/
28274         * config/arm/unwind-arm.h: Likewise.
28275         * config/microblaze/microblaze.c: Likewise.
28276         * config/sh/constraints.md: s/in in/in/
28277         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
28278
28279 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
28280
28281         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
28282         (AVX_FLOAT_MODE_P): Ditto.
28283         (AVX128_VEC_FLOAT_MODE_P): Ditto.
28284         (AVX256_VEC_FLOAT_MODE_P): Ditto.
28285         (AVX_VEC_FLOAT_MODE_P): Ditto.
28286         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
28287         (UNSPEC_MASKSTORE): Ditto.
28288         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
28289         Merge from <sse>_movmsk<ssemodesuffix> and
28290         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
28291         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
28292         iterator.
28293         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
28294         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
28295         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
28296
28297 2011-04-18  Jan Hubicka  <jh@suse.cz>
28298
28299         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
28300
28301         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
28302         (want_inline_function_called_once_p): Break out the logic from
28303         ipa_inline.
28304         (edge_badness): Ensure that profile is not misupdated.
28305         (lookup_recursive_calls): Prioritize by call frequencies.
28306         (inline_small_functions): Move program size estimates here;
28307         actually process whole queue even when unit growth has been
28308         met. (to properly compute inline_failed reasons and for the
28309         case unit size decrease.) Revisit comments on recursive inlining.
28310         (ipa_inline): Remove unit summary code; first inline hot calls
28311         of functions called once, cold calls next.
28312         (order, nnodes): Remove unused variables.
28313         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
28314         (GTFILES): Remove ipa-inline.c
28315         * sel-sched.c (fill_insns): Silence uninitialized var warning.
28316
28317 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
28318
28319         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
28320
28321 2011-04-18  Jie Zhang  <jie@codesourcery.com>
28322             Richard Earnshaw  <rearnsha@arm.com>
28323
28324         * arm.c (neon_builtin_type_bits): Remove.
28325         (typedef enum neon_builtin_mode): New.
28326         (T_MAX): Don't define.
28327         (typedef enum neon_builtin_datum): Remove bits, codes[],
28328         num_vars and base_fcode.  Add mode, code and fcode.
28329         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
28330         VAR10): Change accordingly.
28331         (neon_builtin_data[]): Change accordingly
28332         (arm_init_neon_builtins): Change accordingly.
28333         (neon_builtin_compare): Remove.
28334         (locate_neon_builtin_icode): Remove.
28335         (arm_expand_neon_builtin): Change accordingly.
28336
28337         * arm.h (enum arm_builtins): Move to ...
28338         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
28339
28340         * arm.c (arm_builtin_decl): Declare.
28341         (TARGET_BUILTIN_DECL): Define.
28342         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
28343         (arm_builtin_decls[]): New.
28344         (arm_init_neon_builtins): Store builtin declarations in
28345         arm_builtin_decls[].
28346         (arm_init_tls_builtins): Likewise.
28347         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
28348         (arm_builtin_decl): New.
28349
28350 2011-04-18  Richard Guenther  <rguenther@suse.de>
28351
28352         * tree.c (upper_bound_in_type): Build properly canonicalized
28353         INTEGER_CSTs.
28354         (lower_bound_in_type): Likewise.
28355
28356 2011-04-18  Richard Guenther  <rguenther@suse.de>
28357
28358         * gimple.h (gimple_call_addr_fndecl): New function.
28359         (gimple_call_fndecl): Use it.
28360         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
28361         for direct calls.
28362         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
28363         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
28364
28365 2011-04-18  Richard Guenther  <rguenther@suse.de>
28366
28367         PR middle-end/48650
28368         * tree.c (build_string): STRING_CST is now derived from tree_typed.
28369
28370 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
28371
28372         PR lto/48492
28373         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
28374         DECL_IN_CONSTANT_POOL without RTL.
28375
28376 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
28377             Ira Rosen  <ira.rosen@linaro.org>
28378
28379         PR target/48252
28380         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
28381         to match neon_vzip/vuzp/vtrn_internal.
28382         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
28383         outputs explicitly dependent on both inputs.
28384         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
28385
28386 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
28387
28388         PR tree-optimization/48616
28389         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
28390         whether the shift is by scalar or vector based on whether all SLP
28391         scalar stmts have the same rhs.
28392
28393 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
28394
28395         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
28396         memory operands.
28397
28398 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
28399
28400         PR target/43700
28401         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
28402         registers.
28403
28404 2011-04-17  Jan Hubicka  <jh@suse.cz>
28405
28406         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
28407         * cgrpahunit.c (cgraph_finalize_function): Do not set
28408         finalized_by_frontend.
28409         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
28410         finalized_by_frontend.
28411
28412 2011-04-17  Jan Hubicka  <jh@suse.cz>
28413
28414         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
28415         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
28416         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
28417         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
28418         method.
28419         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
28420         gimple-fold.c
28421         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
28422
28423 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
28424
28425         PR lto/48538
28426         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
28427         is non-null before accessing it.
28428         (input_cgraph): Remove trailing spaces.
28429
28430 2011-04-17  Revital Eres  <revital.eres@linaro.org>
28431
28432         * params.def (sms-min-sc): New param flag.
28433         * modulo-sched.c (sms_schedule): Use it.
28434         * doc/invoke.texi (sms-min-sc): Document it.
28435
28436 2011-04-17  Jan Hubicka  <jh@suse.cz>
28437
28438         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
28439         present, also set gimple_call_set_cannot_inline.
28440         * ipa-inline.c: Update toplevel comment.
28441         (MAX_TIME): Remove.
28442         (cgraph_clone_inlined_nodes): Fix linebreaks.
28443         (cgraph_check_inline_limits): Restructure to ...
28444         (caller_growth_limits): ... this one; be more tolerant
28445         on growth in nested inline chains; add explanatory comment;
28446         fix stack accounting thinko introduced by previous patch.
28447         (cgraph_default_inline_p): Remove.
28448         (report_inline_failed_reason): New function.
28449         (can_inline_edge_p): New function.
28450         (can_early_inline_edge_p): New function.
28451         (leaf_node_p): Move upwards in file.
28452         (want_early_inline_function_p): New function.
28453         (want_inline_small_function_p): New function.
28454         (want_inline_self_recursive_call_p): New function.
28455         (cgraph_edge_badness): Rename to ...
28456         (edge_badness) ... this one; fix linebreaks.
28457         (update_edge_key): Update call of edge_baddness; add
28458         detailed dump about queue updates.
28459         (update_caller_keys): Use can_inline_edge_p and
28460         want_inline_small_function_p.
28461         (cgraph_decide_recursive_inlining): Rename to...
28462         (recursive_inlining): Use can_inline_edge_p and
28463         want_inline_self_recursive_call_p; simplify and remove no longer
28464         valid FIXME.
28465         (cgraph_set_inline_failed): Remove.
28466         (add_new_edges_to_heap): Use can_inline_edge_p and
28467         want_inline_small_function_p.
28468         (cgraph_decide_inlining_of_small_functions): Rename to ...
28469         (inline_small_functions): ... this one; cleanup; use
28470         can/want predicates; cleanup debug ouput; work edges till fibheap
28471         is exhausted and do not stop once unit growth is reached; remove
28472         later loop processing remaining edges.
28473         (cgraph_flatten): Rename to ...
28474         (flatten_function): ... this one; use can_inline_edge_p
28475         and can_early_inline_edge_p predicates.
28476         (cgraph_decide_inlining): Rename to ...
28477         (ipa_inline): ... this one; remove unreachable nodes before
28478         inlining functions called once; simplify the pass.
28479         (cgraph_perform_always_inlining): Rename to ...
28480         (inline_always_inline_functions): ... this one; use
28481         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
28482         (cgraph_decide_inlining_incrementally): Rename to ...
28483         (early_inline_small_functions): ... this one; simplify
28484         using new predicates; cleanup; make dumps prettier.
28485         (cgraph_early_inlining): Rename to ...
28486         (early_inliner): newer inline regular functions into always-inlines;
28487         fix updating of call stmt summaries.
28488         (pass_early_inline): Update for new names.
28489         (inline_transform): Fix formating.
28490         (gate_cgraph_decide_inlining): Rename to ...
28491         (pass_ipa_inline): ... this one.
28492         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
28493         * ipa-inline-analysis.c (dump_inline_summary): Update.
28494         (compute_inline_parameters): Do not compute disregard_inline_limits;
28495         look for mismatching arguments.
28496         (estimate_growth): Fix handlig of non-trivial self recursion.
28497         (inline_read_summary): Do not read info->disregard_inline_limits.
28498         (inline_write_summary): Do not write info->disregard_inline_limits.
28499         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
28500         and move all checks into can_inline_edge_p predicate; re-enable code
28501         comparing optimization levels.
28502         (expand_call_inline): Do not test inline_forbidden_into_p.
28503         * Makefile.in (ipa-inline.o): Update arguments.
28504
28505 2011-04-17  Revital Eres  <revital.eres@linaro.org>
28506
28507         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
28508
28509 2011-04-17  Revital Eres  <revital.eres@linaro.org>
28510
28511         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
28512
28513 2011-04-17  Michael Matz  <matz@suse.de>
28514
28515         PR tree-optimization/48622
28516         PR lto/48645
28517         * ipa-inline-analysis.c (inline_read_summary): Read size/time
28518         in same order as they're written.
28519
28520 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28521
28522         * config/pa/predicates.md: Reorganize and simplify predicates.
28523         Eliminate duplicate code checks.
28524         (arith_operand): Rename to arith14_operand
28525         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
28526         * config/pa/pa.md: Use renamed operands.
28527         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
28528         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
28529         arith11_operand, adddi3_operand, indexed_memory_operand,
28530         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
28531         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
28532         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
28533         move_dest_operand, move_src_operand, prefetch_cc_operand,
28534         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
28535         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
28536         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
28537         div_operand, int5_operand, movb_comparison_operator,
28538         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
28539         arith_double_operand, ireg_operand, lhs_lshift_operand,
28540         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
28541         integer_store_memory_operand): Likewise.
28542         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
28543         (integer_store_memory_operand, read_only_operand,
28544         function_label_operand, borx_reg_operand,
28545         non_hard_reg_operand): Likewise.
28546         (eq_neq_comparison_operator): Delete unused operator.
28547         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
28548         function_label_operand.
28549         (emit_move_sequence): Likewise.
28550
28551 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
28552
28553         * config/i386/sse.md (sseunpackmode): New mode attribute.
28554         (ssepackmode): Ditto.
28555         (vec_pack_trunc_<mode>): Macroize expander from
28556         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
28557         (vec_unpacks_lo_<mode>): Macroize expander from
28558         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
28559         (vec_unpacks_hi_<mode>): Macroize expander from
28560         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
28561         (vec_unpacku_lo_<mode>): Macroize expander from
28562         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
28563         (vec_unpacku_hi_<mode>): Macroize expander from
28564         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
28565         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
28566         ix86_expand_sse4_unpack.
28567         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
28568
28569 2011-04-16  Jan Hubicka  <jh@suse.cz>
28570
28571         * cgraphbuild.c: Include ipa-inline.h.
28572         (reset_inline_failed): Use initialize_inline_failed.
28573         * cgraph.c: Include ipa-inline.h.
28574         (cgraph_create_node_1): Do not initialize estimated_growth.
28575         (initialize_inline_failed): More to ipa-inline-analysis.c
28576         (dump_cgraph_node): Do not dump inline flags.
28577         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
28578         and disregard_inline_limits flags.
28579         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
28580         time, size, estimated_growth.
28581         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
28582         Update.
28583         * cgraphunit.c (cgraph_decide_is_function_needed): Use
28584         DECL_DISREGARD_INLINE_LIMITS.
28585         (cgraph_analyze_function): Do not initialize
28586         node->local.disregard_inline_limits.
28587         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
28588         inlinable, versionable and disregard_inline_limits.
28589         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
28590         cgraph_check_inline_limits, cgraph_default_inline_p,
28591         cgraph_edge_badness, update_caller_keys, update_callee_keys,
28592         add_new_edges_to_heap): Update.
28593         (cgraph_decide_inlining_of_small_function): Update; set
28594         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
28595         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
28596         cgraph_decide_inlining_incrementally): Update.
28597         * ipa-inline.h (inline_summary): Add inlinable, versionable,
28598         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
28599         time, size and estimated_growth parameters.
28600         (estimate_edge_growth): Update.
28601         (initialize_inline_failed): Declare.
28602         * ipa-split.c: Include ipa-inline.h
28603         (execute_split_functions): Update.
28604         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
28605         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
28606         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
28607         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
28608         estimated_growth to INT_MIN.
28609         (inline_node_duplication_hook): Likewise.
28610         (dump_inline_summary): Dump new fields.
28611         (compute_inline_parameters): Update.
28612         (estimate_edge_time, estimate_time_after_inlining,
28613         estimate_size_after_inlining, estimate_growth, inline_read_summary,
28614         inline_write_summary):
28615         (initialize_inline_failed): Move here from cgraph.c.
28616         * tree-sra.c: Include ipa-inline.h.
28617         (ipa_sra_preliminary_function_checks): Update.
28618         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
28619         ipa-inline.h.
28620
28621 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
28622
28623         * config/i386/sse.md (V16): New mode iterator.
28624         (VI1, VI8): Ditto.
28625         (AVXMODEQI, AVXMODEDI): Remove.
28626         (sse2, sse3): New mode attribute.
28627         (mov<mode>): Use V16 mode iterator.
28628         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
28629         (push<mode>1): Use V16 mode iterator.
28630         (movmisalign<mode>): Ditto.
28631         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
28632         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
28633         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
28634         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
28635         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
28636         avx_movdqu<avxmodesuffix>.
28637         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
28638         *avx_movdqu<avxmodesuffix>.
28639         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
28640         avx_lddqu<avxmodesuffix>.
28641         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
28642         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
28643         avx_movnt<AVXMODEDI:mode>.
28644         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
28645         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
28646
28647 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
28648
28649         PR target/48629
28650         * haifa-sched.c (prune_ready_list, schedule_block): Use
28651         sched_pressure_p rather than flag_sched_pressure.
28652
28653 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
28654
28655         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
28656         cgraph_get_node instead of cgraph_get_create_node.
28657
28658 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
28659
28660         * cfgexpand.c (expand_debug_expr): Use
28661         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
28662
28663 2011-04-15  Michael Matz  <matz@suse.de>
28664
28665         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
28666         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
28667         * function.c (gimplify_parameters): Ditto.
28668         * gimplify.c (gimplify_vla_decl): Ditto.
28669
28670         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
28671         (gimple_call_set_alloca_for_var): New inline function.
28672         (gimple_call_alloca_for_var_p): Ditto.
28673         * gimple.c (gimple_build_call_from_tree): Remember
28674         CALL_ALLOCA_FOR_VAR_P state.
28675         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
28676
28677         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
28678         calls if they were for VLA objects.
28679
28680 2011-04-15  Martin Jambor  <mjambor@suse.cz>
28681
28682         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
28683         of ADR_EXPRs.
28684
28685 2011-04-15  Martin Jambor  <mjambor@suse.cz>
28686
28687         PR middle-end/48601
28688         * tree-emutls.c (lower_emutls_function_body): Call
28689         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
28690         result is non-NULL.
28691
28692 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
28693
28694         * c-decl.c (detect_field_duplicates): Call
28695         objc_detect_field_duplicates instead of objc_get_interface_ivars.
28696
28697 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
28698
28699         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
28700         * gimple.c (gimple_asm_clobbers_memory_p): Define.
28701         * ipa-pure-const.c (check_stmt): Call it.
28702         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
28703
28704 2011-04-15  Richard Guenther  <rguenther@suse.de>
28705
28706         PR tree-optimization/48290
28707         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
28708         Properly decide inhibiting propagation based on the valueized
28709         operand.  Do loop-closed SSA form preserving here ...
28710         (init_copy_prop): ... not here.
28711
28712 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
28713
28714         PR target/48612
28715         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
28716         (*ieee_smax<mode>3): Likewise.
28717
28718 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28719
28720         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
28721         Replace match_operand with match_dup for the third operand in
28722         these expanders.
28723
28724 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
28725
28726         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
28727         to track processing of conditionals.  Update all callers.
28728         (try_combine, simplify_if_then_else): Update.
28729
28730 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
28731
28732         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
28733         -fsched-pressure.
28734
28735 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
28736
28737         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
28738         instead of match_operand for operand 3.
28739
28740 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
28741
28742         * recog.h (insn_operand_data): Add an "allows_mem" field.
28743         * genoutput.c (output_operand_data): Initialize it.
28744         * optabs.c (maybe_legitimize_operand_same_code): New function.
28745         (maybe_legitimize_operand): Use it when matching the original
28746         op->value.
28747
28748 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
28749
28750         * gimplify.c: Fix issues in comments throughout.
28751         (voidify_wrapper_expr): Fix long line.
28752         (build_stack_save_restore): Likewise.
28753         (gimplify_loop_expr): Likewise.
28754         (gimplify_compound_lval): Likewise.
28755         (gimplify_init_ctor_eval): Likewise.
28756         (gimplify_modify_expr_rhs): Likewise.
28757         (omp_notice_threadprivate_variable): Likewise.
28758
28759 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
28760
28761         * cfgexpand.c (expand_call_stmt): Convert the function type to the
28762         original one if this is not a builtin function.
28763
28764 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
28765
28766         PR target/48605
28767         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
28768         offset it as needed based on top 2 bits in operands[3], change
28769         MEM mode to SFmode and mask those 2 bits away from operands[3].
28770
28771 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
28772
28773         * c-parser.c (c_parser_objc_protocol_definition): Updated for
28774         change from objc_declare_protocols() to objc_declare_protocol().
28775
28776 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
28777
28778         * config/i386/sse.md (sse4_1): New mode attribute.
28779         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
28780         avx_blend<ssemodesuffix><avxmodesuffix> and
28781         sse4_1_blend<ssemodesuffix> using VF mode iterator.
28782         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
28783         avx_blendv<ssemodesuffix><avxmodesuffix> and
28784         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
28785         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
28786         avx_dp<ssemodesuffix><avxmodesuffix> and
28787         sse4_1_dp<ssemodesuffix> using VF mode iterator.
28788         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
28789         (sse4_1_packusdw): Merge with *avx_packusdw.
28790         (sse4_1_pblendvb): Merge with *avx_pblendvb.
28791         (sse4_1_pblendw): Merge with *avx_pblendw.
28792         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
28793         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
28794         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
28795         VF mode iterator.
28796         (sse4_1_round<ssescalarmodesuffix>): Merge with
28797         *avx_round<ssescalarmodesuffix>.
28798         (aesenc): Merge with *avx_aesenc.
28799         (aesenclast): Merge with *avx_aesenclast.
28800         (aesdec): Merge with *avx_aesdec.
28801         (aesdeclast): Merge with *avx_aesdeclast.
28802         (pclmulqdq): Merge with *pclmulqdq.
28803         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
28804         New predicate.
28805         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
28806
28807 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
28808
28809         PR middle-end/48608
28810         * cfgexpand.c (get_decl_align_unit): Renamed to ...
28811         (align_local_variable): This.  Update DECL_ALIGN.
28812         (add_stack_var): Updated.
28813         (expand_one_stack_var): Likewise.
28814
28815 2011-04-14  Richard Guenther  <rguenther@suse.de>
28816
28817         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
28818         Remove.
28819         (dse_initialize_block_local_data, dse_leave_block,
28820         record_voperand_set, get_stmt_uid): Likewise.
28821         (dse_possible_dead_store_p): Allow any kind of killing stmt.
28822         (dse_optimize_stmt): Remove voperand set handling code.
28823         Simplify and improve to handle any kind of killing stmt.
28824         (dse_record_phi): Remove.
28825         (dse_enter_block): Simplify.
28826         (tree_ssa_dse): Likewise.
28827         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
28828
28829 2011-04-14  Jan Hubicka  <jh@suse.cz>
28830
28831         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
28832         * cgraph.h (struct inline_summary): Move to ipa-inline.h
28833         (cgraph_local_info): Remove inline_summary.
28834         * ipa-cp.c: Include ipa-inline.h.
28835         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
28836         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
28837         accesor.
28838         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
28839         (input_overwrite_node): Do not set inline summary.
28840         (input_node): Do not stream inline summary.
28841         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
28842         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
28843         growth; we do not have inline parameters computed for that anyway.
28844         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
28845         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
28846         (inline_summary_t): New type and VECtor.
28847         (debug_inline_summary, dump_inline_summaries): Declare.
28848         (inline_summary): Use VOCtor.
28849         (estimate_edge_growth): Kill hack computing call stmt size directly.
28850         * lto-section-in.c (lto_section_name): Add inline section.
28851         * ipa-inline-analysis.c: Include lto-streamer.h
28852         (node_removal_hook_holder, node_duplication_hook_holder): New holders
28853         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
28854         (inline_summary_vec): Define.
28855         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
28856         dump_inline_summaries): New functions.
28857         (estimate_function_body_sizes): Properly compute size/time of outgoing
28858         calls.
28859         (compute_inline_parameters): Alloc inline_summary; do not compute
28860         size/time of incomming calls.
28861         (estimate_edge_time): Avoid missing time summary hack.
28862         (inline_read_summary): Read inline summary info.
28863         (inline_write_summary): Write inline summary info.
28864         (inline_free_summary): Free all hooks and inline summary vector.
28865         * lto-streamer.h: Add LTO_section_inline_summary section.
28866         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
28867         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
28868
28869 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
28870
28871         * tree-vectorizer.h (vect_strided_store_supported): Add a
28872         HOST_WIDE_INT argument.
28873         (vect_strided_load_supported): Likewise.
28874         (vect_permute_store_chain): Return void.
28875         (vect_transform_strided_load): Likewise.
28876         (vect_permute_load_chain): Delete.
28877         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
28878         count argument.  Check that the count is a power of two.
28879         (vect_strided_load_supported): Likewise.
28880         (vect_permute_store_chain): Return void.  Update after above changes.
28881         Assert that the access is supported.
28882         (vect_permute_load_chain): Likewise.
28883         (vect_transform_strided_load): Return void.
28884         * tree-vect-stmts.c (vectorizable_store): Update calls after
28885         above interface changes.
28886         (vectorizable_load): Likewise.
28887         (vect_analyze_stmt): Don't check for strided powers of two here.
28888
28889 2011-04-14  Richard Guenther  <rguenther@suse.de>
28890
28891         PR tree-optimization/48590
28892         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28893         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
28894         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
28895         BUILT_IN_STACK_SAVE.
28896         * tree-ssa-dce.c (propagate_necessity): Handle
28897         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
28898
28899 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
28900
28901         * c-parser.c (c_parser_objc_class_declaration): Updated call to
28902         objc_declare_class.
28903
28904 2011-04-14  Richard Guenther  <rguenther@suse.de>
28905
28906         * tree.h (get_object_alignment_1): Declare.
28907         * builtins.c (get_object_alignment_1): Split out worker from ...
28908         (get_object_alignment): ... here.
28909         * fold-const.c (get_pointer_modulus_and_residue): Use
28910         get_object_alignment_1.
28911
28912 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
28913
28914         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
28915         type parameter.
28916         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
28917         parameter.  Generalise code to handle arrays as well as vectors.
28918         (vect_setup_realignment): Update accordingly.
28919         * tree-vect-stmts.c (vectorizable_store): Likewise.
28920         (vectorizable_load): Likewise.
28921
28922 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
28923
28924         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
28925         within the per-copy loop.
28926
28927 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
28928
28929         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
28930         in the dump file.
28931
28932 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
28933
28934         * doc/options.texi (Negative): Explicitly mention that the
28935         Negative chain must be circular.
28936
28937 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
28938
28939         * function.h (block_chainon): Declare.
28940         * function.c (block_chainon): Define.
28941
28942 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
28943             Eric Weddington  <eric.weddington@atmel.com>
28944             Georg-Johann Lay  <avr@gjlay.de>
28945
28946         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
28947         New Includes
28948         (avr_init_builtins, avr_expand_builtin,
28949         avr_expand_delay_cycles, avr_expand_unop_builtin,
28950         avr_expand_binop_builtin ): New functions.
28951         (avr_builtin_id): New enum
28952         (struct avr_builtin_description): New struct
28953         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
28954         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
28955
28956         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
28957         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
28958         UNSPECV_DELAY_CYCLES): new enumeration values
28959         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
28960         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
28961         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
28962         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
28963         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
28964         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
28965         "fmulsu"): New insns
28966
28967         * config/avr/avr-c.c: fix line endings
28968         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
28969         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
28970         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
28971         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
28972         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
28973
28974         * doc/extend.texi (AVR Built-in Functions): New node
28975         (Target Builtins): Add documentation of AVR
28976         built-in functions.
28977
28978 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
28979
28980         PR target/44643
28981         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
28982         alone. Error if non-const data has attribute progmem.
28983
28984 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
28985
28986         * tree.h (struct tree_constructor): Include tree_typed instead of
28987         tree_common.
28988         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
28989         TS_TYPED instead of TS_COMMON.
28990
28991 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
28992
28993         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
28994         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
28995         (sse2_psadbw): Merge with *avx_psadbw.
28996         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
28997         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
28998         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
28999         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
29000         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
29001         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
29002         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
29003         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
29004         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
29005         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
29006         (ssse3_palignrti): Merge with *avx_palignrti.
29007
29008 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29009
29010         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
29011         * tree-ssanames.c (fini_ssanames): VEC_free it.
29012         (make_ssa_name_fn): Update for VECness of free_ssanames.
29013         (release_ssa_name, release_dead_ssa_names): Likewise.
29014         * tree.h (struct tree_ssa_name): Include tree_typed instead of
29015         tree_common.
29016         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
29017         TS_TYPED instead of TS_COMMON.
29018
29019 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29020
29021         * postreload-gcse.c (gcse_after_reload_main): Add calls to
29022         statistics_counter_event.
29023         * tree-ssa-copyrename.c (stats): Define.
29024         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
29025         statistics_counter_event.
29026         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
29027         (bswap_stats, widen_mul_stats): Define.
29028         (insert_reciprocals): Increment rdivs_inserted.
29029         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
29030         rfuncs_inserted.  Add calls to statistics_counter_event.
29031         (execute_cse_sincos_1): Increment inserted.
29032         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
29033         statistics_counter_event.
29034         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
29035         of bswap_stats.  Add calls to statistics_counter_event.
29036         (convert_mult_to_widen): Increment widen_mults_inserted.
29037         (convert_plusminus_to_widen): Increment maccs_inserted.
29038         (convert_mult_to_fma): Increment fmas_inserted.
29039         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
29040         calls to statistics_counter_event.
29041
29042 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
29043
29044         PR rtl-optimization/48455
29045         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
29046         `temp_costs->mem_cost'.
29047
29048 2011-04-13  Jan Hubicka  <jh@suse.cz>
29049
29050         * ipa-inline.h: New file.
29051         * ipa-inline-analysis.c: New file. Broken out of ...
29052         * ipa-inline.c: ... this file; update toplevel comment;
29053         include ipa-inline.h
29054         (inline_summary): Move to ipa-inline.h
29055         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
29056         ipa-inline-analysis.c.
29057         (cgraph_estimate_time_after_inlining): Rename to
29058         estiamte_time_after_inlining; move to ipa-inline-analysis.c
29059         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
29060         to estimate_edge_growth.
29061         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
29062         rename to estimate_size_after_inlining.
29063         (cgraph_mark_inline_edge): Update for new naming convention.
29064         (cgraph_check_inline_limits): Likewise.
29065         (cgraph_edge_badness): Likewise.
29066         (cgraph_decide_recursive_inlining): Likewise.
29067         (cgraph_decide_inlining_of_small_functions): Likewise.
29068         (cgraph_decide_inlining_incrementally): Likewise.
29069         (cgraph_estimate_growth): Rename to estimate_growth; move to
29070         ipa-inline-analysis.c.
29071         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
29072         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
29073         (compute_inline_parameters): Likewise.
29074         (compute_inline_parameters_for_current): Likewise.
29075         (pass_inline_parameters): Likewise.
29076         (inline_indirect_intraprocedural_analysis): Likewise.
29077         (analyze_function): Rename to inline_analyze_function; likewise.
29078         (add_new_function): Move to ipa-inline-analysis.c.
29079         (inline_generate_summary): Likewise.
29080         (inline_read_summary): Likewise.
29081         (inline_write_summary): Likewise.
29082         * Makefile.in (ipa-inline-analysis.c): New file.
29083
29084 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29085
29086         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
29087         * configure: Regenerate.
29088
29089 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29090
29091         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
29092         instead of tree_common.
29093         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
29094         Likewise.
29095         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
29096         TS_TYPED rather than TS_COMMON.
29097         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
29098
29099 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
29100
29101         PR target/45263
29102         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
29103         r20 around calls of __tablejump_elpm__
29104
29105 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
29106
29107         PR middle-end/48591
29108         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
29109         NULL.
29110         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
29111
29112 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
29113
29114         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
29115         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
29116         (cfi_vec): New typedef.
29117         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
29118         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
29119         (cie_cfi_vec): New static variable.
29120         (cie_cfi_head): Delete.
29121         (add_cfi): Accept a cfi_vec * as first argument. All callers and
29122         declaration changed. Use vector rather than list operations.
29123         (new_cfi): Don't initialize the dw_cfi_next field.
29124         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
29125         rather than list operations.
29126         (lookup_cfa): Use vector rather than list operations.
29127         (output_cfis): New argument upto. Accept a cfi_vec rather than
29128         a dw_cfi_ref list head as argument. All callers changed.
29129         Iterate over the vector using upto as a maximum index.
29130         (output_all_cfis): New static function.
29131         (output_fde): Use vector rather than list operations. Use the
29132         new upto argument for output_cfis rather than manipulating a
29133         list.
29134         (dwarf2out_begin_prologue): Change initializations to match
29135         new struct members.
29136         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
29137         from the vector length rather than searching for the end of a list.
29138         Use output_all_cfis.
29139         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
29140
29141 2011-04-13  Nick Clifton  <nickc@redhat.com>
29142
29143         * config/rx/rx.md (movmemsi): Do not use this pattern when
29144         volatile pointers are involved.
29145
29146 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
29147
29148         * config/i386/sse.md (pinsrbits): Remove.
29149         (sse2_packsswb): Merge with *avx_packsswb.
29150         (sse2_packssdw): Merge with *avx_packssdw.
29151         (sse2_packuswb): Merge with *avx_packuswb.
29152         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
29153         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
29154         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
29155         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
29156         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
29157         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
29158         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
29159         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
29160         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
29161         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
29162         (sse2_loadld): Merge with *avx_loadld.
29163         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
29164         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
29165         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
29166         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
29167         (vec_concatv2di): Merge with *vec_concatv2di_avx.
29168
29169 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
29170
29171         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
29172         calling TREE_CHAIN.
29173         * print-tree.c (print_node): Likewise.
29174         * tree-inline.c (copy_tree_r): Likewise.
29175         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
29176         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
29177         instead of TS_COMMON.
29178         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
29179         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
29180         (copy_node_stat): Zero TREE_CHAIN only if necessary.
29181         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
29182         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
29183         ...and these...
29184         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
29185         * tree.h: ...here.
29186         (TREE_CHAIN): Check for a TS_COMMON structure.
29187         (TREE_TYPE): Check for a TS_TYPED structure.
29188
29189 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
29190
29191         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
29192         cgraph_get_create_node instead of cgraph_node.
29193
29194 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
29195
29196         * c-parser.c (c_parser_initelt): Updated call to
29197         objc_build_message_expr.
29198         (c_parser_postfix_expression): Likewise.
29199
29200 2011-04-12  Kai Tietz  <ktietz@redhat.com>
29201
29202         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
29203         MASK_MS_BITFIELD_LAYOUT bit.
29204
29205 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
29206
29207         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
29208         assert it is always true.
29209         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
29210         moves.
29211
29212 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
29213
29214         * c-parser.c (c_lex_one_token): Rewritten conditional used when
29215         compiling Objective-C to be more efficient.
29216
29217 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
29218
29219         * opts-common.c (decode_cmdline_options_to_array): Remove variable
29220         argv_copied.
29221
29222 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29223
29224         * recog.h, genoutput.c, optabs.c: Revert last patch.
29225
29226 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
29227
29228         PR target/48090
29229         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
29230
29231 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29232
29233         * recog.h (insn_operand_data): Add an "allows_mem" field.
29234         * genoutput.c (output_operand_data): Initialize it.
29235         * optabs.c (maybe_legitimize_operand_same_code): New function.
29236         (maybe_legitimize_operand): Use it when matching the original
29237         op->value.
29238
29239 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29240
29241         * genpreds.c (process_define_predicate): Move most processing
29242         to gensupport.c.  Continue to validate the expression.
29243         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
29244         (process_define_predicate): Move processing to gensupport.c.
29245         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
29246         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
29247         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
29248         argument.
29249         (valid_predicate_name_p): New function, split out from old
29250         genpreds.c:process_define_predicate.
29251         (process_define_predicate): New function, combining code from
29252         old genpreds.c and genrecog.c functions.
29253         (process_rtx): Call it for DEFINE_PREDICATE and
29254         DEFINE_SPECIAL_PREDICATE.
29255
29256 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29257
29258         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
29259         size of a '%A' memory reference.
29260         (T_DREG, T_QREG): New neon_builtin_type_bits.
29261         (arm_init_neon_builtins): Assert that the load and store operands
29262         are neon_struct_operands.
29263         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
29264         (NEON_ARG_MEMORY): New builtin_arg.
29265         (neon_dereference_pointer): New function.
29266         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
29267         Handle NEON_ARG_MEMORY.
29268         (arm_expand_neon_builtin): Update after above interface changes.
29269         Use NEON_ARG_MEMORY for loads and stores.
29270         * config/arm/predicates.md (neon_struct_operand): New predicate.
29271         * config/arm/iterators.md (V_two_elem): Tweak formatting.
29272         (V_three_elem): Use BLKmode for accesses that have no associated mode.
29273         (V_four_elem): Tweak formatting.
29274         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
29275         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
29276         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
29277         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
29278         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
29279         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
29280         (neon_vst4<mode>): Replace pointer operand with a memory operand.
29281         Use %A in the output template.
29282         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
29283         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
29284         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
29285         the width of the memory access.  Remove post-increment.
29286         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
29287
29288 2011-04-12  Nick Clifton  <nickc@redhat.com>
29289
29290         * config/v850/v850.c (expand_prologue): Do not use the CALLT
29291         instruction for interrupt handlers if the target is the basic V850
29292         architecture.
29293         (expand_epilogue): Likewise.
29294
29295 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
29296
29297         PR rtl-optimization/48549
29298         * combine.c (propagate_for_debug): Also stop after BB_END of
29299         this_basic_block.  Process LAST and just stop processing after it.
29300         (combine_instructions): If last_combined_insn has been deleted,
29301         set last_combined_insn to its PREV_INSN.
29302
29303 2011-04-12  Richard Guenther  <rguenther@suse.de>
29304
29305         PR tree-optimization/46076
29306         * gimple.h (struct gimple_statement_call): Add fntype field.
29307         (gimple_call_fntype): Adjust.
29308         (gimple_call_set_fntype): New function.
29309         * gimple.c (gimple_build_call_1): Set the call function type.
29310         * gimplify.c (gimplify_call_expr): Preserve the function
29311         type the frontend used for the call.
29312         (gimplify_modify_expr): Likewise.
29313         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
29314         function type.
29315         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
29316         function type.
29317         * tree-ssa.c (useless_type_conversion_p): Function pointer
29318         conversions are useless.
29319
29320 2011-04-12  Martin Jambor  <mjambor@suse.cz>
29321
29322         * cgraph.h (cgraph_node): Remove function declaration.
29323         (cgraph_create_node): Declare.
29324         (cgraph_get_create_node): Likewise.
29325         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
29326         Updated all callers.
29327         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
29328         the decl does not already exist.  Call cgraph_get_create_node instead
29329         of cgraph_node.
29330         (cgraph_get_create_node): New function.
29331         (cgraph_same_body_alias): Update comment.
29332         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
29333         assert it does not return NULL.
29334         (cgraph_update_edges_for_call_stmt): Likewise.
29335         (cgraph_clone_edge): Likewise.
29336         (cgraph_create_virtual_clone): Likewise.
29337         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
29338         instead of cgraph_node.
29339         (cgraph_add_new_function): Call cgraph_create_node or
29340         cgraph_get_create_node instead of cgraph_node.
29341         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
29342         instead of cgraph_node.
29343         (record_eh_tables): Likewise.
29344         (mark_address): Likewise.
29345         (mark_load): Likewise.
29346         (build_cgraph_edges): Call cgraph_get_create_node instead
29347         of cgraph_node.
29348         (rebuild_cgraph_edges): Likewise.
29349         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
29350         instead of cgraph_node.
29351         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
29352         cgraph_node.
29353         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
29354         cgraph_create_node instead of cgraph_node.
29355         * c-decl.c (finish_function): Call cgraph_get_create_node instead
29356         of cgraph_node.
29357         * lto-cgraph.c (input_node): Likewise.
29358         * lto-streamer-in.c (input_function): Likewise.
29359         * varasm.c (mark_decl_referenced): Likewise.
29360         (assemble_alias): Likewise.
29361
29362 2011-04-12  Martin Jambor  <mjambor@suse.cz>
29363
29364         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
29365         instead of cgraph_node and assert it does not return NULL.
29366         * lto-streamer-in.c (lto_read_body): Likewise.
29367         * omp-low.c (new_omp_context): Likewise.
29368         (create_task_copyfn): Likewise.
29369         * tree-emutls.c (lower_emutls_function_body): Likewise.
29370         * matrix-reorg.c (transform_allocation_sites): Likewise.
29371
29372 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
29373
29374         PR c/48552
29375         * c-typeck.c (build_asm_expr): Error out on attempts to use
29376         void type outputs or inputs for constraints that allow reg or
29377         don't allow memory.
29378
29379 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
29380             Richard Earnshaw  <rearnsha@arm.com>
29381
29382         PR target/48250
29383         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
29384         to use sign-magnitude offsets. Reject unsupported unaligned
29385         cases. Add detailed description in comments.
29386         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
29387         condition from TARGET_32BIT to TARGET_ARM.
29388
29389 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
29390
29391         * tree.h (struct typed_tree): New.
29392         (struct tree_common): Include it instead of tree_base.
29393         (TREE_TYPE): Update for new location of type field.
29394         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
29395         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
29396         (union tree_node): Add typed field.
29397         * treestruct.def (TS_TYPED): New.
29398         * lto-streamer.c (check_handled_ts_structures): Handle it.
29399         * tree.c (MARK_TS_TYPED): New macro.
29400         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
29401
29402 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
29403
29404         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
29405         (force_nonfallthru): Do not alter the loop nest if no basic block
29406         was created.
29407
29408 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
29409
29410         * config/i386/sse.md (VI): New mode iterator.
29411         (SSEMODEI): Remove.
29412         (AVX256MODEI): Ditto.
29413         (AVXMODEF4P): Ditto.
29414         (avxvecpsmode): Ditto.
29415         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
29416         (sse2_andnot<mode>3): New expander.
29417         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
29418         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
29419         (<any_logic:code><mode>3): Use VI mode iterator.
29420         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
29421         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
29422         (*andnottf3): Handle AVX three-operand constraints.
29423         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
29424
29425 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
29426             Robert Millan  <rmh@gnu.org>
29427
29428         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
29429         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
29430         GNU_USER_DYNAMIC_LINKER64): Define.
29431         (REG_NAME): Don't undefine.
29432         (MD_UNWIND_SUPPORT): Undefine.
29433         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
29434         (REG_NAME): Don't undefine.
29435         (MD_UNWIND_SUPPORT): Undefine.
29436         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
29437
29438 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
29439
29440         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
29441         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
29442
29443 2011-04-11  Xinliang David Li  <davidxl@google.com>
29444
29445         * value-profile.c (check_ic_target): New function.
29446         (gimple_ic_transform): Sanity check indirect call target.
29447         * gimple-low.c (gimple_check_call_args): Interface change.
29448         (gimple_check_call_matching_types): New function.
29449         * tree-inline.c (tree_can_inline_p): Call new function.
29450
29451 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
29452
29453         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
29454         tree-pretty-print.h & realmpfr.h.
29455
29456 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
29457
29458         PR middle-end/48464
29459         * ira.c (setup_pressure_classes): Fix typo in loop condition.
29460         (setup_allocno_and_important_classes): Ditto.
29461
29462 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
29463
29464         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
29465         GNU_USER_DYNAMIC_LINKER.
29466         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
29467         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29468         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
29469         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
29470         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
29471         GNU_USER_TARGET_OS_CPP_BUILTINS.
29472         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
29473         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29474         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
29475         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29476         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
29477         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
29478         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
29479         GNU_USER_TARGET_OS_CPP_BUILTINS.
29480         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29481         GNU_USER_DYNAMIC_LINKER.
29482         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
29483         GNU_USER_TARGET_OS_CPP_BUILTINS.
29484         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
29485         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29486         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
29487         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29488         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
29489         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
29490         GNU_USER_DYNAMIC_LINKER64): Remove.
29491         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
29492         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29493         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29494         GNU_USER_DYNAMIC_LINKER.
29495         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
29496         GNU_USER_TARGET_OS_CPP_BUILTINS.
29497         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
29498         GNU_USER_TARGET_OS_CPP_BUILTINS.
29499         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
29500         to GNU_USER_TARGET_OS_CPP_BUILTINS.
29501         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
29502         GNU_USER_TARGET_OS_CPP_BUILTINS.
29503         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
29504         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
29505         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
29506         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
29507         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29508         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29509         GNU_USER_DYNAMIC_LINKER.
29510         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
29511         GNU_USER_TARGET_OS_CPP_BUILTINS.
29512         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
29513         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29514         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29515         GNU_USER_DYNAMIC_LINKER.
29516         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
29517         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29518         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
29519         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29520         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29521         GNU_USER_DYNAMIC_LINKER.
29522         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
29523         GNU_USER_DYNAMIC_LINKERN32.
29524         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
29525         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
29526         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
29527         GNU_USER_DYNAMIC_LINKER32.
29528         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
29529         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29530         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29531         GNU_USER_DYNAMIC_LINKER.
29532         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
29533         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29534         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
29535         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29536         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
29537         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
29538         GNU_USER_DYNAMIC_LINKER32.
29539         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
29540         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
29541         GNU_USER_DYNAMIC_LINKER.
29542         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
29543         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29544         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
29545         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
29546         GNU_USER_DYNAMIC_LINKER64.
29547         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
29548         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29549         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29550         GNU_USER_DYNAMIC_LINKER.
29551         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
29552         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29553         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
29554         GNU_USER_DYNAMIC_LINKER.
29555         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
29556         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29557         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
29558         GNU_USER_DYNAMIC_LINKER32.
29559         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
29560         GNU_USER_DYNAMIC_LINKER64.
29561         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
29562         GNU_USER_DYNAMIC_LINKER64.
29563         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
29564         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29565         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
29566         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
29567         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
29568
29569 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
29570
29571         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
29572         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
29573         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
29574         GNU_USER_DYNAMIC_LINKER.
29575         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
29576         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
29577         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
29578         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
29579         GNU_USER_DYNAMIC_LINKER64.
29580         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
29581         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
29582         GNU_USER_LINK_EMULATION.
29583         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
29584         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
29585         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
29586         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
29587         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
29588         CPP_SPEC, CC1_SPEC): Remove.
29589         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
29590         (GNU_USER_DYNAMIC_LINKER): Define.
29591         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
29592         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
29593         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
29594         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
29595         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
29596         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
29597         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
29598         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
29599         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
29600         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
29601         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
29602         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
29603         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
29604         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
29605         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
29606         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
29607         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
29608         GNU_USER_DYNAMIC_LINKER.
29609         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
29610         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
29611         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
29612         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
29613         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
29614         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
29615         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
29616         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
29617         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
29618         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
29619
29620 2011-04-11  Kai Tietz  <ktietz@redhat.com>
29621
29622         PR target/9601
29623         PR target/11772
29624         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
29625         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
29626         comment.
29627         (ix86_is_msabi_thiscall): Removed.
29628         (ix86_is_type_thiscall): Likewise.
29629         (ix86_get_callcvt): New function.
29630         (ix86_comp_type_attributes): Simplify check.
29631         (ix86_function_regparm): Use ix86_get_callcvt for calling
29632         convention attribute checks.
29633         (ix86_return_pops_args): Likewise.
29634         (ix86_static_chain): Likewise.
29635         (x86_this_parameter): Likewise.
29636         (x86_output_mi_thunk): Likewise.
29637         (ix86_function_type_abi): Optimize check for types without attributes.
29638         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
29639         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
29640         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
29641         by flag-values.
29642         (IX86_BASE_CALLCVT): Helper macro.
29643         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
29644         Use ix86_get_callcvt for calling convention attribute checks and avoid
29645         symbol-decoration for stdcall in TARGET_RTD case.
29646         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
29647         Likewise.
29648         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
29649         for declaration.
29650
29651 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
29652
29653         * config/i386/sse.md (VI_128): New mode iterator.
29654         (VI12_128): Rename from SSEMODE12.
29655         (VI14_128): Rename from SSEMODE14.
29656         (VI124_128): New mode iterator.
29657         (VI24_128): Rename from SSEMODE248.
29658         (VI248_128): Rename from SSEMODE248.
29659         (SSEMODE124C8): Remove.
29660         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
29661         (*sse2_<plusminus_insn><mode>3): Merge with
29662         *avx_<plusminus_insn><mode>3.
29663         (*mulv8hi3): Merge with *avx_mulv8hi3.
29664         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
29665         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
29666         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
29667         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
29668         (ashr<mode>3): Merge with *avx_ashr<mode>3.
29669         (lshr<mode>3): Merge with *avx_lshr<mode>3.
29670         (ashl<mode>3): Merge with *avx_ashl<mode>3.
29671         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
29672         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
29673         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
29674         (*<smaxmin:code>v8hi3): Ditto.
29675         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
29676         (*<smaxmin:code>v16qi3): Ditto.
29677         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
29678         (*sse2_eq<mode>3): Ditto.
29679         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
29680         (*sse2_gt<mode>3): Ditto.
29681         (vcondv2di): Split out of vcond<mode>.
29682         (vconduv2di): Split out of vcondu<mode>.
29683
29684 2011-04-11  Richard Guenther  <rguenther@suse.de>
29685
29686         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
29687         before calling tree_low_cst.
29688
29689 2011-04-11  Richard Guenther  <rguenther@suse.de>
29690
29691         * stor-layout.c (layout_type): Compute all array index size operations
29692         in the original type.
29693         (initialize_sizetypes): Add comment.
29694         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
29695
29696 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
29697
29698         * common.opt (Tbss=, Tdata=, Ttext=): New options.
29699
29700 2011-04-11  Martin Jambor  <mjambor@suse.cz>
29701
29702         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
29703         of cgraph_node, handle NULL return value.
29704         (cgraph_global_info): Likewise.
29705         (cgraph_rtl_info): Likewise.
29706         * tree-inline.c (estimate_num_insns): Likewise.
29707         * gimplify.c (unshare_body): Likewise.
29708         (unvisit_body): Likewise.
29709         (gimplify_body): Likewise.
29710         * predict.c (optimize_function_for_size_p): Likewise.
29711         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
29712         (call_may_clobber_ref_p_1): Likewise.
29713         * varasm.c (function_section_1): Likewise.
29714         (assemble_start_function): Likewise.
29715
29716 2011-04-11  Martin Jambor  <mjambor@suse.cz>
29717
29718         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
29719         of cgraph_node.
29720         * final.c (rest_of_clean_state): Likewise.
29721         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
29722         * passes.c (pass_init_dump_file): Likewise.
29723         (execute_all_ipa_transforms): Likewise.
29724         (function_called_by_processed_nodes_p): Likewise.
29725         * predict.c (maybe_hot_frequency_p): Likewise.
29726         (probably_never_executed_bb_p): Likewise.
29727         (compute_function_frequency): Likewise.
29728         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
29729         (unnest_nesting_tree_1): Likewise.
29730         (lower_nested_functions): Likewise.
29731         * tree-optimize.c (execute_fixup_cfg): Likewise.
29732         (tree_rest_of_compilation): Likewise.
29733         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
29734         * tree-sra.c (ipa_early_sra): Likewise.
29735         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
29736         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
29737         * ipa.c (record_cdtor_fn): Likewise.
29738         * ipa-inline.c (cgraph_early_inlining): Likewise.
29739         (compute_inline_parameters_for_current): Likewise.
29740         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
29741         * ipa-pure-const.c (local_pure_const): Likewise.
29742         * ipa-split.c (split_function): Likewise.
29743         (execute_split_functions): Likewise.
29744         * cgraphbuild.c (build_cgraph_edges): Likewise.
29745         (rebuild_cgraph_edges): Likewise.
29746         (cgraph_rebuild_references): Likewise.
29747         (remove_cgraph_callee_edges): Likewise.
29748         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
29749         (verify_cgraph_node): Likewise.
29750         (cgraph_analyze_functions): Likewise.
29751         (cgraph_preserve_function_body_p): Likewise.
29752         (save_inline_function_body): Likewise.
29753         (save_inline_function_body): Likewise.
29754         * tree-inline.c (copy_bb): Likewise.
29755         (optimize_inline_calls): Likewise.
29756
29757 2011-04-11  Martin Jambor  <mjambor@suse.cz>
29758
29759         PR tree-optimization/48195
29760         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
29761         ipa_check_create_edge_args.
29762         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
29763         ipa_check_create_edge_args.
29764         * ipa-inline.c (inline_generate_summary): Do not call
29765         ipa_check_create_node_params and ipa_check_create_edge_args.
29766         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
29767         ipa_check_create_edge_args.
29768
29769 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
29770
29771         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
29772         instead of loop.
29773         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
29774         * function.c (record_hard_reg_sets): Likewise.
29775         * ira.c (compute_regs_asm_clobbered): Likewise.
29776         * sched-deps.c (sched_analyze_1): Likewise.
29777         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
29778
29779 2011-04-09  Xinliang David Li  <davidxl@google.com>
29780
29781         PR tree-optimization/PR48484
29782         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
29783         has_valid_pred lazily
29784
29785 2011-04-09  Duncan Sands  <baldrick@free.fr>
29786
29787         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
29788
29789 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
29790
29791         * combine.c (combine_validate_cost): Adjust comments.  Set registered
29792         cost of I0 to zero at the end, if any.
29793
29794 2011-04-08  Xinliang David Li  <davidxl@google.com>
29795
29796         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
29797         to insane profile data.
29798
29799 2011-04-08  Xinliang David Li  <davidxl@google.com>
29800
29801         * ipa-cp.c (ipcp_update_profiling): Correct
29802          negative scale factor due to insane profile data.
29803
29804 2011-04-08  Xinliang David Li  <davidxl@google.com>
29805
29806         * final.c (dump_basic_block_info): New function.
29807         (final): Dump basic block.
29808         (final_scan_insn): Remove old dump.
29809
29810 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
29811
29812         PR target/47829
29813         * config.gcc (i386-*-freebsd): Disable unwind table generation for
29814         crtbegin/crtend.
29815
29816 2011-04-08  Michael Matz  <matz@suse.de>
29817
29818         PR middle-end/48389
29819         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
29820         functions.
29821         (rebuild_jump_labels): Call rebuild_jump_labels_1.
29822         * rtl.h (rebuild_jump_labels_chain): Declare.
29823         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
29824         insns inserted on edges.
29825
29826 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
29827
29828         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
29829         * config/arm/arm-arches.def: New.
29830         * config/arm/arm-opts.h: New.
29831         * config/arm/genopt.sh: New.
29832         * config/arm/arm-tables.opt: New (generated).
29833         * config/arm/arm.c (arm_handle_option, arm_target_help,
29834         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
29835         (all_architectures): Get most table contents from arm-arches.def.
29836         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
29837         arm_selected_tune here.
29838         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
29839         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
29840         (march=, mcpu=, mtune=): Use Enum and Var.
29841         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
29842         (arm.o): Update dependencies.
29843
29844 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
29845
29846         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
29847         of header_file.
29848         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
29849         (write_typed_alloc_defns): Likewise.
29850         (main): Calls write_typed_alloc_defns with output_header.
29851
29852 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
29853
29854         PR inline-asm/48435
29855         * ira-color.c (setup_profitable_hard_regs): Add comments.
29856         Don't take prohibited hard regs into account.
29857         (setup_conflict_profitable_regs): Rename to
29858         get_conflict_profitable_regs.
29859         (check_hard_reg_p): Check prohibited hard regs.
29860
29861 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
29862
29863         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
29864         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
29865         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
29866
29867 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29868
29869         PR target/48366
29870         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
29871         move from floating point to shift amount register.
29872         (emit_move_sequence): Remove secondary reload support for floating
29873         point to shift amount amount register copies.
29874         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
29875         amount register copies.
29876         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
29877         register, return false if mode isn't a scalar integer mode.
29878         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
29879
29880 2011-04-08  Richard Guenther  <rguenther@suse.de>
29881
29882         * gimple.c (gimple_call_flags): Remove kludge.
29883
29884 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
29885
29886         * sel-sched.c (sel_region_init): Move call to
29887         sel_setup_region_sched_flags after setup_current_loop_nest.
29888
29889 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
29890
29891         PR rtl-optimization/48272
29892         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
29893         init_insn_reg_pressure_info.  Adjust a caller.
29894         * sched-int.h (init_insn_reg_pressure_info): Declare.
29895         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
29896         when sched-pressure is enabled.
29897
29898 2011-04-08  Richard Guenther  <rguenther@suse.de>
29899
29900         * gimple.c (gimple_set_modified): Do not queue calls to
29901         MODIFIED_NORETURN_CALLS here ...
29902         * tree-ssa-operands.c (update_stmt_operands): ... but here.
29903
29904 2011-04-08  Richard Guenther  <rguenther@suse.de>
29905
29906         PR lto/48467
29907         * toplev.c (lang_dependent_init): Do not open asm_out_file
29908         in WPA mode, nor perform debug machinery initialization.
29909         (finalize): Do not unlink asm_out_file in WPA mode.
29910
29911 2011-04-08  Richard Guenther  <rguenther@suse.de>
29912
29913         * gimple.h (gimple_call_fntype): New function.
29914         (gimple_call_return_type): Use it.
29915         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
29916         * gimple-low.c (gimple_check_call_args): Likewise.
29917         * gimple.c (gimple_call_flags): Likewise.
29918         (gimple_call_arg_flags): Likewise.
29919         (gimple_call_return_flags): Likewise.
29920         * tree-cfg.c (verify_gimple_call): Likewise.
29921         (do_warn_unused_result): Likewise.
29922         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
29923         * value-prof.c (gimple_ic_transform): Fix fndecl check.
29924
29925 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
29926
29927         PR rtl-optimization/48235
29928         * sel-sched.c (code_motion_process_successors): Recompute the last
29929         insn in basic block if control flow changed.
29930         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
29931         Update condition for ilist_remove.
29932
29933 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
29934
29935         PR rtl-optimization/48302
29936         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
29937         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
29938         it to record added preheader blocks.
29939         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
29940         on to sel_add_loop_preheaders.
29941         (sel_region_init): Move call to setup_current_loop_nest after
29942         sel_init_bbs.
29943
29944 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
29945
29946         PR target/48273
29947         * cfgloop.h (loop_has_exit_edges): New helper.
29948         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
29949         non-clonable.
29950         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
29951         that have no exit edges.
29952
29953 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
29954
29955         PR rtl-optimization/48442
29956         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
29957         all callers.  Adjust assert.
29958
29959 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
29960
29961         PR tree-optimization/48377
29962         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
29963         is_packed to true even for types with smaller TYPE_ALIGN than
29964         TYPE_SIZE.
29965
29966 2011-04-08  Richard Guenther  <rguenther@suse.de>
29967
29968         PR bootstrap/48513
29969         * doc/tm.texi: Re-generate.
29970
29971 2011-04-08  Wei Guozhi  <carrot@google.com>
29972
29973         PR target/47855
29974         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
29975         * config/arm/arm.c (arm_attr_length_push_multi): New function.
29976         * config/arm/arm.md (*push_multi): Change the length computation to
29977         call a C function.
29978
29979 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
29980
29981         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
29982         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
29983         * doc/tm.texi: Regenerate.
29984         * system.h (ASM_OUTPUT_BSS): Poison.
29985         * varasm.c (asm_output_bss): Remove function.
29986         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
29987
29988         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
29989         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
29990         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
29991         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
29992         Likewise.
29993         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
29994         Likewise.
29995         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
29996         Likewise.
29997         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
29998
29999 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
30000
30001         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
30002         EnumValue lines.
30003
30004 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
30005
30006         * config/m68k/m68k.c (m68k_handle_option): Don't handle
30007         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
30008         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
30009         OPT_mcpu32.
30010         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
30011         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
30012         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
30013         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
30014         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
30015         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
30016         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
30017         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
30018         options.  Don't map other m68k options manually.  Don't handle
30019         old-style options as canonical.
30020         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
30021         * doc/install.texi (m68k-*-*): Document binutils version requirement.
30022
30023 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
30024
30025         * basic-block.h (force_nonfallthru): Move to...
30026         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
30027         (force_nonfallthru): ...here.
30028         * cfghooks.c (force_nonfallthru): New function.
30029         * cfgrtl.c (force_nonfallthru): Rename into...
30030         (rtl_force_nonfallthru): ...this.
30031         (commit_one_edge_insertion): Do not set AUX field.
30032         (commit_edge_insertions): Do not discover new basic blocks.
30033         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
30034         (cfg_layout_rtl_cfg_hooks): Likewise.
30035         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
30036         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
30037         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
30038
30039 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
30040
30041         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
30042         Remove macros.
30043
30044 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
30045
30046         * config/i386/sse.md: Update copyright year.
30047         (avxcvtvecmode): Remove.
30048         (sse_movhlps): Merge with *avx_movhlps.
30049         (sse_movlhps): Merge with *avx_movlhps.
30050         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
30051         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
30052         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
30053         (sse_loadhps): Merge with *avx_loadhps.
30054         (sse_storelps): Merge with *avx_storelps.
30055         (sse_loadlps): Merge with *avx_loadlps.
30056         (sse_movss): Merge with *avx_movss.
30057         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
30058         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
30059         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
30060         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
30061         (vec_set<mode>_0): Ditto.
30062         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
30063         (sse4_1_insertps): Merge with *avx_insertps.
30064         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
30065         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
30066         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
30067         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
30068         (sse2_storehpd): Merge with *avx_storehpd.
30069         (sse2_loadhpd): Merge with *avx_loadhpd.
30070         (sse2_loadlpd): Merge with *avx_loadlpd.
30071         (sse2_movsd): Merge with *avx_movsd.
30072         (*vec_concatv2df): Merge with *vec_concatv2df.
30073
30074 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
30075
30076         PR debug/48343
30077         * combine.c (combine_instructions): Add last_combined_insn,
30078         update it if insn is after it, pass it to all try_combine calls.
30079         (try_combine): Add last_combined_insn parameter, pass it instead of
30080         i3 to propagate_for_debug.
30081
30082 2011-04-07  Nick Clifton  <nickc@redhat.com>
30083
30084         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
30085         to handle MDR <-> data register transfers.
30086         (movhi_internal): Likewise.
30087
30088 2011-04-07  Alan Modra  <amodra@gmail.com>
30089
30090         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
30091         previous stack info.
30092
30093 2011-04-07  Tom de Vries  <tom@codesourcery.com>
30094
30095         PR target/43920
30096         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
30097         flow_find_cross_jump.  Swap variables to implement backward replacement.
30098         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
30099
30100 2011-04-07  Tom de Vries  <tom@codesourcery.com>
30101
30102         PR target/43920
30103         * cfgcleanup.c (walk_to_nondebug_insn): New function.
30104         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
30105         and bb2.
30106         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
30107         src1 or src2.  Redirect edges to the last basic block.  Update
30108         frequency and count on multiple basic blocks in case of fallthru.
30109
30110 2011-04-07  Tom de Vries  <tom@codesourcery.com>
30111
30112         PR target/43920
30113         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
30114         function.
30115         (old_insns_match_p): Change return type.  Replace return false/true
30116         with return dir_none/dir_both.  Use can_replace_by.
30117         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
30118         direction from dir_p.  Register replacement direction in dir, last_dir
30119         and afterlast_dir.  Handle new return type of old_insns_match_p using
30120         merge_dir.  Return replacement direction in dir_p.
30121         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
30122         return type of old_insns_match_p.
30123         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
30124         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
30125         flow_find_cross_jump.
30126         * basic-block.h (enum replace_direction): New type.
30127         (flow_find_cross_jump): Add parameter to declaration.
30128
30129 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
30130
30131         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
30132         (AVXMODEDCVTPS2DQ): Ditto.
30133         (VEC_FLOAT_MODE): Ditto.
30134         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
30135         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
30136         (<any_logic:code><mode>3): Use VF mode iterator.
30137         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
30138         Use VF mode iterator.
30139         (copysign<mode>3): Use VF mode iterator.
30140         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
30141         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
30142         (*<any_logic:code><MODEF:mode>3): Merge with
30143         *avx_<any_logic:code><MODEF:mode>3.
30144         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
30145         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
30146         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
30147         (avx_cvtdq2ps<avxmodesuffix>): Remove.
30148         (sse2_cvtdq2ps): Use %v modifier.
30149         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
30150         (avx_cvtps2dq<avxmodesuffix>): Remove.
30151         (sse2_cvtps2dq): Use %v modifier.
30152         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
30153         (avx_cvttps2dq<avxmodesuffix>): Remove.
30154         (sse2_cvttps2dq): Use %v modifier.
30155         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
30156         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
30157         (sse2_cvtsd2siq): Fix insn template.
30158         (sse2_cvtsd2siq_2): Ditto.
30159         (sse2_cvttsd2siq): Ditto.
30160         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
30161         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
30162
30163 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
30164
30165         * gcov-io.c: Use GCC Runtime Library Exception.
30166
30167 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
30168
30169         PR debug/48466
30170         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
30171         as base_reg whatever register reg has been eliminated to, instead
30172         of hardcoding STACK_POINTER_REGNUM.
30173
30174 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
30175
30176         * doc/tm.texi.in: Document C target hooks as separate from general
30177         target hooks.
30178         * doc/tm.texi: Regenerate.
30179         * genhooks.c (struct hook_desc): Add docname field.
30180         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
30181         docname field.
30182         (hook_array): Include c-target.def.
30183         (emit_documentation): Use docname field in output.
30184         (emit_init_macros): Take docname argument.  Only emit definitions
30185         for hooks matching docname.
30186         (main): Expect additional arguments in all cases.  Pass argument
30187         to emit_init_macros.
30188         * target.def: Move initial macro definitions and comments to
30189         target-hooks-macros.h.
30190         (gcc_targetcm): Move to c-family/c-target.def.
30191         * target.h (targetcm): Move declaration to c-family/c-target.h.
30192         * targhooks.c (default_handle_c_option): Move to
30193         c-family/c-opts.c.
30194         * targhooks.h (default_handle_c_option): Move declaration to
30195         c-family/c-common.h.
30196         * target-hooks-macros.h: New file.
30197         * config.gcc (target_has_targetcm): Define and use to add to
30198         c_target_objs and cxx_target_objs.
30199         * config/default-c.c: New file.
30200         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
30201         of target.h and target-def.h.
30202         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
30203         (darwin_objc_construct_string, darwin_cfstring_ref_p,
30204         darwin_check_cfstring_format_arg): Make static.
30205         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
30206         TARGET_STRING_OBJECT_REF_TYPE_P,
30207         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
30208         * config/darwin-protos.h (darwin_objc_construct_string,
30209         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
30210         declare.
30211         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
30212         TARGET_STRING_OBJECT_REF_TYPE_P,
30213         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
30214         * config/t-darwin (darwin-c.o): Update dependencies.
30215         * system.h (TARGET_HAS_TARGETCM): Poison.
30216         * Makefile.in (TARGET_H): Update.
30217         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
30218         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
30219         (default-c.o): New target.
30220         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
30221         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
30222         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
30223         c-target.def.
30224         (build/genhooks.o): Update dependencies.
30225
30226 2011-04-06  Richard Guenther  <rguenther@suse.de>
30227
30228         * ipa-inline.c (enum inlining_mode): Remove.
30229         (cgraph_flatten): Use some other token.
30230         (cgraph_edge_early_inlinable_p): New function, split out from ...
30231         (cgraph_perform_always_inlining): New function, split out from ...
30232         (cgraph_decide_inlining_incrementally): ... here.
30233         (cgraph_mark_inline_edge): Adjust.
30234         (cgraph_early_inlining): Re-structure.
30235         (pass_early_inline): Require SSA form.
30236
30237 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
30238             Julian Brown  <julian@codesourcery.com>
30239             Mark Shinwell  <shinwell@codesourcery.com>
30240
30241         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
30242         LO_REGS only for Thumb-1.
30243         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
30244         be used in short instructions when optimising for size on Thumb-2.
30245
30246 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
30247
30248         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
30249         associated with user returns to be preserved.
30250
30251 2011-04-06  Tristan Gingold  <gingold@adacore.com>
30252
30253         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
30254         symbol_queue_size, DBXOUT_DECR_NESTING,
30255         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
30256         if XCOFF_DEBUGGING_INFO.
30257
30258 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
30259
30260         * config/i386/i386.md (attribute isa): New.
30261         (attribute enabled): New.
30262         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
30263         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
30264         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
30265         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
30266         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
30267         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
30268         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
30269         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
30270
30271         * config/i386/sse.md (VF): New mode iterator.
30272         (VF1): Ditto.
30273         (VF2): Ditto.
30274         (VF_128): Ditto.
30275         (SSEMODEF4): Remove.
30276         (attribute sse): Handle V8SF and V4DF modes.
30277         (<absneg:code><mode>2): Use VF mode iterator.
30278         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
30279         mode iterator.
30280         (<plusminus_insn><mode>3): Use VF mode iterator.
30281         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
30282         Use VF mode iterator.
30283         (<sse>_vm<plusminus_insn><mode>3): Merge with
30284         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
30285         (mul<mode>3): Use VF mode iterator.
30286         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
30287         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
30288         mode iterator.
30289         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
30290         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
30291         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
30292         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
30293         mode iterator.
30294         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
30295         Use VF1 mode iterator.
30296         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
30297         (sqrt<VF2:mode>2): New expander.
30298         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
30299         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
30300         and sqrtv2df2.  Use VF mode iterator.
30301         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
30302         mode iterator.
30303         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
30304         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
30305         Use VF1 mode iterator.
30306         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
30307         (<smaxmin:code><mode>3): Use VF mode iterator.
30308         (*<smaxmin:code><mode>3_finite): Merge with
30309         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
30310         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
30311         (<sse>_vm<smaxmin:code><mode>2): Merge with
30312         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
30313         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
30314         mode iterator.
30315         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
30316         mode iterator.
30317         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
30318         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
30319         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
30320         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
30321         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
30322         VF mode iterator.
30323         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
30324         Use VF_128 mode iterator.
30325         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
30326         mode iterator.
30327         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
30328         VF_128 mode iterator.
30329         (vcond<mode>): Use VF mode iterator.
30330         * config/i386/predicates.md (sse_comparison_operator): Merge with
30331         avx_comparison_float_operator.  Do not declare as special_predicate.
30332         * config/i386/i386.c (struct builtin_description): Update for renamed
30333         compare patterns.
30334         (ix86_expand_args_builtin): Ditto.
30335         (ix86_expand_sse_compare_mask): Ditto.
30336
30337 2011-04-06  Richard Guenther  <rguenther@suse.de>
30338
30339         * tree-inline.c (estimate_num_insns): For calls simply account
30340         for all passed arguments and a used return value.
30341
30342 2011-04-06  Richard Guenther  <rguenther@suse.de>
30343
30344         PR tree-optimization/47663
30345         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
30346         call_stmt_time fields.
30347         (cgraph_edge_inlinable_p): Declare.
30348         (cgraph_edge_recursive_p): New inline function.
30349         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
30350         (cgraph_clone_edge): Copy it.
30351         * ipa-inline.c (cgraph_estimate_edge_time): New function.
30352         Account for call stmt time.
30353         (cgraph_estimate_time_after_inlining): Take edge argument.
30354         (cgraph_estimate_edge_growth): Account call stmt size.
30355         (cgraph_estimate_size_after_inlining): Take edge argument.
30356         (cgraph_mark_inline_edge): Adjust.
30357         (cgraph_check_inline_limits): Likewise.
30358         (cgraph_recursive_inlining_p): Remove.
30359         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
30360         (cgraph_decide_recursive_inlining): Take edge argument and
30361         adjust.
30362         (cgraph_decide_inlining_of_small_functions): Do not avoid
30363         diags for recursive inlining here.
30364         (cgraph_flatten): Adjust.
30365         (cgraph_decide_inlining_incrementally): Likewise.
30366         (estimate_function_body_sizes): Remove call cost handling.
30367         (compute_inline_parameters): Initialize caller edge call costs.
30368         (cgraph_estimate_edge_growth): New function.
30369         (cgraph_estimate_growth): Use it.
30370         (cgraph_edge_badness): Likewise.
30371         (cgraph_check_inline_limits): Take an edge argument.
30372         (cgraph_decide_inlining_of_small_functions): Adjust.
30373         (cgraph_decide_inlining): Likewise.
30374         * tree-inline.c (estimate_num_insns): Only account for call
30375         return value if it is used.
30376         (expand_call_inline): Avoid diagnostics on recursive inline
30377         functions here.
30378         * lto-cgraph.c (lto_output_edge): Output edge call costs.
30379         (input_edge): Input edge call costs.
30380
30381 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30382
30383         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
30384
30385 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
30386
30387         * doc/invoke.texi (Spec Files): Fix typo.
30388
30389 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
30390
30391         * profile.c (branch_prob): Move declaration of local variable.  Remove
30392         obsolete ??? comment.  Expand the location explicitly instead of using
30393         the LOCATION_FILE and LOCATION_LINE macros.
30394
30395 2011-04-06  Wei Guozhi  <carrot@google.com>
30396
30397         PR target/47855
30398         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
30399         (arm_cond_branch): Likewise.
30400         (arm_cond_branch_reversed): Likewise.
30401         (arm_jump): Likewise.
30402         (push_multi): Likewise.
30403         * config/arm/constraints.md (Py): New constraint.
30404
30405 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30406
30407         PR bootstrap/48471
30408         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
30409         Move these...
30410         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
30411         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
30412         #ifdef DBX_DEBUGGING_INFO.
30413
30414 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
30415
30416         PR bootstrap/48403
30417         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
30418         if old and new states differ.
30419
30420 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
30421
30422         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
30423         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
30424         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
30425         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
30426         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
30427         mcfv4e): Use Alias.
30428         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
30429         ColdFire options to -mcpu= options.
30430
30431 2011-04-05  Jeff Law  <law@redhat.com>
30432
30433         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
30434         check if BB is a successor of LOOP->header and return
30435         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
30436
30437 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
30438
30439         * cprop.c (struct reg_use): Remove.
30440         (reg_use_table): Make an array of RTX.
30441         (find_used_regs, constprop_register, local_cprop_pass,
30442         bypass_block): Simplify users of reg_use_table.
30443         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
30444         on one of the uses found by find_used_regs.
30445
30446 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30447
30448         PR bootstrap/48469
30449         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
30450         declaration.
30451
30452 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30453
30454         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
30455         as an rtx.
30456         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
30457
30458 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
30459
30460         PR middle-end/48441
30461         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
30462
30463 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30464
30465         * combine.c: Include obstack.h.
30466         (struct insn_link): Define.
30467         (uid_log_links): Adjust type.
30468         (FOR_EACH_LOG_LINK): New macro.
30469         (insn_link_obstack): Declare.
30470         (alloc_insn_link): Define.
30471         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
30472         type of link variables.
30473         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
30474         (try_combine, record_promoted_values, distribute_notes): Likewise.
30475         (distribute_links): Likewise.  Tweak prototype.
30476         (clear_log_links): Delete.
30477         (adjust_for_new_dest): Call alloc_insn_link.
30478         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
30479
30480 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30481
30482         * gcse.c (modify_mem_list): Convert to an array of VECs.
30483         (canon_modify_mem_list, compute_transp): Tweak formatting.
30484         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
30485         (load_killed_in_block_p): Likewise.
30486         (record_last_mem_set_info): Likewise.
30487         (clear_modify_mem_tables): Likewise.
30488
30489 2011-04-05  Tom de Vries  <tom@codesourcery.com>
30490
30491         PR middle-end/48461
30492         * function.c (emit_use_return_register_into_block): Only define if
30493         HAVE_return.
30494
30495 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
30496
30497         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
30498
30499 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
30500
30501         * config/rx/rx-opts.h: New.
30502         * config/rx/rx.c (rx_cpu_type): Remove.
30503         (rx_handle_option): Don't assert that global structures are in
30504         use.  Access variables via opts pointer.  Defer most handling of
30505         OPT_mint_register_.  Use error_at.
30506         (rx_option_override): Handle deferred OPT_mint_register_ here.
30507         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
30508         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
30509         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
30510         (rx_cpu_types): New Enum and EnumValue entries.
30511         (mint-register=): Use Defer and use Var accordingly.
30512
30513 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30514
30515         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
30516         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
30517         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
30518         Move these...
30519         (debug_free_queue, debug_nesting, symbol_queue_index):
30520         ...and these...
30521         * dbxout.c: ...to here.  Make static.
30522
30523 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
30524
30525         * gcse.c (modify_pair): Define.  Define a VEC of it.
30526         (canon_modify_mem_list): Convert to an array of VECs.
30527         (free_insn_expr_list_list): Delete.
30528         (clear_modify_mem_tables): Call VEC_free instead.
30529         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
30530         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
30531         (canon_list_insert, compute_transp): Likewise.
30532
30533 2011-04-05  Tom de Vries  <tom@codesourcery.com>
30534
30535         PR target/43920
30536         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
30537         for size.
30538
30539 2011-04-05  Tom de Vries  <tom@codesourcery.com>
30540
30541         PR target/43920
30542         * function.c (emit_use_return_register_into_block): New function.
30543         (thread_prologue_and_epilogue_insns): Use
30544         emit_use_return_register_into_block.
30545
30546 2011-04-05  Tom de Vries  <tom@codesourcery.com>
30547
30548         PR target/43920
30549         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
30550         insn.
30551
30552 2011-04-05  Tom de Vries  <tom@codesourcery.com>
30553
30554         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
30555
30556 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
30557
30558         * config/arm/arm.md (define_constants for unspec): Replace with
30559         define_c_enum.
30560         (define_constants for unspecv): Replace with define_c_enum.
30561         * config/arm/neon.md (define_constants for unspec): Replace with
30562         define_c_enum.
30563
30564 2011-04-04  Richard Henderson  <rth@redhat.com>
30565
30566         PR bootstrap/48400
30567         * dwarf2out.c (output_line_info): Always emit line info from
30568         at least one section.
30569         (dwarf2out_init): Create text_section_line_info here ...
30570         (set_cur_line_info_table): ... not here.
30571
30572 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
30573
30574         PR target/48380
30575         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
30576         not called.
30577
30578         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
30579
30580 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
30581
30582         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
30583         (expr_equiv_p): Remove.
30584         (insert_set_in_table): Look at <dest, src> pair instead of expr.
30585         (hash_scan_set): Update call to insert_set_in_table.
30586         (dump_hash_table): Dump <dest, src> pair.
30587         (lookup_set): Simplify.  Lookup <dest, src> pair.
30588         (compute_transp): Remove, fold heavily simplified code into...
30589         (compute_local_properties): ...here.  Expect COMP and TRANSP
30590         unconditionally.
30591         (find_avail_set): Take set directly from struct expr.
30592         (find_bypass-set): Likewise.
30593         (bypass_block): Likewise.
30594         (cprop_insn): Likewise.  Remove redundant INSN_P test.
30595
30596         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
30597         checks on form of COND from find_implicit_sets to here.
30598         (find_implicit_sets): Cleanup control flow. Split critical edges
30599         if it exposes implicit sets.  Allocate/resize implicit_sets as
30600         necessary.
30601         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
30602         changed something.  Run df_analyze after find_implicit_sets if any
30603         edges were split.  Do not allocate implicit_sets here.
30604
30605         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
30606         (gcse_obstack): Renamed to cprop_obstack.
30607         (GNEW, GNEWVEC, GNEWVAR): Remove.
30608         (gmalloc): Remove.
30609         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
30610         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
30611         (gcse_alloc): Likewise, and rename to cprop_alloc.
30612         (alloc_gcse_men, free_gcse_mem): Remove.
30613         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
30614         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
30615         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
30616
30617         * cprop.c (oprs_not_set_p): Remove.
30618         (mark_set, mark_clobber): Remove.
30619         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
30620         (reg_not_set_p): New function.
30621         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
30622         (cprop_insn): Likewise.
30623         (cprop_jump): Use FOR_EACH_EDGE.
30624
30625 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
30626
30627         PR bootstrap/48403
30628         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
30629         (rank_for_schedule): Use scheduled_insns vector instead of
30630         last_scheduled_insn.
30631         (ok_for_early_queue_removal): Likewise.
30632         (queue_to_ready): Search forward in nonscheduled_insns_begin if
30633         we have a dbg_cnt.
30634         (choose_ready): Likewise.
30635         (commit_schedule): Use VEC_iterate.
30636         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
30637         a dbg_cnt, use it and ensure the first insn is in the ready list.
30638         (haifa_sched_init): Allocate scheduled_insns.
30639         (sched_extend_ready_list): Don't allocate it; reserve space.
30640         (haifa_sched_finish): Free it.
30641
30642 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
30643
30644         * optc-gen.awk: Always remove type from Variable entry before
30645         recording in var_seen.
30646
30647 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
30648
30649         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
30650         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
30651         call to tidy_fallthru_edges.
30652
30653 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
30654
30655         * doc/options.texi (ToLower): Document.
30656         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
30657         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
30658         * opts.h (cl_option): Add cl_tolower field.
30659         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
30660         arguments with lowercase strings.
30661         * config/rx/rx.opt (mcpu=): Add ToLower.
30662         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
30663         argument.
30664
30665 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
30666
30667         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
30668
30669 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
30670
30671         * config/vax/vax.c: Include reload.h.
30672
30673 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
30674
30675         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
30676         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
30677         (sparc_preferred_reload_class): New function.
30678
30679 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
30680
30681         PR debug/48401
30682         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
30683         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
30684
30685 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
30686
30687         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
30688         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
30689
30690 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
30691
30692         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
30693         (ASM_OUTPUT_ALIGNED_BSS): Define.
30694
30695 2011-04-03  Michael Matz  <matz@suse.de>
30696
30697         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
30698         and next_slot members.
30699         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
30700         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
30701         (lto_streamer_cache_append): Declare.
30702         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
30703         unsigned index, remove offset parameter, ensure that we append
30704         or update existing entries.
30705         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
30706         parameter, update next_slot for append.
30707         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
30708         parameter.
30709         (lto_streamer_cache_insert_at): Likewise.
30710         (lto_streamer_cache_append): New function.
30711         (lto_streamer_cache_lookup): Use unsigned index.
30712         (lto_streamer_cache_get): Likewise.
30713         (lto_record_common_node): Don't test tree_node_can_be_shared.
30714         (preload_common_node): Adjust call to lto_streamer_cache_insert.
30715         (lto_streamer_cache_delete): Don't free offsets member.
30716         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
30717         (lto_output_string_with_length): Use lto_output_data_stream.
30718         (lto_output_tree_header): Remove ix parameter, don't write it.
30719         (lto_output_builtin_tree): Likewise.
30720         (lto_write_tree): Adjust callers to above, don't track and write
30721         offset, write unsigned index.
30722         (output_unreferenced_globals): Don't emit all global vars.
30723         (write_global_references): Use unsigned indices.
30724         (lto_output_decl_state_refs): Likewise.
30725         (write_symbol): Likewise.
30726         * lto-streamer-in.c (lto_input_chain): Move earlier.
30727         (input_function): Use unsigned index.
30728         (input_alias_pairs): Don't read and then ignore all global vars.
30729         (lto_materialize_tree): Remove ix_p parameter, don't read index,
30730         don't pass it back, use lto_streamer_cache_append.
30731         (lto_register_var_decl_in_symtab): Use unsigned index.
30732         (lto_register_function_decl_in_symtab): Likewise.
30733         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
30734         index.
30735         (lto_get_builtin_tree): Don't read index, use
30736         lto_streamer_cache_append.
30737         (lto_read_tree): Adjust call to lto_materialize_tree.
30738
30739         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
30740         don't use function calls in arguments to MIN.
30741
30742         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
30743         twice.
30744
30745         * gimple.c (gimple_type_leader_entry): Mark deletable.
30746
30747 2011-04-03  Alan Modra  <amodra@gmail.com>
30748
30749         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
30750
30751 2011-04-03  Michael Matz  <matz@suse.de>
30752
30753         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
30754         an integer.
30755         * tree.h (tree_decl_non_common.vindex): Adjust comment.
30756
30757 2011-04-03  Michael Matz  <matz@suse.de>
30758
30759         * cgraphbuild.c (record_reference): Canonicalize constructor values.
30760         * gimple-fold.c (canonicalize_constructor_val): Accept being called
30761         without function context.
30762         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
30763         current_function_decl and cfun.
30764
30765 2011-04-03  Michael Matz  <matz@suse.de>
30766
30767         * tree.c (decl_init_priority_insert): Don't create entry for
30768         default priority.
30769         (decl_fini_priority_insert): Ditto.
30770         (fields_compatible_p, find_compatible_field): Remove.
30771         * tree.h (fields_compatible_p, find_compatible_field): Remove.
30772         * gimple.c (gimple_compare_field_offset): Adjust block comment.
30773
30774 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
30775
30776         * combine.c (try_combine): Remove useless local variable.
30777
30778 2011-04-03  Richard Guenther  <rguenther@suse.de>
30779             Ira Rosen  <ira.rosen@linaro.org>
30780
30781         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
30782         non-variable offsets and compare the remaining bases of the two
30783         accesses instead of looking for exact same data-ref.
30784
30785 2011-04-02  Kai Tietz  <ktietz@redhat.com>
30786
30787         PR target/48416
30788         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
30789
30790         * i386.c (ix86_is_msabi_thiscall): New helper function.
30791         (ix86_is_type_thiscall): New helper function.
30792         (ix86_comp_type_attributes): Handle thiscall for method-functions
30793         special.
30794         (init_cumulative_args): Likewise.
30795         (find_drap_reg): Likewise.
30796         (ix86_static_chain): Likewise.
30797         (x86_this_parameter): Likewise.
30798         (x86_output_mi_thunk): Likewise.
30799
30800 2011-04-01  Olivier Hainque  <hainque@adacore.com>
30801             Nicolas Setton  <setton@adacore.com>
30802             Eric Botcazou  <ebotcazou@adacore.com>
30803
30804         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
30805         (add_gnat_descriptive_type_attribute): New function.
30806         (gen_array_type_die): Call it.
30807         (gen_enumeration_type_die): Likewise.
30808         (gen_struct_or_union_type_die): Likewise.
30809         (modified_type_die): Likewise.
30810         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
30811         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
30812         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
30813
30814 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
30815
30816         PR bootstrap/48148
30817         * dwarf2out.c (resolve_addr): Don't call force_decl_die
30818         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
30819
30820         Revert:
30821         2011-03-17  Richard Guenther  <rguenther@suse.de>
30822
30823         PR bootstrap/48148
30824         * lto-cgraph.c (input_overwrite_node): Clear the abstract
30825         origin for decls in other ltrans units.
30826         (input_varpool_node): Likewise.
30827
30828 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
30829
30830         PR middle-end/48335
30831         * expr.c (expand_assignment): Handle all possibilities
30832         if TO_RTX is CONCAT.
30833         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
30834         (store_split_bit_field): If SUBREG_REG (op0) or
30835         op0 itself has smaller mode than word, return it
30836         for offset 0 and const0_rtx for out-of-bounds stores.
30837         If word is const0_rtx, skip it.
30838
30839 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
30840
30841         * config/h8300/h8300.c (print_operand_address): Rename to...
30842         (h8300_print_operand_address): ...this. Make static. Adjust comments.
30843         Call h8300_print_operand and h8300_print_operand_address instead of
30844         print_operand and print_operand_address. Declare.
30845         (print_operand): Renake to...
30846         (h8300_print_operand): ...this. Make static. Adjust comments.
30847         Call h8300_print_operand instead of print_operand. Declare.
30848         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
30849         (h8300_register_move_cost): Likewise.
30850         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
30851         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
30852         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
30853         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
30854         * config/h8300/h8300-protos.h (print_operand): Delete.
30855         (print_operand_address): Delete.
30856
30857 2011-04-01  Richard Henderson  <rth@redhat.com>
30858
30859         PR 48400
30860         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
30861         in strict mode before dwarf4.  Re-order tests to early out
30862         before switching sections.
30863
30864 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
30865
30866         * config/h8300/constraints.md: New file.
30867         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
30868         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
30869         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
30870         * config/h8300/predicates.md (bit_operand): Likewise.
30871         (incdec_operand): Use satisfies_constraint_M and
30872         satisfies_constraint_O.  Don't use C code block.
30873         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
30874         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
30875         (compute_mov_length): Use satisfies_constraint_G.
30876         (fix_bit_operand): Use satisfies_constraint_U.
30877         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
30878         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
30879         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
30880         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
30881         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
30882         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
30883         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30884         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
30885         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
30886         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
30887         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
30888         (EXTRA_MEMORY_CONSTRAINT): Delete.
30889
30890 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
30891             Michael Meissner  <meissner@linux.vnet.ibm.com>
30892
30893         PR target/48262
30894         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
30895         operands, as per the specifications.
30896
30897         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
30898         (vec_extract_evenv4sf): Ditto.
30899         (vec_extract_evenv8hi): Ditto.
30900         (vec_extract_evenv16qi): Ditto.
30901         (vec_extract_oddv4si): Ditto.
30902
30903 2011-03-31  Mark Wielaard  <mjw@redhat.com>
30904
30905         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
30906         high_pc attribute if the CU has no associated code. Only output
30907         DW_AT_entry_pc for CU if not generating strict dwarf and
30908         dwarf_version < 4.
30909
30910 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
30911
30912         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
30913         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
30914         out of ...
30915         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
30916         * final.c (final_start_function): Call the new function rather
30917         than using a NULL argument for dwarf2out_frame_debug.
30918
30919         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
30920         that contains the prologue.
30921
30922         * haifa-sched.c (queue_insn): New arg REASON.  All callers
30923         changed.  Print it in debugging output.
30924
30925         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
30926
30927         * sched-ebb.c (begin_schedule_ready): Remove second argument.
30928         Split most of the code into...
30929         (begin_move_insn): ... here.  New function.
30930         (ebb_sched_info): Add a pointer to it.
30931         * haifa-sched.c (scheduled_insns): New static variable.
30932         (sched_extend_ready_list): Allocate it.
30933         (schedule_block): Use it to record the order of scheduled insns.
30934         Perform RTL changes to move insns only after all scheduling
30935         decisions have been made.
30936         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
30937         begin_move_insn field.
30938         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
30939         * sched-int.h (struct haifa_sched_info): Remove second argument
30940         from begin_schedule_ready hook.  Add new member begin_move_insn.
30941         * sched-rgn.c (begin_schedule_ready): Remove second argument.
30942         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
30943
30944         * haifa-sched.c (prune_ready_list): New function, broken out of
30945         schedule_block.
30946         (schedule_block): Use it.
30947
30948 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30949
30950         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
30951
30952 2011-04-01  Kai Tietz  <ktietz@redhat.com>
30953
30954         * config.gcc (*-*-mingw*): Allow as option the
30955         posix threading model.
30956         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
30957         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
30958         definition.
30959         (CPP_SPEC): Add pthread/no-pthread handling.
30960         (LIB_SPEC): Likewise.
30961         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
30962         (LIB_SPEC): Likewise.
30963         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
30964         flag to pass -pthread option for shared libgcc build.
30965         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
30966         for shared libgcc build.
30967         * config/i386/t-mingw-pthread: New file.
30968         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
30969         New define to enable use of library pthread by default.
30970         * config/i386/mingw.opt (pthread): New driver option.
30971         (no-pthread): New driver option.
30972         * config/i386/cygming.opt: Make sure trailing empty line is retained.
30973         * config/i386/mingw-w64.opt: Likewise.
30974
30975 2011-04-01  Gary Funck  <gary@intrepid.com>
30976
30977         * c-decl.c (grokdeclarator): Fix formatting.
30978
30979 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
30980
30981         * expr.c (emit_block_move_via_movmem): Use n_generator_args
30982         instead of n_operands.
30983         (set_storage_via_setmem): Likewise.
30984         * optabs.c (maybe_gen_insn): Likewise.
30985         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
30986         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
30987         (mips_expand_builtin_direct): Likewise.
30988         * config/spu/spu.c (expand_builtin_args): Likewise.
30989
30990 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
30991
30992         * recog.h (insn_data_d): Add n_generator_args.
30993         * genoutput.c (data): Likewise.
30994         (output_insn_data): Print it.
30995         (max_opno, num_dups): Delete.
30996         (scan_operands): Just fill in "d->operand[...]".
30997         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
30998
30999 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
31000
31001         * gensupport.h (pattern_stats): New structure.
31002         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
31003         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
31004         (max_operand_1, max_operand_vec): Delete.
31005         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
31006
31007 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
31008
31009         * emit-rtl.c (emit_pattern_after_setloc): New function.
31010         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
31011         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
31012         (emit_pattern_after): New function.
31013         (emit_insn_after, emit_jump_insn_after): Call it.
31014         (emit_call_insn_after, emit_debug_insn_after): Likewise.
31015         (emit_pattern_before_setloc): New function.
31016         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
31017         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
31018         Likewise.
31019         (emit_pattern_before): New function.
31020         (emit_insn_before, emit_jump_insn_before): Call it.
31021         (emit_call_insn_before, emit_debug_insn_before): Likewise.
31022
31023 2011-03-31  Richard Henderson  <rth@redhat.com>
31024
31025         * dwarf2out.c (dw_separate_line_info_ref): Remove.
31026         (dw_separate_line_info_entry): Remove.
31027         (enum dw_line_info_opcode): New.
31028         (dw_line_info_entry): Use it.
31029         (dw_line_info_table, dw_line_info_table_p): New.
31030         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
31031         (line_info_table, line_info_label_num): Remove.
31032         (line_info_table_in_use): Remove.
31033         (separate_line_info_table): Remove.
31034         (separate_line_info_table_allocated): Remove.
31035         (separate_line_info_table_in_use): Remove.
31036         (LINE_INFO_TABLE_INCREMENT): Remove.
31037         (line_info_label_num): New.
31038         (cur_line_info_table): New.
31039         (text_section_line_info, cold_text_section_line_info): New.
31040         (separate_line_info): New.
31041         (SEPARATE_LINE_CODE_LABEL): Remove.
31042         (print_dwarf_line_table): Remove.
31043         (debug_dwarf): Don't dump it.
31044         (output_one_line_info_table): New.
31045         (output_line_info): Use it.
31046         (new_line_info_table): New.
31047         (set_cur_line_info_table): New.
31048         (dwarf2out_switch_text_section): Use it.
31049         (dwarf2out_begin_function): Likewise.
31050         (push_dw_line_info_entry): New.
31051         (dwarf2out_source_line): Rewrite for new line info tables.
31052         (dwarf2out_init): Remove dead initailizations.
31053
31054 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
31055
31056         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
31057         various flags.
31058         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
31059         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
31060         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
31061         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
31062         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
31063         * opt-functions.awk (flag_init, switch_bit_fields): New.
31064         (switch_flags): Don't handle flags moved to bit-fields.  Don't
31065         generate CL_MISSING_OK or CL_SAVE.
31066         * optc-gen.awk: Update to generate bit-field output as well as
31067         flags field.
31068         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
31069         bit-field instead of CL_REJECT_DRIVER flag.
31070         * opts-common.c (generate_canonical_option,
31071         decode_cmdline_option): Use bit-fields instead of CL_* flags.
31072         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
31073         instead of CL_REJECT_NEGATIVE flag.
31074         * toplev.c (print_switch_values): Use cl_report bit-field instead
31075         of CL_REPORT flag.
31076
31077 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
31078
31079         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
31080         a zero minimum index only if it is redundant.
31081
31082 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
31083
31084         PR rtl-optimization/48381
31085         * ira-color.c (assign_hard_reg): Use hard reg set intersection
31086         instead of ira_class_hard_reg_index for calculating conflicting
31087         hard registers.
31088
31089 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
31090
31091         * cprop.c: Clean up hash table building.
31092         (reg_avail_info): Remove.
31093         (oprs_available_p): Remove.
31094         (record_last_reg_set_info): Remove.
31095         (record_last_set_info): Remove.
31096         (reg_available_p): New function.
31097         (gcse_constant_p): Do not treat unfolded conditions as constants.
31098         (make_set_regs_unavailable): New function.
31099         (hash_scan_set): Simplify with new reg_available_p.
31100         (compute_hash_table_work): Traverse insns stream only once.
31101         Do not compute reg_avail_info. Traverse insns in reverse order.
31102         Record implicit sets after recording explicit sets from the block.
31103
31104 2011-03-31  Michael Matz  <matz@suse.de>
31105
31106         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
31107
31108 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
31109
31110         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
31111         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
31112         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
31113         (h8300_mode_dependent_address_p): New function.
31114         (h8300_get_index): Make static.
31115
31116 2011-03-31  Jeff Law  <law@redhat.com>
31117
31118         * reload1.c (elimination_effects): Fix typo in recent change.
31119
31120         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
31121         typo potentially leading to null pointer dereference.
31122
31123         * caller-save.c (new_saved_hard_reg): Eliminate return value.
31124         (setup_save_areas): Corresponding changes to avoid useless
31125         assignments.
31126
31127         * jump.c (reversed_comparison_code_parts): Avoid successive return
31128         statements when REVERSE_CONDITION is defined.
31129
31130         * expr.c (expand_assignment): Avoid useless assignments.
31131         (expand_expr_real_1): Likewise.
31132         (expand_expr_real_2): Avoid useless statements.
31133
31134         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
31135
31136         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
31137
31138         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
31139         statements.
31140
31141         * stmt.c (expand_expr_stmt): Avoid useless assignment.
31142
31143 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
31144
31145         PR target/47109
31146         * doc/tm.texi.in (TARGET_VERSION): Remove.
31147         * doc/tm.texi: Regenerate.
31148         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
31149         * collect2.c (main): Don't use TARGET_VERSION.
31150         * mips-tdump.c (main): Don't use TARGET_VERSION.
31151         * mips-tfile.c (main): Don't use TARGET_VERSION.
31152         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
31153         * config/rs6000/vxworksae.h: Remove.
31154         * config/alpha/alpha.h (TARGET_VERSION): Remove.
31155         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
31156         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
31157         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
31158         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
31159         * config/arm/arm.h (TARGET_VERSION): Remove.
31160         * config/arm/coff.h (TARGET_VERSION): Remove.
31161         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
31162         * config/arm/elf.h (TARGET_VERSION): Remove.
31163         * config/arm/freebsd.h (TARGET_VERSION): Remove.
31164         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
31165         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
31166         * config/arm/pe.h (TARGET_VERSION): Remove.
31167         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
31168         * config/arm/semi.h (TARGET_VERSION): Remove.
31169         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
31170         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
31171         * config/arm/vxworks.h (TARGET_VERSION): Remove.
31172         * config/avr/avr.h (TARGET_VERSION): Remove.
31173         * config/bfin/bfin.h (TARGET_VERSION): Remove.
31174         * config/fr30/fr30.h (TARGET_VERSION): Remove.
31175         * config/frv/frv.h (TARGET_VERSION): Remove.
31176         * config/h8300/h8300.h (TARGET_VERSION): Remove.
31177         * config/i386/cygwin.h (TARGET_VERSION): Remove.
31178         * config/i386/darwin.h (TARGET_VERSION): Remove.
31179         * config/i386/darwin64.h (TARGET_VERSION): Remove.
31180         * config/i386/djgpp.h (TARGET_VERSION): Remove.
31181         * config/i386/freebsd.h (TARGET_VERSION): Remove.
31182         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
31183         * config/i386/gnu.h (TARGET_VERSION): Remove.
31184         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
31185         * config/i386/i386elf.h (TARGET_VERSION): Remove.
31186         * config/i386/linux.h (TARGET_VERSION): Remove.
31187         * config/i386/linux64.h (TARGET_VERSION): Remove.
31188         * config/i386/lynx.h (TARGET_VERSION): Remove.
31189         * config/i386/mingw32.h (TARGET_VERSION): Remove.
31190         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
31191         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
31192         * config/i386/netware.h (TARGET_VERSION): Remove.
31193         * config/i386/nto.h (TARGET_VERSION): Remove.
31194         * config/i386/openbsd.h (TARGET_VERSION): Remove.
31195         * config/i386/vxworks.h (TARGET_VERSION): Remove.
31196         * config/ia64/elf.h (TARGET_VERSION): Remove.
31197         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
31198         * config/ia64/hpux.h (TARGET_VERSION): Remove.
31199         * config/ia64/linux.h (TARGET_VERSION): Remove.
31200         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
31201         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
31202         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
31203         * config/lm32/lm32.h (TARGET_VERSION): Remove.
31204         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
31205         * config/m32c/m32c.h (TARGET_VERSION): Remove.
31206         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
31207         * config/m32r/m32r.h (TARGET_VERSION): Remove.
31208         * config/m68k/linux.h (TARGET_VERSION): Remove.
31209         * config/m68k/m68k.h (TARGET_VERSION): Remove.
31210         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
31211         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
31212         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
31213         * config/mep/mep.h (TARGET_VERSION): Remove.
31214         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
31215         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
31216         * config/mips/iris6.h (MACHINE_TYPE): Remove.
31217         * config/mips/linux.h (TARGET_VERSION): Remove.
31218         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
31219         * config/mips/vxworks.h (TARGET_VERSION): Remove.
31220         * config/mmix/mmix.h (TARGET_VERSION): Remove.
31221         * config/mn10300/linux.h (TARGET_VERSION): Remove.
31222         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
31223         * config/pa/pa.h (TARGET_VERSION): Remove.
31224         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
31225         * config/picochip/picochip.h (TARGET_VERSION): Remove.
31226         * config/rs6000/aix.h (TARGET_VERSION): Remove.
31227         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
31228         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
31229         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
31230         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
31231         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
31232         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
31233         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
31234         * config/rs6000/linux.h (TARGET_VERSION): Remove.
31235         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
31236         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
31237         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
31238         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
31239         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
31240         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
31241         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
31242         * config/s390/linux.h (TARGET_VERSION): Remove.
31243         * config/s390/s390.h (TARGET_VERSION): Remove.
31244         * config/s390/tpf.h (TARGET_VERSION): Remove.
31245         * config/score/score.h (TARGET_VERSION): Remove.
31246         * config/sh/linux.h (TARGET_VERSION): Remove.
31247         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
31248         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
31249         * config/sh/sh.h (TARGET_VERSION): Remove.
31250         * config/sh/sh64.h (TARGET_VERSION): Remove.
31251         * config/sh/superh.h (TARGET_VERSION): Remove.
31252         * config/sh/vxworks.h (TARGET_VERSION): Remove.
31253         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
31254         * config/sparc/linux.h (TARGET_VERSION): Remove.
31255         * config/sparc/linux64.h (TARGET_VERSION): Remove.
31256         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
31257         TARGET_NAME32, TARGET_NAME): Remove.
31258         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
31259         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
31260         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
31261         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
31262         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
31263         * config/spu/spu.h (TARGET_VERSION): Remove.
31264         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
31265         * config/v850/v850.h (TARGET_VERSION): Remove.
31266         * config/vax/linux.h (TARGET_VERSION): Remove.
31267         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
31268         * config/xtensa/elf.h (TARGET_VERSION): Remove.
31269         * config/xtensa/linux.h (TARGET_VERSION): Remove.
31270
31271 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
31272
31273         PR target/48142
31274         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
31275         frame-related from frame-unrelated adjustments to the stack pointer.
31276
31277 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
31278
31279         * common.opt (fdebug-types-section): Move earlier.
31280         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
31281
31282 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
31283
31284         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
31285         var.
31286
31287 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
31288
31289         * tree.h (CASE_CHAIN): Define.
31290         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
31291         (gimple_redirect_edge_and_branch): Likewise.
31292
31293 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
31294
31295         PR middle-end/48367
31296         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
31297         calculation.
31298
31299 2011-03-30  Jeff Law  <law@redhat.com>
31300
31301         * PR bootstrap/48371
31302         * reload1.c (reload): Fix botch in last change.
31303
31304         * reload.h (struct reload): Fix typo introduced in last change.
31305
31306 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
31307
31308         * config/arm/arm.opt (mhard-float, msoft-float): Mark
31309         Undocumented.  Remove help text.
31310         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
31311         -mhard-float.
31312
31313 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
31314
31315         * doc/options.texi (NegativeAlias): Document.
31316         (Alias): Mention NegativeAlias.
31317         * opt-functions.awk: Handle NegativeAlias.
31318         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
31319         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
31320         * opts.h (CL_NEGATIVE_ALIAS): Define.
31321         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
31322         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
31323         OPT_mspe_.
31324         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
31325         Alias entries.
31326         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
31327         mno-spe and mno-isel instead of mspe=no and -misel=no.
31328
31329 2011-03-29  Mark Wielaard  <mjw@redhat.com>
31330
31331         * common.opt (fdebug-types-section): New flag.
31332         * doc/invoke.texi: Document new -fno-debug-types-section flag.
31333         * dwarf2out.c (use_debug_types): New define.
31334         (struct die_struct): Mark die_id with GTY desc use_debug_types.
31335         (print_die): Guard output of type unit signatures using
31336         use_debug_types.
31337         (build_abbrev_table): Replace assert of dwarf_version >= 4
31338         with assert on use_debug_types.
31339         (size_of_die): Likewise.
31340         (unmark_dies): Likewise.
31341         (value_format): Decide AT_ref_external form on use_debug_types.
31342         (output_die): Replace dwarf_version version check guard with
31343         use_debug_types where appropriate.
31344         (modified_type_die): Likewise.
31345         (gen_reference_type_die): Likewise.
31346         (dwarf2out_start_source_file): Likewise.
31347         (dwarf2out_end_source_file): Likewise.
31348         (prune_unused_types_walk_attribs): Likewise.
31349         (dwarf2out_finish): Likewise.
31350
31351 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
31352
31353         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
31354
31355 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
31356
31357         PR rtl-optimization/48332
31358         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
31359         mode of input operand N and modeN to its actual mode.
31360
31361 2011-03-30  Jeff Law  <law@redhat.com>
31362
31363         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
31364         define accessor macro.
31365         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
31366         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
31367         (reg_equiv_init): Likewise.
31368         (reg_equivs_size): New variable.
31369         (reg_equiv_init_size): Remove.
31370         (allocate_initial_values): Move prototype to here from....
31371         * integrate.h (allocate_initial_values): Remove prototype.
31372         * integrate.c: Include reload.h.
31373         (allocate_initial_values): Corresponding changes.
31374         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
31375         (fix_reg_equiv_init, no_equiv): Corresponding changes.
31376         (update_equiv_regs): Corresponding changes.
31377         (ira): Corresponding changes.
31378         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
31379         (push_secondary_reload): Corresponding changes.
31380         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
31381         (make_memloc, find_reloads_address): Corresponding changes.
31382         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
31383         (find_reloads_address_1): Corresponding changes.
31384         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
31385         (refers_to_regno_for_reload_p): Corresponding changes.
31386         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
31387         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
31388         * reload1.c: Include ggc.h.
31389         (grow_reg_equivs): New function.
31390         (replace_pseudos_in, reload): Corresponding changes.
31391         (calculate_needs_all_insns, alter_regs): Corresponding changes.
31392         (eliminate_regs_1, elimination_effects): Corresponding changes.
31393         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
31394         (delete_output_reload): Likewise.
31395         * caller-save.c (mark_referenced_regs): Corresponding changes.
31396         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
31397         * frv/predicates.md (frv_load_operand): Corresponding changes.
31398         * microblaze/microblaze.c (double_memory_operand): Corresponding
31399         changes.
31400         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
31401         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
31402         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
31403         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
31404         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
31405         changes.
31406         * pa/pa.c (emit_move_sequence): Corresponding changes.
31407         * vax/vax.c (nonindexed_address_p): Corresponding changes.
31408
31409 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
31410
31411         PR target/47551
31412         * config/arm/arm.c (coproc_secondary_reload_class): Handle
31413         structure modes.  Don't check neon_vector_mem_operand for
31414         vector or structure modes.
31415
31416 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
31417             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
31418
31419         PR target/43590
31420         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
31421         operand 1 and reshuffle the operands to match.
31422         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
31423
31424 2011-03-30  Christian Schüler  <cschueler@gmx.de>
31425
31426         PR driver/48208
31427         * config/c.opt (F): Added 'Driver' to -F option.
31428
31429         PR driver/48260
31430         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
31431           handler function.
31432         * config/darwin.opt: Added '-arch' option.
31433
31434 2011-03-30  Nick Clifton  <nickc@redhat.com>
31435
31436         * config/rx/rx.md: Add peepholes and patterns to combine
31437         extending loads and simple arithmetic instructions.
31438         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
31439         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
31440         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
31441         modes to use pre-decrement and post-increment addressing.
31442         (rx_is_restricted_memory_address): Add range checking of REG+INT
31443         addresses.
31444         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
31445         (rx_memory_move_cost): Adjust cost of stores.
31446         (rx_adjust_insn_length): New function.
31447
31448 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
31449
31450         PR c/48305
31451         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
31452         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
31453         matching arg00/arg01 types.
31454
31455 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
31456
31457         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
31458         last_location to UNKNOWN_LOCATION.
31459
31460 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
31461
31462         PR target/48349
31463         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
31464         FLOAT_SSE_REGS.
31465
31466 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
31467             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31468
31469         PR bootstrap/48337
31470         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
31471         Init(PROCESSOR_V7).
31472         (sparc_cpu): Likewise.
31473         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
31474         PROCESSOR_V7.
31475
31476 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
31477
31478         PR target/48336
31479         PR middle-end/48342
31480         PR rtl-optimization/48345
31481         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
31482         hard regs for given mode from profitable regs when doing secondary
31483         allocation.
31484
31485 2011-03-29  Jeff Law  <law@redhat.com>
31486
31487         PR bootstrap/48327
31488         * tree-ssa-threadupdate.c (struct redirection_data): Remove
31489         do_not_duplicate field.
31490         (lookup_redirection_data): Corresponding changes.
31491         (create_duplicates): Always create a template block.
31492         (redirect_edges): Remove code which reused the original block
31493         when it was going to become unreachable code.
31494         (thread_block): Don't set do_not_duplicate field.
31495
31496 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
31497
31498         * lto-opts.c (register_user_option_p, lto_register_user_option):
31499         Make type argument unsigned.
31500         * lto-streamer.h (lto_register_user_option): Make type argument
31501         unsigned.
31502         * opth-gen.awk: Make CL_* macros unsigned.
31503         * opts-common.c (find_opt): Make lang_mask argument unsigned.
31504         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
31505         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
31506         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
31507         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
31508         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
31509         (find_opt): Make lang_mask argument unsigned.
31510
31511 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
31512
31513         PR rtl-optimization/48331
31514         PR rtl-optimization/48334
31515         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
31516         for any used algorithm.
31517
31518 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
31519
31520         * ira-conflicts.c (build_object_conflicts): Add unused attribute
31521         to parent_max.
31522
31523 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
31524
31525         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
31526         (alpha_option_override): Don't set alpha_sr_alias_set.
31527         (emit_frame_store_1): Use gen_frame_mem rather than calling
31528         set_mem_alias_set.
31529         (alpha_expand_epilogue): Ditto.
31530
31531 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
31532
31533         PR tree-optimization/48290
31534         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
31535         vectorization, check that relevant phis in the basic block after
31536         the inner loop are really inner loop's exit phis.
31537
31538 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
31539
31540         PR debug/48190
31541         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
31542         (cached_dw_loc_list_def): New structure.
31543         (cached_dw_loc_list): New typedef.
31544         (cached_dw_loc_list_table): New variable.
31545         (cached_dw_loc_list_table_hash): New function.
31546         (cached_dw_loc_list_table_eq): Likewise.
31547         (add_location_or_const_value_attribute): Take a bool cache_p.
31548         Cache the list when the parameter is true.
31549         (gen_formal_parameter_die): Update caller.
31550         (gen_variable_die): Likewise.
31551         (dwarf2out_finish): Likewise.
31552         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
31553         while generating debug info for the decl.
31554         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
31555         (dwarf2out_init): Initialize cached_dw_loc_list_table.
31556         (resolve_addr): Cache the result of resolving a chain of
31557         location lists.
31558
31559 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
31560
31561         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
31562         conflict object hard regset nodes have intersecting hard reg sets.
31563
31564         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
31565         after regstat_init_n_sets_and_refs.
31566
31567         * ira.c: Add more comments at the top.
31568         (setup_stack_reg_pressure_class, setup_pressure_classes):
31569         Add comments how we compute the register pressure classes.
31570         (setup_allocno_and_important_classes): Add more comments.
31571         (setup_class_translate_array, reorder_important_classes)
31572         (setup_reg_class_relations): Add comments.
31573
31574         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
31575         start of the file.
31576
31577         * ira-color.c: Add 2011 to the Copyright line.
31578         (assign_hard_reg):  Add more comments.
31579         (improve_allocation): Ditto.
31580
31581         * ira-costs.c: Add 2011 to the Copyright line.
31582         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
31583         comments.
31584         (setup_regno_cost_classes_by_mode): Ditto.
31585
31586         Initial patches from ira-improv branch:
31587
31588         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
31589
31590         * ira-build.c (ira_create_object): Remove initialization of
31591         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
31592         (ira_create_allocno): Remove initialization of
31593         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
31594         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
31595         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
31596         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
31597         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
31598         Initialize ALLOCNO_ADD_DATA.
31599         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
31600         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
31601         ALLOCNO_REG.
31602         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
31603         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
31604
31605         * ira.c (ira_reallocate): Remove.
31606         (setup_pressure_classes): Call
31607         ira_init_register_move_cost_if_necessary.  Use
31608         ira_register_move_cost instead of ira_get_register_move_cost.
31609         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
31610         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
31611
31612         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
31613         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
31614         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
31615         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
31616         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
31617         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
31618         Fix formatting.
31619         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
31620         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
31621         (struct allocno_color_data): New.
31622         (allocno_color_data_t): New typedef.
31623         (allocno_color_data): New definition.
31624         (ALLOCNO_COLOR_DATA): New macro.
31625         (struct object_color_data): New.
31626         (object_color_data_t): New typedef.
31627         (object_color_data): New definition.
31628         (OBJECT_COLOR_DATA): New macro.
31629         (update_copy_costs, calculate_allocno_spill_cost): Call
31630         ira_init_register_move_cost_if_necessary.  Use
31631         ira_register_move_cost instead of ira_get_register_move_cost.
31632         (move_spill_restore, update_curr_costs): Ditto.
31633         (allocno_spill_priority): Make it inline.
31634         (color_pass): Allocate and free allocno_color_dat and object_color_data.
31635         (struct coalesce_data, coalesce_data_t): New.
31636         (allocno_coalesce_data): New definition.
31637         (ALLOCNO_COALESCE_DATA): New macro.
31638         (merge_allocnos, coalesced_allocno_conflict_p): Use
31639         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
31640         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
31641         (coalesce_allocnos): Ditto.
31642         (setup_coalesced_allocno_costs_and_nums): Ditto.
31643         (collect_spilled_coalesced_allocnos): Ditto.
31644         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
31645         (setup_slot_coalesced_allocno_live_ranges): Ditto.
31646         (coalesce_spill_slots): Ditto.
31647         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
31648         free allocno_coalesce_data.
31649
31650         * ira-conflicts.c: Fix formatting.
31651         (process_regs_for_copy): Call
31652         ira_init_register_move_cost_if_necessary.  Use
31653         ira_register_move_cost instead of ira_get_register_move_cost.
31654         (build_object_conflicts): Optimize.
31655
31656         * ira-costs.c (record_reg_classes): Optimize.  Call
31657         ira_init_register_move_cost_if_necessary.  Use
31658         ira_register_move_cost, ira_may_move_in_cost, and
31659         ira_may_move_out_cost instead of ira_get_register_move_cost and
31660         ira_get_may_move_cost.
31661         (record_address_regs): Ditto.
31662         (scan_one_insn): Optimize.
31663         (find_costs_and_classes): Optimize.
31664         (process_bb_node_for_hard_reg_moves): Call
31665         ira_init_register_move_cost_if_necessary.  Use
31666         ira_register_move_cost instead of ira_get_register_move_cost.
31667
31668         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
31669         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
31670         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
31671         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
31672         definitions.
31673         (ira_initiate_emit_data, ira_finish_emit_data)
31674         (create_new_allocno): New functions.
31675         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
31676         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
31677         Use ira_register_move_cost instead of ira_get_register_move_cost.
31678
31679         * ira-int.h: Fix some comments.
31680         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
31681         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
31682         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
31683         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
31684         add_data.
31685         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
31686         bitfield after mode.  Make hard_regno a short int.  Make
31687         hard_regno short.  Remove first_coalesced_allocno and
31688         next_coalesced_allocno.  Move mem_optimized_dest_p,
31689         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
31690         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
31691         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
31692         temp, colorable_p.  Add new member add_data.
31693         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
31694         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
31695         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
31696         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
31697         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
31698         (ALLOCNO_ADD_DATA): New macro.
31699         (ira_emit_data_t): New typedef.
31700         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
31701         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
31702         from struct ira_allocno.
31703         (ALLOCNO_EMIT_DATA): New macro.
31704         (ira_allocno_emit_data, allocno_emit_reg): New.
31705         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
31706         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
31707         (OBJECT_ADD_DATA): New macro.
31708         (ira_reallocate): Remove.
31709         (ira_initiate_emit_data, ira_finish_emit_data): New.
31710         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
31711         (ira_init_register_move_cost_if_necessary): New.
31712         (ira_object_conflict_iter_next): Merge into
31713         ira_object_conflict_iter_cond.
31714         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
31715
31716         * ira-live.c (process_single_reg_class_operands): Call
31717         ira_init_register_move_cost_if_necessary.  Use
31718         ira_register_move_cost instead of ira_get_register_move_cost.
31719
31720         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
31721
31722         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
31723
31724         * ira-costs.c: Fix formatting.
31725         (cost_classes, cost_classes_num): Remove.
31726         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
31727         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
31728         (cost_classes_del, cost_classes_htab): New.
31729         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
31730         (initiate_regno_cost_classes, setup_cost_classes): New.
31731         (setup_regno_cost_classes_by_aclass): New.
31732         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
31733         (record_reg_classes): Use regno_cost_classes instead of
31734         cost_classes.  Move checking opposite operand up.
31735         (record_address_regs): Use regno_cost_classes
31736         instead of cost_classes.
31737         (scan_one_insn): Ditto.  Use always general register.
31738         (print_allocno_costs): Use regno_cost_classes instead of
31739         cost_classes.
31740         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
31741         (find_costs_and_classes): Set up cost classes for each registers.
31742         Use also their mode for this.  Use regno_cost_classes instead of
31743         cost_classes.
31744         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
31745         cost_classes.
31746         (free_ira_costs, ira_init_costs): Don't use cost_classes.
31747         (ira_costs, ira_set_pseudo_classes): Call
31748         initiate_regno_cost_classes and finish_regno_cost_classes.
31749
31750         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
31751
31752         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
31753
31754         * target.def (ira_cover_classes): Remove.
31755
31756         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
31757
31758         * doc/tm.texi.in: Ditto.
31759
31760         * ira-conflicts.c: Remove mentioning cover classes from the file.
31761         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
31762         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
31763
31764         * targhooks.c (default_ira_cover_classes): Remove.
31765
31766         * targhooks.h (default_ira_cover_classes): Ditto.
31767
31768         * haifa-sched.c: Remove mentioning cover classes from the file.
31769         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
31770         ira_pressure_classes and ira_pressure_classes_num instead of
31771         ira_reg_class_cover_size and ira_reg_class_cover.  Use
31772         sched_regno_pressure_class instead of sched_regno_cover_class.
31773         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
31774         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
31775
31776         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
31777         classes from the file.
31778         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
31779         (struct object_hard_regs, struct object_hard_regs_node): New.
31780         (struct ira_object): New members profitable_hard_regs,
31781         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
31782         (struct ira_allocno): Rename cover_class to aclass.  Rename
31783         cover_class_cost and updated_cover_class_cost to class_cost and
31784         updated_class_cost.  Remove splay_removed_p and
31785         left_conflict_size.  Add new members colorable_p.
31786         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
31787         (ALLOCNO_COLORABLE_P): New macro.
31788         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
31789         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
31790         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
31791         (OBJECT_...): Rename parameter C to O.
31792         (OBJECT_PROFITABLE_HARD_REGS): New macro.
31793         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
31794         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
31795         (struct target_ira_int): New members x_ira_max_memory_move_cost,
31796         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
31797         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
31798         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
31799         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
31800         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
31801         x_ira_reg_class_subunion.
31802         (ira_max_memory_move_cost, ira_max_register_move_cost)
31803         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
31804         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
31805         (ira_important_class_nums, ira_reg_class_superunion): New macros.
31806         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
31807         (ira_reg_class_union): Rename to ira_reg_class_subunion.
31808         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
31809         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
31810         (ira_tune_allocno_costs_and_cover_classes): Rename to
31811         ira_tune_allocno_costs.
31812         (ira_debug_hard_regs_forest): New.
31813         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
31814         (ira_object_conflict_iter_next): Fix comments.
31815         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
31816         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
31817         cover_class to aclass.
31818         (ira_allocate_and_accumulate_costs): Ditto.
31819         (ira_allocate_and_set_or_copy_costs): Ditto.
31820
31821         * opts.c (decode_options): Remove ira_cover_class check.
31822
31823         * ira-color.c: Remove mentioning cover classes from the file.  Use
31824         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
31825         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
31826         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
31827         (splay-tree.h): Remove include.
31828         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
31829         before copy_freq_compare_func.
31830         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
31831         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
31832         New definitions.
31833         (hard_regs_roots, hard_regs_node_vec): Ditto.
31834         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
31835         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
31836         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
31837         (create_new_object_hard_regs_node): Ditto.
31838         (add_new_object_hard_regs_node_to_forest): Ditto.
31839         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
31840         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
31841         Ditto.
31842         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
31843         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
31844         (remove_unused_object_hard_regs_nodes): Ditto.
31845         (enumerate_object_hard_regs_nodes): Ditto.
31846         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
31847         (object_hard_regs_subnode_t): Ditto.
31848         (struct object_hard_regs_subnode): Ditto.
31849         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
31850         (setup_object_hard_regs_subnode_index): Ditto.
31851         (get_object_hard_regs_subnodes_num): Ditto.
31852         (form_object_hard_regs_nodes_forest): Ditto.
31853         (finish_object_hard_regs_nodes_tree): Ditto.
31854         (finish_object_hard_regs_nodes_forest): Ditto.
31855         (allocnos_have_intersected_live_ranges_p): Rename to
31856         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
31857         (pseudos_have_intersected_live_ranges_p): Rename to
31858         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
31859         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
31860         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
31861         (update_copy_costs): Remove assert.  Skip cost update if the hard
31862         reg does not belong the class.
31863         (assign_hard_reg): Process only profitable hard regs.
31864         (uncolorable_allocnos_num): Make it scalar.
31865         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
31866         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
31867         and ira_reg_class_max_nregs.
31868         (bucket_allocno_compare_func): Check frequency first.
31869         (sort_bucket): Add compare function as a parameter.
31870         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
31871         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
31872         (push_allocno_to_stack): Rewrite for checking new allocno
31873         colorability.
31874         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
31875         (push_only_colorable): Pass new parameter to sort_bucket.
31876         (push_allocno_to_spill): Remove.
31877         (allocno_spill_priority_compare): Make it inline and rewrite.
31878         (splay_tree_allocate, splay_tree_free): Remove.
31879         (allocno_spill_sort_compare): New function.
31880         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
31881         build and use splay tree.  Choose first allocno in uncolorable
31882         allocno bucket to spill.  Remove setting spill cost.
31883         (all_conflicting_hard_regs): Remove.
31884         (setup_allocno_available_regs_num): Check only profitable hard
31885         regs.  Print info about hard regs nodes.
31886         (setup_allocno_left_conflicts_size): Remove.
31887         (put_allocno_into_bucket): Don't call
31888         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
31889         (improve_allocation): New.
31890         (color_allocnos): Call setup_profitable_hard_regs,
31891         form_object_hard_regs_nodes_forest, improve_allocation,
31892         finish_object_hard_regs_nodes_forest.  Setup spill cost.
31893         (print_loop_title): Use pressure classes.
31894         (color_allocnso): Ditto.
31895         (do_coloring): Remove allocation and freeing splay_tree_node_pool
31896         and allocnos_for_spilling.
31897         (ira_sort_regnos_for_alter_reg): Don't setup members
31898         {first,next}_coalesced_allocno.
31899         (color): Remove allocating and freeing removed_splay_allocno_vec.
31900         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
31901         prohibited_class_mode_regs.
31902
31903         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
31904         formatting.
31905         (update_allocno_pressure_excess_length): Use pressure classes.
31906         (inc_register_pressure, dec_register_pressure): Check for pressure
31907         class.
31908         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
31909         pressure class.  Use ira_reg_class_nregs instead of
31910         ira_reg_class_max_nregs.
31911         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
31912         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
31913         (single_reg_class): Use ira_reg_class_nregs instead of
31914         ira_reg_class_max_nregs.
31915         (process_bb_node_lives): Use pressure classes.
31916
31917         * ira-emit.c: Remove mentioning cover classes from the file.  Use
31918         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
31919         (change_loop): Use pressure classes.
31920         (modify_move_list): Call ira_set_allocno_class instead of
31921         ira_set_allocno_cover_class.
31922
31923         * ira-build.c: Remove mentioning cover classes from the file.  Use
31924         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
31925         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
31926         ALLOCNO_UPDATED_CLASS_COST instead of
31927         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
31928         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
31929         (ira_create_allocno): Remove initialization of
31930         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
31931         ALLOCNO_COLORABLE_P.
31932         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
31933         Update conflict regs for the objects.
31934         (create_cap_allocno): Remove assert.  Don't propagate
31935         ALLOCNO_AVAILABLE_REGS_NUM.
31936         (ira_free_allocno_costs): New function.
31937         (finish_allocno): Change a part of code into call of
31938         ira_free_allocno_costs.
31939         (low_pressure_loop_node_p): Use pressure classes.
31940         (object_range_compare_func): Don't compare classes.
31941         (setup_min_max_conflict_allocno_ids): Ditto.
31942
31943         * loop-invariant.c: Remove mentioning cover classes from the file.
31944         Use ira_pressure_classes and ira_pressure_classes_num instead of
31945         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
31946         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
31947         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
31948         Use reg_allocno_class instead of reg_cover_class.
31949         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
31950         STACK_REG_COVER_CLASS.
31951         (get_regno_cover_class): Rename to get_regno_pressure_class.
31952         (move_loop_invariants): Initialize and finalize regstat.
31953
31954         * ira.c: Remove mentioning cover classes from the file.  Add
31955         comments about coloring without cover classes.  Use ALLOCNO_CLASS
31956         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
31957         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
31958         setup_class_subset_and_memory_move_costs.
31959         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
31960         (setup_cover_and_important_classes): Rename to
31961         setup_allocno_and_important_classes.
31962         (setup_class_translate_array): New.
31963         (setup_class_translate): Call it for allocno and pressure classes.
31964         (cover_class_order): Rename to allocno_class_order.
31965         (comp_reg_classes_func): Use ira_allocno_class_translate instead
31966         of ira_class_translate.
31967         (reorder_important_classes): Set up ira_important_class_nums.
31968         (setup_reg_class_relations): Set up ira_reg_class_superunion.
31969         (print_class_cover): Rename to print_classes.  Add parameter.
31970         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
31971         Print pressure classes too.
31972         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
31973         setup_reg_subclasses.
31974         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
31975         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
31976         (setup_prohibited_class_mode_regs): Use
31977         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
31978         (clarify_prohibited_class_mode_regs): New function.
31979         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
31980         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
31981         (ira_init_once): Initialize them.
31982         (free_register_move_costs): Process them.
31983         (ira_init): Move calls of find_reg_classes and
31984         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
31985         Call clarify_prohibited_class_mode_regs.
31986         (ira_no_alloc_reg): Remove.
31987         (too_high_register_pressure_p): Use pressure classes.
31988
31989         * sched-deps.c: Remove mentioning cover classes from the file.
31990         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
31991         ira_pressure_classes and ira_pressure_classes_num instead of
31992         ira_reg_class_cover_size and ira_reg_class_cover.
31993         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
31994         sched_regno_pressure_class instead of sched_regno_cover_class.
31995         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
31996         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
31997
31998         * ira.h: Add 2010 to Copyright.
31999         (ira_no_alloc_reg): Remove external.
32000         (struct target_ira): Rename x_ira_hard_regno_cover_class,
32001         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
32002         x_ira_class_translate to x_ira_hard_regno_allocno_class,
32003         x_ira_allocno_classes_num, x_ira_allocno_classes, and
32004         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
32005         x_ira_pressure_classes, x_ira_pressure_class_translate, and
32006         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
32007         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
32008         x_ira_no_alloc_regs.
32009         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
32010         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
32011         ira_allocno_classes_num and ira_allocno_classes.
32012         (ira_class_translate): Rename to ira_allocno_class_translate.
32013         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
32014         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
32015         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
32016         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
32017         (ira_no_alloc_regs): New.
32018
32019         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
32020         classes from the file.  Use ALLOCNO_CLASS instead of
32021         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
32022         ALLOCNO_COVER_CLASS_COST.
32023         (regno_cover_class): Rename to regno_aclass.
32024         (record_reg_classes): Use ira_reg_class_subunion instead of
32025         ira_reg_class_union.
32026         (record_address_regs): Check overflow.
32027         (scan_one_insn): Ditto.
32028         (print_allocno_costs): Print total mem cost fore regional allocation.
32029         (print_pseudo_costs): Use REG_N_REFS.
32030         (find_costs_and_classes): Use classes intersected with them on the
32031         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
32032         ira_reg_class_union.  Use ira_allocno_class_translate and
32033         regno_aclass instead of ira_class_translate and regno_cover_class.
32034         Modify code for finding regno_aclass.  Setup preferred classes for
32035         the next pass.
32036         (setup_allocno_cover_class_and_costs): Rename to
32037         setup_allocno_class_and_costs.  Use regno_aclass instead of
32038         regno_cover_class.  Use ira_set_allocno_class instead of
32039         ira_set_allocno_cover_class.
32040         (init_costs, finish_costs): Use regno_aclass instead of
32041         regno_cover_class.
32042         (ira_costs): Use setup_allocno_class_and_costs instead of
32043         setup_allocno_cover_class_and_costs.
32044         (ira_tune_allocno_costs_and_cover_classes): Rename to
32045         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
32046         by processing objects.  Use ira_reg_class_max_nregs instead of
32047         ira_reg_class_nregs.
32048
32049         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
32050
32051         * sched-int.h: Remove mentioning cover classes from the file.
32052         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
32053
32054         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
32055         classes from the file.
32056         (struct reg_pref): Rename coverclass into allocnoclass.
32057         (reg_cover_class): Rename to reg_allocno_class.
32058
32059         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
32060
32061         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
32062
32063         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
32064
32065         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
32066
32067         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
32068
32069         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
32070
32071         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
32072
32073         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
32074
32075         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
32076
32077         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
32078
32079         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
32080         (i386_ira_cover_classes): Ditto.
32081
32082         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
32083
32084         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
32085
32086         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
32087
32088         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
32089
32090         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
32091
32092         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
32093
32094         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
32095         (mips_ira_cover_classes): Ditto.
32096
32097         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
32098
32099         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
32100
32101         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
32102
32103         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
32104
32105         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
32106
32107         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
32108         (IRA_COVER_CLASSES_VSX): Ditto.
32109
32110         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
32111         (rs6000_ira_cover_classes): Ditto.
32112
32113         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
32114
32115         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
32116
32117         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
32118
32119         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
32120
32121         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
32122
32123         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
32124
32125         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
32126
32127         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
32128
32129         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
32130
32131         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
32132
32133 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
32134
32135         PR debug/48253
32136         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
32137         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
32138         dw_fde_unlikely_section_end_label, cold_in_std_section,
32139         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
32140         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
32141         fields.
32142         (output_fde): Use dw_fde_second_{begin,end} if second is
32143         true, otherwise dw_fde_{begin,end}.
32144         (output_call_frame_info): Test dw_fde_second_begin != NULL
32145         instead of dw_fde_switched_sections.
32146         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
32147         fields, initialize new fields.  Initialize in_std_section
32148         unconditionally from the first partition.
32149         (dwarf2out_end_epilogue): Don't override dw_fde_end when
32150         dw_fde_second_begin is non-NULL.
32151         (dwarf2out_switch_text_section): Stop initializing removed
32152         dw_fde_struct fields, initialize new fields, initialize
32153         also dw_fde_end here.  Set dw_fde_switch_cfi even when
32154         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
32155         (struct var_loc_list_def): Add last_before_switch field.
32156         (arange_table, arange_table_allocated, arange_table_in_use,
32157         ARANGE_TABLE_INCREMENT, add_arange): Removed.
32158         (size_of_aranges): Count !in_std_section and !second_in_std_section
32159         hunks in fdes, instead of looking at arange_table_in_use.
32160         (output_aranges): Add aranges_length argument, don't call
32161         size_of_aranges here.  Instead of using aranges_table*
32162         emit ranges for fdes when !in_std_section resp.
32163         !second_in_std_section.
32164         (dw_loc_list): Break ranges crossing section switch.
32165         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
32166         use dw_fde_second_end instead of dw_fde_end as end of last range.
32167         (gen_subprogram_die): Don't call add_arange.  Use
32168         dw_fde_{begin,end} for first partition and if switched
32169         section dw_fde_second_{begin,end} for the second.
32170         (var_location_switch_text_section_1,
32171         var_location_switch_text_section): New functions.
32172         (dwarf2out_begin_function): Initialize cold_text_section even
32173         when function_section () isn't text_section.
32174         (prune_unused_types): Don't walk arange_table.
32175         (dwarf2out_finish): Don't needlessly test
32176         flag_reorder_blocks_and_partition when testing cold_text_section_used.
32177         If info_section_emitted, call size_of_aranges and if it indicates
32178         non-empty .debug_aranges, call output_aranges with the computed
32179         size.  Stop using removed dw_fde_struct fields, use
32180         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
32181         for second.
32182
32183         PR debug/48203
32184         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
32185         create ENTRY_VALUE if incoming or address of incoming's MEM
32186         is a hard REG.
32187         * dwarf2out.c (mem_loc_descriptor): Don't emit
32188         DW_OP_GNU_entry_value of DW_OP_fbreg.
32189         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
32190         on ENTRY_VALUE is able to find the canonical parameter VALUE.
32191         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
32192         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
32193         ENTRY_VALUE_EXPs.
32194         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
32195         is a REG_P or MEM_P with REG_P address, compute hash directly
32196         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
32197         (preserve_only_constants): Don't clear VALUES forwaring
32198         ENTRY_VALUE to some other VALUE.
32199
32200 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
32201
32202         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
32203         instead of GEN_INT.
32204
32205 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
32206
32207         * cfgexpand.c (expand_gimple_cond): Always set the source location and
32208         block before expanding the statement.
32209         (expand_gimple_stmt_1): Likewise.  Set them here...
32210         (expand_gimple_stmt): ...and not here.  Tidy.
32211         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
32212         unknown.
32213
32214 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
32215
32216         * Makefile.in: New rule for cprop.o.
32217         * gcse.c: Move constant/copy propagation to cprop.c.
32218         (compute_local_properties): Only handle expression tables.
32219         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
32220         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
32221         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
32222         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
32223         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
32224         compute_cprop_data, find_used_regs, try_replace_reg,
32225         find_avail_set, cprop_jump, constprop_register, cprop_insn,
32226         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
32227         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
32228         find_bypass_set, reg_killed_on_edge, bypass_block,
32229         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
32230         execute_rtl_cprop, pass_rtl_cprop): Move to...
32231         * cprop.c: ...here.  New file, constant/copy propagation for RTL
32232         moved from gcse.c to here with minor cleanups in duplicated code.
32233
32234 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
32235
32236         * config/i386/i386.c (flag_opts): Fix a typo in
32237         -mavx256-split-unaligned-store.
32238
32239 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
32240
32241         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
32242         LIBCALL_VALUE): Remove macros.
32243         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
32244         TARGET_FUNCTION_VALUE_REGNO_P): Define.
32245         (h8300_function_value, h8300_libcall_value,
32246         h8300_function_value_regno_p): New functions.
32247
32248 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
32249
32250         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
32251
32252 2011-03-28  Jeff Law  <law@redhat.com>
32253
32254         * tree-ssa-threadupdate.c (redirect_edges): Call
32255         create_edge_and_update_destination_phis as needed.
32256         (create_edge_and_update_destination_phis): Accept new BB argument.
32257         All callers updated.
32258         (thread_block): Do not update the profile when threading around
32259         intermediate blocks.
32260         (thread_single_edge): Likewise.
32261         (determine_bb_domination_status): If BB is not a successor of the
32262         loop header, return NONDOMINATING.
32263         (register_jump_thread): Note when we register a jump thread around
32264         an intermediate block.
32265         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
32266         (thread_across_edge): Use it.
32267
32268 2011-03-28  Tristan Gingold  <gingold@adacore.com>
32269
32270         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
32271         when for_return is 2.
32272
32273 2011-03-28  Jeff Law  <law@redhat.com>
32274
32275         * var-tracking.c (canonicalize_values_mark): Delete unused
32276         lhs assignment.
32277         (canonicalize_values_star, set_variable_part): Likewise.
32278         (clobber_variable_part, delete_variable_part): Likewise.
32279
32280 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
32281
32282         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
32283
32284 2011-03-28  Martin Jambor  <mjambor@suse.cz>
32285
32286         * tree-inline.c (expand_call_inline): Do not check that destination
32287         node is analyzed.
32288         (optimize_inline_calls): Assert that destination node is analyzed.
32289         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
32290         not call tree_lowering_passes.
32291         * cgraph.h (cgraph_analyze_function): Declare.
32292         * cgraphunit.c (cgraph_analyze_function): Make public.
32293
32294 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
32295
32296         * config/sparc/sparc-opts.h: New.
32297         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
32298         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
32299         (sparc_option_override): Store processor_type enumeration rather
32300         than string in cpu_default.  Remove name and enumeration from
32301         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
32302         without using sparc_select.  Use target_flags_explicit instead of
32303         fpu_option_set.
32304         * config/sparc/sparc.h (enum processor_type): Move to
32305         sparc-opts.h.
32306         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
32307         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
32308         HeaderInclude entry.
32309         (mcpu=, mtune=): Use Var and Enum.
32310         (sparc_processor_type): New Enum and EnumValue entries.
32311
32312 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32313             Iain Sandoe  <iains@gcc.gnu.org>
32314
32315         PR target/48245
32316         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
32317
32318 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
32319
32320         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
32321         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
32322         Insert new statements at it in lieu of STMT.
32323         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
32324         * tree-vect-stmts.c (vectorizable_store): Likewise.
32325         (vectorizable_load): Likewise.
32326
32327 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
32328
32329         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
32330         (divtf3): Ditto.
32331         (multf3): Ditto.
32332         (subtf3): Ditto.
32333
32334 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
32335
32336         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
32337         unaligned 256bit load/store.
32338         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
32339         (*avx_movdqu<avxmodesuffix>): Likewise.
32340
32341 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32342
32343         PR target/48288
32344         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
32345         * config/pa/pa.md (iordi3): Use new predicate in expander.
32346         (iorsi3): Likewise.
32347
32348 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
32349
32350         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
32351         FUNCTION_VALUE_REGNO_P): Remove macros.
32352         * config/mips/mips-protos.h (mips_function_value): Remove.
32353         * config/mips/mips.c (mips_function_value): Rename to...
32354         (mips_function_value_1): ... this. Make static.  Handle receiving
32355         the function type in 'fn_decl_or_type' argument.
32356         (mips_function_value, mips_libcall_value,
32357         mips_function_value_regno_p): New function.
32358         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
32359         TARGET_FUNCTION_VALUE_REGNO_P): Define.
32360
32361 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
32362
32363         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
32364         and -mavx256-split-unaligned-store.
32365         (ix86_option_override_internal): Split 32-byte AVX unaligned
32366         load/store by default.
32367         (ix86_avx256_split_vector_move_misalign): New.
32368         (ix86_expand_vector_move_misalign): Use it.
32369
32370         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
32371         -mavx256-split-unaligned-store.
32372
32373         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
32374         256bit load/store.  Generate unaligned store on misaligned memory
32375         operand.
32376         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
32377         256bit load/store.
32378         (*avx_movdqu<avxmodesuffix>): Likewise.
32379
32380         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
32381         -mavx256-split-unaligned-store.
32382
32383 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
32384
32385         PR target/38598
32386         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
32387         Update commentary.
32388
32389 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
32390
32391         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
32392         opno arguments with an expand_operand.  Use create_input_operand.
32393         (mips_prepare_builtin_target): Delete.
32394         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
32395         functions.
32396         (mips_expand_builtin_direct): Use create_output_operand and
32397         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
32398         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
32399         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
32400
32401 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
32402
32403         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
32404         function.
32405         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
32406
32407 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
32408
32409         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
32410         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
32411         basic blocks and call commit_edge_insertions directly.
32412         (fixup_abnormal_edges): Move from here to...
32413         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
32414         on the edges and return whether some have actually been inserted.
32415         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
32416         compensation code.
32417
32418 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
32419
32420         PR rtl-optimization/48144
32421         * sel-sched-ir.c (merge_history_vect): Factor out from ...
32422         (merge_expr_data): ... here.
32423         (av_set_intersect): Rename to av_set_code_motion_filter.
32424         Update all callers.  Call merge_history_vect when an expression
32425         is found in both sets.
32426         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
32427
32428 2011-03-26  Alan Modra  <amodra@gmail.com>
32429
32430         * config/rs6000/predicates.md (word_offset_memref_op): Handle
32431         cmodel medium addresses.
32432         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
32433         64-bit gpr loads and stores.
32434         (rs6000_secondary_reload_ppc64): New function.
32435         * config/rs6000/rs6000-protos.h: Declare it.
32436         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
32437
32438 2011-03-26  Alan Modra  <amodra@gmail.com>
32439
32440         PR target/47487
32441         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
32442         GNU Go in traceback table.
32443
32444 2011-03-25  Richard Henderson  <rth@redhat.com>
32445
32446         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
32447         if there are exactly 6 operands.
32448         (set_storage_via_setmem): Similarly.
32449
32450 2011-03-25  Kai Tietz  <ktietz@redhat.com>
32451
32452         * collect2.c (write_c_file_stat): Handle backslash
32453         as right-hand directory separator.
32454         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
32455         checking just for slash.
32456         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
32457         instead of checking for trailing slash.
32458         * gcc.c (record_temp_file): Use filename_cmp instead
32459         of strcmp.
32460         (do_spec_1): Likewise.
32461         (replace_outfile_spec_function): Likewise.
32462         (is_directory): Use filename_ncmp instead of strncmp.
32463         (print_multilib_info): Likewise.
32464         * gcov.c (find_source): Use filename_cmp instead
32465         instead of strcmp.
32466         (make_gcov_file_name): Fix order of slash/backslash
32467         checks.
32468         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
32469         (add_standard_paths): Likewise.
32470         * mips-tfile.c (saber_stop): Handle backslash.
32471         * prefix.c (update_path): Use filename_ncmp instead of
32472         strncmp.
32473         * profile.c (output_location): Use filename_cmp instead
32474         of strcmp.
32475         * read-md.c (handle_toplevel_file): Handle backslash.
32476         * tlink.c (frob_extension):  Likewise.
32477         * tree-cfg.c (same_line_p): Use filename_cmp instead of
32478         strcmp.
32479         * tree-dump.c (dequeue_and_dump): Handle backslash.
32480         * tree.c (get_file_function_name): Likewise.
32481         * gengtype.c (read_input_list): Likewise.
32482         (get_file_realbasename): Likewise.
32483         (get_output_file_with_visibility): Use filename_cmp
32484         instead of strcmp.
32485
32486 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
32487
32488         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
32489         case to VFPv1.
32490
32491 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
32492
32493         * fold-const.c (expr_location_or): New function.
32494         (fold_truth_not_expr): Call it.
32495
32496 2011-03-25  Jeff Law  <law@redhat.com>
32497
32498         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
32499         va_end.
32500         * c-family/c-common.c (def_fn_type): Likewise.
32501         * emit-rtl.c (gen_rtvec): Likewise.
32502         * lto/lto-lang.c (def_fn_type): Likewise.
32503
32504 2011-03-25  Richard Guenther  <rguenther@suse.de>
32505
32506         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
32507         also generate copies.
32508         (fini_copy_prop): Handle constant values properly.
32509
32510 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
32511
32512         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
32513         mode size instead of bitsize with DWARF2_ADDR_SIZE.
32514         (hash_loc_operands, compare_loc_operands): Handle
32515         DW_OP_GNU_entry_value.
32516
32517 2011-03-25  Kai Tietz  <ktietz@redhat.com>
32518
32519         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
32520         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
32521         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
32522         comment and use macro TARGET_64BIT_MS_ABI instead.
32523         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
32524         and change default behavior for 32-bit MS_ABI.
32525         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
32526         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
32527         32-bit, too.
32528         (ix86_cfun_abi): Likewise.
32529         (ix86_maybe_switch_abi): Adjust comment.
32530         (init_cumulative_args): Check for bit-ness in MS_ABI case.
32531         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
32532         instead of checking for SYSV_ABI.
32533         (ix86_nsaved_sseregs): Likewise.
32534         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
32535         to 16 bytes.
32536         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
32537         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
32538         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
32539         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
32540         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
32541
32542 2011-03-25  Richard Guenther  <rguenther@suse.de>
32543
32544         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
32545         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
32546         (verify_gimple): Remove.
32547         * tree-cfg.c (verify_gimple_call): Merge verification
32548         from verify_stmts.
32549         (verify_gimple_phi): Merge verification from verify_stmts.
32550         (verify_gimple_label): New function.
32551         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
32552         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
32553         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
32554         (verify_stmts): Rename to verify_gimple_in_cfg.
32555         (verify_gimple_in_cfg): New function.
32556         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
32557         * tree-ssa.c (verify_ssa): Likewise.
32558         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
32559
32560 2011-03-25  Richard Guenther  <rguenther@suse.de>
32561
32562         * passes.c (init_optimization_passes): Add FRE pass after
32563         early SRA.
32564
32565 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
32566             Andrew Stubbs  <ams@codesourcery.com>
32567
32568         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
32569         for Cortex-A8.
32570         (arm_movdi_vfp_cortexa8): New pattern.
32571         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
32572         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
32573         instructions when tuning for Cortex-A8.  Set attribute "arch".
32574         * config/arm/arm.md: Move include arm-tune.md up a bit.
32575         (define_attr "arch"): Add "onlya8" and "nota8" values.
32576         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
32577
32578 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
32579
32580         PR bootstrap/48282
32581         Revert:
32582         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
32583
32584         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
32585         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
32586         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
32587         * passes.c (init_optimization_passes): Move
32588         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
32589
32590 2011-03-25  Kai Tietz  <ktietz@redhat.com>
32591
32592         * c-typeck.c (comptypes_internal): Replace target
32593         hook call of comp_type_attributes by version in tree.c file.
32594         * gimple.c (gimple_types_compatible_p_1): Likewise.
32595         * tree-ssa.c (useless_type_conversion_p): Likewise.
32596         * tree.c (build_type_attribute_qual_variant): Likewise.
32597         (attribute_value_equal): New static helper function.
32598         (comp_type_attributes): New function.
32599         (merge_attributes): Use attribute_value_equal for comparison.
32600         (attribute_list_contained): Likewise.
32601         * tree.h (comp_type_attributes): New prototype.
32602
32603 2011-03-25  Richard Guenther  <rguenther@suse.de>
32604
32605         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
32606         of complex types at -O0.
32607         (verify_gimple_assign_binary): Likewise.
32608         (verify_gimple_assign_ternary): Likewise.
32609
32610 2011-03-24  Mark Wielaard  <mjw@redhat.com>
32611
32612         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
32613         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
32614
32615 2011-03-24  Mark Wielaard  <mjw@redhat.com>
32616
32617         PR debug/48041
32618         * dwarf2out.c (output_abbrev_section): Only write table when
32619         abbrev_die_table_in_use > 1.
32620
32621 2011-02-24  Richard Henderson  <rth@redhat.com>
32622
32623         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
32624         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
32625         (alpha_expand_unaligned_load_words): Use extql.
32626         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
32627         (emit_insxl): Handle all modes for consistency.
32628
32629 2011-02-24  Richard Henderson  <rth@redhat.com>
32630
32631         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
32632         (alpha_expand_unaligned_load): Likewise.
32633         (alpha_expand_unaligned_store): Likewise.
32634         (alpha_expand_unaligned_load_words): Likewise.
32635         (alpha_expand_unaligned_store_words): Likewise.
32636         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
32637         (alpha_split_lock_test_and_set_12): Likewise.
32638         (print_operand, alpha_fold_builtin_extxx): Likewise.
32639         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
32640         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
32641         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
32642         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
32643         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
32644         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
32645         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
32646         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
32647         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
32648         (extwl, extll, extql): Similarly.
32649         (inswh, inslh, insqh): Similarly.
32650         (mskbl, mskwl, mskll, mskql): Similarly.
32651         (mskwh, msklh, mskqh): Similarly.
32652
32653 2011-02-24  Richard Henderson  <rth@redhat.com>
32654
32655         * config/alpha/alpha.md (attribute isa): Add er, ner.
32656         (attribute enabled): Handle them.
32657         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
32658
32659 2011-02-24  Richard Henderson  <rth@redhat.com>
32660
32661         * config/alpha/alpha.md (attribute isa): Add vms.
32662         (attribute enabled): Handle it.
32663         (*movsf): Merge *movsf_{nofix,fix,nofp}.
32664         (*movdf): Merge *movdf_{nofix,fix,nofp}.
32665         (*movtf): Rename from *movtf_internal for consistency.
32666         (*movsi): Merge with *movsi_nt_vms.
32667         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
32668         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
32669         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
32670         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
32671
32672 2011-02-24  Richard Henderson  <rth@redhat.com>
32673
32674         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
32675         (extendqisi2, extendhisi2): Likewise.
32676         (extendqidi2): Simplify BWX/non-BWX expansions.
32677         (extendhidi2): Similarly.
32678
32679 2011-02-24  Richard Henderson  <rth@redhat.com>
32680
32681         * config/alpha/alpha.md (attribute isa): New.
32682         (attribute enabled): New.
32683         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
32684         (zero_extendqisi2, zero_extendqidi2): Similarly.
32685         (zero_extendhisi2, zero_extendhidi2): Similarly.
32686         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
32687
32688 2011-02-24  Richard Henderson  <rth@redhat.com>
32689
32690         * config/alpha/predicates.md (input_operand): Revert last change;
32691         update comment to mention 32-bit VMS rather than Windows.
32692
32693 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
32694
32695         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
32696         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
32697         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
32698         * passes.c (init_optimization_passes): Move
32699         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
32700
32701 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
32702
32703         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
32704
32705 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
32706
32707         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
32708         correctly.
32709
32710 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
32711
32712         PR debug/48204
32713         * simplify-rtx.c (simplify_const_unary_operation): Call
32714         real_convert when changing mode class with FLOAT_EXTEND.
32715
32716 2011-03-24  Nick Clifton  <nickc@redhat.com>
32717
32718         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
32719         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
32720         * config/rx/rx.c (rx_option_override): Set align_jumps,
32721         align_loops and align_labels if not set by the user.
32722         (rx_align_for_label): New function.
32723         (rx_max_skip_for_label): New function.
32724         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
32725         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
32726         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
32727         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
32728         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
32729
32730 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
32731
32732         PR rtl-optimization/48263
32733         * optabs.c (expand_binop_directly): Reinstate convert_modes code
32734         and original commutative_p handling.  Use maybe_gen_insn.
32735
32736 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32737
32738         * reload.c (find_reloads_subreg_address): Add address_reloaded
32739         parameter and return true there if the full address has been
32740         reloaded.
32741         (find_reloads_toplev): Pass address_reloaded flag.
32742         (find_reloads_address_1): Don't use address_reloaded parameter.
32743
32744 2011-03-24  Jeff Law  <law@redhat.com>
32745
32746         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
32747         unused variable "ann".
32748         (remove_unused_locals): Likewise.
32749
32750         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
32751         statement.
32752
32753         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
32754         after it is freed.
32755
32756 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32757
32758         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
32759         for invalid symbolic addresses.
32760         (s390_secondary_reload): Don't use s390_check_symref_alignment for
32761         larl operands.
32762
32763 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
32764
32765         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
32766         the argument in calls to fold_truth_not_expr.
32767
32768 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
32769
32770         * tree.c (record_node_allocation_statistics): New function.
32771         (make_node_stat, copy_node_stat, build_string): Call it.
32772         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
32773         (build1_stat, build_omp_clause): Likewise.
32774
32775 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
32776
32777         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
32778         last commit.
32779
32780 2011-03-24  Richard Guenther  <rguenther@suse.de>
32781
32782         PR tree-optimization/48271
32783         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
32784         blocks that still exist.
32785
32786 2011-03-24  Richard Guenther  <rguenther@suse.de>
32787
32788         PR tree-optimization/48270
32789         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
32790         not free datarefs before ddrs.
32791
32792 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
32793
32794         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
32795         from the address built for a reference with variable offset.
32796
32797 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
32798
32799         PR target/48237
32800         * config/i386/i386.md (*movdf_internal_rex64): Do not split
32801         alternatives that can be handled with movq or movabsq insn.
32802         (*movdf_internal): Disable for !TARGET_64BIT.
32803         (*movdf_internal_nointeger): Ditto.
32804         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
32805
32806 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
32807
32808         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
32809         (FUNCTION_ARG_ADVANCE): Likewise.
32810         * tm.texi.in: Change references to them to hook references.
32811         * tm.texi: Regenerate.
32812         * targhooks.c (default_function_arg): Eliminate check for target macro.
32813         (default_function_incoming_arg): Likewise.
32814         (default_function_arg_advance): Likewise.
32815         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
32816         (function_arg_advance): Likewise.
32817         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
32818
32819 2011-03-24  Richard Guenther  <rguenther@suse.de>
32820
32821         PR middle-end/48269
32822         * tree-object-size.c (addr_object_size): Do not double-account
32823         for MEM_REF offsets.
32824
32825 2011-03-24  Diego Novillo  <dnovillo@google.com>
32826
32827         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
32828         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
32829         (lto_input_data_block): Move from lto-opts.c.  Make extern.
32830         Update all users.
32831         (lto_input_string): Rename from input_string.  Make extern.
32832         Update all users.
32833         * lto-streamer-out.c (lto_output_string_with_length): Rename from
32834         output_string_with_length.
32835         Output 0 to indicate a non-NULL string.  Update all callers to
32836         not emit 0.
32837         (lto_output_string): Rename from output_string.  Make extern.
32838         Update all users.
32839         (lto_output_decl_state_streams): Make extern.
32840         (lto_output_decl_state_refs): Make extern.
32841         * lto-streamer.h (lto_input_string): Declare.
32842         (lto_input_data_block): Declare.
32843         (lto_output_string): Declare.
32844         (lto_output_string_with_length): Declare.
32845         (lto_output_decl_state_streams): Declare.
32846         (lto_output_decl_state_refs): Declare.
32847
32848 2011-03-24  Richard Guenther  <rguenther@suse.de>
32849
32850         PR tree-optimization/46562
32851         * tree.c (build_invariant_address): New function.
32852         * tree.h (build_invariant_address): Declare.
32853         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
32854         a renamed function moved ...
32855         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
32856         Take valueization callback parameter.
32857         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
32858         * gimple-fold.h: New file.
32859         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
32860         (ccp_fold, fold_const_aggregate_ref,
32861         fold_ctor_reference, fold_nonarray_ctor_reference,
32862         fold_array_ctor_reference, fold_string_cst_ctor_reference,
32863         get_base_constructor): Move ...
32864         * gimple-fold.c: ... here.
32865         (gimple_fold_stmt_to_constant_1): New function
32866         split out from ccp_fold.  Take a valueization callback parameter.
32867         Valueize all operands.
32868         (gimple_fold_stmt_to_constant): New wrapper function.
32869         (fold_const_aggregate_ref_1): New function split out from
32870         fold_const_aggregate_ref.  Take a valueization callback parameter.
32871         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
32872         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
32873         invariant POINTER_PLUS_EXPRs to invariant form.
32874         (vn_valueize): New function.
32875         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
32876         * tree-vrp.c (vrp_valueize): New function.
32877         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
32878         to fold statements to constants.
32879         * tree-ssa-pre.c (eliminate): Properly guard propagation of
32880         function declarations.
32881         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
32882         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
32883
32884 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
32885
32886         * config/h8300/predicates.md (jump_address_operand): Fix register
32887         mode check.
32888
32889 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
32890
32891         * doc/invoke.texi (max-stores-to-sink): Document.
32892         * params.h (MAX_STORES_TO_SINK): Define.
32893         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
32894         if either vectorization or if-conversion is disabled.
32895         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
32896         tree-vect-data-refs.c vect_equal_offsets.
32897         (dr_equal_offsets_p): New function.
32898         (find_data_references_in_bb): Remove static.
32899         * tree-data-ref.h (find_data_references_in_bb): Declare.
32900         (dr_equal_offsets_p): Likewise.
32901         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
32902         (vect_drs_dependent_in_basic_block): Update calls to
32903         vect_equal_offsets.
32904         (vect_check_interleaving): Likewise.
32905         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
32906         (cond_if_else_store_replacement): Rename to...
32907         (cond_if_else_store_replacement_1): ... this.  Change arguments and
32908         documentation.
32909         (cond_if_else_store_replacement): New function.
32910         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
32911         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
32912
32913 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
32914
32915         PR target/46934
32916         * config/arm/arm.md (casesi): Use the gen_int_mode() function
32917         to subtract lower bound instead of GEN_INT().
32918
32919 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
32920
32921         PR other/48179
32922         PR other/48221
32923         PR other/48234
32924         * doc/extend.texi (Alignment): Move section to match order in TOC.
32925         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
32926         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
32927
32928 2011-03-23  Jeff Law  <law@redhat.com>
32929
32930         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
32931         before removing the edge.
32932
32933         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
32934         it may have been freed by redirect_branch_edge or
32935         redirect_edge_succ_nodup.
32936
32937 2011-03-23  Richard Guenther  <rguenther@suse.de>
32938
32939         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
32940         (check_va_list_escapes): Likewise.
32941         (check_all_va_list_escapes): Likewise.
32942
32943 2011-03-23  Richard Guenther  <rguenther@suse.de>
32944
32945         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
32946         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
32947         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
32948         (alias.o): Likewise.
32949         (ipa-type-escape.o): Remove.
32950         (ipa-struct-reorg.o): Likewise.
32951         (GTFILES): Remove ipa-struct-reorg.c.
32952         * alias.c: Do not include ipa-type-escape.h.
32953         * tree-ssa-alias.c: Likewise.
32954         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
32955         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
32956         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
32957         and ipa-type-escape passes.
32958         * tree-pass.h (pass_ipa_type_escape): Remove.
32959         (pass_ipa_struct_reorg): Likewise.
32960         * ipa-struct-reorg.h: Remove.
32961         * ipa-struct-reorg.c: Likewise.
32962         * ipa-type-escape.h: Likewise.
32963         * ipa-type-escape.c: Likewise.
32964         * doc/invoke.texi (-fipa-struct-reorg): Remove.
32965         (--param struct-reorg-cold-struct-ratio): Likewise.
32966         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
32967         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
32968         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
32969
32970 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32971
32972         * config/s390/2084.md: Enable all insn reservations also for z9_ec
32973         cpu attribute value.
32974         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
32975         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
32976         * config/s390/s390.c (processor_flags_table): New constant array.
32977         (s390_handle_arch_option): Remove.
32978         (s390_handle_option): Remove s390_handle_arch_option invocations
32979         and OPT_mwarn_framesize_ handling.
32980         (s390_option_override): Remove s390_handle_arch_option invocation.
32981         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
32982         warnings.
32983         * config/s390/s390.md (cpu attribute): Add z9_ec value.
32984         * config/s390/s390.opt (s390_tune, s390_arch)
32985         (march=): Replace s390_arch_option enum and values with
32986         processor_type.  Set variable name to s390_arch.  Set
32987         initialization value.
32988         (mtune=): Replace s390_arch_option with processor_type.  Set
32989         variable name to s390_tune.  Set initialization value.
32990
32991 2011-03-23  Julian Brown  <julian@codesourcery.com>
32992
32993         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
32994         accesses which are not naturally aligned.
32995
32996 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
32997
32998         PR target/47553
32999         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
33000
33001 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
33002
33003         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
33004         parameter from "int" to "enum insn_code".
33005         (expand_operand_type): New enum.
33006         (expand_operand): New structure.
33007         (create_expand_operand): New function.
33008         (create_fixed_operand, create_output_operand): Likewise
33009         (create_input_operand, create_convert_operand_to): Likewise.
33010         (create_convert_operand_from, create_address_operand): Likewise.
33011         (create_integer_operand): Likewise.
33012         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
33013         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
33014         (expand_insn, expand_jump_insn): Likewise.
33015         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
33016         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
33017         (expand_movstr, expand_builtin___clear_cache): Likewise.
33018         (expand_builtin_lock_release): Likewise.
33019         * explow.c (allocate_dynamic_stack_space): Likewise.
33020         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
33021         and use the default handling in that case.
33022         * expmed.c (check_predicate_volatile_ok): Delete.
33023         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
33024         (emit_cstore): Likewise.
33025         * expr.c (emit_block_move_via_movmem): Likewise.
33026         (set_storage_via_setmem, expand_assignment): Likewise.
33027         (emit_storent_insn, try_casesi): Likewise.
33028         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
33029         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
33030         (expand_vec_shift_expr, expand_binop_directly): Likewise.
33031         (expand_twoval_unop, expand_twoval_binop): Likewise.
33032         (expand_unop_direct, emit_indirect_jump): Likewise.
33033         (emit_conditional_move, vector_compare_rtx): Likewise.
33034         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
33035         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
33036         (expand_sync_lock_test_and_set): Likewise.
33037         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
33038         (emit_unop_insn): Likewise.
33039         (expand_copysign_absneg): Change icode to an insn_code.
33040         (create_convert_operand_from_type): New function.
33041         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
33042         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
33043         (expand_insn, expand_jump_insn): Likewise.
33044         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
33045         than const_int_operand for operand 2.
33046
33047 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33048
33049         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
33050         if possible.
33051
33052 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
33053
33054         * emit-rtl.c (emit_pattern_before_noloc): New function.
33055         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
33056         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
33057         (emit_pattern_after_noloc): New function.
33058         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
33059         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
33060
33061 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
33062
33063         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
33064         (__ffsDI2): Likewise.
33065
33066 2011-03-22  Richard Henderson  <rth@redhat.com>
33067
33068         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
33069         of !TARGET_ABI_OPEN_VMS.
33070         (alpha_trampoline_init, alpha_start_function): Likewise.
33071         (alpha_expand_epilogue, alpha_file_start): Likewise.
33072         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
33073         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
33074         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
33075         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
33076         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
33077
33078 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33079
33080         * config/s390/s390-opts.h: New.
33081         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
33082         s390_arch_flags, s390_warn_framesize, s390_stack_size,
33083         s390_stack_guard): Remove.
33084         (s390_handle_arch_option): Return void.  Take enum
33085         s390_arch_option value instead of string and searching array.
33086         (s390_handle_option): Don't assert that global structures are in
33087         use.  Access variables via opts pointer.  Use error_at.  Don't use
33088         sscanf for -mstack-guard= or -mstack-size=.  Update call to
33089         s390_handle_arch_option.
33090         (s390_option_override): Update call to s390_handle_arch_option.
33091         (s390_emit_prologue): Use %d format for s390_stack_size in
33092         diagnostic.  Use %wd for HOST_WIDE_INT.
33093         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
33094         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
33095         * config/s390/s390.opt (config/s390/s390-opts.h): New
33096         HeaderInclude entry.
33097         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
33098         s390_arch_flags, s390_warn_framesize): New Variable entries.
33099         (s390_arch_option): New Enum and EnumValue entries.
33100         (march=): Use Enum instead of Var.
33101         (mstack-guard=, mstack-size=): Use UInteger and Var.
33102         (mtune=): Use Enum.
33103
33104 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33105
33106         * config/score/score.c (score_handle_option): Don't assert that
33107         global structures are in use.  Access target_flags via opts
33108         pointer.  Use value of -march= option to determine target_flags
33109         settings.
33110         * config/score/score.opt (march=): Use Enum.
33111         (score_arch): New Enum and EnumValue entries.
33112
33113 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33114
33115         * config/mep/mep.c (option_mtiny_specified): Remove.
33116         (mep_option_override): Move register handling for -mivc2 from
33117         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
33118         instead of option_mtiny_specified.
33119         (mep_handle_option): Access target_flags via opts pointer.  Don't
33120         assert that global structures are in use.  Defer part of -mivc2
33121         handling and move it to mep_option_override.
33122         * config/mep/mep.opt (IVC2): New Mask entry.
33123         (mivc2): Use Var and Defer instead of Mask.
33124
33125 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33126
33127         * config/v850/v850-opts.h: New.
33128         * config/v850/v850.c (small_memory): Replace with
33129         small_memory_physical_max array.  Make that array static const.
33130         (v850_handle_memory_option): Take integer value of argument.  Take
33131         gcc_options pointer, option text and location.  Return void.
33132         Update for changes to small memory structures.
33133         (v850_handle_option): Access target_flags via opts pointer.  Don't
33134         assert that global structures are in use.  Update calls to
33135         v850_handle_memory_option.
33136         (v850_encode_data_area): Update references to small memory settings.
33137         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
33138         (enum small_memory_type): Move to v850-opts.h.
33139         * config/v850/v850.opt (config/v850/v850-opts.h): New
33140         HeaderInclude entry.
33141         (small_memory_max): New Variable entry.
33142         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
33143         (mtda, mzda): Likewise.
33144
33145 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33146
33147         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
33148         pointer.  Don't assert that global structures are in use.
33149
33150 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33151
33152         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
33153         via opts pointer.  Don't assert that global structures are in use.
33154
33155 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33156
33157         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
33158         (munix=93): Use Var.
33159         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
33160         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
33161         * config/pa/pa-opts.h: New.
33162         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
33163         (pa_handle_option): Don't assert that global structures are in
33164         use.  Access target_flags via opts pointer.  Don't handle
33165         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
33166         OPT_munix_98 here.
33167         (pa_option_override): Handle deferred OPT_mfixed_range_.
33168
33169 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33170
33171         * config/mn10300/mn10300-opts.h: New.
33172         * config/mn10300/mn10300.c (mn10300_processor,
33173         mn10300_tune_string): Remove.
33174         (mn10300_handle_option): Don't assert that global structures are
33175         in use.  Access mn10300_processor via opts pointer.  Don't handle
33176         OPT_mtune_ here.
33177         * config/mn10300/mn10300.h (enum processor_type): Move to
33178         mn10300-opts.h.
33179         (mn10300_processor): Remove.
33180         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
33181         HeaderInclude entry.
33182         (mn10300_processor): New Variable entry.
33183         (mtune=): Use Var.
33184
33185 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33186
33187         * config/microblaze/microblaze.c: Don't include opts.h.
33188         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
33189         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
33190         (mno-clearbss): Use Var and Warn.
33191
33192 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33193
33194         * config/m32r/m32r-opts.h: New.
33195         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
33196         (m32r_handle_option): Don't assert that global structures are in
33197         use.  Access target_flags and m32r_cache_flush_func via opts
33198         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
33199         OPT_mno_flush_trap here.
33200         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
33201         include of m32r-opts.h.
33202         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
33203         HeaderInclude entry.
33204         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
33205         (mmodel=): Use Enum and Var.
33206         (m32r_model): New Enum and EnumValue entries.
33207         (mno-flush-trap): Use Var.
33208         (msdata=): Use Enum and Var.
33209         (m32r_sdata): New Enum and EnumValue entries.
33210
33211 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33212
33213         * config/m32c/m32c.c: Don't include opts.h.
33214         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
33215         m32c_handle_option): Remove.
33216         (m32c_option_override): Check global_options_set.x_target_memregs
33217         instead of target_memregs_set.
33218         * config/m32c/m32c.h (target_memregs): Remove.
33219         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
33220         variable.
33221
33222 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33223
33224         * config/iq2000/iq2000-opts.h: New.
33225         * config/iq2000/iq2000.c: Don't include opts.h.
33226         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
33227         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
33228         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
33229         HeaderInclude entry.
33230         (iq2000_tune): New Variable entry.
33231         (march=): Add comment.  Use Enum.
33232         (iq2000_arch): New Enum and EnumValue entries.
33233         (mcpu=): Use Enum and Var.
33234         (iq2000_tune): New Enum and EnumValue entries.
33235
33236 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33237
33238         * config/ia64/ia64-opts.h: New.
33239         * config/ia64/ia64.c (ia64_tune): Remove.
33240         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
33241         here.  Use error_at.
33242         (ia64_option_override): Handle deferred OPT_mfixed_range_.
33243         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
33244         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
33245         HeaderInclude entry.
33246         (ia64_tune): New Variable entry.
33247         (mfixed-range=): Use Defer and Var.
33248         (mtune=): Use Enum and Var.
33249         (ia64_tune): New Enum and EnumValue entries.
33250
33251 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33252
33253         * config/frv/frv-opts.h: New.
33254         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
33255         frv-opts.h.
33256         (frv_cpu_type): Remove.
33257         * config/frv/frv.c: Don't include opts.h.
33258         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
33259         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
33260         (frv_cpu_type): New Variable entry.
33261         (frv_cpu): New Enum and EnumValue entries.
33262
33263 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33264
33265         * config/cris/cris.c (cris_handle_option): Access target_flags via
33266         opts pointer.  Don't assert that global structures are in use.
33267         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
33268         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
33269
33270 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33271
33272         * config/bfin/bfin-opts.h: New.
33273         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
33274         bfin_si_revision, bfin_workarounds): Remove.
33275         (bfin_cpus): Make static const.
33276         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
33277         not bfin_lib_id_given.
33278         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
33279         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
33280         pointer. Use error_at.  Don't assert that global structures are in use.
33281         * config/bfin/bfin.h: Include bfin-opts.h.
33282         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
33283         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
33284         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
33285         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
33286         entries.
33287
33288 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33289
33290         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
33291         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
33292         or -msoft-float here.
33293         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
33294         -msoft-float and -mhard-float.
33295         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
33296         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
33297         msoft-float.
33298         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
33299         -msoft-float.
33300         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
33301         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
33302         not mhard-float.
33303         (LIBGCC_SPEC): Don't handle -msoft-float.
33304         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
33305         -mhard-float.
33306         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
33307         msoft-float.
33308         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
33309         -mfloat-abi=*, not -msoft-float and -mhard-float.
33310         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
33311         -msoft-float.
33312         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
33313         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
33314         mhard-float and msoft-float.
33315         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
33316         mfloat-abi=soft in comments, not mhard-float and msoft-float.
33317         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
33318         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
33319         mhard-float.
33320         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
33321         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
33322         msoft-float.
33323         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
33324         not mhard-float.
33325         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
33326         not msoft-float.
33327
33328 2011-03-22  Richard Henderson  <rth@redhat.com>
33329
33330         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
33331         TARGET_ABI_WINDOWS_NT.
33332         (alpha_output_function_end_prologue): Likewise.
33333         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
33334         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
33335         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
33336         (trap, *movsi_nt_vms): Likewise.
33337         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
33338         (*tablejump_osf_nt_internal): Remove.
33339         * config/alpha/predicates.md (input_operand): Only test Pmode.
33340
33341 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33342
33343         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
33344         via opts pointer.  Use error_at.  Don't assert that global
33345         structures are in use.
33346
33347 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33348
33349         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
33350         (ix86_handle_option): Access ix86_isa_flags and
33351         ix86_isa_flags_explicit via opts pointer.  Don't assert that
33352         global structures are in use.
33353         (ix86_function_specific_save, ix86_function_specific_restore):
33354         Update ix86_isa_flags_explicit field name.
33355         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
33356         (ix86_isa_flags_explicit): Rename TargetSave entry to
33357         x_ix86_isa_flags_explicit.
33358
33359 2011-03-22  Richard Henderson  <rth@redhat.com>
33360
33361         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
33362         (alpha_option_override, direct_return): Likewise.
33363         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
33364         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
33365         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
33366         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
33367         (alpha_expand_epilogue, alpha_end_function): Likewise.
33368         (alpha_init_libfuncs): Likewise.
33369         (struct machine_function): Remove unicosmk members.
33370         (print_operand) ['t']: Remove.
33371         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
33372         unicosmk_output_module_name, unicosmk_output_common,
33373         current_section_align, unicosmk_output_text_section_asm_op,
33374         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
33375         unicosmk_section_type_flags, unicosmk_unique_section,
33376         unicosmk_asm_named_section, unicosmk_insert_attributes,
33377         unicosmk_output_align, unicosmk_defer_case_vector,
33378         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
33379         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
33380         unicosmk_output_ssib, unicosmk_add_call_info_word,
33381         unicosmk_extern_head, unicosmk_output_default_externs,
33382         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
33383         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
33384         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
33385         * config/alpha/alpha-protos.h: Update.
33386         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
33387         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
33388         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
33389         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
33390         (*mulsi_se, mulvsi3): Likewise.
33391         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
33392         (*divmodsi_internal, call, call_value, realign): Likewise.
33393         (moddi3, umoddi3): Likewise; remove duplicate expander.
33394         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
33395         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
33396         (*movdi_nofix): Remove r/U alternative.
33397         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
33398         * config/alpha/constraints.md ("U"): Remove.
33399         * config/alpha/predicates.md (call_operand"): Don't test
33400         TARGET_ABI_UNICOSMK.
33401
33402 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33403
33404         * target.def (handle_option): Take gcc_options and
33405         cl_decoded_option pointers and location_t.
33406         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
33407         * doc/tm.texi: Regenerate.
33408         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
33409         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
33410         * lto-opts.c (lto_reissue_options): Generate option structure for
33411         targetm.handle_option call.
33412         * opts.c (target_handle_option): Update call to
33413         targetm.handle_option.  Remove assertions about values now passed
33414         down to hook.
33415         * targhooks.c (default_target_handle_option): New.
33416         * targhooks.h (default_target_handle_option): Declare.
33417         * config/alpha/alpha.c: Include opts.h.
33418         (alpha_handle_option): Update to new hook interface.
33419         * config/arm/arm.c: Include opts.h.
33420         (arm_handle_option): Update to new hook interface.
33421         * config/arm/t-arm (arm.o): Update dependencies.
33422         * config/bfin/bfin.c: Include opts.h.
33423         (bfin_handle_option): Update to new hook interface.
33424         * config/cris/cris.c: Include opts.h.
33425         (cris_handle_option): Update to new hook interface.
33426         * config/frv/frv.c: Include opts.h.
33427         (frv_handle_option): Update to new hook interface.
33428         * config/i386/i386.c: Include opts.h.
33429         (ix86_handle_option): Update to new hook interface.
33430         (ix86_valid_target_attribute_inner_p): Generate option structure
33431         for call to ix86_handle_option.
33432         * config/i386/t-i386 (i386.o): Update dependencies.
33433         * config/ia64/ia64.c: Include opts.h.
33434         (ia64_handle_option): Update to new hook interface.
33435         * config/ia64/t-ia64 (ia64.o): Update dependencies.
33436         * config/iq2000/iq2000.c: Include opts.h.
33437         (iq2000_handle_option): Update to new hook interface.
33438         * config/m32c/m32c.c: Include opts.h.
33439         (m32c_handle_option): Update to new hook interface.
33440         * config/m32r/m32r.c: Include opts.h.
33441         (m32r_handle_option): Update to new hook interface.
33442         * config/m68k/m68k.c: Include opts.h.
33443         (m68k_handle_option): Update to new hook interface.
33444         * config/mep/mep.c: Include opts.h.
33445         (mep_handle_option): Update to new hook interface.
33446         * config/microblaze/microblaze.c: Include opts.h.
33447         (microblaze_handle_option): Update to new hook interface.
33448         * config/mips/mips.c: Include opts.h.
33449         (mips_handle_option): Update to new hook interface.
33450         * config/mn10300/mn10300.c: Include opts.h.
33451         (mn10300_handle_option): Update to new hook interface.
33452         * config/pa/pa.c: Include opts.h.
33453         (pa_handle_option): Update to new hook interface.
33454         * config/pdp11/pdp11.c: Include opts.h.
33455         (pdp11_handle_option): Update to new hook interface.
33456         * config/rs6000/rs6000.c: Include opts.h.
33457         (rs6000_handle_option): Update to new hook interface.
33458         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
33459         * config/rx/rx.c: Include opts.h.
33460         (rx_handle_option): Update to new hook interface.
33461         * config/s390/s390.c: Include opts.h.
33462         (s390_handle_option): Update to new hook interface.
33463         * config/score/score.c: Include opts.h.
33464         (score_handle_option): Update to new hook interface.
33465         * config/sh/sh.c: Include opts.h.
33466         (sh_handle_option): Update to new hook interface.
33467         * config/sparc/sparc.c: Include opts.h.
33468         (sparc_handle_option): Update to new hook interface.
33469         * config/v850/v850.c: Include opts.h.
33470         (v850_handle_option): Update to new hook interface.
33471
33472 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33473
33474         * gcc.c (driver_unknown_option_callback): Only permit and save
33475         unknown -Wno- options.
33476         (driver_wrong_lang_callback): Save options directly instead of via
33477         driver_unknown_option_callback.
33478
33479 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
33480
33481         * combine.c (simplify_set): Try harder to find the best CC mode when
33482         simplifying a nested COMPARE on the RHS.
33483
33484 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33485
33486         * config/alpha/gnu.h: Remove.
33487         * config/arc: Remove directory.
33488         * config/arm/netbsd.h: Remove.
33489         * config/arm/t-pe: Remove.
33490         * config/crx: Remove directory.
33491         * config/i386/netbsd.h: Remove.
33492         * config/m68hc11: Remove directory.
33493         * config/m68k/uclinux-oldabi.h: Remove.
33494         * config/mcore/mcore-pe.h: Remove.
33495         * config/mcore/t-mcore-pe: Remove.
33496         * config/netbsd-aout.h: Remove.
33497         * config/rs6000/gnu.h: Remove.
33498         * config/sh/sh-symbian.h: Remove.
33499         * config/sh/symbian-base.c: Remove.
33500         * config/sh/symbian-c.c: Remove.
33501         * config/sh/symbian-cxx.c: Remove.
33502         * config/sh/symbian-post.h: Remove.
33503         * config/sh/symbian-pre.h: Remove.
33504         * config/sh/t-symbian: Remove.
33505         * config/svr3.h: Remove.
33506         * config/vax/netbsd.h: Remove.
33507         * config.build: Don't handle i[34567]86-*-pe.
33508         * config.gcc: Remove handling of deprecations for most deprecated
33509         targets.
33510         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
33511         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
33512         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
33513         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
33514         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
33515         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
33516         Remove cases.
33517         * config.host: Don't handle i[34567]86-*-pe.
33518         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
33519         (ASM_SPEC32): Don't handle -mcall-gnu.
33520         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
33521         -mcall-gnu.
33522         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
33523         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
33524         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
33525         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
33526         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
33527         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
33528         conditional on SYMBIAN.
33529         * configure.ac: Don't handle powerpc*-*-gnu*.
33530         * configure: Regenerate.
33531         * doc/extend.texi (interrupt attribute): Don't mention CRX.
33532         * doc/install-old.texi (m6811, m6812): Don't mention.
33533         * doc/install.texi (arc-*-elf*): Don't document multilib option.
33534         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
33535         (m68k-uclinuxoldabi): Don't mention.
33536         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
33537         Remove.
33538         (-mcall-gnu): Remove.
33539         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
33540         families): Remove constraint documentation.
33541
33542 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
33543
33544         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
33545         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
33546         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
33547
33548 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
33549
33550         PR target/48226
33551         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
33552         vector when peeking at the next token for vector, don't expand the
33553         keywords.
33554
33555 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
33556
33557         * config/avr/avr-protos.h (expand_epilogue): Change prototype
33558         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
33559         * config/avr/avr.c (init_cumulative_args)
33560         (avr_function_arg_advance): Use it.
33561         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
33562         sibcall epilogues.
33563         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
33564         (avr_function_ok_for_sibcall): ...this new function.
33565         (avr_lookup_function_attribute1): New static Function.
33566         (avr_naked_function_p, interrupt_function_p)
33567         (signal_function_p, avr_OS_task_function_p)
33568         (avr_OS_main_function_p): Use it.
33569         * config/avr/avr.md ("sibcall", "sibcall_value")
33570         ("sibcall_epilogue"): New expander.
33571         ("*call_insn", "*call_value_insn"): New insn.
33572         ("call_insn", "call_value_insn"): Remove
33573         ("call", "call_value", "epilogue"): Change expander to handle
33574         sibling calls.
33575
33576 2011-03-21  Nick Clifton  <nickc@redhat.com>
33577
33578         * doc/invoke.texi (Overall Options): Move closing brace to end of
33579         options list.
33580         (Optimization Options): Add missing @gol.
33581         (Directory Options): Likewise.
33582         (i386 and x86-64 Options): Likewise.
33583         (RS6000 and PowerPC Options): Likewise.
33584         (i386 and x86-64 Windows Options): Likewise.
33585         (V850 Options): Add text missing from descriptions.
33586
33587 2011-03-22  Richard Henderson  <rth@redhat.com>
33588
33589         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
33590         (avr_incoming_return_addr_rtx): New.
33591         (emit_push_byte): New.
33592         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
33593         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
33594         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
33595         (emit_pop_byte): New.
33596         (expand_epilogue): Use it.  Pop frame pointer by bytes.
33597         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
33598         (INCOMING_RETURN_ADDR_RTX): New.
33599         (INCOMING_FRAME_SP_OFFSET): New.
33600         (ARG_POINTER_CFA_OFFSET): New.
33601         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
33602         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
33603         (pophi): Remove.
33604
33605         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
33606
33607 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
33608
33609         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
33610         (FUNCTION_ARG_ADVANCE): Likewise.
33611         * tm.texi.in: Change references to them to hook references.
33612         * tm.texi: Regenerate.
33613         * targhooks.c (default_function_arg): Eliminate check for target
33614         macro.
33615         (default_function_incoming_arg): Likewise.
33616         (default_function_arg_advance): Likewise.
33617         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
33618         (function_arg_advance): Likewise.
33619         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
33620
33621 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
33622
33623         * tree.c (build_call_1): New function.
33624         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
33625
33626 2011-03-22  Richard Guenther  <rguenther@suse.de>
33627
33628         PR tree-optimization/48228
33629         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
33630         for single-arg PHIs.
33631
33632 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
33633
33634         PR rtl-optimization/48143
33635         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
33636         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
33637         sse2_cvtps2pd): Likewise.
33638
33639 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33640
33641         * recog.c (canonicalize_change_group): Use validate_unshare_change.
33642
33643 2011-03-22  Richard Guenther  <rguenther@suse.de>
33644
33645         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
33646         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
33647         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
33648         and REALIGN_LOAD_EXPR.
33649         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
33650         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
33651         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
33652         DOT_PROD_EXPR case ...
33653         (expand_expr_real_2): ... here.
33654         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
33655         and REALIGN_LOAD_EXPR.
33656         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
33657         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
33658         (vect_create_epilog_for_reduction): Likewise.
33659         (vectorizable_reduction): Likewise.
33660         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
33661         * tree-vect-stmts.c (vectorizable_load): Likewise.
33662
33663 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
33664
33665         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
33666
33667 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33668
33669         * config/s390/s390.c (s390_delegitimize_address): Fix offset
33670         handling for PLTOFF/GOTOFF.
33671
33672 2011-03-22  Nick Clifton  <nickc@redhat.com>
33673
33674         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
33675         trailing backslash from the end of the macro definition.
33676
33677 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33678
33679         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
33680         and PLT unspecs.
33681
33682 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
33683
33684         * expr.h (prepare_operand): Move to...
33685         * optabs.h (prepare_operand): ...here and change the insn code
33686         parameter from "int" to "enum insn_code".
33687         (insn_operand_matches): Declare.
33688         * expr.c (init_expr_target): Use insn_operand_matches.
33689         (compress_float_constant): Likewise.
33690         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
33691         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
33692         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
33693         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
33694         Likewise.
33695         (gen_cond_trap): Likewise.
33696         (prepare_operand): Likewise.  Change icode to an insn_code.
33697         (insn_operand_matches): New function.
33698         * reload.c (find_reloads_address_1): Use insn_operand_matches.
33699         * reload1.c (gen_reload): Likewise.
33700         * targhooks.c (default_secondary_reload): Likewise.
33701
33702 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
33703
33704         * config/alpha/alpha.md (unspec): New define_c_enum.
33705         (unspecv): Ditto.
33706
33707 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
33708
33709         PR debug/48214
33710         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
33711         between a call and its CALL_ARG_LOCATION note.
33712
33713 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
33714
33715         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
33716
33717 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
33718
33719         PR c/42544
33720         PR c/48197
33721         * c-common.c (shorten_compare): If primopN is first sign-extended
33722         to opN and then zero-extended to result type, set primopN to opN.
33723
33724 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
33725
33726         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
33727         for barrier handlers.
33728
33729 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
33730
33731         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
33732         UNSPEC constants to be in the unspec enumeration, and redefine
33733         all UNSPECV constants to be in the unspecv enumeration, so that
33734         dumps print which unspec/unspec_volatile this is.
33735         * config/rs6000/vector.md (UNSPEC_*): Ditto.
33736         * config/rs6000/paired.md (UNSPEC_*): Ditto.
33737         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
33738         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
33739         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
33740
33741         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
33742         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
33743         UNSPECV_LWSYNC, since these are used as unspec_volatile.
33744         * config/rs6000/sync.md (isync, lwsync): Ditto.
33745
33746 2011-03-21  Richard Guenther  <rguenther@suse.de>
33747
33748         * params.def (lto-min-partition): Fix typo.
33749
33750 2011-03-21  Richard Guenther  <rguenther@suse.de>
33751
33752         PR c/47939
33753         * c-decl.c (grokdeclarator): Drop to the main variant only
33754         for array types.  Drop flag_gen_aux_info check.
33755
33756 2011-03-21  Richard Guenther  <rguenther@suse.de>
33757
33758         PR translation/47911
33759         * params.def (lto-partitions): Fix typo.
33760         (lto-min-partition): Fix wording.
33761
33762 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
33763
33764         * config/rs6000/t-freebsd: Remove duplication from file.
33765
33766 2011-03-21  Richard Guenther  <rguenther@suse.de>
33767
33768         PR middle-end/47661
33769         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
33770
33771 2011-03-21  Richard Guenther  <rguenther@suse.de>
33772
33773         PR lto/48210
33774         * params.def (lto-partitions): Require at least 1 partition.
33775
33776 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33777
33778         * gthr-solaris.h: Remove.
33779         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
33780         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
33781         (LIB_SPEC): Likewise.
33782         * config/sol2.opt (threads): Remove.
33783         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
33784         (sparc*-*-solaris2*): Likewise.
33785         * configure.ac (enable_threads): Enable solaris support.
33786         * configure: Regenerate.
33787         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
33788         * doc/install.texi (Configuration, --enable-threads=lib): Remove
33789         solaris.
33790
33791 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33792
33793         * config.gcc: Obsolete *-*-solaris2.8*.
33794         * doc/install.texi (Specific, *-*-solaris2*): Document it.
33795
33796 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33797
33798         PR bootstrap/48135
33799         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
33800         reference.  Solaris 8 perl works.
33801
33802 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33803
33804         PR bootstrap/48135
33805         * doc/install.texi (Prerequisites): Move jar etc. up.
33806         Explain support library version requirements.
33807
33808 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33809
33810         PR bootstrap/48135
33811         * doc/install.texi (Prerequisites): Move Perl to build
33812         requirements.  Always necessary on Solaris 2 with Sun ld.
33813
33814 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33815
33816         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
33817         binutils 2.21.
33818         (Specific, i?86-*-solaris2.[89]): Likewise.
33819         (Specific, i?86-*-solaris2.10): Likewise.
33820         (Specific, mips-sgi-irix6): Likewise.
33821         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
33822         Update for binutils 2.21.
33823
33824 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33825
33826         * configure.ac (gcc_cv_lto_plugin): Fix typo.
33827         Allow -fuse-linker-plugin for non-default plugin linker.
33828         * configure: Regenerate.
33829
33830 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
33831
33832         PR bootstrap/48167
33833         * gengtype.c (files_rules): Added rule for cp/parser.h.
33834
33835 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
33836
33837         PR target/48213
33838         * config/s390/s390.c (s390_delegitimize_address): Don't call
33839         lowpart_subreg if orig_x has BLKmode.
33840
33841 2011-03-21  Kai Tietz  <ktietz@redhat.com>
33842
33843         PR target/12171
33844         * doc/plugins.texi: Adjust documentation for plugin register_callback.
33845         * tree.h (attribute_spec): Add new member affects_type_identity.
33846         * attribs.c (empty_attribute_table): Adjust attribute_spec
33847         initializers.
33848         * config/alpha/alpha.c: Likewise.
33849         * config/arc/arc.c: Likewise.
33850         * config/arm/arm.c: Likewise.
33851         * config/avr/avr.c: Likewise.
33852         * config/bfin/bfin.c: Likewise.
33853         * config/crx/crx.c: Likewise.
33854         * config/darwin.h: Likewise.
33855         * config/h8300/h8300.c: Likewise.
33856         * config/i386/cygming.h: Likewise.
33857         * config/i386/i386.c: Likewise.
33858         * config/ia64/ia64.c: Likewise.
33859         * config/m32c/m32c.c: Likewise.
33860         * config/m32r/m32r.c: Likewise.
33861         * config/m68hc11/m68hc11.c: Likewise.
33862         * config/m68k/m68k.c: Likewise.
33863         * config/mcore/mcore.c: Likewise.
33864         * config/mep/mep.c: Likewise.
33865         * config/microblaze/microblaze.c: Likewise.
33866         * config/mips/mips.c: Likewise.
33867         * config/rs6000/rs6000.c: Likewise.
33868         * config/rx/rx.c: Likewise.
33869         * config/sh/sh.c: Likewise.
33870         * config/sol2.h: Likewise.
33871         * config/sparc/sparc.c: Likewise.
33872         * config/spu/spu.c: Likewise.
33873         * config/stormy16/stormy16.c: Likewise.
33874         * config/v850/v850.c: Likewise.
33875
33876 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
33877
33878         * simplify-rtx.c (simplify_binary_operation_1): Handle
33879         (xor (and A B) C) case when B and C are both constants.
33880
33881 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
33882
33883         * tree-dfa.c (add_referenced_var): Fix typo in comment.
33884
33885 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
33886
33887         PR bootstrap/48168
33888         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
33889
33890 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
33891
33892         PR rtl-optimization/48156
33893         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
33894         assume df and df_lr are not NULL.
33895
33896 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
33897
33898         PR debug/48023
33899         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
33900         between a call and its CALL_ARG_LOCATION note.
33901
33902 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
33903
33904         PR debug/48178
33905         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33906         between a call and its corresponding CALL_ARG_LOCATION note.
33907
33908 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
33909
33910         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
33911         instead of loop. Use HARD_REGISTER_NUM_P predicate.
33912         * haifa-sched.c (setup_ref_regs): Ditto.
33913         * caller-save.c (add_used_regs_1): Ditto.
33914         * dse.c (look_for_hardregs): Ditto.
33915         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
33916         * sched-rgn.c (check_live_1): Ditto.
33917
33918 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
33919
33920         * c-decl.c (diagnose_mismatched_decls): Give an error for
33921         redefining a typedef with variably modified type.
33922
33923 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
33924
33925         * c-decl.c (grokfield): Don't allow typedefs for structures or
33926         unions with no tag by default.
33927         * doc/extend.texi (Unnamed Fields): Update.
33928
33929 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
33930
33931         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
33932         Rewrite using indirect functions.
33933         (lwp_slwpcb): Ditto.
33934         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
33935         (avx_vinsertf128<mode>): Ditto.
33936
33937 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33938
33939         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
33940         unspecs.
33941
33942 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33943
33944         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
33945         splitting between a call and its corresponding CALL_ARG_LOCATION note.
33946
33947 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
33948
33949         PR rtl-optimization/48170
33950         * gcse.c (hoist_code): Remove bogus asserts.
33951
33952 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
33953
33954         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
33955         computation for prologue/epilogue.
33956
33957 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33958
33959         * Makefile.in (check-consistency): Remove.
33960
33961 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
33962
33963         PR debug/48176
33964         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
33965         arange_table_in_use is 0, but either text_section_used or
33966         cold_text_section_used is true.  Don't call it if
33967         !info_section_emitted.
33968
33969 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
33970
33971         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
33972         FUNCTION_VALUE_REGNO_P): Remove.
33973         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
33974         Remove.
33975         * config/avr/avr.c (avr_ret_register): Make static inline.
33976         (avr_function_value_regno_p): New function.
33977         (avr_libcall_value): Make static. Add 'func' argument.
33978         (avr_function_value): Make static. Rename 'func' argument to
33979         'fn_decl_or_type', forward it to avr_libcall_value. Call
33980         avr_ret_register function instead of RET_REGISTER macro.
33981         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
33982
33983 2011-03-18  Jason Merrill  <jason@redhat.com>
33984
33985         PR c++/23372
33986         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
33987
33988 2011-03-18  Richard Guenther  <rguenther@suse.de>
33989
33990         * doc/install.texi (--enable-gold): Remove.
33991         (--with-plugin-ld): Document.
33992         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
33993
33994 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
33995
33996         PR middle-end/47790
33997         * expr.c (optimize_bitfield_assignment_op): Revamp to work
33998         again after expansion changes.
33999
34000 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
34001
34002         * combine.c (try_combine): Do simplification only call of
34003         subst() on i2 even when i1 is present. Update comments.
34004
34005 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
34006
34007         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
34008         and UNSPEC_PCREL_SYMOFF.
34009
34010 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34011
34012         * config/s390/s390.md: Use define_c_enum for the unspec constant
34013         definitions.
34014
34015 2011-03-18  Richard Henderson  <rth@redhat.com>
34016             Jakub Jelinek  <jakub@redhat.com>
34017
34018         PR bootstrap/48161
34019         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
34020         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
34021
34022 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
34023
34024         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
34025         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
34026         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
34027         Change return type to bool.
34028         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
34029
34030 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
34031
34032         PR debug/48163
34033         * var-tracking.c (prepare_call_arguments): If CALL target
34034         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
34035         pc instead of looking it up using cselib_lookup and use
34036         Pmode for it if x has VOIDmode.
34037         * dwarf2out.c (gen_subprogram_die): If also both first and
34038         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
34039
34040         PR debug/48163
34041         * function.c (assign_parms): For data.passed_pointer parms
34042         use MEM of data.entry_parm instead of data.entry_parm itself
34043         as DECL_INCOMING_RTL.
34044         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
34045         also when passed and declared mode is the same, DECL_RTL
34046         is a MEM with pseudo as address and DECL_INCOMING_RTL is
34047         a MEM too.
34048
34049 2011-03-16  Jeff Law  <law@redhat.com>
34050
34051         PR rtl-optimization/37273
34052         * ira-costs.c (scan_one_insn): Detect constants living in memory and
34053         handle them like argument loads from stack slots.  Do not double
34054         count memory for memory constants and argument loads from stack slots.
34055
34056 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
34057
34058         PR debug/48160
34059         * var-tracking.c (prepare_call_arguments): Check SUBREG.
34060
34061 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
34062
34063         PR target/48171
34064         * config/i386/i386.opt: Add Save to -mavx and -mfma.
34065
34066 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
34067
34068         PR bootstrap/48153
34069         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
34070         if dwarf_strict.
34071         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
34072         Clear call_arg_locations and call_arg_loc_last always.
34073
34074         PR middle-end/48152
34075         * var-tracking.c (prepare_call_arguments): If argument needs to be
34076         passed by reference, adjust argtype and mode.
34077
34078 2011-03-17  Richard Guenther  <rguenther@suse.de>
34079
34080         PR middle-end/48134
34081         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
34082         a value make sure to fold the statement.
34083
34084 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
34085
34086         PR target/43872
34087         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
34088         return condition with !cfun->calls_alloca.
34089
34090 2011-03-17  Richard Guenther  <rguenther@suse.de>
34091
34092         PR bootstrap/48148
34093         * lto-cgraph.c (input_overwrite_node): Clear the abstract
34094         origin for decls in other ltrans units.
34095         (input_varpool_node): Likewise.
34096
34097 2011-03-17  Richard Guenther  <rguenther@suse.de>
34098
34099         PR middle-end/48165
34100         * tree-object-size.c (compute_object_offset): Properly return
34101         the offset operand of MEM_REFs as sizetype.
34102
34103 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
34104
34105         PR rtl-optimization/48141
34106         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
34107         * dse.c: Include params.h.
34108         (active_local_stores_len): New variable.
34109         (add_wild_read, dse_step1): Clear it when setting active_local_stores
34110         to NULL.
34111         (record_store, check_mem_read_rtx): Decrease it when removing
34112         from the chain.
34113         (scan_insn): Likewise.  Increase it when adding to chain, if it
34114         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
34115         set active_local_stores to NULL before the addition.
34116         * Makefile.in (dse.o): Depend on $(PARAMS_H).
34117
34118         PR rtl-optimization/48141
34119         * dse.c (record_store): If no positions are needed in an insn
34120         that cannot be deleted, at least unchain it from active_local_stores.
34121
34122 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
34123
34124         PR debug/47510
34125         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
34126         (lookup_type_die_strip_naming_typedef): ... here.
34127         (get_context_die): Use it.
34128         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
34129         the anonymous struct named by the naming typedef.
34130
34131 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
34132
34133         PR target/48154
34134         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
34135         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
34136
34137 2011-03-16  Jeff Law  <law@redhat.com>
34138
34139         * tree-vrp.c (identify_jump_threads): Slightly simplify type
34140         check for operands of conditional.  Allow type to be a pointer.
34141
34142 2011-03-16  Richard Guenther  <rguenther@suse.de>
34143
34144         PR tree-optimization/48149
34145         * fold-const.c (fold_binary_loc): Fold
34146         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
34147
34148 2011-03-16  Richard Guenther  <rguenther@suse.de>
34149
34150         PR tree-optimization/26134
34151         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
34152         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
34153         (non_rewritable_mem_ref_base): Handle complex type component
34154         accesses, constrain offsets for vector and complex extracts
34155         more properly.
34156
34157 2011-03-16  Richard Guenther  <rguenther@suse.de>
34158
34159         PR tree-optimization/48146
34160         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
34161         operands avoiding the need for renaming.
34162
34163 2011-03-16  Richard Guenther  <rguenther@suse.de>
34164
34165         * gimple-fold.c (maybe_fold_reference): Open-code relevant
34166         constant folding.  Move MEM_REF canonicalization first.
34167         Rely on fold_const_aggregate_ref for initializer folding.
34168         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
34169
34170 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
34171
34172         PR middle-end/48136
34173         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
34174         arg0/arg1 or their arguments are always fold converted to matching
34175         types.
34176
34177         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
34178         to nargs.
34179
34180 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34181
34182         PR lto/46944
34183         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
34184         Handle in-tree gold.
34185         (ld_vers): Extract binutils version for gold.
34186         (gcc_cv_ld_hidden): Handle gold here.
34187         (gcc_cv_lto_plugin): Determine level of linker plugin support.
34188         * configure: Regenerate.
34189         * config.in: Regenerate.
34190         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
34191         -fuse-linker-plugin otherwise.
34192         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
34193         (LINK_COMMAND_SPEC): Use it.
34194         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
34195
34196 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
34197
34198         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
34199         * calls.c: Remove debug.h include.
34200         (emit_call_1): Don't call virtual_call_token debug hook.
34201         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
34202         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
34203         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
34204         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
34205         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
34206         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
34207         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
34208         dwarf2out_virtual_call): Remove.
34209         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
34210         copy_call_info and virtual_call hooks.
34211         (dwarf2out_init): Don't initialize vcall_insn_table,
34212         debug_dcall_section and debug_vcall_section.
34213         (prune_unused_types): Don't mark nodes from dcall_table.
34214         (dwarf2out_finish): Don't output dcall or vcall tables.
34215         * final.c (final_scan_insn): Don't call direct_call or
34216         virtual_call debug hooks.
34217         * debug.h (struct gcc_debug_hooks): Remove direct_call,
34218         virtual_call_token, copy_call_info and virtual_call hooks.
34219         (debug_nothing_uid): Remove prototype.
34220         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
34221         copy_call_info and virtual_call hooks.
34222         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
34223         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
34224         * debug.c (do_nothing_debug_hooks): Likewise.
34225         (debug_nothing_uid): Remove.
34226         * doc/invoke.texi (-fenable-icf-debug): Remove.
34227         * common.opt (-fenable-icf-debug): Likewise.
34228
34229         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
34230         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
34231         call's MEM.  Handle functions returning aggregate through a hidden
34232         first pointer.  For virtual calls add clobbered pc to call arguments
34233         chain.
34234         * dwarf2out.c (gen_subprogram_die): Emit
34235         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
34236         can't be emitted.
34237
34238         PR debug/45882
34239         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
34240         * rtl.h (ENTRY_VALUE_EXP): Define.
34241         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
34242         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
34243         * print-rtl.c (print_rtx): Likewise.
34244         * gengtype.c (adjust_field_rtx_def): Likewise.
34245         * var-tracking.c (vt_add_function_parameter): Adjust
34246         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
34247         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
34248         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
34249         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
34250         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
34251
34252         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
34253         Call var_location debug hook even on CALL_INSNs.
34254         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
34255         * rtl.def (ENTRY_VALUE): New.
34256         * dwarf2out.c: Include cfglayout.h.
34257         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
34258         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
34259         (struct call_arg_loc_node): New type.
34260         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
34261         tail_call_site_count): New variables.
34262         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
34263         DW_TAG_GNU_call_site_parameter.
34264         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
34265         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
34266         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
34267         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
34268         and DW_AT_GNU_all_source_call_sites.
34269         (mem_loc_descriptor): Handle ENTRY_VALUE.
34270         (add_src_coords_attributes): Don't add enything if
34271         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
34272         (dwarf2out_abstract_function): Save and clear call_arg_location,
34273         call_site_count and tail_call_site_count around dwarf2out_decl call.
34274         (gen_call_site_die): New function.
34275         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
34276         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
34277         (dwarf2out_function_decl): Clear call_arg_locations,
34278         call_arg_loc_last, set call_site_count and tail_call_site_count
34279         to -1 and free block_map.
34280         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
34281         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
34282         followed by any real instructions.
34283         (dwarf2out_begin_function): Set call_site_count and
34284         tail_call_site_count to 0.
34285         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
34286         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
34287         attempt to force a DIE for it and worst case remove the attribute.
34288         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
34289         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
34290         the decl itself.
34291         * var-tracking.c: Include tm_p.h.
34292         (vt_stack_adjustments): For calls call note_register_arguments.
34293         (argument_reg_set): New variable.
34294         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
34295         ensure the VALUE is resolved.
34296         (call_arguments): New variable.
34297         (prepare_call_arguments): New function.
34298         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
34299         (struct expand_loc_callback_data): Add ignore_cur_loc field.
34300         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
34301         always use the best expression.
34302         (vt_expand_loc): Add ignore_cur_loc argument.
34303         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
34304         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
34305         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
34306         note for all calls.
34307         (vt_add_function_parameter): Use cselib_lookup_from_insn.
34308         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
34309         argument.  Don't call cselib_preserve_only_values and
34310         cselib_reset_table.
34311         (note_register_arguments): New function.
34312         (vt_initialize): Compute argument_reg_set.  Call
34313         vt_add_function_parameters before processing basic blocks instead of
34314         afterwards.  For calls call prepare_call_arguments before calling
34315         cselib_process_insn.
34316         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
34317         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
34318         (var-tracking.o): Depend on $(TM_P_H).
34319         * cfglayout.h (insn_scope): New prototype.
34320         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
34321         * cfglayout.c (insn_scope): No longer static.
34322         * insn-notes.def (CALL_ARG_LOCATION): New.
34323         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
34324         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
34325         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
34326         nothing for DECL_EXTERNAL BLOCK_VARS.
34327
34328 2011-03-16  Alan Modra  <amodra@gmail.com>
34329
34330         PR target/45844
34331         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
34332         create invalid offset address for vsx splat insn.
34333         * config/rs6000/predicates.md (splat_input_operand): New.
34334         * config/rs6000/vsx.md (vsx_splat_*): Use it.
34335
34336 2011-03-15  Xinliang David Li  <davidxl@google.com>
34337
34338         PR c/47837
34339         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
34340         (normalize_preds): New function.
34341         (is_use_properly_guarded): Normalize def predicates.
34342
34343 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
34344
34345         PR target/46788
34346         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
34347         in the output template.
34348
34349 2011-03-15  Richard Guenther  <rguenther@suse.de>
34350
34351         PR middle-end/47650
34352         * tree-pretty-print.c (dump_function_declaration): Properly
34353         dump unprototyped and varargs function types.
34354
34355 2011-03-15  Richard Guenther  <rguenther@suse.de>
34356
34357         PR tree-optimization/13954
34358         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
34359         and friends.
34360
34361 2011-03-15  Richard Guenther  <rguenther@suse.de>
34362
34363         PR tree-optimization/48037
34364         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
34365         selects into BIT_FIELD_REFs.
34366         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
34367         vector select.
34368
34369 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
34370
34371         PR tree-optimization/48129
34372         * builtins.c (fold_builtin_snprintf): Convert to type of
34373         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
34374         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
34375
34376 2011-03-15  Richard Guenther  <rguenther@suse.de>
34377
34378         PR tree-optimization/41490
34379         * tree-ssa-dce.c (propagate_necessity): Handle returns without
34380         value but with VUSE.
34381         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
34382         return statements.
34383         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
34384         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
34385         * tree-tailcall.c (find_tail_calls): Ignore returns.
34386
34387 2011-03-15  Richard Guenther  <rguenther@suse.de>
34388
34389         PR middle-end/48031
34390         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
34391         or variable-indexed array accesses when in gimple form.
34392
34393 2011-03-15  Richard Guenther  <rguenther@suse.de>
34394
34395         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
34396
34397 2011-03-15  Alan Modra  <amodra@gmail.com>
34398
34399         PR target/48032
34400         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
34401         presume symbol_refs without a symbol_ref_decl are suitably
34402         aligned, nor other trees we may see here.  Handle anchor symbols.
34403         (legitimate_constant_pool_address_p): Comment.  Add mode param.
34404         Check cmodel=medium addresses.  Adjust all calls.
34405         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
34406         creating cmodel=medium optimized access to locals.
34407         * config/rs6000/constraints.md (R): Pass QImode to
34408         legitimate_constant_pool_address_p.
34409         * config/rs6000/predicates.md (input_operand): Pass mode to
34410         legitimate_constant_pool_address_p.
34411         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
34412         Update prototype.
34413
34414 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34415
34416         PR target/48053
34417         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
34418         64-bit constants being loaded into registers other than GPRs such
34419         as loading 0 into a VSX register.
34420
34421 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34422
34423         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
34424
34425 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
34426
34427         PR middle-end/47917
34428         * builtins.c (fold_builtin_snprintf): New function.
34429         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
34430         (fold_builtin_4): Likewise.
34431
34432         PR middle-end/38878
34433         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
34434         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
34435         and C - X == X also strip nops from +/-/p+ operand.
34436         When optimizing -X == C, fold C to arg0's type.
34437
34438         PR debug/47946
34439         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
34440         emit it as add_AT_int instead of add_AT_unsigned.
34441
34442 2011-03-14  Tom Tromey  <tromey@redhat.com>
34443
34444         * unwind-dw2.c: Include sys/sdt.h if it exists.
34445         (_Unwind_DebugHook): Use STAP_PROBE2.
34446         * config.in, configure: Rebuild.
34447         * configure.ac: Check for sys/sdt.h.
34448
34449 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
34450
34451         * config/i386/i386.md (ROUND_FLOOR): New constant.
34452         (ROUND_CEIL): Ditto.
34453         (ROUND_TRUNC): Ditto.
34454         (ROUND_MXCSR): Ditto.
34455         (ROUND_NO_EXC): Ditto.
34456         (rint<mode>2): Use new defines instead of numerical constants.
34457         (floor<mode>2): Ditto.
34458         (ceil<mode>2): Ditto.
34459         (btrunc<mode>2): Ditto.
34460         * config/i386/i386-builtin-types.def: Define ROUND function type
34461         aliases.
34462         * config/i386/i386.c (enum ix86_builtins): Add
34463         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
34464         (struct builtin_description): Add
34465         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
34466         (ix86_expand_sse_round): New static function.
34467         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
34468         function types.
34469         (ix86_builtin_vectorized_function): Handle
34470         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
34471
34472 2011-03-14  Tom Tromey  <tromey@redhat.com>
34473
34474         * c-parser.c (c_parser_asm_string_literal): Clear
34475         warn_overlength_strings.
34476
34477 2011-03-14  Tom Tromey  <tromey@redhat.com>
34478
34479         * c-parser.c (disable_extension_diagnostics): Save
34480         warn_overlength_strings.
34481         (restore_extension_diagnostics): Restore warn_overlength_strings.
34482
34483 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
34484
34485         * BASE-VER: Change to 4.7.0.
34486
34487 2011-03-14  Richard Guenther  <rguenther@suse.de>
34488
34489         PR middle-end/48098
34490         * tree.c (build_vector_from_val): Adjust assert to requirements
34491         and reality.
34492
34493 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
34494
34495         PR bootstrap/48102
34496         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
34497
34498 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
34499
34500         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
34501         terms of target_flags_explicit. Adjust copyright year.
34502
34503         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
34504         * config/rs6000/t-freebsd: New file. Add override for
34505         LIB2FUNCS_EXTRA.
34506
34507 2011-03-13  Chris Demetriou  <cgd@google.com>
34508
34509         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
34510         (-fno-diagnostics-show-option): this, to reflect current default.
34511         (-Werror=): Update text about -fno-diagnostics-show-option.
34512
34513 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
34514
34515         PR target/48053
34516         * config/rs6000/predicates.md (easy_vector_constant_add_self,
34517         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
34518         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
34519         mode is not V2DImode or V2DFmode.
34520         (vspltis_constant): Do not handle V2DImode and V2DFmode.
34521         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
34522         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
34523         registers to 0.
34524         (movdi_internal64): Likewise.
34525
34526 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
34527
34528         PR tree-optimization/47127
34529         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
34530         parameter.
34531         (set_cloog_options): Same.
34532         (scop_to_clast): Same.
34533         (print_clast_stmt): Do not call cloog_state_malloc and
34534         cloog_state_free.
34535         (print_generated_program): Same.
34536         (gloog): Same.
34537         * graphite-clast-to-gimple.h (cloog_state): Declared.
34538         (scop_to_clast): Adjust declaration.
34539         * graphite.c (cloog_state): Defined here.
34540         (graphite_initialize): Call cloog_state_malloc.
34541         (graphite_finalize): Call cloog_state_free.
34542
34543 2011-03-11  Jason Merrill  <jason@redhat.com>
34544
34545         * attribs.c (lookup_attribute_spec): Take const_tree.
34546         * tree.h: Adjust.
34547
34548 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
34549
34550         * config/sparc/sparc.c (sparc_option_override): Use
34551         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
34552
34553 2011-03-11  Richard Guenther  <rguenther@suse.de>
34554
34555         PR tree-optimization/48067
34556         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
34557         multiplication result will be only used once on the target
34558         stmt.
34559
34560 2011-03-11  Richard Guenther  <rguenther@suse.de>
34561
34562         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
34563
34564 2011-03-11  Richard Guenther  <rguenther@suse.de>
34565
34566         PR lto/48073
34567         * tree.c (find_decls_types_r): Do not walk types only reachable
34568         from IDENTIFIER_NODEs.
34569
34570 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
34571
34572         PR middle-end/48044
34573         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
34574         all vnode->force_output nodes as needed.
34575
34576 2011-03-11  Jason Merrill  <jason@redhat.com>
34577
34578         PR c++/48069
34579         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
34580         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
34581
34582 2011-03-11  Martin Jambor  <mjambor@suse.cz>
34583
34584         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
34585         cgraph_node.
34586
34587 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
34588
34589         PR tree-optimization/48063
34590         * ipa-inline.c (cgraph_decide_inlining): Don't try to
34591         inline functions called once if !tree_can_inline_p (node->callers).
34592
34593 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
34594
34595         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
34596         extra_objs.
34597         * config/score/score3.c: Delete.
34598         * config/score/score3.h: Delete.
34599         * config/score/mul-div.S: Delete.
34600         * config/score/sfp-machine.h: Add new file.
34601         * config/score/constraints.md: Add new file.
34602         * config/score/t-score-softfp: Add new file.
34603         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
34604         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
34605         (score7_extra_constraint): Delete.
34606         (score7_option_override): Remove unused code.
34607         * config/score/score.c: Remove score3 and score5 define and code.
34608         * config/score/score.h: Remove score3 and score5 define and code.
34609         * config/score/score.md: Remove score3 template and unusual insn.
34610         * config/score/score.opt: Remove score3 and score5 options.
34611
34612 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34613
34614         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
34615         when _HPUX_SOURCE is defined.
34616         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
34617
34618 2011-03-10  Jason Merrill  <jason@redhat.com>
34619
34620         PR c++/48029
34621         * stor-layout.c (layout_type): Don't set structural equality
34622         on arrays of incomplete type.
34623         * tree.c (type_hash_eq): Handle comparing them properly.
34624
34625 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
34626
34627         PR debug/48043
34628         * config/s390/s390.c (s390_delegitimize_address): Make sure the
34629         result mode matches original rtl mode.
34630
34631 2011-03-10  Nick Clifton  <nickc@redhat.com>
34632
34633         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
34634         (andsi3, andsi3_flags): Fix timings for three operand alternative.
34635
34636 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
34637
34638         PR rtl-optimization/47866
34639         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
34640         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
34641         if target wasn't scalar.
34642         * function.c (assign_stack_temp_for_type): Assert that neither
34643         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
34644         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
34645         macro.
34646         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
34647
34648 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34649
34650         * config/s390/s390-protos.h (s390_label_align): New prototype.
34651         * config/s390/s390.c (s390_label_align): New function.
34652         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
34653
34654 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
34655
34656         PR target/47755
34657         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
34658         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
34659         (output_vec_const_move): Ditto.
34660
34661 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
34662
34663         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
34664         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
34665         * config/mips/mips.c (mips_preferred_reload_class): Make static.
34666         Change 'rclass' argument and result type to reg_class_t.
34667         (TARGET_PREFERRED_RELOAD_CLASS): Define.
34668
34669 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
34670
34671         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
34672         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
34673         (TARGET_MEMORY_MOVE_COST): Define.
34674         (avr_register_move_cost, avr_memory_move_cost): New Functions.
34675
34676 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
34677
34678         PR debug/47881
34679         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
34680         removed anything.
34681
34682         PR tree-optimization/48022
34683         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
34684         for EQ/NE_EXPR.
34685
34686 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
34687
34688         PR debug/47991
34689         * var-tracking.c (find_use_val): Return NULL for
34690         cui->sets && cui->store_p BLKmode MEMs.
34691
34692 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
34693
34694         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
34695         Remove.
34696         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
34697         xstormy16_print_operand_address): Remove.
34698         * config/stormy16/stormy16.c (xstormy16_print_operand,
34699         xstormy16_print_operand_address): Make static.
34700         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
34701
34702 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
34703
34704         PR target/47862
34705         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
34706         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
34707         before definition.
34708
34709 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
34710
34711         PR bootstrap/48000
34712         * cfgloopmanip.c (fix_bb_placements): Return immediately
34713         if FROM is BASE_LOOP's header.
34714
34715 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
34716
34717         * gimplify.c (gimplify_function_tree): Fix building calls
34718         to __builtin_return_address.
34719
34720 2011-03-07  Alan Modra  <amodra@gmail.com>
34721
34722         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
34723         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
34724         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
34725         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
34726         return_mode args.
34727         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
34728         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
34729         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
34730         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
34731         * config/rs6000/rs6000.c
34732         (rs6000_elf_end_indicate_exec_stack): Rename to..
34733         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
34734         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
34735         (rs6000_file_start): ..here.
34736         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
34737         file scope variables.
34738         (call_ABI_of_interest): New function.
34739         (init_cumulative_args): Set above vars when function return value
34740         is a float, vector, or small struct.
34741         (rs6000_function_arg_advance_1): Likewise for function args.
34742         (rs6000_va_start): Set rs6000_passes_float if variable arg function
34743         references float args.
34744
34745 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
34746
34747         * doc/cfg.texi: Remove "See" before @ref.
34748         * doc/invoke.texi: Likewise.
34749
34750 2011-03-05  Jason Merrill  <jason@redhat.com>
34751
34752         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
34753
34754 2011-03-05  Anthony Green  <green@moxielogic.com>
34755
34756         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
34757
34758 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
34759
34760         PR rtl-optimization/47899
34761         * cfgloopmanip.c (fix_bb_placements): Fix first argument
34762         to flow_loop_nested_p when moving the loop upward.
34763
34764 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
34765
34766         PR target/47719
34767         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
34768
34769 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
34770
34771         PR tree-optimization/47967
34772         * ipa-cp.c (build_const_val): Return NULL instead of creating
34773         VIEW_CONVERT_EXPR for mismatching sizes.
34774         (ipcp_create_replace_map): Return NULL if build_const_val failed.
34775         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
34776         give up on versioning.
34777
34778 2011-03-05  Alan Modra  <amodra@gmail.com>
34779
34780         PR target/47986
34781         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34782         full cmodel medium/large lo_sum + high addresses.
34783
34784 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34785
34786         * config/s390/s390.c (s390_decompose_address): Reject non-literal
34787         pool references in UNSPEC_LTREL_OFFSET.
34788
34789 2011-03-04  Jan Hubicka  <jh@suse.cz>
34790
34791         PR lto/47497
34792         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
34793         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
34794         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
34795         Add node pointers.
34796         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
34797         cgraph_add_thunk): Add node pointers.
34798         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
34799         associated to right node.
34800         (input_node): Update use of cgraph_same_body_alias
34801         and cgraph_add_thunk.
34802
34803 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
34804
34805         * config/i386/i386.opt (mprefer-avx128): New flag.
34806         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
34807         modes when the flag -mprefer-avx128 is on.
34808
34809 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
34810
34811         * dwarf2out.c (compare_loc_operands): Fix address handling.
34812
34813 2011-03-04  Alan Modra  <amodra@gmail.com>
34814
34815         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
34816
34817 2011-03-04  Richard Guenther  <rguenther@suse.de>
34818
34819         PR middle-end/47968
34820         * expmed.c (extract_bit_field_1): Prefer vector modes that
34821         vec_extract patterns can handle.
34822
34823 2011-03-04  Richard Guenther  <rguenther@suse.de>
34824
34825         PR middle-end/47975
34826         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
34827
34828 2011-03-04  Richard Henderson  <rth@redhat.com>
34829
34830         * explow.c (emit_stack_save): Remove 'after' parameter.
34831         (emit_stack_restore): Likewise.
34832         * expr.h: Update to match.
34833         * builtins.c, calls.c, stmt.c: Likewise.
34834         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
34835         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
34836         * function.c (expand_function_end): Insert the emit_stack_save
34837         sequence before parm_birth_insn instead of after.
34838
34839 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
34840
34841         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
34842         (ssse3_pmaddubsw128): Ditto.
34843         (ssse3_pmaddubsw): Ditto.
34844
34845 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
34846
34847         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
34848
34849 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
34850
34851         PR c/47963
34852         * gimplify.c (omp_add_variable): Only call omp_notice_variable
34853         on TYPE_SIZE_UNIT if it is a DECL.
34854
34855         PR debug/47283
34856         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
34857         first operand is not is_gimple_mem_ref_addr, try to fold it.
34858         If the operand still isn't is_gimple_mem_ref_addr, clear
34859         MEM_EXPR on op0.
34860
34861 2011-03-03  Richard Guenther  <rguenther@suse.de>
34862
34863         PR middle-end/47283
34864         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
34865         match comment.
34866         (refs_may_alias_p_1): For release branches return true if
34867         we are confused by our input.
34868
34869 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34870
34871         * config/s390/s390.c (s390_function_value): Rename to ...
34872         (s390_function_and_libcall_value): ... this.
34873         (s390_function_value): New function.
34874         (s390_libcall_value): New function.
34875         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
34876         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
34877         target macro definitions.
34878         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
34879
34880 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
34881
34882         * config/i386/freebsd64.h (CC1_SPEC): Define.
34883         * config/i386/linux64.h (CC1_SPEC): Define.
34884         * config/i386/x86-64.h (CC1_SPEC): Don't define.
34885
34886 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
34887
34888         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
34889         Remove.
34890         * config/stormy16/stormy16.c: Include reload.h.
34891         (xstormy16_memory_move_cost): New function.
34892         (TARGET_MEMORY_MOVE_COST): Define.
34893
34894 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
34895
34896         PR rtl-optimization/47925
34897         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
34898         with side effects.  Remove the more-specific check for volatile asms.
34899
34900 2011-03-02  Alan Modra  <amodra@gmail.com>
34901
34902         PR target/47935
34903         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
34904         toc relative addresses for valid offsets.
34905
34906 2011-03-01  Richard Guenther  <rguenther@suse.de>
34907
34908         PR tree-optimization/47890
34909         * tree-vect-loop.c (get_initial_def_for_induction): Set
34910         related stmt properly.
34911
34912 2011-03-01  Richard Guenther  <rguenther@suse.de>
34913
34914         PR lto/47924
34915         * lto-streamer.c (lto_record_common_node): Also register
34916         the canonical type.
34917
34918 2011-03-01  Richard Guenther  <rguenther@suse.de>
34919
34920         PR lto/46911
34921         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
34922         Do not stream DECL_ABSTRACT_ORIGIN.
34923         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
34924         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
34925         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
34926         Do not stream DECL_ABSTRACT_ORIGIN.
34927         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
34928         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
34929
34930 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
34931
34932         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
34933         FUNCTION_VALUE_REGNO_P): Remove.
34934         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
34935         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
34936         Add 'outgoing' argument.
34937         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
34938         function.
34939         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
34940         TARGET_FUNCTION_VALUE_REGNO_P): Define.
34941
34942 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
34943
34944         PR debug/28047
34945         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
34946         (lookup_filename): Likewise.
34947         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
34948
34949 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
34950             Jakub Jelinek  <jakub@redhat.com>
34951
34952         PR middle-end/47893
34953         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
34954         (assign_stack_local_1): Change last argument type to int.
34955         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
34956         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
34957         don't record padding space into frame_space_list nor use those areas.
34958         (assign_stack_local): Adjust caller.
34959         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
34960         of assign_stack_local, pass 0 as last argument.
34961         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
34962         callers.
34963
34964 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
34965
34966         PR debug/47283
34967         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
34968         Use target address_mode and pointer_mode hooks instead of hardcoded
34969         Pmode and ptr_mode.  Handle some simple cases of extending if
34970         POINTERS_EXTEND_UNSIGNED < 0.
34971         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
34972         Call convert_debug_memory_address.
34973         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
34974         convert_debug_memory_address.
34975
34976         PR middle-end/46790
34977         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
34978         * configure: Regenerated.
34979         * config.in: Regenerated.
34980         * varasm.c (default_function_section): Return NULL
34981         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
34982
34983 2011-02-28  Martin Jambor  <mjambor@suse.cz>
34984
34985         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
34986         the description to match the printed values.
34987
34988 2011-02-28  Richard Guenther  <rguenther@suse.de>
34989
34990         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
34991         of the copied scope tree.
34992
34993 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34994
34995         * doc/extend.texi (Function Attributes): Avoid deeply (and
34996         wrongly) nested tables.
34997
34998 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
34999
35000         PR middle-end/47903
35001         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
35002         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
35003         r isn't op0 nor op1.
35004
35005 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
35006
35007         * config/avr/avr.md: Remove magic comment for emacs.
35008
35009 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
35010
35011         PR target/45261
35012         * config/avr/avr.c (avr_option_override): Use error on bad options.
35013         (avr_help): New function.
35014         (TARGET_HELP): Define.
35015
35016 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
35017
35018         PR target/42240
35019         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
35020         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
35021
35022 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
35023
35024         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
35025         (ARM Options): Ditto.
35026         (i386 and x86-64 Options): Ditto.
35027         (RX Options): Ditto.
35028         (SPARC Options): Ditto.
35029
35030 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
35031
35032         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
35033         FreeBSD 6 and later.  Generally use cpu generic.
35034
35035 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35036
35037         * doc/cpp.texi: Update copyright years.
35038
35039 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
35040
35041         PR target/46898
35042         * config/lm32/lm32.md (ashrsi3): Added needed variable.
35043
35044 2011-02-25  Jon Beniston  <jon@beniston.com>
35045
35046         PR target/46898
35047         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
35048         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
35049         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
35050         (lm32_block_move_inline): Add type cast to remove warning.
35051         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
35052         (gen_int_relational): Move declarations to start of function.
35053
35054 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
35055
35056         PR tree-optimization/45470
35057         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
35058         can throw internally only.
35059         * tree-vect-stmts.c (vectorizable_call): Likewise.
35060
35061 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
35062
35063         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
35064         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
35065         * config/stormy16/stormy16-protos.h
35066         (xstormy16_preferred_reload_class): Remove.
35067         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
35068         static. Change 'rclass' argument and return type to reg_class_t.
35069         (TARGET_PREFERRED_RELOAD_CLASS,
35070         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
35071
35072 2011-02-24  Richard Guenther  <rguenther@suse.de>
35073
35074         * lto-streamer-in.c (input_bb): Do not find referenced vars
35075         in debug statements.
35076
35077 2011-02-23  Jason Merrill  <jason@redhat.com>
35078
35079         * common.opt (fabi-version): Document v5 and v6.
35080
35081 2011-02-23  Richard Guenther  <rguenther@suse.de>
35082
35083         PR tree-optimization/47849
35084         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
35085
35086 2011-02-23  Jie Zhang  <jie@codesourcery.com>
35087
35088         * opts-common.c (decode_cmdline_option): Print empty string
35089         argument as "" in decoded->orig_option_with_args_text.
35090         * gcc.c (execute): Print empty string argument as ""
35091         in the verbose output.
35092         (do_spec_1): Keep empty string argument.
35093
35094 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
35095
35096         * config.gcc: Declare score-* and crx-* obsolete.
35097
35098 2011-02-23  Jie Zhang  <jie@codesourcery.com>
35099
35100         PR rtl-optimization/47763
35101         * web.c (web_main): Ignore naked clobber when replacing register.
35102
35103 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
35104
35105         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
35106         Remove.
35107
35108 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35109
35110         PR doc/47848
35111         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
35112
35113 2011-02-22  Mike Stump  <mikestump@comcast.net>
35114
35115         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
35116         assembler.
35117         * configure: Regenerate.
35118
35119 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
35120
35121         PR rtl-optimization/46002
35122         * ira-color.c (update_copy_costs): Change class intersection
35123         test to reg_class_contents[] test of 'hard_regno'.
35124
35125 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
35126
35127         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
35128         than Driver option.
35129         * config/hpux11.opt (mt): Likewise.
35130         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
35131         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
35132         * config/vax/elf.opt (mno-asm-pic): Likewise.
35133         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
35134
35135 2011-02-21  Mike Stump  <mikestump@comcast.net>
35136
35137         PR target/47822
35138         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
35139         tree so we can get save the type.
35140         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
35141         for CFString instead of trying to use past the end of the builtins.
35142         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
35143         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
35144         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
35145         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
35146         Rename to darwin_builtin_cfstring.
35147         (darwin_init_cfstring_builtins): Return the built type.
35148
35149 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
35150
35151         PR target/47840
35152         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
35153         (_mm256_insert_epi64): Use _mm_insert_epi64.
35154
35155 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
35156
35157         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
35158         * config/stormy16/stormy16-protos.h
35159         (xstormy16_mode_dependent_address_p): Remove.
35160         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
35161         Make static. Change return type to bool. Change argument type to
35162         const_rtx. Remove dead code.
35163         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
35164
35165 2011-02-21  Richard Guenther  <rguenther@suse.de>
35166
35167         PR lto/47820
35168         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
35169         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
35170         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
35171         TUs context.
35172         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
35173         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
35174
35175 2011-02-20  Richard Guenther  <rguenther@suse.de>
35176
35177         PR lto/47822
35178         * tree.c (free_lang_data_in_decl): Clean builtins from
35179         the TU decl BLOCK_VARS.
35180
35181 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
35182
35183         PR debug/47620
35184         PR debug/47630
35185         * haifa-sched.c (fix_tick_ready): Skip tick computation
35186         for debug insns.
35187
35188 2011-02-19  Richard Guenther  <rguenther@suse.de>
35189
35190         PR lto/47647
35191         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
35192         Remove lazy BLOCK_VARS streaming.
35193         (lto_input_ts_block_tree_pointers): Likewise.
35194         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
35195
35196 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
35197
35198         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
35199
35200 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
35201
35202         * config/i386/biarch32.h, config/i386/mach.h,
35203         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
35204
35205 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
35206
35207         PR target/47800
35208         * config/i386/i386.md (peephole2 for shift and plus): Use
35209         operands[1] original mode in the first insn.
35210
35211 2011-02-18  Mike Stump  <mikestump@comcast.net>
35212
35213         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
35214
35215 2011-02-18  Jan Hubicka  <jh@suse.cz>
35216
35217         PR middle-end/47788
35218         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
35219         to zero when the function is not inlinable at all.
35220
35221 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35222
35223         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
35224         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
35225         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
35226         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
35227         * config/pa/t-pa64: Likewise.
35228         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
35229
35230 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
35231
35232         PR driver/47787
35233         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
35234
35235 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35236
35237         PR target/47792
35238         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
35239
35240 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
35241
35242         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
35243         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
35244         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
35245         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
35246         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
35247         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
35248         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
35249         m32r_load_postinc_p, m32r_store_preinc_predec_p,
35250         m32r_legitimate_address_p): New functions.
35251         * config/m32r/constraints.md (constraint "S"): Don't use
35252         STORE_PREINC_PREDEC_P.
35253         (constraint "U"): Don't use LOAD_POSTINC_P.
35254
35255 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
35256
35257         PR rtl-optimization/46178
35258         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
35259         compute ira_hard_regno_cover_class[].
35260
35261 2011-02-18  Richard Guenther  <rguenther@suse.de>
35262
35263         PR lto/47798
35264         * lto-streamer.h (lto_global_var_decls): Declare.
35265         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
35266         statics for global var processing.
35267
35268 2011-02-18  Richard Guenther  <rguenther@suse.de>
35269
35270         PR tree-optimization/47737
35271         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
35272         edge dominance check.
35273
35274 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
35275
35276         PR debug/47780
35277         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
35278         avoid invalid rtx sharing.
35279
35280 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
35281
35282         * doc/cpp.texi (Obsolete Features): Add background on the
35283         origin of assertions.
35284
35285 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
35286
35287         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
35288         objc_abi == 2.
35289         * config/darwin.c (output_objc_section_asm_op): Added support for
35290         ABI v1 and v2.
35291         (is_objc_metadata): New.
35292         (darwin_objc2_section): New.
35293         (darwin_objc1_section): New.
35294         (machopic_select_section): Added support for ABI v1 and v2.
35295         (darwin_emit_objc_zeroed): New.
35296         (darwin_output_aligned_bss): Detect objc metadata and treat it
35297         appropriately.
35298         (darwin_asm_output_aligned_decl_common): Same.
35299         (darwin_asm_output_aligned_decl_local): Same.
35300         * config/darwin-sections.def: Updated for ABI v1 and v2.
35301         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
35302         compiling Objective-C code for the NeXT runtime, default to using
35303         ABI version 0 for 32-bit, and version 2 for 64-bit.
35304
35305 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35306
35307         * common.opt (optimize_fast): New Variable.
35308         * opts.c (default_options_optimization): Use opts->x_optimize_fast
35309         instead of local variable ofast.
35310
35311 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
35312
35313         * doc/invoke.texi (fobjc-abi-version): Documented.
35314         (fobjc-nilcheck): Documented.
35315         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
35316         version.
35317
35318 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35319
35320         PR driver/47390
35321         * common.opt (export-dynamic): New Driver option.
35322         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
35323
35324 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35325
35326         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
35327
35328 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
35329             Jan Hubicka  <jh@suse.cz>
35330
35331         PR debug/47106
35332         PR debug/47402
35333         * cfgexpand.c (account_used_vars_for_block): Remove.
35334         (estimated_stack_frame_size): Use referenced vars.
35335         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
35336         that were referenced in the original function.  Test src_fn
35337         rather than cfun.  Drop redundant get_var_ann.
35338         (setup_one_parameter): Drop redundant get_var_ann.
35339         (declare_return_variable): Likewise.
35340         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
35341         (copy_arguments_for_versioning): Drop redundant get_var_ann.
35342         * ipa-inline.c (compute_inline_parameters): Do not compute
35343         disregard_inline_limits here.
35344         (compute_inlinable_for_current, pass_inlinable): New.
35345         (pass_inline_parameters): Require PROP_referenced_vars.
35346         * cgraphunit.c (cgraph_process_new_functions): Don't run
35347         compute_inline_parameters explicitly unless function is in SSA form.
35348         (cgraph_analyze_function): Set .disregard_inline_limits.
35349         * tree-sra.c (convert_callers): Compute inliner parameters
35350         only for functions already in SSA form.
35351
35352 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35353
35354         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
35355         -mlittle-endian-data.
35356
35357 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35358
35359         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
35360         -mno-fpu, not -fpu and -no-fpu.
35361         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
35362         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
35363
35364 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
35365
35366         PR target/43653
35367         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
35368         input reload with PLUS RTX.
35369
35370 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35371
35372         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
35373         of InverseVar(MDMX).
35374
35375 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35376
35377         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
35378         --m4-340.
35379
35380 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35381
35382         * config/mn10300/mn10300.opt (mno-crt0): New.
35383
35384 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35385
35386         * config/m68k/uclinux.opt (static-libc): New Driver option.
35387
35388 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35389
35390         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
35391
35392 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35393
35394         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
35395         %{muser-extend-enabled}.
35396
35397 2011-02-16  Richard Guenther  <rguenther@suse.de>
35398
35399         PR tree-optimization/47738
35400         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
35401         the TODO from tree_predictive_commoning.
35402
35403 2011-02-15  Jeff Law  <law@redhat.com>
35404
35405         Revert
35406         2011-01-25  Jeff Law  <law@redhat.com>
35407
35408         PR rtl-optimization/37273
35409         * ira-costs.c (scan_one_insn): Detect constants living in memory and
35410         handle them like argument loads from stack slots.  Do not double
35411         count memory for memory constants and argument loads from stack slots.
35412
35413 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
35414
35415         PR target/47755
35416         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
35417         mode for vector constants.  Remove code that checks for TImode.
35418
35419 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
35420
35421         PR debug/47106
35422         PR debug/47402
35423         * cgraph.h (compute_inline_parameters): Return void.
35424         * ipa-inline.c (compute_inline_parameters): Adjust.
35425
35426 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
35427
35428         PR debug/47106
35429         PR debug/47402
35430         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
35431         rather than decl.
35432         * cfgexpand.c (estimated_stack_frame_size): Likewise.
35433         * ipa-inline.c (compute_inline_parameters): Adjust.
35434
35435 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
35436
35437         PR debug/47106
35438         PR debug/47402
35439         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
35440         Adjust all users.  Pass FN to...
35441         * tree-flow-inline.h (first_referenced_var): ... this.  Add
35442         fn argument.
35443         * ipa-struct-reorg.c: Adjust.
35444         * tree-dfa.c: Adjust.
35445         * tree-into-ssa.c: Adjust.
35446         * tree-sra.c: Adjust.
35447         * tree-ssa-alias.c: Adjust.
35448         * tree-ssa-live.c: Adjust.
35449         * tree-ssa.c: Adjust.
35450         * tree-ssanames.c: Adjust.
35451         * tree-tailcall.c: Adjust.
35452
35453 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
35454
35455         PR debug/47106
35456         PR debug/47402
35457         * tree-flow.h (referenced_var_lookup): Add fn parameter.
35458         Adjust all callers.
35459         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
35460         * tree-flow-inline.h: Adjust.
35461         * gimple-pretty-print.c: Adjust.
35462         * tree-into-ssa.c: Adjust.
35463         * tree-ssa.c: Adjust.
35464         * cfgexpand.c: Adjust.
35465
35466 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
35467
35468         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
35469         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
35470         (EXTRA_CONSTRAINT): Delete.
35471         * config/iq2000/constraints.md: New file.
35472         * config/iq2000/iq2000.md: Include it.
35473         (define_insn ""): Delete.
35474         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
35475         unsupported constraint letters from patterns.
35476         (call_value, call_value_internal1): Likewise.
35477         (call_value_multiple_internal1): Likewise.
35478
35479 2011-02-15  Nick Clifton  <nickc@redhat.com>
35480
35481         * config/mn10300/mn10300.c: Include tm-constrs.h.
35482         (struct liw_data): New data structure describing an LIW candidate
35483         instruction.
35484         (extract_bundle): Use struct liw_data.  Allow small integer
35485         operands for some instructions.
35486         (check_liw_constraints): Use struct liw_data.  Remove swapped
35487         parameter.  Add comments describing the checks.  Fix bug when
35488         assigning the source of liw1 to the source of liw2.
35489         (liw_candidate): Delete.  Code moved into extract_bundle.
35490         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
35491         before swapping.
35492         * config/mn10300/predicates.md (liw_operand): New predicate.
35493         Allows registers and small integer constants.
35494         * config/mn10300/constraints.md (O): New constraint.  Accetps
35495         integers in the range -8 to +7 inclusive.
35496         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
35497         for moving a small integer into a register.  Give this alternative
35498         LIW attributes.
35499         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
35500         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
35501         using the J,K,L and M constraints,
35502         (liw): Remove SI mode on second operands to allow for HI and QI
35503         mode values.
35504         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
35505         instruction.
35506
35507 2011-02-15  Richard Guenther  <rguenther@suse.de>
35508
35509         PR tree-optimization/47743
35510         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
35511         for a non-type-compatible VN lookup bail out.
35512
35513 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
35514
35515         * config/fr30/constraints.md: New file.
35516         * config/fr30/fr30.md: Include it.
35517         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
35518         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
35519         (EXTRA_CONSTRAINT): Delete.
35520
35521 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
35522
35523         * config/frv/constraints.md: New file.
35524         * config/frv/predicates.md: Include it.
35525         * config/frv/frv.c (reg_class_from_letter): Delete.
35526         (frv_option_override): Don't initialize it.
35527         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
35528         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
35529         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
35530         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
35531         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
35532         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
35533         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
35534         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
35535         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
35536         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
35537         (REG_CLASS_FROM_CONSTRAINT): Delete.
35538
35539 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
35540
35541         PR middle-end/47581
35542         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
35543         if frame size is 0 in a leaf function.
35544
35545 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35546
35547         PR pch/14940
35548         * config/alpha/host-osf.c: New file.
35549         * config/alpha/x-osf: New file.
35550         * config.host (alpha*-dec-osf*): Use it.
35551
35552 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
35553
35554         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
35555         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
35556         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
35557         (rx_mode_dependent_address_p): ...this. Make static. Change argument
35558         type to const_rtx.
35559         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
35560
35561 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
35562
35563         * config/stormy16/constraints.md: New file.
35564         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
35565         Use satisfies_constraint_Q and satisfies_constraint_R.
35566         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
35567         Delete.
35568         (xstormy16_legitiamte_address_p): Declare.
35569         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
35570         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
35571         (EXTRA_CONSTRAINT): Delete.
35572         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
35573         Un-staticize.
35574         (xstormy16_extra_constraint_p): Delete.
35575
35576 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
35577
35578         PR tree-optimization/46494
35579         * loop-unroll.c (split_edge_and_insert): Adjust comment.
35580         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
35581         (pass_rtl_loop_done): Add TODO_verify_flow.
35582         * fwprop.c (pass_rtl_fwprop): Likewise.
35583         * modulo-sched.c (pass_sms): Likewise.
35584         * tree-ssa-dom.c (pass_dominator): Likewise.
35585         * tree-ssa-loop-ch.c (pass_ch): Likewise.
35586         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
35587         (pass_tree_loop_done): Likewise.
35588         * tree-ssa-pre.c (execute_pre): Likewise.
35589         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
35590         * tree-ssa-sink.c (pass_sink_code): Likewise.
35591         * tree-vrp.c (pass_vrp): Likewise.
35592
35593 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
35594
35595         * config/v850/constraints.md: New file.
35596         * config/v850/v850.md: Include it.
35597         * config/v850/predicates.md (reg_or_0_operand): Use
35598         satisfies_constraint_G.
35599         (special_symbolref_operand): Use satisfies_constraint_K.
35600         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
35601         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
35602         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
35603         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
35604         (EXTRA_CONSTRAINT): Delete.
35605         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
35606         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
35607         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
35608
35609 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
35610
35611         PR target/47696
35612         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
35613         description.
35614
35615 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
35616
35617         * config/mcore/constraints.md: New file.
35618         * config/mcore/mcore.md: Include it.
35619         * config/mcore/mcore.c (reg_class_from_letter): Delete.
35620         * config/mcore/mcore.h (reg_class_from_letter): Delete.
35621         (REG_CLASS_FROM_LETTER): Delete.
35622         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
35623         insn_const_int_ok_for_constraint.
35624         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
35625         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
35626         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
35627         (EXTRA_CONSTRAINT): Delete.
35628
35629 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35630
35631         PR ada/41929
35632         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
35633         (IS_SIGHANDLER): Define.
35634         (sparc64_is_sighandler): New function, split off from
35635         sparc64_fallback_frame_state.
35636         (sparc_is_sighandler): New function, split off from
35637         sparc_fallback_frame_state.
35638         (sparc64_fallback_frame_state): Merge with ...
35639         (sparc_fallback_frame_state): ... this into ...
35640         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
35641         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
35642         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
35643         stack instead of hardcoded offsets.
35644
35645 2011-02-14  Andriy Gapon  <avg@freebsd.org>
35646
35647         PR target/45808
35648         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
35649
35650 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35651
35652         * configure: Regenerate.
35653
35654 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
35655
35656         PR driver/45731
35657         * gcc.c (asm_options): Correct spec matching --target-help.
35658
35659 2011-02-12  Martin Jambor  <mjambor@suse.cz>
35660
35661         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
35662         to gimple call error.
35663
35664 2011-02-12  Mike Stump  <mikestump@comcast.net>
35665
35666         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
35667         comments in backslash regions.
35668
35669 2011-02-12  Mike Stump  <mikestump@comcast.net>
35670             Jakub Jelinek  <jakub@redhat.com>
35671             Iain Sandoe  <iains@gcc.gnu.org>
35672
35673         PR target/47324
35674         * dwarf2out.c (output_cfa_loc): When required, apply the
35675         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
35676         (output_loc_sequence): Likewise.
35677         (output_loc_operands_raw): Likewise.
35678         (output_loc_sequence_raw): Likewise.
35679         (output_cfa_loc): Likewise.
35680         (output_loc_list): Suppress register number adjustment when
35681         calling output_loc_sequence()
35682         (output_die): Likewise.
35683
35684 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
35685
35686         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
35687         Remove macros.
35688         * config/xtensa/xtensa.c (xtensa_register_move_cost,
35689         xtensa_memory_move_cost): New functions.
35690         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
35691
35692 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
35693
35694         PR lto/47225
35695         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
35696         in the current directory.
35697         * configure: Rebuilt.
35698
35699 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
35700
35701         * config/darwin.c (darwin_override_options): Add a hunk missed
35702         from the commit of r168571.  Trim comment line lengths and
35703         correct indents of the preceding block.
35704
35705 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
35706
35707         * gcc.c (driver_handle_option): Concatenate the argument to -F with
35708         the switch.
35709
35710 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
35711
35712         * common.opt (nostartfiles): New Driver option.
35713
35714 2011-02-11  Xinliang David Li  <davidxl@google.com>
35715
35716         PR tree-optimization/47707
35717         * tree-chrec.c (convert_affine_scev): Keep type precision.
35718
35719 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
35720
35721         PR tree-optimization/47420
35722         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
35723
35724 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
35725
35726         PR rtl-optimization/47614
35727         * rtl.h (check_for_inc_dec): Declare.
35728         * dse.c (check_for_inc_dec): Externalize...
35729         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
35730         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
35731
35732 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
35733
35734         PR driver/47678
35735         * gcc.c (main): Do not compile inputs if there were errors in
35736         option handling.
35737         * opts-common.c (read_cmdline_option): Check for wrong language
35738         after other error checks.
35739
35740 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
35741
35742         * cgraph.c: Fix comment typos.
35743         * cgraph.h: Likewise.
35744         * cgraphunit.c: Likewise.
35745         * ipa-cp.c: Likewise.
35746         * ipa-inline.c: Likewise.
35747         * ipa-prop.c: Likewise.
35748         * ipa-pure-const.c: Likewise.
35749         * ipa-ref.c: Likewise.
35750         * ipa-reference.c: Likewise.
35751
35752 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
35753
35754         PR debug/47684
35755         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
35756
35757 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35758
35759         PR testsuite/47400
35760         * doc/sourcebuild.texi (Require Support): Document
35761         dg-require-ascii-locale.
35762
35763 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
35764
35765         * doc/lto.texi (Write summary): Fix missing parentheses.
35766
35767 2011-02-10  DJ Delorie  <dj@redhat.com>
35768
35769         * config/m32c/m32c.c (m32c_option_override): Disable
35770         -fcombine-stack-adjustments until flag value tracking and compare
35771         optimization can be rewritten.
35772
35773 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
35774
35775         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
35776         PROCESSOR_POWER7.
35777         (PROCESSOR_DEFAULT64): Likewise.
35778
35779 2011-02-10  Richard Henderson  <rth@redhat.com>
35780
35781         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
35782         change from 2011-02-03.
35783         * config/rx/rx.c (flags_from_code): Likewise.
35784         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
35785         is valid, n/pz otherwise.
35786         (rx_select_cc_mode): Return CCmode if Y is not zero.
35787
35788 2011-02-10  Richard Guenther  <rguenther@suse.de>
35789
35790         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
35791
35792 2011-02-10  Richard Guenther  <rguenther@suse.de>
35793
35794         PR tree-optimization/47677
35795         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
35796
35797 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
35798
35799         PR target/47665
35800         * combine.c (make_compound_operation): Only change shifts into
35801         multiplication for SCALAR_INT_MODE_P.
35802
35803 2011-02-10  Jie Zhang  <jie@codesourcery.com>
35804
35805         PR testsuite/47622
35806         Revert
35807         2011-02-05  Jie Zhang  <jie@codesourcery.com>
35808         PR debug/42631
35809         * web.c (entry_register): Don't clobber the number of the
35810         first uninitialized reference in used[].
35811
35812 2011-02-09  Richard Guenther  <rguenther@suse.de>
35813
35814         PR tree-optimization/47664
35815         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
35816         all edges again.
35817
35818 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
35819
35820         PR target/46481
35821         PR target/47032
35822         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
35823         PROCESSOR_POWER7.
35824         (PROCESSOR_DEFAULT64): Same.
35825         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
35826
35827 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35828
35829         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
35830
35831 2011-02-09  Martin Jambor  <mjambor@suse.cz>
35832
35833         PR middle-end/45505
35834         * tree-sra.c (struct access): New flags grp_scalar_read and
35835         grp_scalar_write.  Changed description of assignment read and write
35836         flags.
35837         (dump_access): Dump new flags, reorder all of them.
35838         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
35839         to detect multiple scalar reads.
35840         (analyze_access_subtree): Use the new scalar read write flags instead
35841         of the old flags.  Adjusted comments.
35842
35843 2011-02-08  DJ Delorie  <dj@redhat.com>
35844
35845         PR target/47548
35846         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
35847         patterns.
35848
35849 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35850
35851         * config/m68k/uclinux.opt: New.
35852         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
35853
35854 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35855
35856         * config/cris/elf.opt (sim): New Driver option.
35857
35858 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35859
35860         * config/xtensa/elf.opt: New.
35861         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
35862
35863 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35864
35865         * config/vax/elf.opt: New.
35866         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
35867
35868 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35869
35870         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
35871
35872 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35873
35874         * config/gnu-user.opt: New.
35875         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
35876         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
35877         *-*-uclinux*): Use gnu-user.opt.
35878
35879 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
35880
35881         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
35882         * config/i386/gnu.h (CPP_SPEC): Likewise.
35883
35884 2011-02-08  Ian Lance Taylor  <iant@google.com>
35885
35886         * common.opt (fcx-limited-range): Add SetByCombined flag.
35887         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
35888         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
35889         (fassociative-math, freciprocal-math): Likewise.
35890         (funsafe-math-optimizations): Likewise.
35891         * opth-gen.awk: Handle SetByCombined.
35892         * optc-gen.awk: Likewise.
35893         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
35894         (set_unsafe_math_optimizations_flags): Likewise.
35895         * doc/options.texi (Option properties): Document SetByCombined.
35896
35897 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
35898
35899         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
35900         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
35901         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
35902         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
35903         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
35904
35905 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
35906
35907         PR tree-optimization/46834
35908         PR tree-optimization/46994
35909         PR tree-optimization/46995
35910         * graphite-sese-to-poly.c (used_outside_reduction): New.
35911         (detect_commutative_reduction): Call used_outside_reduction.
35912         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
35913         translate_scalar_reduction_to_array only when at least one
35914         loop-phi/close-phi tuple has been detected.
35915
35916 2011-02-08  Richard Guenther  <rguenther@suse.de>
35917
35918         PR middle-end/47639
35919         * tree-vect-generic.c (expand_vector_operations_1): Update
35920         stmts here ...
35921         (expand_vector_operations): ... not here.  Cleanup EH info
35922         and the CFG if required.
35923
35924 2011-02-08  Richard Guenther  <rguenther@suse.de>
35925
35926         PR tree-optimization/47641
35927         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
35928         require type compatibility.
35929
35930 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35931
35932         * gimple-low.c (lower_function_body): Don't remove the location of
35933         the return statement here.
35934         (lower_gimple_return): Do it here instead but only if the return
35935         statement is actually used twice.
35936
35937 2011-02-08  Richard Guenther  <rguenther@suse.de>
35938
35939         PR tree-optimization/47632
35940         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
35941         unused up_to_stmt parameter, return whether cfg-cleanup is
35942         necessary, remove EH info properly.
35943         (forward_propagate_into_gimple_cond): Adjust caller.
35944         (forward_propagate_into_cond): Likewise.
35945         (forward_propagate_comparison): Likewise.
35946         (tree_ssa_forward_propagate_single_use_vars): Make
35947         forward_propagate_comparison case similar to the two others.
35948
35949 2011-02-08  Nick Clifton  <nickc@redhat.com>
35950
35951         * config/mn10300/mn10300.opt (mliw): New command line option.
35952         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
35953         (liw_bundling): New automaton.
35954         (liw): New attribute.
35955         (liw_op): New attribute.
35956         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
35957         (movsi_internal): Add LIW attributes.
35958         (andsi3): Likewise.
35959         (iorsi3): Likewise.
35960         (xorsi3): Likewise.
35961         (addsi3): Separate register and immediate alternatives.
35962         Add LIW attributes.
35963         (subsi3): Likewise.
35964         (cmpsi): Likewise.
35965         (aslsi3): Likewise.
35966         (lshrsi3): Likewise.
35967         (ashrsi3): Likewise.
35968         (liw): New pattern.
35969         * config/mn10300/mn10300.c (liw_op_names): New
35970         (mn10300_print_operand): Handle 'W' operand descriptor.
35971         (extract_bundle): New function.
35972         (check_liw_constraints): New function.
35973         (liw_candidate): New function.
35974         (mn10300_bundle_liw): New function.
35975         (mn10300_reorg): New function.
35976         (TARGET_MACHINE_DEPENDENT_REORG): Define.
35977         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
35978         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
35979         __LIW__ or __NO_LIW__.
35980         * doc/invoke.texi: Describe the -mliw command line option.
35981
35982 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35983
35984         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
35985         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
35986         pthread_mutex_unlock): Remove.
35987         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
35988         * config/pa/t-pa64: Likewise.
35989         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
35990         shared libc if not linking against libpthread.
35991         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
35992
35993 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
35994
35995         PR target/47558
35996         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
35997         on 10.6 and later to ensure that we always use the unwinder from
35998         the system.  Only add -no_compact_unwind when tarteting darwin
35999         10.6 or later.
36000
36001 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
36002
36003         PR target/46997
36004         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
36005         (vec_interleave_lowv2sf): Ditto.
36006         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
36007         (vec_extract_oddv2sf): Ditto.
36008
36009 2011-02-07  Mike Stump  <mikestump@comcast.net>
36010
36011         PR target/42333
36012         Add __ieee_divdc3 entry point.
36013         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
36014         entry point.
36015         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
36016         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
36017         * config/darwin.c (darwin_rename_builtins): Add.
36018         * config/darwin-protos.h (darwin_rename_builtins): Add.
36019
36020 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
36021
36022         PR target/47636
36023         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
36024         for the condition.
36025
36026 2011-02-07  Mike Stump  <mikestump@comcast.net>
36027
36028         * config/darwin.opt (mmacosx-version-min): Update default OS version.
36029
36030 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
36031
36032         PR target/47534
36033         * config/avr/libgcc.S (exit): Move .endfunc
36034
36035 2011-02-07  Richard Guenther  <rguenther@suse.de>
36036
36037         PR tree-optimization/47615
36038         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
36039         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
36040         (run_scc_vn): Initialize it.
36041         (visit_reference_op_load): Use it.
36042         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
36043
36044 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36045
36046         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
36047         DImode trapping arithmetic libfuncs.
36048
36049 2011-02-07  Richard Guenther  <rguenther@suse.de>
36050
36051         PR tree-optimization/47621
36052         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
36053         two duplicates ...
36054         (execute_update_addresses_taken): ... here.  Make it more
36055         conservative in what we accept.
36056
36057 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
36058
36059         * config/sparc/freebsd.h (ASM_SPEC): Define.
36060         * config/sparc/vxworks.h (ASM_SPEC): Define.
36061
36062 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
36063
36064         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
36065
36066 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
36067
36068         * doc/invoke.texi: Remove reference to compiler internals from
36069         user documentation.
36070
36071         * reg-notes.def: Remove REG_VALUE_PROFILE.
36072         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
36073
36074 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
36075
36076         PR middle-end/47610
36077         * varasm.c (default_section_type_flags): If decl is NULL,
36078         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
36079
36080 2011-02-05  Jie Zhang  <jie@codesourcery.com>
36081
36082         PR debug/42631
36083         * web.c (entry_register): Don't clobber the number of the
36084         first uninitialized reference in used[].
36085
36086 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
36087
36088         PR tree-optimization/46194
36089         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
36090         (build_classic_dist_vector_1): Do not represent classic distance
36091         vectors when the access functions are variating in different loops.
36092
36093 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
36094
36095         * config/mips/iris6.opt: New.
36096         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
36097
36098 2011-02-04  Richard Henderson  <rth@redhat.com>
36099             Steve Ellcey  <sje@cup.hp.com>
36100
36101         PR target/46997
36102         * config/ia64/predicates.md (mux1_brcst_element): New.
36103         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
36104         * config/ia64/ia64.c (ia64_unpack_assemble): New.
36105         (ia64_unpack_sign): New.
36106         (ia64_expand_unpack): Rewrite using new routines.
36107         (ia64_expand_widen_sum): Ditto.
36108         (ia64_expand_dot_prod_v8qi): Ditto.
36109         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
36110         routines, add endian check.
36111         (pmpy2_even): Rename from pmpy2_r, add endian check.
36112         (pmpy2_odd): Rename from pmpy2_l, add endian check.
36113         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
36114         (vec_widen_smult_hi_v4hi): Ditto.
36115         (vec_widen_umult_lo_v4hi): Ditto.
36116         (vec_widen_umult_hi_v4hi): Ditto.
36117         (mulv2si3): Change endian checks.
36118         (sdot_prodv4hi): Rewrite with new calls.
36119         (udot_prodv4hi): New.
36120         (vec_pack_ssat_v4hi): Add endian check.
36121         (vec_pack_usat_v4hi): Ditto.
36122         (vec_pack_ssat_v2si): Ditto.
36123         (max1_even): Rename from max1_r, add endian check.
36124         (max1_odd): Rename from max1_l, add endian check.
36125         (*mux1_rev): Format change.
36126         (*mux1_mix): Ditto.
36127         (*mux1_shuf): Ditto.
36128         (*mux1_alt): Ditto.
36129         (*mux1_brcst_v8qi): Use new predicate.
36130         (vec_extract_evenv8qi): Remove endian check.
36131         (vec_extract_oddv8qi): Ditto.
36132         (vec_interleave_lowv4hi): Format change.
36133         (vec_interleave_highv4hi): Ditto.
36134         (mix2_even): Rename from mix2_r, add endian check.
36135         (mix2_odd): Rename from mux2_l, add endian check.
36136         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
36137         (vec_extract_evenodd_helper): Format change.
36138         (vec_extract_evenv4hi): Remove endian check.
36139         (vec_extract_oddv4hi): Remove endian check.
36140         (vec_interleave_lowv2si): Format change.
36141         (vec_interleave_highv2si): Format change.
36142         (vec_initv2si): Remove endian check.
36143         (vecinit_v2si): Add endian check.
36144         (reduc_splus_v2sf): Add endian check.
36145         (reduc_smax_v2sf): Ditto.
36146         (reduc_smin_v2sf): Ditto.
36147         (vec_initv2sf): Remove endian check.
36148         (fpack): Add endian check.
36149         (fswap): Add endian check.
36150         (vec_interleave_highv2sf): Add endian check.
36151         (vec_interleave_lowv2sf): Add endian check.
36152         (fmix_lr): Add endian check.
36153         (vec_setv2sf): Format change.
36154         (*vec_extractv2sf_0_be): Use shift to extract operand.
36155         (*vec_extractv2sf_1_be): New.
36156         (vec_pack_trunc_v4hi): Add endian check.
36157         (vec_pack_trunc_v2si): Format change.
36158
36159 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
36160
36161         PR inline-asm/23200
36162         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
36163         do bb, locus and block comparison and disallow loads if it is not set.
36164         (stmt_is_replaceable_p): New function.
36165         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
36166         callers.
36167         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
36168         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
36169         SSA_NAME_DEF_STMT.
36170         * tree-flow.h (stmt_is_replaceable_p): New prototype.
36171
36172 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
36173
36174         * config/rs6000/xilinx.opt: New.
36175         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
36176
36177 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
36178
36179         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
36180
36181 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
36182
36183         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
36184         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
36185         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
36186         secondary_reload_info, xtensa_secondary_reload): Remove.
36187         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
36188         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
36189         (xtensa_preferred_reload_class): Make static. Change return and
36190         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
36191         Use CONST_DOUBLE_P predicate.
36192         (xtensa_preferred_output_reload_class): New function.
36193         (xtensa_secondary_reload): Make static.
36194
36195 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
36196
36197         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
36198         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
36199         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
36200
36201 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
36202
36203         PR middle-end/31490
36204         * output.h (SECTION_RELRO): Define.
36205         (SECTION_MACH_DEP): Adjust.
36206         (get_variable_section): New prototype.
36207         * varpool.c (varpool_finalize_named_section_flags): New function.
36208         (varpool_assemble_pending_decls): Call it.
36209         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
36210         * cgraphunit.c (cgraph_output_in_order): Call
36211         varpool_finalize_named_section_flags.
36212         * varasm.c (get_section): Allow section flags conflicts between
36213         relro and read-only sections if the section hasn't been declared yet.
36214         Set SECTION_OVERRIDE after diagnosing section type conflict.
36215         (get_variable_section): No longer static.
36216         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
36217         readonly sections that need relocations.
36218         (decl_readonly_section_1): New function.
36219         (decl_readonly_section): Use it.
36220
36221         Revert:
36222         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
36223                     Steve Ellcey  <sje@cup.hp.com>
36224
36225         PR middle-end/31490
36226         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
36227         if section attribute used.
36228
36229 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
36230
36231         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
36232         * config/darwin.c (SECTION_NO_ANCHOR): Define.
36233         (darwin_init_sections): Remove assertion.
36234
36235 2011-02-03  Nick Clifton  <nickc@redhat.com>
36236
36237         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
36238         lt and ge.
36239         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
36240         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
36241         instead of "n" and "pz".
36242         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
36243         CC_FLAG_S.
36244
36245 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
36246
36247         PR target/47312
36248         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
36249         fma, expand FMA_EXPR as fma{,f,l} call.
36250
36251         PR lto/47274
36252         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
36253         copy them into a unsigned char variable and pass address of it to
36254         lto_output_data_stream.
36255
36256         PR target/47564
36257         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
36258         around backend_init_target and lang_dependent_init_target calls.
36259         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
36260         (verify_cgraph_node): Don't call set_cfun here.  Use
36261         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
36262         Set error_found for incorrectly represented calls to thunks.
36263
36264 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
36265
36266         PR debug/43092
36267         PR rtl-optimization/43494
36268         * rtl.h (for_each_inc_dec_fn): New type.
36269         (for_each_inc_dec): Declare.
36270         * rtlanal.c (struct for_each_inc_dec_ops): New type.
36271         (for_each_inc_dec_find_inc_dec): New fn.
36272         (for_each_inc_dec_find_mem): New fn.
36273         (for_each_inc_dec): New fn.
36274         * dse.c (struct insn_size): Remove.
36275         (replace_inc_dec, replace_inc_dec_mem): Remove.
36276         (emit_inc_dec_insn_before): New fn.
36277         (check_for_inc_dec): Use it, along with for_each_inc_dec.
36278         (canon_address): Pass mem modes to cselib_lookup.
36279         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
36280         (cselib_lookup_from_insn): Likewise.
36281         (cselib_subst_to_values): Likewise.
36282         * cselib.c (find_slot_memmode): New var.
36283         (cselib_find_slot): New fn.  Use it instead of
36284         htab_find_slot_with_hash everywhere.
36285         (entry_and_rtx_equal_p): Use find_slot_memmode.
36286         (autoinc_split): New fn.
36287         (rtx_equal_for_cselib_p): Rename and implement in terms of...
36288         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
36289         Deal with autoinc.  Special-case recursion into MEMs.
36290         (cselib_hash_rtx): Likewise.
36291         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
36292         address and MEM modes.
36293         (cselib_subst_to_values): Add memmode, pass it on.
36294         Deal with autoinc.
36295         (cselib_lookup): Add memmode argument, pass it on.
36296         (cselib_lookup_from_insn): Add memmode.
36297         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
36298         (struct cselib_record_autoinc_data): New.
36299         (cselib_record_autoinc_cb): New fn.
36300         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
36301         mode to cselib_lookup.  Reset autoinced REGs here instead of...
36302         (cselib_process_insn): ... here.
36303         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
36304         to cselib_lookup.
36305         (add_uses): Likewise, also to cselib_subst_to_values.
36306         (add_stores): Likewise.
36307         * sched-deps.c (add_insn_mem_dependence): Pass mode to
36308         cselib_subst_to_values.
36309         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
36310         * gcse.c (do_local_cprop): Adjusted.
36311         * postreload.c (reload_cse_simplify_set): Adjusted.
36312         (reload_cse_simplify_operands): Adjusted.
36313         * sel-sched-dump (debug_mem_addr_value): Pass mode.
36314
36315 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
36316
36317         PR tree-optimization/45122
36318         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
36319         unsafe assumptions when there's more than one loop exit.
36320
36321 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
36322
36323         PR target/47272
36324         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
36325         Document using vector double with the load/store builtins, and
36326         that the load/store builtins always use Altivec instructions.
36327
36328         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
36329         to use altivec memory instructions, even on VSX.
36330         (vector_altivec_store_<mode>): Ditto.
36331
36332         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
36333         function.
36334
36335         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36336         V2DF, V2DI support to load/store overloaded builtins.
36337
36338         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
36339         altivec load/store builtins for V2DF/V2DI types.
36340
36341         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
36342         set avoid indexed addresses on power6 if -maltivec.
36343         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
36344         vector_altivec_load/vector_altivec_store builtins.
36345         (altivec_expand_st_builtin): Ditto.
36346         (altivec_expand_builtin): Add VSX memory builtins.
36347         (rs6000_init_builtins): Add V2DI types to internal types.
36348         (altivec_init_builtins): Add support for V2DF/V2DI altivec
36349         load/store builtins.
36350         (rs6000_address_for_altivec): Insure memory address is appropriate
36351         for Altivec.
36352
36353         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
36354         vec_vsx_ld and vec_vsx_st.
36355         (vsx_store_<mode>): Ditto.
36356
36357         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
36358         variables to hold long long types for VSX vector memory builtins.
36359         (RS6000_BTI_unsigned_long_long): Ditto.
36360         (long_long_integer_type_internal_node): Ditti.
36361         (long_long_unsigned_type_internal_node): Ditti.
36362
36363         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
36364         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
36365         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
36366
36367         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
36368         short cuts.
36369         (vec_vsx_st): Ditto.
36370
36371 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
36372
36373         * config/pa/pa-hpux10.opt: New.
36374         * config/hpux11.opt (pthread): New Driver option.
36375         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
36376         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
36377
36378 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
36379
36380         * config/ia64/vms.opt: New.
36381         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
36382
36383 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
36384
36385         PR target/47580
36386         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
36387         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
36388         generator functions.
36389         (vsx_floatuns<VSi><mode>2): Ditto.
36390         (vsx_fix_trunc<mode><VSi>2): Ditto.
36391         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
36392
36393 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
36394
36395         * config/i386/djgpp.opt (posix): New Driver option.
36396
36397 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
36398
36399         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
36400         Move to the unsupported targets list.
36401
36402 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
36403
36404         PR rtl-optimization/47525
36405         * df-scan.c: Update copyright years.
36406         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
36407         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
36408
36409 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36410
36411         * config/i386/sysv4.h (TARGET_VERSION): Remove.
36412         (SUBTARGET_RETURN_IN_MEMORY): Remove.
36413         (ASM_OUTPUT_ASCII): Remove.
36414         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
36415
36416 2011-02-02  Jeff Law  <law@redhat.com>
36417
36418         PR middle-end/47543
36419         * reload.c (find_reloads_address): Handle reg+d address where both
36420         components are invalid by reloading the entire address.
36421
36422 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
36423             Richard Guenther  <rguenther@suse.de>
36424
36425         PR tree-optimization/40979
36426         PR bootstrap/47044
36427         * passes.c (init_optimization_passes): After LIM call copy_prop
36428         and DCE to clean up.
36429         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
36430
36431 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
36432
36433         PR tree-optimization/47576
36434         PR tree-optimization/47555
36435         * doc/invoke.texi (scev-max-expr-complexity): Documented.
36436         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
36437         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
36438         * tree-scalar-evolution.c (follow_ssa_edge): Use
36439         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
36440
36441 2011-02-02  Richard Guenther  <rguenther@suse.de>
36442
36443         PR tree-optimization/47566
36444         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
36445
36446 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
36447
36448         PR debug/47106
36449         PR debug/47402
36450         * tree-inline.c (declare_return_variable): Remove unused caller
36451         variable.
36452
36453         PR debug/47106
36454         PR debug/47402
36455         * tree-flow-inline.h (clear_is_used, is_used_p): New.
36456         * cfgexpand.c (account_used_vars_for_block): Use them.
36457         * tree-nrv.c (tree_nrv): Likewise.
36458         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
36459         (dump_scope_block): Likewise.
36460         (remove_unused_locals): Likewise.
36461
36462         PR debug/47106
36463         PR debug/47402
36464         * tree-inline.c (declare_return_variable): Add result decl to
36465         local decls only once.
36466         * gimple-low.c (record_vars_into): Mark newly-created variables
36467         as referenced.
36468
36469 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
36470
36471         PR debug/47498
36472         PR debug/47501
36473         PR debug/45136
36474         PR debug/45130
36475         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
36476         debug insns.
36477         (no_real_insns_p, schedule_block, set_priorities): Drop special
36478         treatment of boundary debug insns.
36479         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
36480         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
36481         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
36482         (BOUNDARY_DEBUG_INSN_P): Likewise.
36483         (SCHEDULE_DEBUG_INSN_P): Likewise.
36484         * sched-rgn.c (init_ready_list): Drop special treatment of
36485         boundary debug insns.
36486         * final.c (rest_of_clean_state): Clear notes' BB.
36487
36488 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36489
36490         * config/openbsd.opt (assert=): New Driver option.
36491
36492 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36493
36494         * config/i386/nto.opt: New.
36495         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
36496
36497 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36498
36499         * config/i386/netware.opt: New.
36500         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
36501
36502 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36503
36504         * config/interix.opt (posix): New Driver option.
36505
36506 2011-02-01  DJ Delorie  <dj@redhat.com>
36507
36508         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
36509
36510         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
36511         class for A0/A1.
36512
36513 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
36514
36515         PR tree-optimization/47561
36516         * toplev.c (process_options): Print the Graphite flags.  Add
36517         flag_loop_flatten to the list of options requiring Graphite.
36518
36519 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36520
36521         * config/i386/cygming.opt (posix): New Driver option.
36522
36523 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36524
36525         * config/arm/vxworks.opt: New.
36526         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
36527
36528 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
36529
36530         * config/alpha/elf.opt: New.
36531         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
36532         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
36533
36534 2011-02-01  Richard Guenther  <rguenther@suse.de>
36535
36536         PR tree-optimization/47559
36537         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
36538         store-motion on references that can throw.
36539
36540 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
36541
36542         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
36543         * tree-pass.h (TDF_CSELIB): New macro.
36544         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
36545         cselib_lookup): Check for it rather than for TDF_DETAILS.
36546
36547 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
36548
36549         PR driver/47547
36550         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
36551         is HOST_BIT_BUCKET.
36552
36553         * opts.c (finish_options): Don't add x_aux_base_name if it is
36554         HOST_BIT_BUCKET.
36555
36556 2011-02-01  Richard Guenther  <rguenther@suse.de>
36557
36558         PR tree-optimization/47555
36559         Revert
36560         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
36561
36562         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
36563
36564 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
36565
36566         PR gcc/46692
36567         * config/lm32/t-lm32: Add multilib for all CPU options.
36568
36569 2011-02-01  Richard Guenther  <rguenther@suse.de>
36570
36571         PR tree-optimization/47541
36572         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
36573         sure to have a field at offset zero.
36574
36575 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
36576
36577         * config/arc/arc.opt (EB, EL): New Driver options.
36578
36579 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
36580
36581         * config/alpha/osf5.opt: New.
36582         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
36583
36584 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
36585
36586         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
36587
36588 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
36589
36590         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
36591         -floop-interchange.
36592         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
36593         is an alias of -floop-interchange and that it requires the
36594         Graphite infrastructure.
36595         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
36596         flag_loop_interchange based on the value of flag_tree_loop_linear.
36597
36598 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
36599             Richard Guenther  <rguenther@suse.de>
36600
36601         PR tree-optimization/47538
36602         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
36603         type instead of r1type, except for comparisons.  For right
36604         shifts and comparisons punt if there are mismatches in
36605         sizetype vs. non-sizetype types.
36606
36607 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36608
36609         * doc/sourcebuild.texi (Effective-Target Keywords): Document
36610         avx_runtime.
36611
36612 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36613
36614         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
36615         version number.
36616         * configure: Regenerate.
36617
36618 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36619
36620         * configure.ac (gcc_cv_ld_static_option): Define.
36621         (gcc_cv_ld_dynamic_option): Define.
36622         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
36623         instead.
36624         (HAVE_LD_STATIC_DYNAMIC): Update message.
36625         (LD_STATIC_OPTION): Define.
36626         (LD_DYNAMIC_OPTION): Define.
36627         * configure: Regenerate.
36628         * config.in: Regenerate.
36629         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
36630         HAVE_LD_STATIC_DYNAMIC]: Use them.
36631
36632 2011-01-31  Nick Clifton  <nickc@redhat.com>
36633
36634         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
36635         registers inside interrupt handlers if the handler is not a leaf
36636         function.
36637
36638 2011-01-31  Nick Clifton  <nickc@redhat.com>
36639
36640         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
36641         reg_renumber returning an INVALID_REGNUM.
36642
36643 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
36644
36645         PR libgcj/44341
36646         * doc/install.texi: Document host options discarded when cross
36647         configuring target libraries.
36648
36649 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
36650
36651         Reverted:
36652         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
36653         PR debug/45136
36654         PR debug/45130
36655         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
36656         debug insns.
36657         (no_real_insns_p, schedule_block, set_priorities): Drop special
36658         treatment of boundary debug insns.
36659         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
36660         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
36661         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
36662         (BOUNDARY_DEBUG_INSN_P): Likewise.
36663         (SCHEDULE_DEBUG_INSN_P): Likewise.
36664         * sched-rgn.c (init_ready_list): Drop special treatment of
36665         boundary debug insns.
36666         * final.c (rest_of_clean-state): Clear notes' BB.
36667
36668 2011-01-31  Alan Modra  <amodra@gmail.com>
36669
36670         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
36671         toc relative expressions as we do in print_operand_address.
36672
36673 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
36674
36675         * doc/extend.texi: Follow spelling conventions.
36676         * doc/invoke.texi: Fix a typo.
36677
36678 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
36679
36680         * config/hpux11.opt: New.
36681         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
36682         ia64*-*-hpux*): Use hpux11.opt.
36683
36684 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
36685
36686         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
36687         to tmake_file.
36688
36689 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
36690
36691         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
36692         support sites.
36693
36694 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
36695
36696         * doc/install.texi (Binaries): Remove outdated reference for
36697         Motorola 68HC11/68HC12 downloads.
36698
36699 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
36700
36701         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
36702         Drepper's paper.
36703
36704 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
36705
36706         PR bootstrap/47147
36707         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
36708         used by NetBSD.
36709
36710 2011-01-28  Ahmad Sharif  <asharif@google.com>
36711
36712         * value-prof.c (check_counter): Corrected error message.
36713
36714 2011-01-29  Jie Zhang  <jie@codesourcery.com>
36715
36716         * config/arm/arm.c (arm_legitimize_reload_address): New.
36717         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
36718         arm_legitimize_reload_address.
36719         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
36720
36721 2011-01-28  Ian Lance Taylor  <iant@google.com>
36722
36723         * godump.c (go_define): Ignore macros whose definitions include
36724         two adjacent operands.
36725
36726 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
36727
36728         PR target/42894
36729         * varasm.c (force_const_mem): Store copy of x in desc->constant
36730         instead of x itself.
36731         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
36732         itself into REG_EQUAL note.
36733
36734 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
36735
36736         * config/freebsd.opt (posix, rdynamic): New Driver options.
36737
36738 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36739
36740         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
36741         -Bstatic/-Bdynamic.
36742         * configure: Regenerate.
36743
36744 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
36745
36746         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
36747         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
36748
36749 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
36750
36751         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
36752         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
36753         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
36754         (s390_preferred_reload_class): Make static. Change return and
36755         'rclass' argument type to reg_class_t.
36756
36757 2011-01-27  Jan Hubicka  <jh@suse.cz>
36758
36759         PR middle-end/46949
36760         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
36761         (process_function_and_variable_attributes): Check defined weakrefs.
36762
36763 2011-01-27  Martin Jambor  <mjambor@suse.cz>
36764
36765         PR tree-optimization/47228
36766         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
36767         build_ref_for_offset.
36768
36769 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36770
36771         * config/spu/spu-elf.h (ASM_SPEC): Remove.
36772
36773 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
36774
36775         PR rtl-optimization/46856
36776         * postreload.c (reload_combine_recognize_const_pattern): Do not
36777         separate cc0 setter and user on cc0 targets.
36778
36779 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
36780
36781         PR c/43082
36782         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
36783         passed a VOID_TYPE expression, immediately emit an error and
36784         return error_mark_node.
36785
36786 2011-01-26  Jeff Law  <law@redhat.com>
36787
36788         PR rtl-optimization/47464
36789         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
36790         rather than may_trap_p as needed.
36791
36792 2011-01-26  DJ Delorie  <dj@redhat.com>
36793
36794         PR rtl-optimization/46878
36795         * combine.c (insn_a_feeds_b): Check for the implicit cc0
36796         setter/user dependency as well.
36797
36798 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
36799
36800         PR rtl-optimization/44469
36801         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
36802         after removing trivially dead basic blocks.
36803
36804 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
36805
36806         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
36807         * config/frv/frv.h (LINK_SPEC): Likewise.
36808         * config/i386/netware.h (LINK_SPEC): Likewise.
36809         * config/m68k/linux.h (ASM_SPEC): Likewise.
36810         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
36811         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
36812         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
36813         * config/sparc/linux.h (ASM_SPEC): Likewise.
36814         * config/sparc/linux64.h (ASM_SPEC): Likewise.
36815         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
36816
36817 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
36818
36819         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
36820         * config/frv/frv.h (ASM_SPEC): Likewise.
36821         * config/m68k/linux.h (ASM_SPEC): Likewise.
36822         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
36823         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
36824         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
36825         * config/sparc/linux.h (ASM_SPEC): Likewise.
36826         * config/sparc/linux64.h (ASM_SPEC): Likewise.
36827         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
36828
36829 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
36830
36831         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
36832         * config/frv/frv.h (LINK_SPEC): Likewise.
36833         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
36834
36835 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
36836
36837         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
36838         * config/frv/frv.h (ASM_SPEC): Likewise.
36839         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
36840         * config/m68k/linux.h (ASM_SPEC): Likewise.
36841         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
36842         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
36843         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
36844         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
36845         * config/sparc/linux.h (ASM_SPEC): Likewise.
36846         * config/sparc/linux64.h (ASM_SPEC): Likewise.
36847         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
36848         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
36849
36850 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
36851
36852         PR target/46997
36853         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
36854         (*mux2): Ditto.
36855         (vec_extract_evenodd_help): Ditto.
36856         (vec_extract_evenv4hi): Ditto.
36857         (vec_extract_oddv4hi): Ditto.
36858         (vec_interleave_lowv2si): Ditto.
36859         (vec_interleave_highv2si): Ditto.
36860         (vec_extract_evenv2si): Ditto.
36861         (vec_extract_oddv2si: Ditto.
36862         (vec_pack_trunc_v2si): Ditto.
36863
36864 2011-01-22  Jan Hubicka  <jh@suse.cz>
36865
36866         PR target/47237
36867         * cgraph.h (cgraph_local_info): New field can_change_signature.
36868         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
36869         signature can change.
36870         (ipcp_estimate_growth): Call sequence simplify only if calle signature
36871         can change.
36872         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
36873         (cgraph_function_versioning): We can not change signature of functions
36874         that don't allow that.
36875         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
36876         (lto_input_node): Likewise.
36877         * ipa-inline.c (compute_inline_parameters): Compute
36878         local.can_change_signature.
36879         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
36880         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
36881         functions that can not change signature.
36882         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
36883         init_cumulative_args): Do not use local calling conventions
36884         for functions that can not change signature.
36885
36886 2011-01-22  Jan Hubicka  <jh@suse.cz>
36887
36888         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
36889
36890 2011-01-26  Richard Guenther  <rguenther@suse.de>
36891
36892         PR tree-optimization/47190
36893         * cgraphunit.c (process_common_attributes): New function.
36894         (process_function_and_variable_attributes): Use it.
36895
36896 2011-01-26  Richard Guenther  <rguenther@suse.de>
36897
36898         PR lto/47423
36899         * cgraphbuild.c (record_eh_tables): Record reference to personality
36900         function.
36901
36902 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
36903
36904         PR debug/45454
36905         * sel-sched.c (moveup_expr): Don't let debug insns prevent
36906         non-debug insns from moving up.
36907
36908 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
36909
36910         PR target/40125
36911         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
36912         t-dlldir{,-x} fragment for build and add it to tmake_file.
36913         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
36914         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
36915         * config/i386/t-dlldir: New file.
36916         (SHLIB_DLLDIR): Define.
36917         * config/i386/t-dlldir-x: New file.
36918         (SHLIB_DLLDIR): Define.
36919         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
36920         (SHLIB_INSTALL): Use it.
36921
36922 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
36923
36924         PR target/47246
36925         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
36926         lower bound of the allowed Thumb-2 coprocessor load/store
36927         index range to -256. Add explaining comment.
36928
36929 2011-01-25  Ian Lance Taylor  <iant@google.com>
36930
36931         * godump.c (go_define): Improve lexing of macro expansion to only
36932         accept expressions which match Go spec.
36933
36934 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
36935
36936         PR c++/43601
36937         * tree.c (handle_dll_attribute): Handle it.
36938         * doc/extend.texi (@item dllexport): Mention it.
36939         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
36940
36941 2011-01-25  Ian Lance Taylor  <iant@google.com>
36942
36943         PR tree-optimization/26854
36944         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
36945         (decl_jump_unsafe): Move higher in file, with no other change.
36946         (bind): Set has_jump_unsafe_decl if appropriate.
36947         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
36948         (check_earlier_gotos): Likewise.
36949         (c_check_switch_jump_warnings): Likewise.
36950
36951 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
36952
36953         * doc/invoke.texi (Warning Options): Add missing hyphen.
36954         (-fprofile-dir): Minor grammatical fixes.
36955         (-fbranch-probabilities): Likewise.
36956
36957 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
36958
36959         PR debug/45136
36960         PR debug/45130
36961         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
36962         debug insns.
36963         (no_real_insns_p, schedule_block, set_priorities): Drop special
36964         treatment of boundary debug insns.
36965         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
36966         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
36967         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
36968         (BOUNDARY_DEBUG_INSN_P): Likewise.
36969         (SCHEDULE_DEBUG_INSN_P): Likewise.
36970         * sched-rgn.c (init_ready_list): Drop special treatment of
36971         boundary debug insns.
36972         * final.c (rest_of_clean-state): Clear notes' BB.
36973
36974 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
36975
36976         * Makefile.in (LAMBDA_H): Removed.
36977         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
36978         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
36979         lambda-trans.o, and tree-loop-linear.o.
36980         (lto-symtab.o): Remove dependence on LAMBDA_H.
36981         (tree-loop-linear.o): Remove rule.
36982         (lambda-mat.o): Same.
36983         (lambda-trans.o): Same.
36984         (lambda-code.o): Same.
36985         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
36986         (tree-vect-slp.o): Same.
36987         * hwint.h (gcd): Moved here.
36988         (least_common_multiple): Same.
36989         * lambda-code.c: Removed.
36990         * lambda-mat.c: Removed.
36991         * lambda-trans.c: Removed.
36992         * lambda.h: Removed.
36993         * tree-loop-linear.c: Removed.
36994         * lto-symtab.c: Do not include lambda.h.
36995         * omega.c (gcd): Removed.
36996         * passes.c (init_optimization_passes): Remove pass_linear_transform.
36997         * tree-data-ref.c (print_lambda_vector): Moved here.
36998         (lambda_vector_copy): Same.
36999         (lambda_matrix_copy): Same.
37000         (lambda_matrix_id): Same.
37001         (lambda_vector_first_nz): Same.
37002         (lambda_matrix_row_add): Same.
37003         (lambda_matrix_row_exchange): Same.
37004         (lambda_vector_mult_const): Same.
37005         (lambda_vector_negate): Same.
37006         (lambda_matrix_row_negate): Same.
37007         (lambda_vector_equal): Same.
37008         (lambda_matrix_right_hermite): Same.
37009         * tree-data-ref.h: Do not include lambda.h.
37010         (lambda_vector): Moved here.
37011         (lambda_matrix): Same.
37012         (dependence_level): Same.
37013         (lambda_transform_legal_p): Removed declaration.
37014         (lambda_collect_parameters): Same.
37015         (lambda_compute_access_matrices): Same.
37016         (lambda_vector_gcd): Same.
37017         (lambda_vector_new): Same.
37018         (lambda_vector_clear): Same.
37019         (lambda_vector_lexico_pos): Same.
37020         (lambda_vector_zerop): Same.
37021         (lambda_matrix_new): Same.
37022         * tree-flow.h (least_common_multiple): Removed declaration.
37023         * tree-parloops.c (lambda_trans_matrix): Moved here.
37024         (LTM_MATRIX): Same.
37025         (LTM_ROWSIZE): Same.
37026         (LTM_COLSIZE): Same.
37027         (LTM_DENOMINATOR): Same.
37028         (lambda_trans_matrix_new): Same.
37029         (lambda_matrix_vector_mult): Same.
37030         (lambda_transform_legal_p): Same.
37031         * tree-pass.h (pass_linear_transform): Removed declaration.
37032         * tree-ssa-loop.c (tree_linear_transform): Removed.
37033         (gate_tree_linear_transform): Removed.
37034         (pass_linear_transform): Removed.
37035         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
37036         flag_loop_interchange.
37037
37038 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
37039
37040         PR tree-optimization/47265
37041         PR tree-optimization/47443
37042         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
37043         if name still has some uses.
37044
37045 2011-01-25  Martin Jambor  <mjambor@suse.cz>
37046
37047         PR tree-optimization/47382
37048         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
37049         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
37050
37051 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
37052
37053         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
37054         sjlj_except_unwind_info.
37055
37056 2011-01-25  Richard Guenther  <rguenther@suse.de>
37057
37058         PR tree-optimization/47426
37059         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
37060         visible functions results escape.
37061
37062 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
37063
37064         PR target/45701
37065         * config/arm/arm.c (any_sibcall_uses_r3): New function.
37066         (arm_get_frame_offsets): Use it.
37067
37068 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37069             Jakub Jelinek  <jakub@redhat.com>
37070
37071         PR tree-optimization/47271
37072         * tree-if-conv.c (bb_postdominates_preds): New.
37073         (if_convertible_bb_p): Call bb_postdominates_preds.
37074         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
37075         (predicate_scalar_phi): Call bb_postdominates_preds.
37076
37077 2011-01-25  Nick Clifton  <nickc@redhat.com>
37078
37079         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
37080         * config/rx/rx.c (rx_function_value): Likewise.
37081         (rx_promote_function_mode): Likewise.
37082         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
37083         in order to make it legitimate.
37084         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
37085         make sure that the first operand is the same as the result register.
37086         (addsi3_unspec): Delete.
37087         (subdi3): Do not accept immediate operands.
37088         (subdi3_internal): Likewise.
37089
37090 2011-01-25  Jeff Law  <law@redhat.com>
37091
37092         PR rtl-optimization/37273
37093         * ira-costs.c (scan_one_insn): Detect constants living in memory and
37094         handle them like argument loads from stack slots.  Do not double
37095         count memory for memory constants and argument loads from stack slots.
37096
37097 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
37098
37099         PR tree-optimization/47427
37100         PR tree-optimization/47428
37101         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
37102         coalesce if the new root var would be TREE_READONLY.
37103
37104 2011-01-25  Richard Guenther  <rguenther@suse.de>
37105
37106         PR middle-end/47414
37107         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
37108         correct type for TBAA.
37109
37110 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37111
37112         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
37113         (close_phi_written_to_memory): Call for_each_index with
37114         dr_indices_valid_in_loop.
37115
37116 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37117
37118         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
37119         when it is initialized.
37120
37121 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37122
37123         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
37124         call to graphite_find_data_references_in_stmt.
37125         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
37126         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
37127         call to graphite_find_data_references_in_stmt.
37128         (analyze_drs_in_stmts): Same.
37129         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
37130         in which the scalar analysis of indices is performed.
37131         (create_data_ref): Same.  Update call to dr_analyze_indices.
37132         (find_data_references_in_stmt): Update call to create_data_ref.
37133         (graphite_find_data_references_in_stmt): Same.
37134         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
37135         declaration.
37136         (create_data_ref): Same.
37137         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
37138         call to create_data_ref.
37139
37140 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37141
37142         * graphite-sese-to-poly.c (build_poly_scop): Move
37143         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
37144
37145 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37146
37147         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
37148         VAR_DECL, PARM_DECL, and RESULT_DECL.
37149
37150 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37151
37152         * graphite-dependences.c (reduction_dr_1): Allow several reductions
37153         in a reduction PBB.
37154         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
37155         that have already been marked as PBB_IS_REDUCTION.
37156
37157 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37158
37159         * graphite-scop-detection.c (same_close_phi_node): New.
37160         (remove_duplicate_close_phi): New.
37161         (make_close_phi_nodes_unique): New.
37162         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
37163
37164 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37165
37166         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
37167         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
37168         of both data references to be the same.
37169
37170 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37171
37172         * graphite-dependences.c (build_lexicographical_constraint): Remove
37173         the gdim parameter.
37174         (build_lexicographical_constraint): Adjust call to
37175         ppl_powerset_is_empty.
37176         (dependence_polyhedron): Same.
37177         (graphite_legal_transform_dr): Same.
37178         (graphite_carried_dependence_level_k): Same.
37179         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
37180         parameter.
37181         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
37182
37183 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37184
37185         * graphite-sese-to-poly.c
37186         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
37187         (close_phi_written_to_memory): New.
37188         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
37189         and unshare_expr.
37190
37191 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37192
37193         * doc/install.texi: Update the expected version number of PPL to 0.11.
37194         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
37195         #if PPL_VERSION_MINOR < 11.
37196
37197 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37198
37199         * graphite-dependences.c: Include graphite-cloog-util.h.
37200         (new_poly_ddr): Inlined into dependence_polyhedron.
37201         (free_poly_ddr): Moved close by new_poly_ddr.
37202         (dependence_polyhedron_1): Renamed dependence_polyhedron.
37203         Early return NULL when ppl_powerset_is_empty returns true.
37204         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
37205         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
37206         (graphite_legal_transform_dr): Call new_poly_ddr.
37207         (graphite_carried_dependence_level_k): Same.
37208         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
37209         (dot_transformed_deps_stmt_1): Removed.
37210         (dot_deps_stmt_1): Call dot_deps_stmt_2.
37211         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
37212         (dot_deps_1): Call dot_deps_2.
37213         * Makefile.in (graphite-dependences.o): Add missing dependence on
37214         graphite-cloog-util.h.
37215
37216 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37217
37218         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
37219         (build_lexicographical_constraint): Same.
37220         (dependence_polyhedron_1): Same.
37221         (graphite_legal_transform_dr): Same.
37222         (graphite_carried_dependence_level_k): Same.
37223         * graphite-ppl.c (ppl_powerset_is_empty): New.
37224         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
37225         * tree-data-ref.c (dump_data_reference): Print the basic block index.
37226
37227 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37228
37229         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
37230         the "a followed by b" relation and document it.
37231
37232 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37233
37234         * graphite-dependences.c (build_lexicographical_constraint): Stop the
37235         iteration when the bag of constraints is empty.
37236
37237 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37238
37239         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
37240
37241 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37242
37243         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
37244         nest and two loop depths as parameters.
37245         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
37246         lst_perfect_nestify.
37247
37248 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37249
37250         * graphite-dependences.c (print_pddr): Call
37251         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
37252
37253 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37254
37255         * graphite-ppl.c (debug_gmp_value): New.
37256         * graphite-ppl.h (debug_gmp_value): Declared.
37257
37258 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
37259
37260         * doc/install.texi: Document availability of cloog-0.16.
37261
37262 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
37263
37264         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
37265         invalid postdominance info.
37266
37267 2011-01-24  Jan Hubicka  <jh@suse.cz>
37268
37269         PR c/21659
37270         * doc/extend.texi (weak pragma): Drop claim that it must
37271         appear before definition.
37272         * varasm.c (merge_weak, declare_weak): Only sanity check
37273         that DECL is not output at a time it is declared weak.
37274
37275 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
37276
37277         * machmode.def: Fixed comments.
37278
37279 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
37280
37281         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
37282
37283 2011-01-24  Paul Koning  <ni1d@arrl.net>
37284
37285         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
37286         WORDS_BIG_ENDIAN.
37287
37288 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
37289
37290         PR target/46519
37291         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
37292         (block_info): Add scanned and prev.
37293         (move_or_delete_vzeroupper_2): Return if the basic block
37294         has been scanned and the upper 128bit state is unchanged
37295         from the last scan.
37296         (move_or_delete_vzeroupper_1): Return true if the exit
37297         state is changed.
37298         (move_or_delete_vzeroupper): Visit basic blocks using the
37299         work-list based algorithm based on vt_find_locations in
37300         var-tracking.c.
37301
37302         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
37303
37304 2011-01-24  Nick Clifton  <nickc@redhat.com>
37305
37306         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
37307         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
37308         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
37309         then define __v850e1__.
37310         * doc/invoke.texi: Document -mv850es.
37311
37312 2011-01-24  Richard Henderson  <rth@redhat.com>
37313
37314         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
37315         compound unordered comparisons.
37316         * config/rx/rx.c (rx_split_fp_compare): Remove.
37317         * config/rx/rx-protos.h: Update.
37318         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
37319         (cbranchsf4): Don't call rx_split_fp_compare.
37320         (*cbranchsf4): Use rx_split_cbranch.
37321         (*cmpsf): Don't accept "i" constraint.
37322         (*conditional_branch): Only valid after reload.
37323         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
37324
37325 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
37326
37327         PR target/47385
37328         * config/rs6000/altivec.md (vector constant splitters): Add
37329         support for creating vector single precision constants if -mvsx is
37330         used and we would create the constant using Altivec primitives.
37331
37332 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
37333             Richard Sandiford  <rdsandiford@googlemail.com>
37334
37335         PR rtl-optimization/47166
37336         * reload1.c (emit_reload_insns): Disable the spill_reg_store
37337         mechanism for PRE_MODIFY and POST_MODIFY.
37338         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
37339         reloadreg.
37340
37341 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
37342
37343         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
37344
37345 2011-01-22  Jan Hubicka  <jh@suse.cz>
37346
37347         PR lto/47333
37348         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
37349
37350 2011-01-22  Jan Hubicka  <jh@suse.cz>
37351
37352         PR tree-optimization/43884
37353         PR lto/44334
37354         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
37355         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
37356
37357 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
37358
37359         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
37360         * config/s390/s390.c (s390_register_move_cost,
37361         s390_memory_move_cost): New.
37362         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
37363
37364 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37365
37366         PR middle-end/47401
37367         * except.c (sjlj_assign_call_site_values): Move setting the
37368         crtl->uses_eh_lsda flag to ...
37369         (sjlj_mark_call_sites): ... here.
37370         (sjlj_emit_function_enter): Support NULL dispatch label.
37371         (sjlj_build_landing_pads): In a function with no landing pads
37372         that still has must-not-throw regions, generate code to register
37373         a personality function with empty LSDA.
37374
37375 2011-01-21  Richard Henderson  <rth@redhat.com>
37376
37377         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
37378
37379         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
37380
37381         * compare-elim.c: New file.
37382         * Makefile.in (OBJS-common): Add it.
37383         (compare-elim.o): New.
37384         * common.opt (fcompare-elim): New.
37385         * opts.c (default_options_table): Add OPT_fcompare_elim.
37386         * tree-pass.h (pass_compare_elim_after_reload): New.
37387         * passes.c (init_optimization_passes): Add it.
37388         * recog.h: Protect against re-inclusion.
37389         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
37390         * doc/invoke.texi (-fcompare-elim): Document it.
37391         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
37392         * doc/tm.texi: Rebuild.
37393
37394 2011-01-22  Nick Clifton  <nickc@redhat.com>
37395
37396         * config/rx/rx.md (cstoresf4): Pass comparison operator to
37397         rx_split_fp_compare.
37398
37399 2011-01-22  Nick Clifton  <nickc@redhat.com>
37400
37401         * config/rx/rx.md (UNSPEC_CONST): New.
37402         (deallocate_and_return): Wrap the amount popped off the stack in
37403         an UNSPEC_CONST in order to stop it being rejected by
37404         -mmax-constant-size.
37405         (pop_and_return): Add a "(return)" rtx.
37406         (call): Drop the immediate operand.
37407         (call_internal): Likewise.
37408         (call_value): Likewise.
37409         (call_value_internal): Likewise.
37410         (sibcall_internal): Likewise.
37411         (sibcall_value_internal): Likewise.
37412         (sibcall): Likewise.  Generate an explicit call using
37413         sibcall_internal.
37414         (sibcall_value): Likewise.
37415         (mov<>): FAIL if a constant operand is not legitimate.
37416         (addsi3_unpsec): New pattern.
37417
37418         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
37419         (ok_for_max_constant): New function.
37420         (gen_safe_add): New function.
37421         (rx_expand_prologue): Use gen_safe_add.
37422         (rx_expand_epilogue): Likewise.
37423         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
37424         UNSPEC CONSTs.
37425
37426 2011-01-21  Jeff Law  <law@redhat.com>
37427
37428         PR tree-optimization/47053
37429         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
37430         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
37431         statements are deleted.
37432         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
37433         is nonempty, then purge dead edges and cleanup the CFG.
37434
37435 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
37436
37437         PR debug/47402
37438         Temporarily revert:
37439         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
37440         PR debug/47106
37441         * tree-dfa.c (create_var_ann): Mark variable as used.
37442
37443 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
37444
37445         PR middle-end/45566
37446         * except.c (convert_to_eh_region_ranges): Emit queued no-region
37447         notes from other section in hot/cold partitioning even if
37448         last_action is -3.  Increment call_site_base.
37449
37450         PR rtl-optimization/47366
37451         * fwprop.c (forward_propagate_into): Return bool.  If
37452         any changes are made, -fnon-call-exceptions is used and
37453         REG_EH_REGION note is present, call purge_dead_edges
37454         and return true if it purged anything.
37455         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
37456         any EH edges were purged.
37457
37458 2011-01-21  Jeff Law  <law@redhat.com>
37459
37460         PR rtl-optimization/41619
37461         * caller-save.c (setup_save_areas): Break out code to determine
37462         which hard regs are live across calls by examining the reload chains
37463         so that it is always used.
37464         Eliminate code which checked REG_N_CALLS_CROSSED.
37465
37466 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
37467
37468         PR tree-optimization/47355
37469         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
37470         NOP has non-debug uses beyond PHIs in new_bb.
37471
37472 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
37473
37474         PR debug/47106
37475         * cfgexpand.c (account_used_vars_for_block): Only account vars
37476         that are annotated as used.
37477         (estimated_stack_frame_size): Don't set TREE_USED.
37478         * tree-dfa.c (create_var_ann): Mark variable as used.
37479
37480 2011-01-21  Richard Guenther  <rguenther@suse.de>
37481
37482         PR middle-end/47395
37483         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
37484
37485 2011-01-21  Richard Guenther  <rguenther@suse.de>
37486
37487         PR tree-optimization/47365
37488         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
37489         (vn_reference_lookup_pieces): Adjust.
37490         (vn_reference_lookup): Likewise.
37491         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
37492         (vn_reference_lookup_3): Only look through kills if in
37493         VN_WALKREWRITE mode.
37494         (vn_reference_lookup_pieces): Adjust.
37495         (vn_reference_lookup): Likewise.
37496         (visit_reference_op_load): Likewise.
37497         (visit_reference_op_store): Likewise.
37498         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
37499         (compute_avail): Likewise.
37500         (eliminate): Likewise.
37501
37502 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
37503
37504         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
37505         DECL_IGNORED_P non-reg vars if they are used.
37506
37507         PR tree-optimization/47391
37508         * varpool.c (const_value_known_p): Return false if
37509         decl is volatile.
37510
37511 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
37512
37513         PR bootstrap/47215
37514         * config/i386/i386.c (ix86_local_alignment): Handle
37515         case for va_list_type_node is nil.
37516         (ix86_canonical_va_list_type): Likewise.
37517
37518 2011-01-21  Alan Modra  <amodra@gmail.com>
37519
37520         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
37521         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
37522
37523 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37524
37525         * config/arm/arm.md (define_attr type): Rename f_load
37526         and f_store to f_fpa_load and f_fpa_store. Update.
37527         (write_conflict): Deal with rename fallout.
37528         (*push_fp_multi): Likewise.
37529         * config/arm/fpa.md (f_load): Use f_fpa_load.
37530         (f_store): Use f_fpa_store.
37531         (*movsf_fpa): Likewise.
37532         (*movdf_fpa): Likewise.
37533         (*movxf_fpa): Likewise.
37534         (*thumb2_movsf_fpa): Likewise.
37535         (*thumb2_movdf_fpa): Likewise.
37536         (*thumb2_movxf_fpa): Likewise.
37537         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
37538         f_loadd and f_stored.
37539         (*thumb2_movdi_vfp): Likewise.
37540         (*thumb2_movsf_vfp): Fix attribute to f_loads.
37541         (*thumb2_movsi_vfp): Likewise.
37542         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
37543         Use f_loads instead of f_load.
37544         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
37545
37546 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
37547
37548         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
37549         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
37550         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
37551         (xtensa_mode_dependent_address_p): New function.
37552         (constantpool_address_p): Make static. Change return type to bool.
37553         Change argument type to const_rtx. Use CONST_INT_P predicate.
37554
37555 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
37556
37557         PR debug/46583
37558         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
37559
37560 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
37561
37562         PR debug/47283
37563         * cfgexpand.c (expand_debug_expr): Instead of generating
37564         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
37565         etc. handling.
37566
37567 2011-01-20  Richard Guenther  <rguenther@suse.de>
37568
37569         PR middle-end/47370
37570         * tree-inline.c (remap_gimple_op_r): Recurse manually for
37571         the pointer operand of MEM_REFs.
37572
37573 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
37574
37575         PR tree-optimization/46130
37576         * ipa-split.c (consider_split): If return_bb contains non-virtual
37577         PHIs other than for retval or if split_function would not adjust it,
37578         refuse to split.
37579
37580 2011-01-20  Richard Guenther  <rguenther@suse.de>
37581
37582         PR tree-optimization/47167
37583         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
37584         Revert previous change, only avoid enumeral type changes.
37585
37586 2011-01-19  Mike Stump  <mikestump@comcast.net>
37587
37588         * doc/tm.texi.in (BRANCH_COST): Englishify.
37589         * doc/tm.texi (BRANCH_COST): Likewise.
37590
37591 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
37592
37593         PR c++/47291
37594         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
37595         (gen_scheduled_generic_parms_dies): New functions.
37596         (gen_struct_or_union_type_die): Schedule template parameters DIEs
37597         generation for the end of CU compilation.
37598         (dwarf2out_finish): Generate template parameters DIEs here.
37599
37600 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
37601
37602         PR debug/46240
37603         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
37604         debug bind stmt on merge edges.
37605
37606 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
37607
37608         PR debug/47079
37609         PR debug/46724
37610         * function.c (instantiate_expr): Instantiate incoming rtl of
37611         implicit arguments, and recurse on VALUE_EXPRs.
37612         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
37613         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
37614
37615 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
37616
37617         * c-parser.c (c_parser_for_statement): Initialize
37618         collection_expression.
37619
37620 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
37621
37622         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
37623
37624 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
37625
37626         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
37627         (LINK_SHLIB_SPEC): Don't use %(link_path).
37628         (SUBTARGET_EXTRA_SPECS): Remove link_path.
37629
37630 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
37631
37632         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
37633         (NO_SHARED_LIB_SUPPORT): Remove.
37634         (LINK_SHLIB_SPEC): Remove one conditional definition.
37635
37636 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
37637
37638         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
37639         %{call_shared}.
37640         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
37641         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
37642         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
37643         %{call_shared} and conditionals on these options not being passed.
37644         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
37645         %{call_shared}.
37646
37647 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
37648
37649         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
37650         simplify.
37651
37652         * ipa-split.c: Spelling fixes.
37653
37654 2011-01-19  Richard Henderson  <rth@redhat.com>
37655
37656         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
37657         (*mulsi3): Likewise.
37658
37659         * longlong.h [__mn10300__] (count_leading_zeros): New.
37660         [__mn10300__] (umul_ppmm, smul_ppmm): New.
37661         [__mn10300__] (add_ssaaaa, subddmmss): New.
37662         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
37663         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
37664
37665 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37666
37667         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
37668
37669 2011-01-19  Richard Henderson  <rth@redhat.com>
37670
37671         * config/mn10300/mn10300.md (addsi3_flags): New.
37672         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
37673         (subsi3_flags, subc_internal, subdi3): New.
37674         (subdi3_internal, *subdi3_degenerate): New.
37675         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
37676
37677         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
37678         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
37679         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
37680         * config/mn10300/mn10300-protos.h: Update.
37681         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
37682         (return_ret): Likewise.  Rename from return_internal_regs.
37683         (return_internal): Remove.
37684
37685         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
37686         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
37687         (mn10300_legitimate_constant_p): Likewise.
37688         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
37689         (mn10300_frame_size): New.
37690         (mn10300_expand_prologue): Use it.
37691         (mn10300_expand_epilogue): Likewise.
37692         (mn10300_initial_offset): Likewise.
37693         * config/mn10300/mn10300-protos.h: Update.
37694         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
37695         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
37696         (prologue, epilogue, return_internal): Tidy output code.
37697         (mn10300_store_multiple_operation, return): Likewise.
37698         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
37699         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
37700         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
37701         (load_pic, am33_load_pic): New.
37702         (mn10300_load_pic0, mn10300_load_pic1): New.
37703
37704         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
37705         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
37706         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
37707         (cc_flags_for_mode, cc_flags_for_code): New.
37708         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
37709         overflow flag is not valid.  Validate that the flags we need
37710         for the comparison are valid.
37711         (mn10300_output_cmp): Remove.
37712         (mn10300_output_add): New.
37713         (mn10300_select_cc_mode): Use cc_flags_for_code.
37714         (mn10300_split_cbranch): New.
37715         (mn10300_match_ccmode): New.
37716         (mn10300_split_and_operand_count): New.
37717         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
37718         to the function.
37719         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
37720         (addsi3): ... here.  Use mn10300_output_add.
37721         (*addsi3_flags): New.
37722         (*am33_subsi3, *mn10300_subsi3): Merge...
37723         (subsi3): ... here.  Use attribute isa.
37724         (*subsi3_flags): New.
37725         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
37726         when possible.
37727         (*am33_andsi3, *mn10300_andsi3): Merge...
37728         (andsi3): ... here.
37729         (*andsi3_flags): New.
37730         (andsi3 splitters): New.
37731         (*am33_iorsi3, *mn10300_iorsi3): Merge...
37732         (iorsi3): ... here.
37733         (*iorsi3_flags): New.
37734         (*am33_xorsi3, *mn10300_xorsi3): Merge...
37735         (xorsi3): ... here.
37736         (*xorsi3_flags): New.
37737         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
37738         (one_cmplsi2): ... here.
37739         (*one_cmplsi2_flags): New.
37740         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
37741         instead of "dax" in constraints.  Use mn10300_split_cbranch.
37742         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
37743         use matching constraints to eliminate a self-comparison.
37744         (*integer_conditional_branch): Rename from integer_conditional_branch.
37745         Use int_mode_flags to match CC_REG.
37746         (*cbranchsi4_btst, *btstsi): New.
37747         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
37748         mn10300_split_cbranch.
37749         (*am33_cmpsf): Rename from am33_cmpsf.
37750         (*float_conditional_branch): Rename from float_conditional_branch.
37751         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
37752         (zero_extendqisi2): ... here.
37753         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
37754         (zero_extendhisi2): ... here.
37755         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
37756         (extendqisi2): ... here.
37757         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
37758         (extendhisi2): ... here.
37759         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
37760         (ashlsi3): ... here.
37761         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
37762         (lshrsi3): ... here.
37763         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
37764         (ashrsi3): ... here.
37765         (consecutive add peephole): Remove.
37766         * config/mn10300/predicates.md (label_ref_operand): New.
37767         (int_mode_flags): New.
37768         (CCZN_comparison_operator): New.
37769
37770         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
37771         (throughput_42_latency_43): New reservation.
37772         (mulsidi3, umulsidi3): New expanders.
37773         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
37774         the MDR register to allocation; separately allocate the low and
37775         high parts of the DImode result.
37776         (umulsidi3_internal): Similarly.
37777         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
37778         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
37779         (udivsi3, umodsi3): Remove.
37780         (udivmodsi4, divmodsi4): New expanders.
37781         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
37782         (*divmodsi4): Simiarly.
37783         (ext_internal): New.
37784
37785         * config/mn10300/constraints.md ("z"): New constraint.
37786         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
37787         (FIXED_REGISTERS): Don't fix MDR.
37788         (CALL_USED_REGSITERS): Reformat nicely.
37789         (REG_ALLOC_ORDER): Add MDR.
37790         (enum regclass): Add MDR_REGS.
37791         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
37792         (IRA_COVER_CLASSES): Add MDR_REGS.
37793         (REGNO_REG_CLASS): Handle MDR_REG.
37794         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
37795         (mn10300_register_move_cost): Likewise.
37796         * config/mn10300/mn10300.md (MDR_REG): New.
37797         (*movsi_internal): Handle moves to/from MDR_REGS.
37798
37799         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
37800         POST_MODIFY.
37801         (mn10300_secondary_reload): Tidy combination reload classes.
37802         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
37803         addresses for AM33.  Allow symbolic offsets for reg+imm.
37804         (mn10300_regno_in_class_p): New.
37805         (mn10300_legitimize_reload_address): New.
37806         * config/mn10300/mn10300.h (enum reg_class): Remove
37807         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
37808         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
37809         SP_OR_GENERAL_REGS.
37810         (REG_CLASS_NAMES): Update to match.
37811         (REG_CLASS_CONTENTS): Likewise.
37812         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
37813         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
37814         (REGNO_IN_RANGE_P): Remove.
37815         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
37816         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
37817         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
37818         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
37819         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
37820         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
37821         (REGNO_GENERAL_P): New.
37822         (HAVE_POST_MODIFY_DISP): New.
37823         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
37824         (LEGITIMIZE_RELOAD_ADDRESS): New.
37825         * config/mn10300/mn10300-protos.h: Update.
37826
37827         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
37828         DATA_REGS for AM33 stack-pointer destination.
37829         (mn10300_preferred_output_reload_class): Likewise.
37830         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
37831         into a form appropriate for ...
37832         (TARGET_SECONDARY_RELOAD): New.
37833         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
37834         * config/mn10300/mn10300-protos.h: Update.
37835         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
37836         reload_insi; use the "A" constraint for the scratch; handle AM33
37837         moves of sp to non-address registers.
37838
37839         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
37840         (*movqi_internal): ... here.
37841         (*am33_movhi, *mn10300_movhi): Merge into...
37842         (*movhi_internal): ... here.
37843         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
37844         as the source/destination of moves from/to SP.
37845         (movsf): Only allow for AM33-2.
37846         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
37847         any integer constant constraint.  Only allow for AM33-2.  Tidy
37848         all of the alternative outputs.
37849         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
37850         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
37851         for MN103.
37852         (udivsi3, umodsi3): New patterns for MN103 only.
37853
37854 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
37855
37856         * doc/tm.texi.in: Spell out that a lack of register class unions
37857         can lead to ICEs.
37858         * doc/tm.texi: Regenerate.
37859
37860 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
37861
37862         PR rtl-optimization/47337
37863         * dce.c (check_argument_store): New function.
37864         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
37865
37866         PR tree-optimization/47290
37867         * tree-eh.c (infinite_empty_loop_p): New function.
37868         (cleanup_empty_eh): Use it.
37869
37870 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
37871
37872         PR target/46997
37873         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
37874         (a64_expand_widen_sum): Ditto.
37875         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
37876         (vec_extract_evenodd_help): Ditto.
37877         (vec_extract_evenv4hi): Ditto.
37878         (vec_extract_oddv4hi): Ditto.
37879         (vec_extract_evenv2si): Ditto.
37880         (vec_extract_oddv2si): Ditto.
37881         (vec_extract_evenv2sf): Ditto.
37882         (vec_extract_oddv2sf): Ditto.
37883         (vec_pack_trunc_v4hi: Ditto.
37884         (vec_pack_trunc_v2si): Ditto.
37885         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
37886         (vec_interleave_highv8qi): Ditto.
37887         (mix1_r): Ditto.
37888         (vec_extract_oddv8qi): Ditto.
37889         (vec_interleave_lowv4hi): Ditto.
37890         (vec_interleave_highv4hi): Ditto.
37891         (vec_interleave_lowv2si): Ditto.
37892         (vec_interleave_highv2si): Ditto.
37893
37894 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37895
37896         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
37897         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
37898         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
37899         (pa_c_mode_for_suffix): New.
37900         (TARGET_EXPAND_BUILTIN): Define.
37901         (TARGET_C_MODE_FOR_SUFFIX): Define.
37902         (pa_builtins): Define.
37903         (pa_init_builtins): Register __float128 type and init new support
37904         builtins.
37905         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
37906         * config/pa/quadlib.c (_U_Qfcopysign): New.
37907
37908 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
37909
37910         PR middle-end/46894
37911         * explow.c (allocate_dynamic_stack_space): Do not assume more than
37912         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
37913         are defined.
37914
37915 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37916
37917         PR tree-optimization/47179
37918         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
37919         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
37920
37921 2011-01-18  Richard Guenther  <rguenther@suse.de>
37922
37923         PR rtl-optimization/47216
37924         * emit-rtl.c: Include tree-flow.h.
37925         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
37926         of replicating it with different semantics.
37927         * Makefile.in (emit-rtl.o): Adjust.
37928
37929 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37930
37931         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
37932         (cortex_a9_dp): Handle neon types correctly.
37933
37934 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
37935
37936         PR rtl-optimization/47299
37937         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
37938         subtarget.  Use normal multiplication if both operands are constants.
37939         * expmed.c (expand_widening_mult): Don't try to optimize constant
37940         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
37941         before using it.
37942
37943 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37944
37945         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
37946         spacing after 'e.g.', typos, comma, hyphenation.
37947
37948 2011-01-17  Richard Henderson  <rth@redhat.com>
37949
37950         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
37951         (rx_restricted_mem_operand): New.
37952         (rx_shift_operand): Use register_operand.
37953         (rx_source_operand, rx_compare_operand): Likewise.
37954         * config/rx/rx.md (addsi3_flags): New expander.
37955         (adddi3): Rewrite as expander.
37956         (adc_internal, *adc_flags, adddi3_internal): New patterns.
37957         (subsi3_flags): New expander.
37958         (subdi3): Rewrite as expander.
37959         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
37960
37961         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
37962         (rx_init_builtins): Remove sat builtin.
37963         (rx_expand_builtin): Likewise.
37964         * config/rx/rx.md (ssaddsi3): New.
37965         (*sat): Rename from sat.  Represent the CC_REG input.
37966
37967         * config/rx/predicates.md (rshift_operator): New.
37968         * config/rx/rx.c (rx_expand_insv): Remove.
37969         * config/rx/rx-protos.h: Update.
37970         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
37971         operand to the canonical position.
37972         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
37973         (*bitclr, *bitclr_in_memory): Similarly.
37974         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
37975         (insv): Retain the zero_extract in the expansion.
37976
37977         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
37978         (bswaphi2, bitinvert, revw): Likewise.
37979
37980         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
37981         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
37982         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
37983         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
37984         (bitset, bitset_in_memory): Likewise.
37985         (bitinvert, bitinvert_in_memory): Likewise.
37986         (bitclr, bitclr_in_memory): Likewise.
37987         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
37988         (rx_strend, rx_cmpstrn): Likewise.
37989         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
37990         (bitop peep2 patterns): Remove.
37991
37992         * config/rx/rx.c (rx_match_ccmode): New.
37993         * config/rx/rx-protos.h: Update.
37994         * config/rx/rx.md (abssi2): Clobber, don't set flags.
37995         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
37996         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
37997         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
37998         (fix_truncsfsi2, floatsisf2): Likewise.
37999         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
38000         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
38001         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
38002         (*subsi3_flags, *xorsi3_flags): New.
38003
38004         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
38005
38006         * config/rx/rx.c (rx_print_operand): Remove workaround for
38007         unsplit comparison operations.
38008
38009         * config/rx/rx.md (movsicc): Split after reload.
38010         (*movsicc): Merge *movsieq and *movsine via match_operator.
38011         (*stcc): New pattern.
38012
38013         * config/rx/rx.c (rx_float_compare_mode): Remove.
38014         * config/rx/rx.h (rx_float_compare_mode): Remove.
38015         * config/rx/rx.md (cstoresi4): Split after reload.
38016         (*sccc): New pattern.
38017
38018         * config/rx/predicates.md (label_ref_operand): New.
38019         (rx_z_comparison_operator): New.
38020         (rx_zs_comparison_operator): New.
38021         (rx_fp_comparison_operator): New.
38022         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
38023         Validate that the flags are set properly for the comparison.
38024         (rx_gen_cond_branch_template): Remove.
38025         (rx_cc_modes_compatible): Remove.
38026         (mode_from_flags): New.
38027         (flags_from_code): Rename from flags_needed_for_conditional.
38028         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
38029         (rx_select_cc_mode): Likewise.
38030         (rx_split_fp_compare): New.
38031         (rx_split_cbranch): New.
38032         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
38033         (*cbranchsi4): Use match_operator and rx_split_cbranch.
38034         (*cbranchsf4): Similarly.
38035         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
38036         match_operator and rx_split_cbranch.
38037         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
38038         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
38039         (*cmpsi): Rename from cmpsi.
38040         (*tstsi): Rename from tstsi.
38041         (*cmpsf): Rename from cmpsf; use CC_Fmode.
38042         (*conditional_branch): Rename from conditional_branch.
38043         (*reveresed_conditional_branch): Remove.
38044         (b<code>): Remove expander.
38045         * config/rx/rx-protos.h: Update.
38046
38047         * config/rx/rx.c (rx_compare_redundant): Remove.
38048         * config/rx/rx.md (cmpsi): Don't use it.
38049         * config/rx/rx-protos.h: Update.
38050
38051         * config/rx/rx-modes.def (CC_F): New mode.
38052         * config/rx/rx.c (rx_select_cc_mode): New.
38053         * config/rx/rx.h (SELECT_CC_MODE): Use it.
38054         * config/rx/rx-protos.h: Update.
38055
38056 2011-01-17  Richard Henderson  <rth@redhat.com>
38057
38058         * except.c (dump_eh_tree): Fix stray ; after for statement.
38059
38060 2011-01-17  Richard Guenther  <rguenther@suse.de>
38061
38062         PR tree-optimization/47313
38063         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
38064         handling before copying the body.  Properly deal with
38065         by-reference result in SSA form.
38066
38067 2011-01-17  Ian Lance Taylor  <iant@google.com>
38068
38069         PR target/47219
38070         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
38071         (struct_value_alias_set): Don't define.
38072         (sparc_option_override): Don't set sparc_sr_alias_set and
38073         struct_value_alias_set.
38074         (save_or_restore_regs): Use gen_frame_mem rather than calling
38075         set_mem_alias_set.
38076         (sparc_struct_value_rtx): Likewise.
38077
38078 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
38079
38080         PR target/47318
38081         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
38082         (_mm_maskstore_pd): Likewise.
38083         (_mm_maskload_ps): Likewise.
38084         (_mm_maskstore_ps): Likewise.
38085         (_mm256_maskload_pd): Change mask to __m256i.
38086         (_mm256_maskstore_pd): Likewise.
38087         (_mm256_maskload_ps): Likewise.
38088         (_mm256_maskstore_ps): Likewise.
38089
38090         * config/i386/i386-builtin-types.def: Updated.
38091         (ix86_expand_special_args_builtin): Likewise.
38092
38093         * config/i386/i386.c (bdesc_special_args): Update
38094         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
38095         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
38096         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
38097         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
38098
38099         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
38100         Use <avxpermvecmode> on mask register.
38101         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
38102
38103 2011-01-17  Olivier Hainque  <hainque@adacore.com>
38104             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
38105             Eric Botcazou  <ebotcazou@adacore.com>
38106
38107         PR target/46655
38108         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
38109         if <= USHRT_MAX in 32-bit mode.
38110
38111 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38112
38113         * doc/install.texi (Configuration, Specific): Wrap long
38114         lines in examples.  Allow line wrapping in long options
38115         and URLs where beneficial for PDF output.
38116
38117 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
38118
38119         * config/mips/mips.c (mips_classify_symbol): Don't return
38120         SYMBOL_PC_RELATIVE for nonlocal labels.
38121
38122 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38123
38124         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
38125
38126 2011-01-15  Jan Hubicka  <jh@suse.cz>
38127
38128         PR tree-optimization/47276
38129         * ipa.c (function_and_variable_visibility): Do not try to mark alias
38130         declarations as needed.
38131
38132 2011-01-15  Martin Jambor  <mjambor@suse.cz>
38133
38134         * common.opt (fdevirtualize): New flag.
38135         * doc/invoke.texi (Option Summary): Document it.
38136         * opts.c (default_options_table): Add devirtualize flag.
38137         * ipa-prop.c (detect_type_change): Return immediately if
38138         devirtualize flag is not set.
38139         (detect_type_change_ssa): Likewise.
38140         (compute_known_type_jump_func): Likewise.
38141         (ipa_analyze_virtual_call_uses): Likewise.
38142
38143 2011-01-14  Martin Jambor  <mjambor@suse.cz>
38144
38145         PR tree-optimization/45934
38146         PR tree-optimization/46302
38147         * ipa-prop.c (type_change_info): New type.
38148         (stmt_may_be_vtbl_ptr_store): New function.
38149         (check_stmt_for_type_change): Likewise.
38150         (detect_type_change): Likewise.
38151         (detect_type_change_ssa): Likewise.
38152         (compute_complex_assign_jump_func): Check for dynamic type change.
38153         (compute_complex_ancestor_jump_func): Likewise.
38154         (compute_known_type_jump_func): Likewise.
38155         (compute_scalar_jump_functions): Likewise.
38156         (ipa_analyze_virtual_call_uses): Likewise.
38157         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
38158
38159 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38160
38161         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
38162         * config/i386/i386.opt (msse5): New Alias.
38163
38164 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38165
38166         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
38167         * config/sparc/linux64.h (CC1_SPEC): Likewise.
38168         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
38169         * config/sparc/sparc.h (CC1_SPEC): Likewise.
38170
38171 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38172
38173         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
38174         -mcpu options.
38175         * config/sparc/linux64.h (CC1_SPEC): Likewise.
38176         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
38177         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
38178         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
38179         Likewise.
38180         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
38181
38182 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38183
38184         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
38185
38186 2011-01-14  Mike Stump  <mikestump@comcast.net>
38187
38188         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
38189         * config/fr30/fr30.md: Likweise
38190         (movsi_push): Likewise.
38191         (movsi_pop): Likewise.
38192         (enter_func): Likewise.
38193         * config/moxie/moxie.md (movsi_push): Likewise.
38194         (movsi_pop): Likewise.
38195
38196 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38197
38198         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
38199         %{no_archive} %{exact_version}.
38200         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
38201         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
38202         %{no_archive} %{exact_version}.
38203         * config/mips/openbsd.h (LINK_SPEC): Likewise.
38204         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
38205         * config/mips/vxworks.h: Likewise.
38206
38207 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38208
38209         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
38210
38211 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38212
38213         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
38214         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
38215
38216 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38217
38218         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
38219         -nodefaultlib.
38220
38221 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38222
38223         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
38224         for mcpu not cpu.
38225         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
38226         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
38227         not cpu.
38228         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
38229         Don't handle -shlib.
38230
38231 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38232
38233         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
38234         (CC1_SPEC): Don't handle -profile.
38235
38236 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38237
38238         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
38239         * config/mips/mips.h (CC1_SPEC): Likewise.
38240
38241 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38242
38243         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
38244         * config/mips/mips.h (CC1_SPEC): Likewise.
38245
38246 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38247
38248         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
38249         * config/m32r/linux.h (LINK_SPEC): Likewise.
38250         * config/mips/linux.h (LINK_SPEC): Likewise.
38251         * config/mips/linux64.h (LINK_SPEC): Likewise.
38252         * config/sparc/linux.h (LINK_SPEC): Likewise.
38253         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
38254         LINK_SPEC): Likewise.
38255         * config/xtensa/linux.h (LINK_SPEC): Likewise.
38256
38257 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38258
38259         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
38260         %{version:-v}.
38261         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
38262
38263 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38264
38265         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
38266         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
38267
38268 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38269
38270         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
38271
38272 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38273
38274         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
38275         supports -Bstatic/-Bdynamic.
38276         * configure: Regenerate.
38277
38278 2011-01-14  Jan Hubicka  <jh@suse.cz>
38279             Jack Howarth  <howarth@bromo.med.uc.edu>
38280
38281         PR target/46037
38282         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
38283         when checking debug_info_level. Test write_symbols instead of
38284         debug_hooks->var_location when setting flag_var_tracking_uninit.
38285
38286 2011-01-14  Richard Guenther  <rguenther@suse.de>
38287
38288         PR tree-optimization/47179
38289         * target.def (ref_may_alias_errno): New target hook.
38290         * targhooks.h (default_ref_may_alias_errno): Declare.
38291         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
38292         (default_ref_may_alias_errno): New function.
38293         * target.h (struct ao_ref_s): Declare.
38294         * tree-ssa-alias.c: Include target.h.
38295         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
38296         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
38297         (targhooks.o): Likewise.
38298         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
38299         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
38300
38301 2011-01-14  Richard Guenther  <rguenther@suse.de>
38302
38303         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
38304
38305 2011-01-14  Richard Guenther  <rguenther@suse.de>
38306
38307         PR tree-optimization/47280
38308         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
38309         return CFG changes.
38310         (tree_ssa_forward_propagate_single_use_vars): Deal with
38311         CFG changes from associate_plusminus.
38312
38313 2011-01-14  Richard Guenther  <rguenther@suse.de>
38314
38315         PR middle-end/47281
38316         Revert
38317         2011-01-11  Richard Guenther  <rguenther@suse.de>
38318
38319         PR tree-optimization/46076
38320         * tree-ssa.c (useless_type_conversion_p): Conversions from
38321         unprototyped to empty argument list function types are useless.
38322
38323 2011-01-14  Richard Guenther  <rguenther@suse.de>
38324
38325         PR tree-optimization/47286
38326         * tree-ssa-structalias.c (new_var_info): Register variables are global.
38327
38328 2011-01-14  Martin Jambor  <mjambor@suse.cz>
38329
38330         PR middle-end/46823
38331         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
38332
38333 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
38334
38335         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
38336         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
38337         * config/xtensa/xtensa.c (xtensa_libcall_value,
38338         xtensa_function_value_regno_p): New functions.
38339         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
38340
38341 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
38342
38343         PR c++/47213
38344         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
38345         PE specific hook.
38346         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
38347         New function prototype.
38348         * config/i386/winnt.c (i386_pe_assemble_visibility):
38349         Warn only if attribute was specified by user.
38350
38351 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
38352
38353         PR target/47251
38354         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
38355         floating point.
38356         (floatunsdidf2_fcfidu): Ditto.
38357
38358 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38359
38360         * config/s390/s390.c (print_operand_address): Replace 'error' with
38361         'output_operand_lossage'.
38362         (print_operand): Likewise.
38363
38364 2011-01-13  Jeff Law  <law@redhat.com>
38365
38366         PR rtl-optimization/39077
38367         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
38368         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
38369         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
38370         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
38371         * gcse.c (prune_insertions_deletions): New function.
38372         (compute_pre_data): Use it.
38373
38374 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
38375
38376         PR debug/PR46973
38377         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
38378         static function.
38379         (prune_unused_types_mark): Use it.
38380
38381 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
38382
38383         PR rtl-optimization/45352
38384         * sel-sched.c: Update copyright years.
38385         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
38386         in the advancing loop when we have issued issue_rate insns.
38387
38388 2011-01-12  Richard Henderson  <rth@redhat.com>
38389
38390         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
38391         (TARGET_MD_ASM_CLOBBERS): New.
38392
38393         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
38394         (TARGET_DELEGITIMIZE_ADDRESS): New.
38395
38396         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
38397         (clzsi2, *bsch): New patterns.
38398
38399         * config/mn10300/mn10300.md (INT): New mode iterator.
38400         (*mov<INT>_clr): New pattern, and peep2 to generate it.
38401
38402         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
38403         flag_split_wide_types.
38404
38405         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
38406         (mn10300_trampoline_init): Rewrite without a template, an immediate
38407         load and a direct branch.
38408         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
38409
38410 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
38411
38412         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
38413         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
38414         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
38415         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
38416
38417 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
38418
38419         PR debug/47209
38420         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
38421         of type.
38422
38423 2011-01-12  Jan Hubicka  <jh@suse.cz>
38424
38425         PR driver/47244
38426         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
38427         (PLUGIN_COND_CLOSE): New macro.
38428         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
38429
38430 2011-01-12  Richard Guenther  <rguenther@suse.de>
38431
38432         PR lto/47259
38433         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
38434         register variables in a MEM_REF.
38435
38436 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
38437
38438         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
38439         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
38440         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
38441         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
38442         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
38443         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
38444         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
38445         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
38446         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
38447         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
38448         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
38449         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
38450         * config/gnu-user.h: New.  Copied from linux.h.
38451         (LINUX_TARGET_STARTFILE_SPEC): Rename to
38452         GNU_USER_TARGET_STARTFILE_SPEC.
38453         (LINUX_TARGET_ENDFILE_SPEC): Rename to
38454         GNU_USER_TARGET_ENDFILE_SPEC.
38455         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
38456         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
38457         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
38458         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
38459         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
38460         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
38461         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
38462         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
38463         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
38464         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
38465         * config/arm/linux-eabi.h (CC1_SPEC): Use
38466         GNU_USER_TARGET_CC1_SPEC.
38467         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
38468         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
38469         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
38470         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
38471         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
38472         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
38473         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
38474         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
38475
38476 2011-01-12  Richard Guenther  <rguenther@suse.de>
38477
38478         PR other/46946
38479         * doc/invoke.texi (ffast-math): Document it is turned on
38480         with -Ofast.
38481
38482 2011-01-12  Jan Hubicka  <jh@suse.cz>
38483
38484         PR tree-optimization/47233
38485         * opts.c (common_handle_option): Disable ipa-reference with profile
38486         feedback.
38487
38488 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
38489
38490         * c-parser.c (c_parser_objc_at_property_declaration): Improved
38491         error message.
38492
38493 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
38494
38495         * c-parser.c (c_lex_one_token): Updated and reindented some
38496         comments.  No changes in code.
38497
38498 2011-01-11  Ian Lance Taylor  <iant@google.com>
38499
38500         * godump.c (go_output_var): Don't output the variable if there is
38501         already a type with the same name.
38502
38503 2011-01-11  Ian Lance Taylor  <iant@google.com>
38504
38505         * godump.c (go_format_type): Don't generate float80.
38506
38507 2011-01-11  Richard Henderson  <rth@redhat.com>
38508
38509         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
38510         declaration.  Rewrite for both speed and size.
38511         (mn10300_address_cost_1): Remove.
38512         (mn10300_register_move_cost): New.
38513         (mn10300_memory_move_cost): New.
38514         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
38515         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
38516         extensions, shifts, BSWAP, CLZ.
38517         (mn10300_wide_const_load_uses_clr): Remove.
38518         (TARGET_REGISTER_MOVE_COST): New.
38519         (TARGET_MEMORY_MOVE_COST): New.
38520         * config/mn10300/mn10300-protos.h: Update.
38521         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
38522
38523         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
38524         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
38525         * config/mn10300/mn10300-protos.h: Update.
38526         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
38527         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
38528         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
38529         (*test_int_bitfield, *test_byte_bitfield): Remove.
38530         (*bit_test, *subreg_bit_test): Remove.
38531         * config/mn10300/predicates.md (const_8bit_operand): Remove.
38532
38533         * config/mn10300/constraints.md ("c"): Rename from "A".
38534         ("A", "D"): New constraint letters.
38535         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
38536         (fmssf4, fnmasf4, fnmssf4): Likewise.
38537
38538         * config/mn10300/mn10300.md (isa): New attribute.
38539         (enabled): New attribute.
38540
38541         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
38542         (abssf2, negsf2): Define only for hardware fp.
38543         (sqrtsf2): Reformat.
38544         (addsf3, subsf3, mulsf3): Merge expander and insn.
38545
38546         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
38547         (DEBUGGER_AUTO_OFFSET): Remove.
38548         (DEBUGGER_ARG_OFFSET): Remove.
38549
38550         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
38551         Emit register stores with the same offsets as the hardware.
38552         (mn10300_store_multiple_operation): Don't check that the register
38553         save offsets are monotonic.
38554         * config/mn10300/mn10300-protos.h: Update.
38555
38556         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
38557
38558         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
38559         in terms of the value on the stack, not the MDR register.
38560
38561 2011-01-11  Jan Hubicka  <jh@suse.cz>
38562
38563         PR lto/45721
38564         PR lto/45375
38565         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
38566         (symbol_alias_set_destroy, symbol_alias_set_contains,
38567         propagate_aliases_backward): Declare.
38568         * lto-streamer-out.c (struct sets): New sturcture.
38569         (trivally_defined_alias): New function.
38570         (output_alias_pair_p): Rewrite.
38571         (output_unreferenced_globals): Fix output of alias pairs.
38572         (produce_symtab): Likewise.
38573         * ipa.c (function_and_variable_visibility): Set weak alias destination
38574         as needed in lto.
38575         * varasm.c (symbol_alias_set_t): Remove.
38576         (symbol_alias_set_destroy): Export.
38577         (propagate_aliases_forward, propagate_aliases_backward): New functions
38578         based on ...
38579         (compute_visible_aliases): ... this one; remove.
38580         (trivially_visible_alias): New
38581         (trivially_defined_alias): New.
38582         (remove_unreachable_alias_pairs): Rewrite.
38583         (finish_aliases_1): Reorganize code checking if alias is defined.
38584         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
38585         in LTO mode.
38586
38587 2011-01-11  Richard Guenther  <rguenther@suse.de>
38588
38589         PR tree-optimization/46076
38590         * tree-ssa.c (useless_type_conversion_p): Conversions from
38591         unprototyped to empty argument list function types are useless.
38592
38593 2011-01-11  Richard Guenther  <rguenther@suse.de>
38594
38595         PR middle-end/45235
38596         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
38597         volatile MEMs as MEM_READONLY_P.
38598
38599 2011-01-11  Richard Guenther  <rguenther@suse.de>
38600
38601         PR tree-optimization/47239
38602         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
38603
38604 2011-01-11  Jeff Law  <law@redhat.com>
38605
38606         PR tree-optimization/47086
38607         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
38608         IVs from statements that might throw.
38609
38610 2011-01-10  Jan Hubicka  <jh@suse.cz>
38611
38612         PR lto/45375
38613         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
38614
38615 2011-01-10  Jan Hubicka  <jh@suse.cz>
38616
38617         PR lto/45375
38618         * profile.c (read_profile_edge_counts): Ignore profile inconistency
38619         when correcting profile.
38620
38621 2011-01-10  Jan Hubicka  <jh@suse.cz>
38622
38623         PR lto/46083
38624         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
38625         DECL_FINI_PRIORITY.
38626         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
38627         Restore DECL_FINI_PRIORITY.
38628
38629 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38630
38631         * doc/gimple.texi: Fix quoting of multi-word return values in
38632         @deftypefn statements.  Ensure presence of return value.  Wrap
38633         overlong @deftypefn lines.
38634         (is_gimple_operand, is_gimple_min_invariant_address): Remove
38635         descriptions of removed functions.
38636         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
38637         of multi-word return value in @deftypefn statement.
38638
38639 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38640
38641         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
38642         (Conditional Expressions, Logical Operators)
38643         (Statement and operand traversals): Do not indent smallexample
38644         code.  Fix duplicate function argument in example.
38645
38646 2011-01-10  Jeff Law  <law@redhat.com>
38647
38648         PR tree-optimization/47141
38649         * ipa-split.c (split_function): Handle case where we are
38650         returning a value and the return block has a virtual operand phi.
38651
38652 2011-01-10  Jan Hubicka  <jh@suse.cz>
38653
38654         PR tree-optimization/47234
38655         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
38656         (pass_feedback_split_functions): Declare.
38657         * passes.c (init_optimization_passes): Add ipa-split as subpass of
38658         tree-profile.
38659         * ipa-split.c (gate_split_functions): Update comments; disable
38660         split-functions for profile_arc_flag and branch_probabilities.
38661         (gate_feedback_split_functions): New function.
38662         (execute_feedback_split_functions): New function.
38663         (pass_feedback_split_functions): New global var.
38664
38665 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
38666
38667         PR lto/46760
38668         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
38669         calling gimple_call_set_cannot_inline.
38670
38671 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
38672
38673         * config/darwin-sections.def: Remove unused section.
38674
38675 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
38676
38677         PR c++/47218
38678         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
38679
38680 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
38681
38682         PR objc/47232
38683         * c-parser.c (c_parser_declaration_or_fndef): Improved
38684         error message.
38685
38686 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
38687
38688         * config/i386/winnt.c (i386_pe_start_function): Make sure
38689         to switch back to function's section.
38690
38691 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
38692
38693         PR gcc/46902
38694         PR testsuite/46912
38695         * plugin.c: Move include of dlfcn.h from here...
38696         * system.h: ... to here.
38697
38698 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38699
38700         * doc/cpp.texi (C++ Named Operators): Fix markup for header
38701         file name.
38702         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
38703         two extra empty pages in PDF output.
38704
38705 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
38706
38707         PR objc/47078
38708         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
38709         for error recovery purposes behave as if it was not specified so
38710         that the default type is usd.
38711
38712 2011-01-07  Jan Hubicka  <jh@suse.cz>
38713
38714         PR tree-optmization/46469
38715         * ipa.c (function_and_variable_visibility): Clear needed flags on
38716         nodes with external decls; handle weakrefs merging correctly.
38717
38718 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
38719
38720         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
38721         not false.
38722
38723 2011-01-07  Jan Hubicka  <jh@suse.cz>
38724
38725         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
38726         and no longer claim that gold is required for linker plugin.
38727         * configure: Regenerate.
38728         * gcc.c (PLUGIN_COND): New macro.
38729         (LINK_COMMAND_SPEC): Use it.
38730         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
38731         * config.in (HAVE_LTO_PLUGIN): New.
38732         * configure.ac (--with-lto-plugin): New parameter; autodetect
38733         HAVE_LTO_PLUGIN.
38734
38735 2011-01-07  Jan Hubicka  <jh@suse.cz>
38736
38737         PR tree-optimization/46367
38738         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
38739         when we can update original.
38740         (cgraph_mark_inline_edge): Sanity check.
38741         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
38742
38743 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38744
38745         * config/spu/spu.h (ASM_COMMENT_START): Define.
38746
38747 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
38748
38749         PR driver/42445
38750         * gcc.c (%>S): New.
38751         (SWITCH_KEEP_FOR_GCC): Likewise.
38752         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
38753         (do_spec_1): Handle "%>".
38754
38755         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
38756
38757 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
38758
38759         PR target/47201
38760         * config/i386/i386.c (ix86_delegitimize_address): If
38761         simplify_gen_subreg fails, return orig_x.
38762
38763         PR bootstrap/47187
38764         * value-prof.c (gimple_stringop_fixed_value): Handle
38765         lhs of the call properly.
38766
38767 2011-01-07  Jan Hubicka  <jh@suse.cz>
38768
38769         PR lto/45375
38770         * lto-opt.c (lto_reissue_options): Set flag_shlib.
38771
38772 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
38773
38774         * target.def (function_switched_text_sections): New hook.
38775         * doc/tm.texi: Regenerated.
38776         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
38777         * final.c (default_function_switched_text_sections): New.
38778         (final_scan_insn): Call function_switched_text_sections when a
38779         mid-function section change occurs.
38780         * output.h (default_function_switched_text_sections): Declare.
38781         * config/darwin-protos.h (darwin_function_switched_text_sections):
38782         Likewise.
38783         * config/darwin.c (darwin_function_switched_text_sections): New.
38784         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
38785
38786 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
38787
38788         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
38789         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
38790         the secondary code fragment when outputting for DWARF == 2.
38791
38792 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
38793
38794         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
38795         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
38796         Remove.
38797         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
38798         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
38799
38800 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
38801
38802         PR debug/46704
38803         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
38804         when it is not empty.
38805
38806 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
38807
38808         Bobcat Enablement
38809         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
38810         (case ${target}): Add btver1.
38811         * config/i386/driver-i386.c (host_detect_local_cpu): Let
38812         -march=native recognize btver1 processors.
38813         * config/i386/i386-c.c (ix86_target_macros_internal): Add
38814         btver1 def_and_undef
38815         * config/i386/i386.c (struct processor_costs btver1_cost): New
38816         btver1 cost table.
38817         (m_BTVER1): New definition.
38818         (m_AMD_MULTIPLE): Includes m_BTVER1.
38819         (initial_ix86_tune_features): Add btver1 tune.
38820         (processor_target_table): Add btver1 entry.
38821         (static const char *const cpu_names): Add btver1 entry.
38822         (software_prefetching_beneficial_p): Add btver1.
38823         (ix86_option_override_internal): Add btver1 instruction sets.
38824         (ix86_issue_rate): Add btver1.
38825         (ix86_adjust_cost): Add btver1.
38826         * config/i386/i386.h (TARGET_BTVER1): New definition.
38827         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
38828         (enum processor_type): Add PROCESSOR_BTVER1.
38829         * config/i386/i386.md (define_attr "cpu"): Add btver1.
38830
38831 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38832
38833         PR target/43309
38834         * config/i386/i386.c (legitimize_tls_address)
38835         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
38836         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
38837         (tls_initial_exec_64_sun): New pattern.
38838
38839 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
38840
38841         * doc/invoke.texi (Overall Options): Improve wording and markup
38842         of the description of -wrapper.
38843
38844 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
38845
38846         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
38847         rdynamic, threads): New Driver options.
38848
38849 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38850
38851         PR target/38118
38852         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
38853         if coming from .tdata.
38854         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
38855
38856 2011-01-06  Jan Hubicka  <jh@suse.cz>
38857
38858         PR lto/47188
38859         * collect2.c (main): Do not enable LTOmode when plugin is active.
38860
38861 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38862
38863         PR other/45915
38864         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
38865         --version output if supported.
38866         * configure: Regenerate.
38867
38868 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
38869
38870         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
38871         Driver options.
38872
38873 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
38874
38875         PR c/47150
38876         * c-convert.c (convert): When converting a complex expression
38877         other than COMPLEX_EXPR to a different complex type, ensure
38878         c_save_expr is called instead of save_expr, unless in_late_binary_op.
38879         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
38880         when converting COMPLEX_TYPE.
38881
38882 2011-01-06  Ira Rosen  <irar@il.ibm.com>
38883
38884         PR tree-optimization/47139
38885         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
38886         only the last reduction value is used outside the loop.  Update
38887         documentation.
38888
38889 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
38890
38891         * config/rtems.opt: New.
38892         * config.gcc (*-*-rtems*): Use rtems.opt.
38893
38894 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
38895
38896         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
38897         processors do not support 3DNow instructions.
38898
38899 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38900
38901         * config/spu/spu.c (spu_option_override): Set parameter
38902         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
38903
38904 2011-01-05  Jan Hubicka  <jh@suse.cz>
38905
38906         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
38907         at the command line.
38908
38909 2011-01-05  Martin Jambor  <mjambor@suse.cz>
38910
38911         PR lto/47162
38912         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
38913         deltas on streamed outgoing edges.
38914         (output_node_opt_summary): Output info for outgoing edges only when
38915         the node is in new parameter set.
38916         (output_cgraph_opt_summary): New parameter set, passed to the two
38917         aforementioned functions.  Update its forward declaration and its
38918         callee too.
38919
38920 2011-01-05  Tom Tromey  <tromey@redhat.com>
38921
38922         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
38923         operator to c_finish_omp_atomic.
38924         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
38925         (build_unary_op): Update.
38926         (build_modify_expr): Update.
38927         (build_asm_expr): Update.
38928
38929 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38930
38931         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
38932         newly inserted insns.
38933         (pad_bb): Likewise.
38934         (spu_emit_branch_hint): Likewise.
38935         (insert_hbrp_for_ilb_runout): Likewise.
38936         (spu_machine_dependent_reorg): Call df_finish_pass after
38937         schedule_insns returns.
38938
38939 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38940
38941         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
38942
38943 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38944
38945         PR tree-optimization/47005
38946         * tree-sra.c (struct access): Add 'non_addressable' bit.
38947         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
38948         (decide_one_param_reduction): Return 0 if the parameter is passed by
38949         reference and one of the accesses in the group is non_addressable.
38950
38951 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
38952
38953         PR tree-optimization/47056
38954         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
38955         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
38956         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
38957
38958 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
38959
38960         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
38961         initializer.  Skip view conversions from aggregate types.
38962
38963 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
38964
38965         PR bootstrap/47055
38966         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
38967
38968 2011-01-04  Philipp Thomas  <pth@suse.de>
38969
38970         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
38971         obvious typo.
38972
38973 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38974
38975         * function.c (thread_prologue_and_epilogue_insns): Do not crash
38976         on empty epilogue sequences.
38977
38978 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
38979
38980         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
38981         non-static): New Driver options.
38982
38983 2011-01-04  Jie Zhang  <jie@codesourcery.com>
38984
38985         PR driver/47137
38986         * gcc.c (default_compilers[]): Set combinable field to 0
38987         for all assembly languages.
38988
38989 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
38990
38991         * config/mips/loongson3a.md: New file.
38992         * config/mips/mips.md: Include loongson3a.md.
38993         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
38994         TUNE_LOONGSON_3A.
38995
38996 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38997
38998         PR middle-end/47017
38999         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
39000         instead of convert_memory_address_addr_space on the base expression.
39001
39002 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39003
39004         * config/spu/spu.c (spu_option_override): Update error text
39005         for bad -march= / -mtune= values.
39006
39007 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39008
39009         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
39010         if branch-hint optimization will be performed.
39011
39012 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
39013
39014         PR tree-optimization/47148
39015         * ipa-split.c (split_function): Convert arguments to
39016         DECL_ARG_TYPE if possible.
39017
39018         PR tree-optimization/47155
39019         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
39020         when computing uns.
39021
39022         PR rtl-optimization/47157
39023         * combine.c (try_combine): If undobuf.other_insn becomes
39024         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
39025         and set *new_direct_jump_p too.
39026
39027 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
39028
39029         PR tree-optimization/47021
39030         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
39031
39032 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
39033
39034         * gcc.c (process_command): Update copyright notice dates.
39035         * gcov.c (print_version): Likewise.
39036         * gcov-dump.c (print_version): Likewise.
39037         * mips-tfile.c (main): Likewise.
39038         * mips-tdump.c (main): Likewise.
39039
39040 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39041
39042         PR tree-optimization/46801
39043         * tree-sra.c (type_internals_preclude_sra_p): Check whether
39044         aggregate fields start at byte boundary instead of the bit-field flag.
39045
39046 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39047
39048         PR driver/47137
39049         * gcc.c (main): Revert revision 168407.
39050
39051 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39052
39053         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
39054
39055 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39056
39057         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
39058         vector optab to expand vector/scalar shift, update gimple to vector.
39059
39060 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39061
39062         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
39063         a thunk.
39064
39065 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39066
39067         PR tree-optimization/46984
39068         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
39069         HOST_WIDE_INT.
39070         (cgraph_create_indirect_edge): Fixed line length.
39071         (cgraph_indirect_call_info): Declare.
39072         (cgraph_make_edge_direct) Update declaration.
39073         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
39074         (cgraph_create_indirect_edge): Use it.
39075         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
39076         callees.
39077         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
39078         the new thunk_delta representation.
39079         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
39080         HOST_WIDE_INT.
39081         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
39082         (ipa_read_indirect_edge_info): Likewise.
39083         * lto-cgraph.c (output_edge_opt_summary): New function.
39084         (output_node_opt_summary): Call it on all outgoing edges.
39085         (input_edge_opt_summary): New function.
39086         (input_node_opt_summary): Call it on all outgoing edges.
39087
39088 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
39089
39090         PR driver/47137
39091         * gcc.c (main): Don't check have_o when settting combine_inputs.
39092
39093 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
39094
39095         * regrename.c: Add general comment describing the pass.
39096         (struct du_head): Remove 'length' field.
39097         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
39098         (regrename_optimize): Do not sort chains.  Rework comments, add others.
39099         Force renaming to the preferred class (if any) in the first pass and do
39100         not consider registers that belong to it in the second pass.
39101         (create_new_chain): Do not set 'length' field.
39102         (scan_rtx_reg): Likewise.
39103
39104 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
39105
39106         PR tree-optimization/47140
39107         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
39108         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
39109         to bit_value_binop.
39110
39111         PR rtl-optimization/47028
39112         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
39113         parm_birth_insn instead of at the beginning of first bb.
39114
39115 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
39116
39117         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
39118         Remove the word "see" before "@pxref".
39119         * doc/rtl.texi: Remove the word "see" before "@pxref".
39120
39121 2011-01-01  Jan Hubicka  <jh@suse.cz>
39122
39123         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
39124         memory.
39125
39126 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
39127
39128         PR target/38662
39129         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
39130
39131 \f
39132 Copyright (C) 2011 Free Software Foundation, Inc.
39133
39134 Copying and distribution of this file, with or without modification,
39135 are permitted in any medium without royalty provided the copyright
39136 notice and this notice are preserved.