OSDN Git Service

* gcc.dg/tree-ssa/ipa-split-2.c: New testcase.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-26  Jan Hubicka  <jh@suse.cz>
2
3         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
4         edges comming from header are equivalent.
5         (visit_bb): Handle PHIs correctly.
6         * tree-inline.c (copy_phis_for_bb): Be able to copy
7         PHI from entry edge.
8         (copy_cfg_body): Produce edge from entry BB before copying
9         PHIs.
10
11 2010-06-26  Richard Guenther  <rguenther@suse.de>
12
13         PR middle-end/44674
14         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
15         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
16
17 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
18
19         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
20         add_infile, alloc_switch): New.
21         (process_command): Remove variable lang_n_infiles.  Process
22         options in a single pass.  Use new functions for allocating
23         infiles and switches arrays.  Properly skip operands of
24         -Xpreprocessor and -Xassembler.
25
26 2010-06-26  Jan Hubicka  <jh@suse.cz>
27
28         PR middle-end/44671
29         * cgraphunit.c (cgraph_function_versioning): Remove wrong
30         cgraph_make_decl_local call; fix typo copying RTL data.
31
32 2010-06-25  DJ Delorie  <dj@redhat.com>
33
34         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
35         (m32c_output_aligned_common): Likewise.
36         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
37         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
38         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
39         (m32c_register_pragmas): Register it.
40         * config/m32c/m32c.c (m32c_get_pragma_address): New.
41         (m32c_insert_attributes): Set #pragma address decls volatile.
42         (pragma_entry_eq): New.
43         (pragma_entry_hash): New.
44         (m32c_note_pragma_address): New.
45         (m32c_get_pragma_address): New.
46         (m32c_output_aligned_common): New.
47         * doc/extend.texi: Document the new pragma.
48
49         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
50         also.
51         * config/m32c/predicates.md (m32c_any_operand): Check the code
52         instead of memory_operand so as to allow matching volatile MEMs.
53         (m32c_nonimmediate_operand): Likewise.
54         (mra_operand): Allow volatiles.
55
56 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
57
58         PR debug/44610
59         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
60         address if the offset is unknown.
61
62 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
63
64         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
65         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
66         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
67         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
68         to ia64_start_function. Invoke it.
69         * config/ia64/ia64.c (ia64_start_function): Call new function
70         dwarf2out_vms_debug_main_pointer.
71
72 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
73
74         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
75         statements computing the true predicate.
76
77 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
78
79         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
80         to boolean_true_node.
81         (reset_bb_predicate): New.
82         (predicate_bbs): Call reset_bb_predicate.
83
84 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
85
86         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
87         (tree_if_conversion): Returns true when something has been changed.
88         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
89         changed something.
90
91 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
92
93         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
94         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
95         * tree-if-conv.c: Include dbgcnt.h.
96         (tree_if_conversion): Use if_conversion_tree to count the number of
97         if-convertible loops.
98
99 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
100
101         * common.opt (fprefetch-loop-arrays): Re-define
102         -fprefetch-loop-arrays as a tri-state option with the initial
103         value of -1.
104         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
105         pass only when flag_prefetch_loop_arrays > 0.
106         * toplev.c (process_options): Note that, with tri-states,
107         flag_prefetch_loop_arrays>0 means prefetching is enabled.
108         * config/i386/i386.c (override_options): Enable prefetching at -O3
109         for a set of CPUs that sw prefetching is helpful.
110         (software_prefetching_beneficial_p): New.  Return TRUE if software
111         prefetching is beneficial for the given CPU.
112
113 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
114
115         PR rtl-optimization/44326
116         * implicit-zee.c (find_removable_zero_extends): Replace
117         INSN_P with NONDEBUG_INSN_P.
118
119 2010-06-25  Martin Jambor  <mjambor@suse.cz>
120
121         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
122         (struct ipa_node_params): Removed the modification_analysis_done flag.
123         (ipa_is_param_modified): Removed.
124         (ipa_analyze_node): Declare.
125         (ipa_compute_jump_functions): Remove declaration.
126         (ipa_count_arguments): Likewise.
127         (ipa_detect_param_modifications): Likewise.
128         (ipa_analyze_params_uses): Likewise.
129         * ipa-prop.c (struct param_analysis_info): New type.
130         (visit_store_addr_for_mod_analysis): Removed.
131         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
132         moved down in the file.
133         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
134         (ipa_count_arguments): Made static.
135         (mark_modified): New function.
136         (is_parm_modified_before_call): New function.
137         (compute_pass_through_member_ptrs): New parameter parms_info, call
138         is_parm_modified_before_call instead of ipa_is_param_modified.
139         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
140         it to compute_pass_through_member_ptrs.
141         (ipa_compute_jump_functions): New parameter parms_info, pass it to
142         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
143         on the callee if it is analyzed.  Made static.
144         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
145         is_parm_modified_before_call instead of ipa_is_param_modified.
146         (ipa_analyze_call_uses): New parameter parms_info, pass it to
147         ipa_analyze_indirect_call_uses.
148         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
149         ipa_analyze_call_uses.
150         (ipa_analyze_params_uses): New parameter parms_info, pass it to
151         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
152         (ipa_analyze_node): New function.
153         (ipa_print_node_params): Do not dump the modified flag.
154         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
155         it.  Do not stream the modified parameter flag.
156         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
157         it.  Do not stream the modified parameter flag.
158         * ipa-cp.c (ipcp_analyze_node): Removed.
159         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
160         with only a call to ipa_analyze_node.
161         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
162         node with only a call to ipa_analyze_node.
163
164 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
165
166         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
167
168 2010-06-25  Jan Hubicka  <jh@suse.cz>
169
170         * tree-pass.h (pass_split_functions): Declare.
171         * opts.c (decode_options): Enable function splitting at -O2
172         * timevar.def (TV_IPA_FNSPLIT): New macro.
173         * ipa-split.c: New file.
174         * common.opt (-fpartial-inlining): New flag.
175         * Makefile.in (ipa-split.o): New object file.
176         * passes.c (init_optimization_passes): Add ipa-split.
177         * params.def (partial-inlining-entry-probability): New parameters.
178         * doc/invoke.texi (-fpartial-inlining): New.
179
180 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
181
182         PR 44665
183         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
184         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
185         (gimplify_expr): Likewise.
186
187 2010-06-25  Martin Jambor  <mjambor@suse.cz>
188
189         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
190         statements instead of bailing out on them.
191         (ipa_analyze_indirect_call_uses): Do not require that loads from the
192         parameter are in the same BB as the condition.  Update comments.
193
194 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
195
196         PR middle-end/43866
197         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
198         true or always false, return NULL_TREE.
199         (tree_unswitch_single_loop): Optimize conditions even when reaching
200         max-unswitch-level parameter.  If num > 0, optimize first all conditions
201         using entry checks, then do still reachable block discovery and consider
202         only conditions in still reachable basic blocks in the loop.
203
204         PR tree-optimization/44539
205         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
206         the call doesn't have LHS, but has VDEF.
207
208 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
209
210         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
211         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
212         * gcc.c (enum add_del, struct modify_target, modify_target):
213         Remove.
214         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
215         * system.h (MODIFY_TARGET_NAME): Poison.
216
217 2010-06-25  Alan Modra  <amodra@gmail.com>
218
219         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
220         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
221         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
222         CMODEL_LARGE as default.
223         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
224         (offsettable_ok_by_alignment): Delete.
225         (rs6000_emit_move): Remove mcmodel=medium optimization.
226
227 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
228
229         With large parts from Jim Wilson:
230         PR target/43902
231         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
232         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
233         * optabs.c (optab_for_tree_code): Likewise.
234         (expand_widen_pattern_expr): Likewise.
235         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
236         out of execute_optimize_widening_mul.
237         (convert_plusminus_to_widen): New function.
238         (execute_optimize_widening_mul): Use the two new functions.
239         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
240         Remove code to generate widening multiply-accumulate.  Add support
241         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
242         * gimple-pretty-print.c (dump_ternary_rhs): New function.
243         (dump_gimple_assign): Call it when appropriate.
244         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
245         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
246         (expand_gimple_stmt_1): Likewise.
247         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
248         WIDEN_MULT_MINUS_EXPR.
249         * tree-ssa-operands.c (get_expr_operands): Likewise.
250         * tree-inline.c (estimate_operator_cost): Likewise.
251         * gimple.c (extract_ops_from_tree_1): Renamed from
252         extract_ops_from_tree.  Add new arg for a third operand; fill it.
253         (gimple_build_assign_stat): Support operations with three operands.
254         (gimple_build_assign_with_ops_stat): Likewise.
255         (gimple_assign_set_rhs_from_tree): Likewise.
256         (gimple_assign_set_rhs_with_ops_1): Renamed from
257         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
258         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
259         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
260         WIDEN_MULT_MINUS_EXPR.
261         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
262         (extract_ops_from_tree_1): Adjust declaration.
263         (gimple_assign_set_rhs_with_ops_1): Likewise.
264         (gimple_build_assign_with_ops): Pass NULL for last operand.
265         (gimple_build_assign_with_ops3): New macro.
266         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
267         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
268         functions.
269         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
270         (verify_gimple_assign): Call it.
271         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
272         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
273         functions for dealing with three-operand statements.
274         * tree.c (commutative_ternary_tree_code): New function.
275         * tree.h (commutative_ternary_tree_code): Declare it.
276         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
277         statements.
278         (gimple_assign_nonzero_warnv_p): Likewise.
279         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
280         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
281         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
282         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
283         (struct hashtable_expr): New member ternary in the union.
284         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
285         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
286         (iterative_hash_hashable_expr): Likewise.
287         (print_expr_hash_elt): Handle EXPR_TERNARY.
288         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
289         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
290         statements.  Handle GIMPLE_TERNARY_RHS.
291
292 2010-06-25  Jan Hubicka  <jh@suse.cz>
293
294         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
295
296 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
297
298         PR c/44517
299         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
300         parameters are not good.
301         (c_parser_parameter_declaration): Error unknown type name if the type
302         name can't start declaration specifiers.
303
304 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
305
306         * gcc.c (translate_options): Don't mention +e in comment.
307         (process_command): Don't handle +e specially.
308
309 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
310
311         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
312
313         * ira-build.c (merge_hard_reg_conflicts): New function.
314         (create_cap_allocno, copy_info_to_removed_store_destinations,
315         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
316         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
317         (remove_unnecessary_allocnos, remove_low_level_allocnos)
318         copy_nifo_to_removed_store_destination): Use them.
319         * ira-lives.c (make_hard_regno_born): New function, split out of
320         make_regno_born.
321         (make_allocno_born): Likewise.
322         (make_hard_regno_dead): New function, split out of make_regno_dead.
323         (make_allocno_dead): Likewise.
324         (inc_register_pressure): New function, split out of set_allocno_live.
325         (dec_register_pressure): New function, split out of clear_allocno_live.
326         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
327         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
328         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
329         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
330         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
331         mark_pseudo_regno_live.
332         (process_bb_node_lives): Use mark_pseudo_regno_live,
333         make_hard_regno_born and make_allocno_dead.
334         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
335         set_allocno_live, clear_allocno_live): Delete functions.
336
337         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
338         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
339         functions.
340         (ira_flattening): Use ira_parent_allocno.
341         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
342         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
343
344         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
345         statement.
346
347         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
348         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
349         minmax_set_iter_cond, minmax_set_iter_next,
350         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
351         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
352         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
353         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
354         uses changed.
355
356         * ira-int.h (struct live_range, live_range_t): Renamed from struct
357         ira_allocno_live_range and allocno_live_range_t; all uses changed.
358         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
359         All uses changed.
360
361 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
362
363         * thumb2.md (thumb2_tlobits_cbranch): Delete.
364         (peephole2 to convert zero_extract/compare of single bit to
365          lshift/compare): New.
366
367 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
368
369         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
370         recursive call and call to 'int_const_binop'.
371         (build_range_check, fold_cond_expr_with_comparison, unextend,
372         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
373         multiple_of_p): Adjust call to const_binop.
374
375 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
376
377         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
378         determine size of XFmode operand.
379         (XFmode extended DFmode push splitter): Ditto.
380         (XFmode extended SFmode push splitter): Ditto.
381
382 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
383
384         PR target/44588
385         * config/i386/i386.md (extract_code): New.
386         (<u>divmodqi4): Likewise.
387         (divmodhiqi3): Likewise.
388         (udivmodhiqi3): Likewise.
389         (<u>divqi3): Remvoved.
390
391 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
392
393         PR middle-end/44492
394         * recog.h (struct recog_data): Add is_asm field.
395         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
396         present in constraints of inline-asm operand and memory operand
397         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
398         (extract_insn): Initialize recog_data.is_asm.
399         * doc/md.texi (Constraints): Document operand side-effect rules.
400
401 2010-06-24  Andi Kleen  <ak@linux.intel.com>
402
403         * c-parser.c (c_parser_conditional_expression): Call
404         warn_for_omitted_condop.
405         * doc/invoke.texi: Document omitted condop warning.
406
407 2010-06-24  Nick Clifton<nickc@redhat.com>
408
409         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
410         insn in the sequence is a jump insn before setting its label.
411
412 2010-06-24  Alan Modra  <amodra@gmail.com>
413
414         * collect2.c (main): Match exactly --version and --help.
415
416 2010-06-24  DJ Delorie  <dj@redhat.com>
417
418         * config/m32c/m32c-pragma.c: Don't include rtl.h.
419
420 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
421
422         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
423         using X87MODEF mode iterator.
424         (pushsf splitter): Macroize splitter using P mode iterator.
425         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
426         mode iterator.
427
428         (*movxf_internal): Rename from *movxf_integer.
429         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
430         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
431         (*movdf_internal): Rename from *movdf_integer.
432         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
433         (*movsf_internal): Rename from *movdf_1.
434
435 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
436
437         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
438         (const_gimple_seq_node): Removed typedefs.
439
440         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
441         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
442
443 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
444
445         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
446         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
447         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
448         and CODE_FOR_vec_extract_lo_v4df.
449
450         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
451         Changed to define_insn_and_split.
452         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
453         (vec_extract_lo_v16hi): Likewise.
454         (vec_extract_lo_v32qi): Likewise.
455         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
456         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
457
458 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
459
460         PR target/44640
461         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
462         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
463         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
464         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
465         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
466
467         PR target/44640
468         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
469
470         PR other/44644
471         * df-core.c (struct df): Rename to df_d.
472         * df.h (struct df): Likewise.
473         * dse.h (struct df): Remove forward declaration.
474         * recog.h (struct insn_data): Rename to:
475         (struct_insn_data_d).  Adjusted all users.
476
477 2010-06-23  Arnaud Charlet  <charlet@adacore.com
478
479         PR ada/22220
480         * doc/install.texi: Update requirements to build GNAT.
481
482 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
483
484         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
485         enum type.
486         (m68k_sched_attr_opx_type): Remove unreachable return.
487         (m68k_sched_attr_opy_type): Likewise.
488         (m68k_sched_attr_size): Likewise.
489         (sched_get_opxy_mem_type): Likewise.
490         (m68k_sched_attr_op_mem): Likewise.
491
492 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
493
494         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
495         new statement and adjust VDEF only if necessary.  Remove superfluous
496         call to maybe_clean_or_replace_eh_stmt.
497         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
498         copy the flags.
499         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
500         * tree-inline.c (copy_bb): ...and not there.
501
502 2010-06-22  Cary Coutant  <ccoutant@google.com>
503
504         * dwarf2out.c (is_nested_in_subprogram): New function.
505         (should_move_die_to_comdat): Use it.
506         (copy_ancestor_tree): Don't mark DIEs here.
507         (copy_decls_walk): Start walk from root of newly-added tree;
508         mark DIEs here instead.
509
510 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
511
512         * config/i386/i386.md (unit): Also check sseishft1.
513
514 2010-06-22  Jan Hubicka  <jh@suse.cz>
515
516         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
517         enabled.
518
519 2010-06-22  Jan Hubicka  <jh@suse.cz>
520
521         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
522         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
523         Return true if something changed.
524         * df.h (df_confluence_function_n): Return bool.
525         * df-core.c (df_worklist_propagate_forward,
526         df_worklist_propagate_backward): Track changes and ages.
527         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
528         track ages.
529         * dse.c (dse_confluence_n): Return always true.
530
531 2010-06-22  Jan Hubicka  <jh@suse.cz>
532
533         * bitmap.c (bitmap_clear_bit): Micro optimize.
534
535 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
536
537         * config/i386/i386.md (SWI1248x): New mode iterator.
538         (SWI48x): Ditto.
539         (SWI12): Ditto.
540         (SWI24): Ditto.
541
542         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
543         SWI1248x mode iterator.
544         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
545         using SWI124 mode iterator.
546         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
547         mode iterator.
548         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
549         *pushdi2_prologue_rex64 using P mode iterator.
550         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
551         using SWI48 mode iterator.
552         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
553         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
554         using SWI1248x mode iterator.
555         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
556         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
557         SWI48 mode iterator.
558         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
559         iterator.
560         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
561         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
562         SWI12 mode iterator.
563         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
564         SWI12 mode iterator.
565         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
566         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
567         SWI24 mode iterator.
568         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
569         SWI48 mode iterator.
570         (mov<mode>_insn_1): New expander.
571         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
572         using SWI48x mode iterator.
573
574         (*movoi_internal_avx): Rename from *movoi_internal.
575         (*movti_internal_rex64): Rename from *movti_rex64.
576         (*movti_internal_sse): Rename from *movti_sse.
577         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
578         (*movdi_internal): Rename from *movdi_2.
579         (*movsi_internal): Rename from *movsi_1.
580         (*movhi_internal): Rename from *movhi_1.
581         (*movqi_internal): Rename from *movqi_1.
582
583         (insv): Update the call to gen_movsi_insv_1 for rename.
584         * config/i386/i386.c (promote_duplicated_reg): Ditto.
585
586 2010-06-22  Jan Hubicka  <jh@suse.cz>
587
588         * passes.c (execute_function_todo): Move call of statistics_fini_pass
589         to ...
590         (execute_todo) ... this one.
591
592 2010-06-22  Alan Modra  <amodra@gmail.com>
593
594         PR target/44364
595         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
596         * caller-save.c (insert_restore, insert_save): Use non-validate
597         form of adjust_address.
598
599 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
600
601         PR target/39690
602         * config/pa/pa.c (override_options): Disable
603         -freorder-blocks-and-partition.
604
605 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
606
607         PR target/44615
608         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
609
610         * config/i386/i386.md (type): Add sseishft1
611
612         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
613         (ppro_insn_load): Likewise.
614         (ppro_insn_store): Likewise.
615         (ppro_insn_both): Likewise.
616
617         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
618         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
619         for type.
620         (*vec_extractv2di_1_avx): Likewise.
621         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
622         type.  Remove atom_unit.
623         (*vec_extractv2di_1_sse2): Likewise.
624
625 2010-06-21  DJ Delorie  <dj@redhat.com>
626
627         * diagnostic.h (diagnostic_classification_change_t): New.
628         (diagnostic_context): Add history and push/pop list.
629         (diagnostic_push_diagnostics): Declare.
630         (diagnostic_pop_diagnostics): Declare.
631         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
632         from pragmas in a history chain instead of the global table.
633         (diagnostic_push_diagnostics): New.
634         (diagnostic_pop_diagnostics): New.
635         (diagnostic_report_diagnostic): Scan history chain to find state
636         of diagnostics as of the diagnostic location.
637         * opts.c (set_option): Pass UNKNOWN_LOCATION to
638         diagnostic_classify_diagnostic.
639         (enable_warning_as_error): Likewise.
640         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
641         use in the history chain.
642         * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
643         allow these pragmas anywhere.
644         * doc/extend.texi: Document pragma GCC diagnostic changes.
645
646 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
647
648         * dwarf2out.c (add_linkage_name): New function.  Don't add
649         anything to DW_TAG_member DIEs.
650         (add_name_and_src_coords_attributes): Use it.
651         (gen_variable_die): Call it for C++ static data members if
652         specification is DW_TAG_member.
653
654         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
655         C++ char16_t and char32_t.
656
657         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
658         * genattrtab.c: Include vecprim.h.
659         (cached_attrs, cached_attr_count, attrs_seen_once,
660         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
661         attrs_cached_after): New variables.
662         (find_attrs_to_cache): New function.
663         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
664         (write_test_expr): Add attrs_cached argument, return it too,
665         attempt to cache non-const attributes used more than once in
666         a single case handling.
667         (write_attr_get): Use find_attrs_to_cache, for caching candidates
668         emit cached_* variables.  Adjust write_attr_set callers.
669         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
670         to find attributes that should be cached in this block.  Adjust
671         write_test_expr callers.
672         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
673         callers.
674         (make_automaton_attrs): Adjust write_test_expr caller.
675
676         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
677         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
678         (make_automaton_attrs): If find_tune_attr returns non-NULL,
679         write separate internal_dfa_insn_code_* and insn_default_latency_*
680         functions for each attribute's value and emit init_sched_attrs
681         function and function pointers.
682         * genattr.c (const_attrs, reservations): New variables.
683         (gen_attr): Add const attributes to const_attrs vector.
684         (check_tune_attr, find_tune_attr): New functions.
685         (main): Add reservations to reservations vector.  If find_tune_attr
686         returns true, add prototype for init_sched_attrs and make
687         internal_dfa_insn_code and insn_default_latency function pointers,
688         otherwise define init_sched_attrs as dummy macro.
689         * cfgexpand.c: Include insn-attr.h.
690         (gimple_expand_cfg): Call init_sched_attrs.
691
692         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
693
694         PR target/44575
695         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
696         va_arg from a set of register save slots into a temporary,
697         if the container is bigger than type size, do the copying
698         using smaller mode or using memcpy.
699
700         PR bootstrap/44426
701         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
702         prototype.
703         (sel_print_to_dot): Remove macro.
704         (sel_print): Likewise.  New prototype.
705         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
706         (sel_print): New function.
707
708 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
709
710         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
711         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
712
713 2010-06-21  Nick Clifton  <nickc@redhat.com>
714
715         * config/rx/rx.h (PTRDIFF_TYPE): Define.
716         (SMALL_REGISTER_CLASS): Define (to zero).
717         (PRINT_OPERAND): Delete.
718         (PRINT_OPERAND_ADDRESS): Delete.
719         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
720         (rx_print_operand_address): Delete prototype.
721         * config/rx/rx.c (rx_print_operand): Make static.
722         Allow %H and %L to handle CONST_DOUBLEs.
723         (rx_print_operand_address): Make static.
724         (rx_gen_move_template): Rename local variable 'template' to
725         out_template.
726         (rx_function_arg): Do not pass unknown sized objects in registers.
727         (TARGET_PRINT_OPERAND): Define.
728         (TARGET_PRINT_OPERAND_ADDRESS): Define.
729
730 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
731
732         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
733
734 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
735
736         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
737         stack-alignment for simple leaf-functions.
738
739 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
740
741         * doc/install.texi: Document bootstrap-lto.
742
743 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
744
745         PR debug/44248
746         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
747         (input_function): Drop them here, if VTA is disabled.
748
749 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
750
751         PR target/44546
752         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
753         New predicate.
754         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
755         ix86_swapped_fp_comparsion_operator instead of
756         ix86_fp_comparison_operator.
757
758         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
759         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
760         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
761         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
762         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
763         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
764
765 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
766
767         PR other/32998
768         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
769         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
770         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
771         (decode_cmdline_option): Update for this return value.  Set
772         orig_option_with_args_text field.  Set arg field for unknown
773         options.  Make static.
774         (decode_cmdline_options_to_array): New.
775         (prune_options): Update handling of find_opt return value.
776         * opts.c (read_cmdline_option): Take decoded option.  Return void.
777         (read_cmdline_options): Take decoded options.
778         (decode_options): Add parameters for decoded options.  Use
779         decode_cmdline_options_to_array.  Use decoded options for -O
780         scan.  Use integral_argument for -O parameters.  Update call to
781         read_cmdline_options.
782         (enable_warning_as_error): Update handling of find_opt return value.
783         * opts.h: Update comment on unknown options.
784         (struct cl_decoded_option): Update comments on opt_index and arg.
785         Add orig_option_with_args_text.
786         (decode_cmdline_option): Remove.
787         (decode_cmdline_options_to_array): Declare.
788         (decode_options): Update prototype.
789         * toplev.c (save_argv): Remove.
790         (save_decoded_options, save_decoded_options_count): New.
791         (read_integral_parameter): Remove.
792         (print_switch_values): Use decoded options.
793         (toplev_main): Don't set save_argv.  Update call to decode_options.
794         * toplev.h (read_integral_parameter): Remove.
795         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
796
797 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
798
799         PR target/44072
800         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
801         immediate.
802         * constraints.md (Pw, Px): New constraints.
803         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
804
805 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
806
807         * config/i386/sse.md (fma4modesuffixf4): Removed.
808         (ssemodesuffixf2s): Likewise.
809         (ssemodesuffixf4): Likewise.
810         (ssemodesuffixf2c): Likewise.
811         (ssescalarmodesuffix2s): Likewise.
812         (avxmodesuffixf2c): Likewise.
813         (ssemodesuffix): New.
814         (ssescalarmodesuffix): Likewise.
815         Update patterns with ssemodesuffix and ssescalarmodesuffix.
816
817 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
818
819         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
820
821 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
822
823         * stor-layout.c (debug_rli): Remove unused local variables.
824
825 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
826
827         PR rtl-optimization/40900
828         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
829         original expression for later reuse.
830         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
831         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
832
833 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
834
835         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
836         double_int_fits_in_uhwi_p): Implement as static inline.
837         (double_int_xor): New inline function.
838         (double_int_lrotate, double_int_rrotate, double_int_max,
839         double_int_umax, double_int_smax, double_int_min, double_int_umin,
840         double_int_smin): Declare.
841         (lrotate_double, rrotate_double): Remove declaration.
842         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
843         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
844         (double_int_lrotate, double_int_rrotate, double_int_max,
845         double_int_umax, double_int_smax, double_int_min, double_int_umin,
846         double_int_smin): New function.
847         * fold-const.c (int_const_binop): Clean up, use double_int_*
848         functions.
849         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
850         double_int_* and immed_double_int_const functions.
851
852 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
853
854         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
855         * function.c (types_used_by_cur_var_decl): Likewise.
856         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
857
858 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
859
860         * tree.h (record_layout_info): Change type of pending_statics field
861         to a VEC.
862         * stor-layout.c (start_record_layout): Store NULL into
863         pending_statics.
864         (debug_rli): Call debug_vec_tree instead of debug_tree.
865         (place_field): Likewise.
866         (finish_record_layout): Likewise.
867
868 2010-06-18  Alan Modra  <amodra@gmail.com>
869
870         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
871
872 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
873
874         PR target/43740
875         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
876         for SET source operand from SET destination operand.
877
878 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
879
880         PR rtl-optimization/39871
881         * reload1.c (init_eliminable_invariants): For flag_pic, disable
882         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
883         (function_invariant_p): Rule out a plus of frame or arg pointer with
884         a SYMBOL_REF.
885         * ira.c (find_reg_equiv_invariant_const): Likewise.
886
887 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
888
889         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
890         print_operand_address and puts to output the operand for CONST.
891
892 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
893
894         PR debug/44572
895         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
896         hook.
897
898 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
899
900         * v850-protos.h (print_operand): Delete.
901         (print_operand_address): Delete.
902         * v850.h (PRINT_OPERAND): Delete.
903         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
904         (PRINT_OPERAND_ADDRESS): Delete.
905         * v850.c (print_operand_address): Rename to...
906         (v850_print_operand_address): ...this.  Make static. Call
907         v850_print_operand.
908         (print_operand): Rename to...
909         (v850_print_operand): ...this.  Make static.  Call
910         v850_print_operand_address.
911         (v850_print_operand_punct_valid_p): New function.
912         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
913         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
914
915 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
916
917         * config/sh/sh-protos.h (print_operand): Delete.
918         (print_operand_address): Delete.
919         * config/sh/sh.h (PRINT_OPERAND): Delete.
920         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
921         (PRINT_OPERAND_ADDRESS): Delete.
922         * config/sh/sh.c (sh_print_operand_address): Make static.
923         (sh_print_operand): Make static.  Call sh_print_operand_address
924         and sh_print_operand.
925         (sh_print_operand_punct_valid_p): New function.
926         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
927         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
928
929 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
930
931         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
932         (mcore_print_operand_address): Delete.
933         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
934         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
935         (PRINT_OPERAND_ADDRESS): Delete.
936         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
937         (mcore_print_operand): Make static.
938         (mcore_print_operand_punct_valid_p): New function.
939         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
940         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
941
942 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
943
944         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
945         (print_operand_address): Delete.
946         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
947         (PRINT_OPERAND_ADDRESS): Delete.
948         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
949         static.
950         (m68hc11_print_operand): Make static.
951         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
952
953 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
954
955         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
956         (m32r_print_operand_address): Delete.
957         * config/m32r/m32r.h (m32r_punct_chars): Delete.
958         (PRINT_OPERAND): Delete.
959         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
960         (PRINT_OPERAND_ADDRESS): Delete.
961         * config/m32r/m32r.c (m32r_punct_chars): Make static.
962         (m32r_print_operand_address): Make static.
963         (m32r_print_operand): Make static.
964         (m32r_print_operand_punct_valid_p): New function.
965         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
966         (TARGET_PRINT_OPERAND_ADDRESS): Define.
967
968 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
969
970         * config/iq2000/iq2000-protos.h (print_operand): Delete.
971         (print_operand_address): Delete.
972         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
973         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
974         (PRINT_OPERAND_ADDRESS): Delete.
975         (iq2000_print_operand_punct): Delete.
976         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
977         (iq2000_print_operand_address): Make static.
978         (iq2000_print_operand): Make static.
979         (iq2000_print_operand_punct_valid_p): New function.
980         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
981         (TARGET_PRINT_OPERAND_ADDRESS): Define.
982
983 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
984
985         * config/frv/frv-protos.h (frv_print_operand): Delete.
986         (frv_print_operand_address): Delete.
987         * config/frv/frv.h (PRINT_OPERAND): Delete.
988         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
989         (PRINT_OPERAND_ADDRESS): Delete.
990         * config/frv/frv.c (frv_print_operand_address): Make static.
991         (frv_print_operand): Make static.
992         (frv_print_operand_punct_valid_p): New function.
993         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
994         (TARGET_PRINT_OPERAND_ADDRESS): Define.
995
996 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
997
998         * tree.h (vec_member): Declare.
999         * tree.c (vec_member): Define.
1000
1001 2010-06-17  Richard Guenther  <rguenther@suse.de>
1002
1003         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
1004         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
1005
1006 2010-06-17  Richard Guenther  <rguenther@suse.de>
1007
1008         * tree-inline.c (declare_return_variable): Remove bogus code.
1009
1010 2010-06-17  Richard Guenther  <rguenther@suse.de>
1011
1012         * gimplify.c (gimplify_bind_expr): Always promote complex
1013         and vector variables to registers if possible.
1014
1015 2010-06-17  Richard Guenther  <rguenther@suse.de>
1016
1017         * expr.c (get_inner_reference): Use double_int for bit_offset
1018         calculation.
1019
1020 2010-06-16  DJ Delorie  <dj@redhat.com>
1021
1022         * common.opt (-fstrict-volatile-bitfields): new.
1023         * doc/invoke.texi: Document it.
1024         * fold-const.c (optimize_bit_field_compare): For volatile
1025         bitfields, use the field's type to determine the mode, not the
1026         field's size.
1027         * expr.c (expand_assignment): Likewise.
1028         (get_inner_reference): Likewise.
1029         (expand_expr_real_1): Likewise.
1030         * expmed.c (store_fixed_bit_field): Likewise.
1031         (extract_bit_field_1): Likewise.
1032         (extract_fixed_bit_field): Likewise.
1033
1034 2010-06-16  Richard Guenther  <rguenther@suse.de>
1035
1036         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
1037
1038 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
1039
1040         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
1041         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
1042         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
1043         * debug.c: Likewise.
1044         * sdbout.c: Likewise.
1045         * vmsdbgout.c: Likewise.
1046         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
1047         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
1048         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
1049         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
1050         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
1051         * dwarf2out.c (dw_fde_struct): New fields
1052         dw_fde_vms_{end,begin}_prologue.
1053         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
1054         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
1055         (dwarf2out_vms_end_prologue): New function.
1056         (dwarf2out_vms_begin_epilogue): New function.
1057         (dw_val_struct): New value dw_val_class_vms_delta.
1058         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
1059         begin_epilogue for VMS.
1060         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
1061         new static functions.
1062         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
1063         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
1064         static functions.
1065         (print_die): New case dw_val_class_vms_delta.
1066         (attr_checksum): Likewise.
1067         (same_dw_val_p: Likewise.
1068         (size_of_die): Likewise.
1069         (value_format): Likewise.
1070         (output_die): Likewise.
1071         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
1072         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
1073         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
1074         dwarf2out_cfi_begin_epilogue
1075         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
1076
1077 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
1078
1079         * config/cris/cris-protos.h (cris_print_operand): Delete.
1080         (cris_print_operand_address): Delete.
1081         * config/cris/cris.h (PRINT_OPERAND): Delete.
1082         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1083         (PRINT_OPERAND_ADDRESS): Delete.
1084         * config/cris/cris.c (cris_print_operand_address): Make static.
1085         (cris_print_operand): Make static.
1086         (cris_print_operand_punct_valid_p): New function.
1087         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1088         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1089
1090 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
1091
1092         * config/arm/arm-protos.h (arm_print_operand): Delete.
1093         (arm_print_operand_address): Delete.
1094         * config/arm/arm.h (PRINT_OPERAND): Delete.
1095         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1096         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
1097         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
1098         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
1099         (arm_print_operand): Make static.
1100         (arm_print_operand_punct_valid_p): New function.
1101         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1102         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1103
1104 2010-06-16  Nick Clifton  <nickc@redhat.com>
1105
1106         * config/rx/constraints.md (NEGint4): New constraint.
1107         * config/rx/rx.md (attr cc): Add set_zsc.
1108         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
1109         initialised.
1110         (cmpsf): Likewise.
1111         (call_internal): Clobber the cc0 register.
1112         (call_value_internal): Likewise.
1113         (cstoresi4): Likewise.
1114         (movsieq): Likewise.
1115         (movsine): Likewise.
1116         (addsi3): Add alternative to handle small negative constants.
1117         (sunsi3): Likewise.
1118         (addsi3): Do not set the O bit in the cc0 register.
1119         (adddi3): Likewise.
1120         (subsi3): Likewise.
1121         (subdi3): Likewise.
1122         (andsi3): Reorder alternatives to prefer shorter forms.
1123         (mulsi3): Likewise.
1124         (iorsi3): Likewise.
1125         (negsi2): Note that the cc0 flags are set.
1126         (rotlsi3): Note that only the Z and S bits are set in cc0.
1127         (lshrsi3): Likewise.
1128         (ashlsi3): Likewise.
1129         (subsf3): Use %Q for the MEM operand.
1130         (fix_truncsfsi2): Likewise.
1131         (floatsisf2): Likewise.
1132         (bitset): Remove early clobber from destination.
1133         (bitset_in_memory): Likewise.
1134         (lrintsf2): Clobber the cc0 register.
1135         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
1136         (rx_print_operand): Handle %N.
1137
1138 2010-06-16  Jan Hubicka  <jh@suse.cz>
1139
1140         * df-core.c (df_compact_blocks): Free problem_temps vector.
1141
1142 2010-06-16  Martin Jambor  <mjambor@suse.cz>
1143
1144         PR tree-optimization/43905
1145         * tree-sra.c: Include tree-inline.h.
1146         (create_abstract_origin): Removed.
1147         (modify_function): Version the call graph node instead of creating
1148         abstract origins and dealing with same_body aliases.
1149         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
1150         function is versionable.
1151         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
1152
1153 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
1154
1155         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
1156         (CHOOSE_DYNAMIC_LINKER): Update.
1157
1158 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
1159
1160         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
1161         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
1162         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
1163         *prefetch_3dnow_rex.
1164
1165 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
1166
1167         * target.h (struct asm_out):Add declare_constant_name field.
1168         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
1169         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
1170         * output.h (default_asm_declare_constant_name): Declare.
1171         (assemble_label): Update prototype.
1172         * varasm.c (assemble_constant_contents): Use
1173         targetm.asm_out.declare_constant_name target hook.
1174         (assemble_label): Add 'file' argument.
1175         (default_asm_declare_constant_name): New function.
1176         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
1177         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
1178         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
1179
1180         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
1181         * config/darwin.c (darwin_asm_declare_constant_name): New function.
1182         (machopic_output_indirection): Update assemble_label argument list.
1183         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
1184         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
1185
1186 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
1187
1188         PR middle-end/44391
1189         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
1190         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
1191
1192 2010-06-15  Richard Guenther  <rguenther@suse.de>
1193
1194         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
1195
1196 2010-06-15  Paul Brook  <paul@codesourcery.com>
1197
1198         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
1199         hard-float ABI.
1200
1201 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
1202
1203         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
1204         don't get a vector type for output.
1205
1206 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR fortran/44536
1209         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
1210         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
1211         (LANG_HOOKS_DECLS): Add it.
1212         * gimplify.c (omp_notice_variable): Call
1213         lang_hooks.decls.omp_report_decl.
1214
1215 2010-06-15  Martin Jambor  <mjambor@suse.cz>
1216
1217         PR lto/44464
1218         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
1219         on the newly dead SSA name.
1220
1221 2010-06-15  Alan Modra  <amodra@gmail.com>
1222
1223         * doc/invoke.texi: Add mcmodel to powerpc options.
1224         * configure.ac: Add HAVE_LD_LARGE_TOC test.
1225         * configure: Regenerate.
1226         * config.in: Regenerate.
1227         * config/rs6000/linux64.opt (mcmodel): New.
1228         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
1229         (TARGET_CMODEL, SET_CMODEL): Define.
1230         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
1231         select CMODEL_MEDIUM default.
1232         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
1233         (TARGET_CMODEL): Define default.
1234         * config/rs6000/rs6000.c (cmodel): New variable.
1235         (rs6000_explicit_options): Add cmodel field.
1236         (rs6000_handle_option): Handle -mcmodel.
1237         (create_TOC_reference): Add largetoc_reg param.  Generate high,
1238         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
1239         (rs6000_delegitimize_address): Recognise new toc reference rtl
1240         and minimal-toc rtl.
1241         (rs6000_legitimize_reload_address): Handle new toc references.
1242         (print_operand_address): Handle legitimate_constant_pool_address_p
1243         match before lo_sum.
1244         (rs6000_eliminate_indexed_memrefs): Tidy.
1245         (rs6000_emit_move): Tweak threshold for inlining constants.
1246         Keep rs6000_emit_allocate_stack large stack frame offsets
1247         loaded into r0 inline.
1248         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
1249         (tocrel_base, tocrel_offset): New variables.
1250         (toc_relative_expr_p): Set them here.
1251         (print_operand_address): Skip over any offset on constant pool address.
1252         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
1253         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
1254         (offsettable_ok_by_alignment): New function.
1255         (rs6000_emit_move): Address suitably aligned local symbol_refs
1256         relative to the toc pointer for -mcmodel=medium.
1257         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
1258         strict param.  Allow lo_sum version of addressing.  Verify reg
1259         used for -mminimal-toc and -mcmodel != small.  Update all callers.
1260         * config/rs6000/constraints.md: Update for above change.
1261         * config/rs6000/predicates.md: Likewise.
1262         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
1263         code.
1264         (tls_gd): Split for -mcmodel=medium/large.
1265         (tls_gd_high, tls_gd_low): New.
1266         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
1267         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
1268         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
1269         (largetoc_high, largetoc_low): New.
1270         (cmptf_internal2): Add clobber.
1271         * config/rs6000/rs6000-protos.h: Update.
1272
1273 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
1274
1275         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
1276         true if no prefetch is going to be generated for a given group.
1277         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
1278         estimate the prefetch_count.
1279         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
1280         prefetch count by considering the unroll_factor and prefetch_mod
1281         for is_loop_prefetching_profitable.
1282
1283 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
1284
1285         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
1286         anything if the argument is not a MEM.
1287
1288 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1289
1290         PR debug/43650
1291         PR debug/44181
1292         PR debug/44247
1293         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
1294         debug stmts.
1295         (canonicalize_loop_ivs): Likewise.
1296
1297 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1298
1299         PR debug/43656
1300         * haifa-sched.c (setup_insn_reg_pressure_info,
1301         update_register_pressure): Reject debug insns.
1302         (ready_sort): Don't setup reg pressure for debug insns.
1303         (schedule_insn): Don't update reg pressure for debug insns.
1304
1305 2010-06-14  Richard Guenther  <rguenther@suse.de>
1306
1307         * lto-streamer.c (cached_bp): Remove.
1308         (bitpack_delete): Likewise.
1309         (bitpack_create): Likewise.
1310         (bp_get_next_word): Likewise.
1311         (bp_pack_value, bp_unpack_value): Move ...
1312         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
1313         Re-implement.
1314         (struct bitpack_d): Likewise.
1315         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
1316         New inline functions.
1317         * lto-streamer-out.c (lto_output_bitpack): Remove.
1318         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1319         (pack_value_fields): Adjust.
1320         (lto_write_tree): Likewise.
1321         (output_gimple_stmt): Likewise.
1322         (output_function): Likewise.
1323         * lto-streamer-in.c (input_gimple_stmt): Adjust.
1324         (input_function): Likewise.
1325         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1326         (lto_input_bitpack): Remove.
1327         (lto_materialize_tree): Adjust.
1328         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
1329         * lto-cgraph.c (lto_output_edge): Adjust.
1330         (lto_output_node): Likewise.
1331         (lto_output_varpool_node): Likewise.
1332         (lto_output_ref): Likewise.
1333         (input_node): Likewise.
1334         (input_varpool_node): Likewise.
1335         (input_ref): Likewise.
1336         (input_edge): Likewise.
1337         (output_node_opt_summary): Likewise.
1338         (input_node_opt_summary): Likewise.
1339         * ipa-pure-const.c (pure_const_write_summary): Likewise.
1340         (pure_const_read_summary): Likewise.
1341         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
1342         (ipa_read_indirect_edge_info): Likewise.
1343         (ipa_write_node_info): Likewise.
1344         (ipa_read_node_info): Likewise.
1345
1346 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1347
1348         PR target/44534
1349         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
1350         (vec_extract_lo_v16hi): Likewise.
1351         (vec_extract_lo_v32qi): Likewise.
1352
1353 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1354
1355         PR bootstrap/44426
1356         * tree.h (build_call_expr): Don't define as vararg macro, instead
1357         add a prototype.
1358         * builtins.c (build_call_nofold): Remove.
1359         (expand_builtin_int_roundingfn, expand_builtin_pow,
1360         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
1361         expand_builtin_memset_args, expand_builtin_strcmp,
1362         expand_builtin_strncmp, expand_builtin_memory_chk): Use
1363         build_call_nofold_loc instead of build_call_nofold.
1364         (build_call_expr): New function.
1365
1366         PR tree-optimization/44508
1367         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
1368         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
1369         don't eliminate trivially dead stmts.
1370         * tree-vrp.c (vrp_finalize): Pass false as last argument
1371         to substitute_and_fold.
1372         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
1373         to substitute_and_fold.
1374         * tree-ssa-ccp.c (ccp_finalize): Likewise.
1375
1376         PR bootstrap/44509
1377         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
1378         * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
1379         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
1380         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
1381         ggc_strdup instead of xstrdup.
1382
1383 2010-06-14  Ira Rosen  <irar@il.ibm.com>
1384
1385         PR tree-optimization/44507
1386         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
1387         to build initial vector for BIT_AND_EXPR.
1388         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1389
1390 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1391
1392         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
1393         adjust z10prop set_attr.
1394
1395 2010-06-13  Jan Hubicka  <jh@suse.cz>
1396
1397         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
1398         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
1399         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
1400         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
1401         datastructure checks into checking asserts.
1402         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
1403         * tree-ssa-sccvn.c (VN_INFO): Likewise.
1404         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
1405         df_ref_create_structure): Likewise.
1406         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
1407         pool_free): Use gcc_checking_assert.
1408         * alias.c (get_alias_set): Likewise.
1409         * var-tracking.c (variable_htab_free, shared_hash_copy,
1410         canonicalize_values_mark, variable_merge_over_cur): Likewise.
1411         * lto-streamer.c (bp_unpack_value): Likewise.
1412
1413 2010-06-13  Richard Guenther  <rguenther@suse.de>
1414
1415         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
1416         Do not stream but initialize TYPE_CANONICAL to NULL.
1417         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
1418         * gimple.c (gimple_types_compatible_p): Disregard
1419         TYPE_STRUCTURAL_EQUALITY_P.
1420         (gimple_register_type): Use TYPE_CANONICAL as cache.
1421         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
1422         before registering common types.
1423         * config/i386/i386.c (ix86_function_arg_boundary): Do not
1424         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
1425         * tree.h (TYPE_CANONICAL): Clarify documentation.
1426
1427 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
1428
1429         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1430         LIBCALL_VALUE): Remove macros.
1431         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
1432         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1433         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1434         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
1435         (ia64_function_value): Make static. Handle receiving the function
1436         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
1437
1438 2010-06-12  Jan Hubicka  <jh@suse.cz>
1439
1440         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
1441         at correct place.
1442
1443 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
1444
1445         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
1446
1447 2010-06-12  Jan Hubicka  <jh@suse.cz>
1448
1449         * df-core.c (df_clear_bb_info): New function.
1450         (df_set_blocks): bb_info is always allocated.
1451         (df_get_bb_info): Use block_info_elt_size.
1452         (df_set_bb_info): Likewise.
1453         (df_compact_blocks): Update for new block_info.
1454         (grow_bb_info): New function.
1455         * df-problems.c (df_grow_bb_info): Move to df-core.c
1456         (df_rd_set_bb_info): Remove.
1457         (df_rd_free_bb_info): Do not free block pool.
1458         (df_rd_alloc): Do not create pool, use check for
1459         obstack presence instead of NULL pointer for new blocks.
1460         (df_rd_free): DO not free alloc pool; clear block_info.
1461         (problem_RD): Add size of block info structure.
1462         (df_lr_set_bb_info): Remove.
1463         (df_lr_free_bb_info): Do not free block pool.
1464         (df_lr_alloc): Do not create pool, use check for
1465         obstack presence instead of NULL pointer for new blocks.
1466         (df_lr_free): DO not free alloc pool; clear block_info.
1467         (problem_LR): Add size of block info structure.
1468         (df_live_set_bb_info): Remove.
1469         (df_live_free_bb_info): Do not free block pool.
1470         (df_live_alloc): Do not create pool, use check for
1471         obstack presence instead of NULL pointer for new blocks.
1472         (df_live_free): DO not free alloc pool; clear block_info.
1473         (problem_LIVE): Add size of block info structure.
1474         (problem_CHAIN): Add size of block info structure.
1475         (df_byte_lr_set_bb_info): Remove.
1476         (df_byte_lr_free_bb_info): Do not free block pool.
1477         (df_byte_lr_alloc): Do not create pool, use check for
1478         obstack presence instead of NULL pointer for new blocks.
1479         (df_byte_lr_free): DO not free alloc pool; clear block_info.
1480         (problem_BYTE_LR): Add size of block info structure.
1481         (problem_NOTE): Add size of block info structure.
1482         (df_byte_MD_set_bb_info): Remove.
1483         (df_byte_MD_free_bb_info): Do not free block pool.
1484         (df_byte_MD_alloc): Do not create pool, use check for
1485         obstack presence instead of NULL pointer for new blocks.
1486         (df_byte_MD_free): DO not free alloc pool; clear block_info.
1487         (problem_BD): Add size of block info structure.
1488         * df-scan.c (df_scan_free_internal): Free block pool.
1489         (df_scan_set_bb_info): Remove.
1490         (df_scan_free_bb_info): Check for artificial_defs instead
1491         of bb_info being non-NULL.
1492         (df_scan_alloc): DO not create df_scan_block pool.
1493         (problem_SCAN): Set size of block info.
1494         (df_bb_refs_record): Do not allocate bb_info.
1495         * df.h (df_problem): Add block_info_elt_size.
1496         (struct dataflow): Change block_info to void *.
1497         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
1498         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
1499         in-line structures.
1500
1501 2010-06-12  Jan Hubicka  <jh@suse.cz>
1502
1503         PR tree-optimize/44485
1504         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
1505         containing use of return value of noreturn function.
1506
1507 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
1508
1509         * targhooks.c (default_function_value): Don't use
1510         FUNCTION_OUTGOING_VALUE.
1511         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
1512         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
1513
1514 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
1515
1516         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
1517         Add crtfastmath.o to extra_parts.
1518         * config/mips/crtfastmath.c: New.
1519         * config/mips/linux.h (ENDFILE_SPEC): New.
1520
1521 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
1522
1523         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
1524         old_type in parameter.
1525         (gcc_type_for_value): Update call to gcc_type_for_interval.
1526         (compute_type_for_level_1): Renamed compute_type_for_level.
1527         Update call to gcc_type_for_interval.
1528
1529 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1530
1531         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
1532         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
1533
1534 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1535
1536         * opts-common.c: Include options.h.
1537         (integral_argument): Move from opts.c.
1538         (decode_cmdline_option): New.  Based on read_cmdline_option.
1539         * opts.c (integral_argument): Move to opts-common.c.
1540         (read_cmdline_option): Move most contents to
1541         decode_cmdline_option.  Use %qs in diagnostics.
1542         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
1543         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
1544         decode_cmdline_option): New.
1545
1546 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1547
1548         PR target/44481
1549         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
1550         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
1551         (partiysi2_cmp): Ditto.
1552         (*partiyhi2_cmp): Ditto.
1553         (*parityqi2_cmp): Remove.
1554
1555 2010-06-11  Jan Hubicka  <jh@suse.cz>
1556
1557         * bitmap.h (bmp_iter_next_bit): New.
1558         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
1559
1560 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
1561             Eric Botcazou  <ebotcazou@adacore.com>
1562
1563         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
1564         computed cost.
1565
1566 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1567
1568         * config/i386/i386.md (unspec): New define_c_enum.
1569         (unspecv): Ditto.
1570
1571 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
1572
1573         * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
1574         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
1575         (lazy_hex_fp_value): New function.
1576         (builtin_define_with_hex_fp_value): Provide definitions lazily.
1577         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
1578
1579 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
1580
1581         PR middle-end/44483
1582         * tree-if-conv.c (bb_predicate_s): New struct.
1583         (bb_predicate_p): New.
1584         (bb_has_predicate): New.
1585         (bb_predicate): New.
1586         (set_bb_predicate): New.
1587         (bb_predicate_gimplified_stmts): New.
1588         (set_bb_predicate_gimplified_stmts): New.
1589         (add_bb_predicate_gimplified_stmts): New.
1590         (init_bb_predicate): New.
1591         (free_bb_predicate): New.
1592         (is_predicated): Use bb_predicate.
1593         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
1594         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
1595         before processing their successors.
1596         (clean_predicate_lists): Removed.
1597         (find_phi_replacement_condition): Use bb_predicate.
1598         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
1599         computations.
1600         (insert_gimplified_predicates): New.
1601         (combine_blocks): Call insert_gimplified_predicates.
1602         (tree_if_conversion): Call free_bb_predicate instead of
1603         clean_predicate_lists.
1604
1605 2010-10-11  Paul Brook  <paul@codesourcery.com>
1606
1607         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
1608         * config/arm/arm.c (all_architectures): Change v7e-m default to
1609         cortexm4.
1610         * config/arm/arm-cores.def: Add cortex-m4.
1611         * config/arm/arm-tune.md: Regenerate.
1612
1613 2010-06-11  Jan Hubicka  <jh@suse.cz>
1614
1615         * ipa-pure-const.c (special_builtlin_state): New function.
1616         (check_call): Use it instead of special casign BUILT_IN_RETURN.
1617         (propagate_pure_const): Use it.
1618
1619 2010-06-11  Jan Hubicka  <jh@suse.cz>
1620
1621         * df-problems.c (df_live_scratch): Convert to bitmap_head.
1622         (df_live_alloc): Initialize df_live_scratch when initializing
1623         problem_data.
1624         (df_live_transfer_function): Update uses of df_live_scratch.
1625         (df_live_free): Free problem_data; clear df_live_scratch before
1626         releasing the obstack.
1627         (df_md_free): Free problem data.
1628
1629 2010-06-11  Jan Hubicka  <jh@suse.cz>
1630
1631         * doc/invoke.texi (Wsuggest-attribute): Document.
1632         (Wmissing-noreturn): Remove.
1633         * ipa-pure-const.c (warn_function_noreturn): New function.
1634         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
1635         warn_missing_noreturn.
1636         * common.opt (Wsuggest-attribute=noreturn): New.
1637         * tree-flow.h (warn_function_noreturn): Declare.
1638         * tree-cfg.c (execute_warn_function_noreturn): Use
1639         warn_function_noreturn.
1640         (gate_warn_function_noreturn): New.
1641         (pass_warn_function_noreturn): Update.
1642
1643 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1644
1645         * c-typeck.c (handle_warn_cast_qual): Add loc
1646         parameter. Improve warning message.
1647         (build_c_cast): Pass location to handle_warn_cast_qual.
1648
1649 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1650
1651         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
1652         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
1653         insn mnemonic.
1654         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
1655
1656 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
1657
1658         Fix bootstap on mips
1659         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
1660         be naming typedefs.
1661
1662 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
1663
1664         * system.h (helper_const_non_const_cast): New inline for
1665         gcc version <= 4.0.
1666         (CONST_CAST2): For gcc version <= 4.0 use
1667         new helper to do const/non-const casting.
1668
1669 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1670
1671         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
1672         * Makefile.in (OBJS-common): Include insn-enums.o.
1673         (insn-enums.o): New rule.
1674         (simple_generated_c): Add insn-enums.c.
1675         (build/genenums.o): New rule.
1676         (genprogmd): Add "enums".
1677         * genconstants.c (print_enum_type): Declare a C string array
1678         for each enum.
1679         * genenums.c: New file.
1680         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
1681         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
1682         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
1683
1684 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1685
1686         * doc/md.texi (define_enum_attr): Document.
1687         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
1688         * read-md.h (lookup_enum_type): Declare.
1689         * read-md.c (lookup_enum_type): New function.
1690         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
1691         * genattrtab.c (attr_desc): Add an enum_name field.
1692         (evaluate_eq_attr): Take the associated attribute as argument.
1693         Get the enum prefix from the enum_name field, if defined.
1694         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
1695         (simplify_test_exp): Pass attr to evaluate_eq_attr.
1696         (add_attr_value): New function, split out from...
1697         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
1698         (write_test_expr): Pass attr to evaluate_eq_attr.
1699         (write_attr_get): Use the enum_name as the enum tag, if defined.
1700         (write_attr_valueq): Use the enum_name as a prefix, if defined.
1701         (find_attr): Initialize enum_name.
1702         (main): Handle DEFINE_ENUM_ATTR.
1703         * gensupport.c (process_rtx): Likewise.
1704         * config/mips/mips.h (mips_tune_attr): Delete.
1705         * config/mips/mips.md (cpu): Use define_attr_enum.
1706
1707 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1708
1709         * doc/md.texi (define_c_enum, define_enum): Document.
1710         * read-md.h (md_constant): Add a parent_enum field.
1711         (enum_value, enum_type): New structures.
1712         (upcase_string, traverse_enum_types): Declare.
1713         * read-md.c (enum_types): New variable.
1714         (upcase_string, add_constant): New functions.
1715         (handle_constants): Don't create the hash table here.
1716         Use add_constant.
1717         (traverse_md_constants): Don't check for a null md_constants.
1718         (decimal_string, handle_enum, traverse_enum_types): New functions.
1719         (read_md_files): Initialize md_constants and md_enums.
1720         * genconstants.c (print_md_constant): Ignore info argument.
1721         Only print constants that belong to no enum.
1722         (print_enum_type): New function.
1723         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
1724         for each defined enum type.
1725         * config/mips/mips.md (processor): New define_enum.
1726         (unspec): New define_c_enum.
1727         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
1728         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
1729         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
1730         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
1731         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
1732         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
1733         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
1734         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
1735         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
1736         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
1737         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
1738         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
1739         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
1740         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
1741         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
1742         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
1743         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
1744         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
1745         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
1746         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
1747         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
1748         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
1749         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1750         (UNSPEC_RDDSP): Move to mips-dsp.md.
1751         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
1752         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
1753         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
1754         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
1755         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
1756         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
1757         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
1758         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
1759         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
1760         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
1761         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
1762         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
1763         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
1764         Moved to mips-dspr2.md.
1765         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
1766         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
1767         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
1768         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
1769         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
1770         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
1771         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1772         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1773         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1774         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1775         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1776         UNSPEC_LOONGSON_PSADBH)
1777         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1778         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1779         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
1780         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1781         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1782         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1783         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
1784         (cpu): Update comment.
1785         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
1786         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
1787         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
1788         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
1789         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
1790         UNSPEC_LOONGSON_PCMPEQ)
1791         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
1792         UNSPEC_LOONGSON_PINSR_0)
1793         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1794         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1795         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1796         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1797         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1798         UNSPEC_LOONGSON_PSADBH)
1799         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1800         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1801         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
1802         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1803         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1804         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1805         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
1806         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
1807         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
1808         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
1809         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
1810         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
1811         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
1812         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
1813         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
1814         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
1815         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
1816         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
1817         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
1818         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
1819         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
1820         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
1821         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
1822         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
1823         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
1824         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
1825         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1826         (UNSPEC_RDDSP): Moved from mips.md.
1827         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
1828         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
1829         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
1830         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
1831         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
1832         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
1833         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
1834         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
1835         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
1836         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
1837         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
1838         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
1839         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
1840         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
1841         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
1842         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
1843         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
1844         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
1845         (UNSPEC_SCC): Moved from mips.md.
1846         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
1847         "processor_type" to "processor".
1848         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
1849         * config/mips/mips.h (processor_type): Delete.
1850         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
1851         "processor_type" to "processor".
1852
1853 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1854
1855         * configure.ac (tm_include_list): Add insn-constants.h.
1856         * configure: Regenerate.
1857         * Makefile.in (GTM_H): Move insn-constants.h here from...
1858         (TM_H): ...here.
1859         * mkconfig.sh: Remove special handling for insn-constants.h.
1860
1861 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1862
1863         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
1864         (BUILD_MD): ...this new variable.
1865         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
1866         that include the old contents of simple_generated_h and
1867         simple_generated_c.
1868         (simple_generated_h, simple_generated_c): Include them.  Add
1869         insn-constants.h.
1870         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
1871         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
1872         Remove these dependencies from the main rule and include
1873         insn-conditions.md in the command line only if it appears
1874         in the dependency list.
1875         (insn-constants.h, s-constants): Delete.
1876         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
1877         or gensupport.h.
1878         (build/genmddeps.o): Likewise.
1879         (genprogrtl): New variable that contains everything from genprogmd
1880         except mddeps and constants.
1881         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
1882         depend on $(BUILD_MD)
1883         (genprog): New variable.  Make these programs depend on
1884         $(BUILD_ERRORS).
1885         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
1886         (main): Use read_md_files instead of init_rtx_reader_args.
1887         * genconstants.c: As for genmddeps.c.
1888         * read-md.h (read_skip_construct): Declare.
1889         * read-md.c (read_skip_construct): New function.
1890         (handle_file): Allow a null handle_directive, skipping the
1891         construct if so.
1892         (parse_include): Update the comment accordingly.
1893
1894 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1895
1896         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
1897         * genmddeps.c: Include read-md.h.
1898         (main): Call init_rtx_reader_args instead of init_md_reader_args.
1899         * genattr.c (main): Likewise.
1900         * genattrtab.c (main): Likewise.
1901         * genautomata.c (main): Likewise.
1902         * gencodes.c (main): Likewise.
1903         * genconditions.c (main): Likewise.
1904         * genconfig.c (main): Likewise.
1905         * genconstants.c (main): Likewise.
1906         * genemit.c (main): Likewise.
1907         * genextract.c (main): Likewise.
1908         * genflags.c (main): Likewise.
1909         * genopinit.c (main): Likewise.
1910         * genoutput.c (main): Likewise.
1911         * genpeep.c (main): Likewise.
1912         * genrecog.c (main): Likewise.
1913         * genpreds.c (main): Likewise.
1914         * gensupport.h (in_fname): Move to read-md.h.
1915         (init_md_reader_args_cb): Rename to...
1916         (init_rtx_reader_args_cb): ...this and return a bool.
1917         (init_md_reader_args): Rename to...
1918         (init_rtx_reader_args): ...this and return a bool.
1919         (include_callback): Move to read-md.h.
1920         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
1921         (file_name_list, first_dir_md_include): Move to read-md.c
1922         (first_bracket_include): Delete unused variable.
1923         (last_dir_md_include): Move to read-md.c.
1924         (process_include): Delete, moving code to read-md.c:handle_include.
1925         (process_rtx): Don't handle INCLUDE.
1926         (save_string): Delete.
1927         (rtx_handle_directive): New function.
1928         (init_md_reader_args_cb): Rename to...
1929         (init_rtx_reader_args_cb): ...this and return a boolean success value.
1930         Use read_md_args.
1931         (init_md_reader_args): Rename to...
1932         (init_rtx_reader_args): ...this and return a boolean success value.
1933         * rtl.def (INCLUDE): Delete.
1934         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
1935         argument.
1936         * read-rtl.c (read_conditions): Don't gobble ')' here.
1937         (read_mapping): Likewise.
1938         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
1939         Handle top-level non-rtx constructs here rather than in read_rtx_1.
1940         Store the whole queue in *X.  Remove call to init_md_reader.
1941         (read_rtx_1): Rename to...
1942         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
1943         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
1944         here.
1945         (read_nested_rtx): New function.  Handle (nil) here rather than
1946         in read_rtx_code.
1947         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
1948         gobble ')' here.
1949         * read-md.h (directive_handler_t): New type.
1950         (in_fname, include_callback): Moved from read-md.h.
1951         (read_constants, init_md_reader): Delete.
1952         (read_md_files): Declare.
1953         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
1954         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
1955         from gensupport.c.
1956         (read_constants): Rename to...
1957         (handle_constants): ...this.  Don't gobble ')' here.
1958         (handle_include, handle_file, handle_toplevel_file)
1959         (parse_include): New functions, mostly taken from gensupport.c.
1960         (init_md_reader): Subsume into...
1961         (read_md_files): ...this new function.
1962
1963 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1964
1965         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
1966         (unread_char): Decrement read_md_lineno after putting back '\n'.
1967         * read-md.c (fatal_with_file_and_line): Push back any characters
1968         that we decide not to add to the context.
1969         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
1970         fatal_expected_char in cases where '/' ends a line (for example).
1971         (read_name): Don't increment read_md_lineno here.
1972         (read_escape): Likewise.
1973         (read_quoted_string): Likewise.
1974         (read_braced_string): Likewise.
1975
1976 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1977
1978         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
1979         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
1980         * genconstants.c: Include read-md.h.
1981         * read-rtl.c (md_constants): Move to read-md.c.
1982         (md_name): Move to read-md.h.
1983         (initialize_iterators): Use leading_string_hash instead of def_hash
1984         and leading_string_eq_p instead of def_name_eq_p.
1985         (read_name): Move to read-md.c.
1986         (def_hash, def_name_eq_p): Delete.
1987         (read_constants, traverse_md_constants): Move to read-md.c.
1988         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
1989         * read-md.h: Include hashtab.h.
1990         (md_name): Moved from read-rtl.c.
1991         (md_constant): Moved from read-md.h.
1992         (leading_string_hash, leading_string_eq_p, read_name)
1993         (read_constants, traverse_md_constants): Declare.
1994         * read-md.c (md_constants): Moved from read-rtl.c.
1995         (leading_string_hash, leading_string_eq_p): New functions.
1996         (read_name, read_constants, traverse_md_constants): Moved from
1997         read-rtl.c.
1998
1999 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2000
2001         * read-rtl.c (md_name): New structure.
2002         (read_name): Take an md_name instead of a buffer pointer.
2003         Use the "string" field instead of strcpy when expanding constants.
2004         (read_constants): Remove the tmp_char argument.  Update the calls
2005         to read_name, using two local name buffers instead of the tmp_char
2006         argument.  Merge the constant-creation code.
2007         (read_conditions): Remove the tmp_char argument.  Update the calls
2008         to read_name, using a local name buffer instead of the tmp_char
2009         argument.
2010         (read_mapping): Replace tmp_char variable with a local name buffer.
2011         Update the calls to read_name.
2012         (read_rtx_1): Likewise.  Update the calls to read_constants and
2013         read_conditions.
2014
2015 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2016
2017         * Makefile.in (build/read-md.o): Depend on errors.h.
2018         * read-md.h (error_with_line): Declare.
2019         * read-md.c: Include errors.h.
2020         (message_with_line_1): New function, extracted from...
2021         (message_with_line): ...here.
2022         (error_with_line): New function.
2023         * genattrtab.c: If a call to message_with_line is followed by
2024         "have_error = 1;", replace both statements with a call to
2025         error_with_line.
2026         * genoutput.c: Likewise.
2027         * genpreds.c: Likewise.
2028         * genrecog.c: If a call to message_with_line is followed by
2029         "error_count++;", replace both statements with a call to
2030         error_with_line.
2031         (errorcount): Delete.
2032         (main): Don't check it.
2033         * gensupport.c: If a call to message_with_line is followed by
2034         "errors = 1;", replace both statements with a call to error_with_line.
2035         (errors): Delete.
2036         (process_define_cond_exec): Check have_error instead of errors.
2037         (init_md_reader_args_cb): Likewise.  Don't set errors.
2038
2039 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2040
2041         * read-md.h (read_md_file): Declare.
2042         (read_char, unread_char): New functions.
2043         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
2044         (read_quoted_string, read_string): Remove FILE * argument.
2045         * read-md.c (read_md_file): New variable.
2046         (read_md_filename, read_md_lineno): Update comments and remove
2047         unnecessary initialization.
2048         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
2049         (read_escape, read_quoted_string, read_braced_string, read_string):
2050         Remove FILE * argument.  Update calls accordingly, using read_char
2051         and unread_char instead of getc and ungetc.
2052         * rtl.h (read_rtx): Remove FILE * argument.
2053         * read-rtl.c (iterator_group): Remove FILE * argument from
2054         "find_builtin".
2055         (iterator_traverse_data): Remove "infile" field.
2056         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
2057         (add_mapping, read_name, read_constants, read_conditions)
2058         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
2059         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
2060         Remove file arguments from all calls, using read_char and unread_char
2061         instead of getc and ungetc.
2062         * gensupport.c (process_include): Preserve read_md_file around
2063         the include.  Set read_md_file to the handle of the included file.
2064         Update call to read_rtx.
2065         (init_md_reader_args_cb): Set read_md_file to the handle of the file
2066         and remove local FILE *.  Update calls to read_rtx.
2067
2068 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2069
2070         * read-md.h (read_rtx_lineno): Rename to...
2071         (read_md_lineno): ...this.
2072         (read_rtx_filename): Rename to...
2073         (read_md_filename): ...this.
2074         (copy_rtx_ptr_loc): Rename to...
2075         (copy_md_ptr_loc): ...this.
2076         (print_rtx_ptr_loc): Rename to...
2077         (print_md_ptr_loc): ...this.
2078         * read-md.c: Likewise.  Update references after renaming.
2079         (string_obstack): Replace RTL with MD in comment.
2080         (set_rtx_ptr_loc): Rename to...
2081         (set_md_ptr_loc): ...this.
2082         (get_rtx_ptr_loc): Rename to...
2083         (get_md_ptr_loc): ...this.
2084         * genconditions.c: Update references after renaming.
2085         * genemit.c: Likewise.
2086         * genoutput.c: Likewise.
2087         * genpreds.c: Likewise.
2088         * gensupport.c: Likewise.
2089         * read-rtl.c: Likewise.
2090
2091 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2092
2093         * Makefile.in (READ_MD_H): New variable.
2094         (BUILD_RTL): Add build/read-md.o.
2095         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
2096         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
2097         (build/genattrtab.o, build/genconditions.o build/genemit.o)
2098         (build/genextract.o, build/genflags.o, build/genoutput.o)
2099         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
2100         (build/read-md.o): New rule.
2101         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
2102         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
2103         * coretypes.h: ...here.
2104         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
2105         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
2106         * genattr.c: Include read-md.h.
2107         * genattrtab.c: Likewise.
2108         * genconditions.c: Likewise.
2109         * genemit.c: Likewise.
2110         * genextract.c: Likewise.
2111         * genflags.c: Likewise.
2112         * genoutput.c: Likewise.
2113         * genpreds.c: Likewise.
2114         * genrecog.c: Likewise.
2115         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2116         (join_c_conditions, print_c_condition, read_rtx_filename)
2117         (read_rtx_lineno): Move to read-md.h.
2118         * read-rtl.c: Include read-md.h.
2119         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
2120         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
2121         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
2122         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
2123         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2124         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
2125         (read_braced_string, read_string): Move to read-md.c.
2126         (read_rtx): Move some initialization to init_md_reader and call
2127         init_md_reader here.
2128         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
2129         Move to read-md.h.
2130         * gensupport.c: Include read-md.h.
2131         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
2132         * read-md.h, read-md.c: New files.
2133
2134 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
2135
2136         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2137         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2138         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
2139         * config/moxie/moxie.c (moxie_function_value): Make static.
2140         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
2141         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
2142
2143 2010-06-10  Martin Jambor  <mjambor@suse.cz>
2144
2145         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
2146         * dbgcnt.def (tree_sra): New counter.
2147         * tree-sra.c: Include dbgcnt.h.
2148         (gate_intra_sra): Check tree_sra debug counter.
2149
2150 2010-06-10  Martin Jambor  <mjambor@suse.cz>
2151
2152         PR tree-optimization/44258
2153         * tree-sra.c (build_access_subtree): Return false iff there is a
2154         partial overlap.
2155         (build_access_trees): Likewise.
2156         (analyze_all_variable_accesses): Disqualify candidates if
2157         build_access_trees returns true for them.
2158
2159 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
2160
2161         PR debug/41371
2162         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
2163         tail-recurse into canonical node.  Fast-forward over
2164         non-canonical VALUEs.
2165
2166 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2167
2168         PR boostrap/44470
2169         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
2170         (*addsi_1_zext) <TYPE_LEA>: Likewise.
2171         (add lea splitter): Likewise.
2172         (add_zext lea splitter): Likewise.
2173
2174 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
2175
2176         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
2177
2178 2010-06-10  Jan Hubicka  <jh@suse.cz>
2179
2180         * df-problems.c (df_live_problem_data): Add live_bitmaps.
2181         (df_live_alloc): Initialize problem data and live_osbtacks.
2182         (df_live_finalize): Remove obstack, problem data; do not
2183         clear all bitmaps.
2184         (df_live_top_dump, df_live_bottom_dump): Do not dump old
2185         data when not allocated.
2186         (df_live_verify_solution_start): Do not allocate problem data.
2187         (df_live_verify_solution_end): Check if out is allocated.
2188         (struct df_md_problem_data): New structure.
2189         (df_md_alloc): Allocate problem data.
2190         (df_md_free): Free problem data; do not clear bitmaps.
2191
2192 2010-06-10  Jan Beulich  <jbeulich@novell.com>
2193
2194         PR bootstrap/37304
2195         * configure.ac: Replace $() with ${} when intending to expand
2196         variables rather than invoking commands.
2197         * configure: Re-generate.
2198
2199 2010-06-10  Jan Hubicka  <jh@suse.cz>
2200
2201         PR rtl-optimization/44460
2202         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
2203         TYPE_NEEDS_CONSTRUCTING sanity check.
2204
2205 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2206
2207         * doc/include/fdl.texi: Move to GFDL version 1.3.
2208
2209         * doc/cpp.texi: Move to GFDL version 1.3.
2210         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
2211         * doc/gccint.texi: Move to GFDL version 1.3.
2212         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
2213         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
2214         * doc/invoke.texi: Move to GFDL version 1.3.
2215
2216 2010-06-09  Jan Hubicka  <jh@suse.cz>
2217
2218         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
2219         Break out from ...
2220         (propagate) ... here; swap the order.
2221
2222 2010-06-09  Jan Hubicka  <jh@suse.cz>
2223
2224         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
2225         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
2226         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
2227         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
2228
2229 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2230
2231         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
2232         Do not the gather memory reference in the outer loop if the step
2233         is not a constant.
2234
2235 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2236
2237         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
2238         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
2239         8 to 4.  Minor change of the related comments.
2240
2241 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2242
2243         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
2244         the scev analysis when the variable is not used outside the loop
2245         in a close phi node: call compute_overall_effect_of_inner_loop.
2246
2247 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2248
2249         * graphite-sese-to-poly.c (single_pred_cond): Renamed
2250         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
2251         (build_sese_conditions_before): Renamed call to single_pred_cond.
2252         (build_sese_conditions_after): Same.
2253
2254 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2255
2256         * graphite-poly.h: Fix comments and indentation.
2257         * graphite-sese-to-poly.c: Same.
2258         (build_sese_conditions_before): Compute stmt and gbb only when needed.
2259         * tree-chrec.c: Fix comments and indentation.
2260         (tree-ssa-loop-niter.c): Same.
2261
2262 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2263
2264         PR rtl-optimization/42461
2265         * dce.c (deletable_insn_p): Return true for const or pure calls again.
2266         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
2267
2268 2010-06-09  Jan Hubicka  <jh@suse.cz>
2269
2270         * bitmap.c (bitmap_and): Walk array forward.
2271         (bitmap_and_compl_into): Likewise.
2272         (bitmap_xor): Likewise.
2273         (bitmap_xor_into):  Likewise.
2274         (bitmap_equal_p): Likewise.
2275         (bitmap_intersect_p): Likewise.
2276         (bitmap_intersect_compl_p): Likewise.
2277         (bitmap_ior_and_into): Likewise.
2278         (bitmap_elt_copy): Likewise.
2279         (bitmap_and_compl): Likewise.
2280         (bitmap_elt_ior): Likewise.
2281
2282 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
2283
2284         * opts-common.c (prune_options): Ensure replacement argv array
2285         is correctly terminated by a NULL entry.
2286
2287 2010-06-09  Jan Hubicka  <jh@suse.cz>
2288
2289         * cgraph.h (varpool_first_static_initializer,
2290         varpool_next_static_initializer): Make checking only when
2291         checking enabled.
2292         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
2293         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
2294         gcc_assert to gcc_checking_assert.
2295         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
2296         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
2297         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
2298         op_iter_init_phiuse, op_iter_init_phidef,
2299         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
2300         gcc_checking_assert.
2301         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
2302         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
2303         partition_is_global, live_on_entry, live_on_exit,
2304         live_merge_and_clear): Likewise.
2305         * system.h (gcc_checking_assert): New macro.
2306         * gimple.h (set_bb_seq): Use gcc_checking_assert.
2307
2308 2010-06-09  Jason Merrill  <jason@redhat.com>
2309
2310         * Makefile.in (TAGS): Collect tags info from c-family.
2311
2312 2010-06-09  Jan Hubicka  <jh@suse.cz>
2313
2314         * gimple.h (gcc_gimple_checking_assert): New macro.
2315         (gimple_set_def_ops, gimple_set_use_ops,
2316         gimple_set_vuse, gimple_set_vdef,
2317         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
2318         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
2319         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
2320         gimple_asm_output_op, gimple_asm_output_op_ptr,
2321         gimple_asm_set_output_op, gimple_asm_clobber_op,
2322         gimple_asm_set_clobber_op, gimple_asm_label_op,
2323         gimple_asm_set_label_op, gimple_try_set_kind,
2324         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
2325         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
2326         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
2327         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
2328         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
2329         gimple_omp_for_set_initial, gimple_omp_for_final,
2330         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
2331         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
2332         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
2333         conditional with ENABLE_GIMPLE_CHECKING.
2334         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2335
2336 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
2337
2338         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
2339         (get_computation_cost_at): Use it.
2340         (determine_use_iv_cost_condition): Likewise.
2341         (determine_iv_cost): Likewise.
2342
2343 2010-06-09  Richard Guenther  <rguenther@suse.de>
2344
2345         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
2346         replace constants.
2347
2348 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2349
2350         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
2351
2352 2010-06-09  Martin Jambor  <mjambor@suse.cz>
2353
2354         PR tree-optimization/44423
2355         * tree-sra.c (dump_access): Dump also grp_assignment_read.
2356         (analyze_access_subtree): Pass negative allow_replacements to children
2357         if the current type is scalar.
2358
2359 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2360
2361         PR testsuite/42843
2362         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
2363         * doc/plugins.texi (Plugin license check): Update information
2364         on type of plugin_is_GPL_compatible.
2365         * Makefile.in (PLUGINCC): Define as $(COMPILER).
2366         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
2367
2368 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
2369
2370         * config/arm/arm.c (thumb2_reorg): New function.
2371         (arm_reorg): Call it.
2372         * config/arm/thumb2.md (define_peephole2 for flag clobbering
2373         arithmetic operations): Delete.
2374
2375 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
2376
2377         PR target/44067
2378         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
2379         e500v2 target.
2380
2381 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2382
2383         PR plugins/44459
2384         * gcc-plugin.h: Encapsulate all declarations in extern "C".
2385
2386 2010-06-08  Jan Hubicka  <jh@suse.cz>
2387
2388         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
2389         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
2390
2391 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
2392
2393         PR tree-optimization/39874
2394         PR middle-end/28685
2395         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
2396         Declare.
2397         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
2398         same_bool_result_p): New.
2399         (and_var_with_comparison, and_var_with_comparison_1,
2400         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
2401         (or_var_with_comparison, or_var_with_comparison_1,
2402         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
2403         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
2404         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
2405         of combine_comparisons.
2406         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
2407
2408 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
2409
2410         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2411         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2412         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
2413         pdp11_function_value_regno_p): New functions.
2414         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2415         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2416
2417 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
2418
2419         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
2420         Thumb-2 in the MINUS case.
2421
2422 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2423
2424         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
2425
2426         * doc/gty.texi (GTY Options): Document typed GC allocation and
2427         variable_size GTY option.
2428
2429         * ggc-internal.h: New.
2430
2431         * ggc.h: Update copyright year.
2432         (digit_string): Move to stringpool.c.
2433         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
2434         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
2435         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
2436         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
2437         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
2438         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
2439         (ggc_force_collect, ggc_get_size, ggc_statistics)
2440         (ggc_print_common_statistics): Move to ggc-internal.h.
2441         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
2442         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
2443         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
2444         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
2445         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
2446         (ggc_alloc_zone_pass_stat): Remove.
2447         (ggc_internal_alloc_stat, ggc_internal_alloc)
2448         (ggc_internal_cleared_alloc_stat): New.
2449         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
2450         (ggc_internal_vec_alloc_stat)
2451         (ggc_internal_cleared_vec_alloc_stat)
2452         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
2453         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
2454         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
2455         (ggc_cleared_alloc_ptr_array_two_args): New.
2456         (htab_create_ggc, splay_tree_new_ggc): Redefine.
2457         (ggc_splay_alloc): Change the type of the first argument to
2458         enum gt_types_enum.
2459         (ggc_alloc_string): Make macro.
2460         (ggc_alloc_string_stat): New.
2461         (ggc_strdup): Redefine.
2462         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
2463         (ggc_alloc_rtvec_sized): New.
2464         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
2465         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
2466         (ggc_internal_cleared_alloc_zone_stat)
2467         (ggc_internal_zone_alloc_stat)
2468         (ggc_internal_zone_cleared_alloc_stat)
2469         (ggc_internal_zone_vec_alloc_stat)
2470         (ggc_alloc_zone_rtx_def_stat)
2471         (ggc_alloc_zone_tree_node_stat)
2472         (ggc_alloc_zone_cleared_tree_node_stat)
2473         (ggc_alloc_cleared_gimple_statement_d_stat): New.
2474
2475         * ggc-common.c: Include ggc-internal.h.
2476         (ggc_internal_cleared_alloc_stat): Rename from
2477         ggc_alloc_cleared_stat.
2478         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
2479         (ggc_calloc): Remove.
2480         (ggc_cleared_alloc_htab_ignore_args): New.
2481         (ggc_cleared_alloc_ptr_array_two_args): New.
2482         (ggc_splay_alloc): Add obj_type parameter.
2483         (init_ggc_heuristics): Formatting fixes.
2484
2485         * ggc-none.c: Update copyright year.
2486         (ggc_alloc_stat): Rename to ggc_alloc_stat.
2487         (ggc_alloc_cleared_stat): Rename to
2488         ggc_internal_cleared_alloc_stat.
2489         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2490
2491         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
2492         Remove references to ggc_alloc in comments.
2493         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
2494         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
2495         (new_ggc_zone, destroy_ggc_zone): Remove.
2496         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2497
2498         * ggc-zone.c: Include ggc-internal.h.  Remove references to
2499         ggc_alloc in comments.
2500         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
2501         (ggc_internal_alloc_zone_pass_stat): New.
2502         (ggc_internal_cleared_alloc_zone_stat): New.
2503         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
2504         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
2505         (new_ggc_zone, destroy_ggc_zone): Remove.
2506
2507         * stringpool.c: Update copyright year.  Include ggc-internal.h
2508         (digit_vector): Make static.
2509         (digit_string): Moved from ggc.h.
2510         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
2511         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
2512
2513         * Makefile.in (GGC_INTERNAL_H): New.
2514         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
2515         $(GGC_INTERNAL_H) to dependencies.
2516
2517         * gentype.c: Update copyright year.
2518         (walk_type): Accept variable_size GTY option.
2519         (USED_BY_TYPED_GC_P): New macro.
2520         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
2521         whitespace at the end of strings.
2522         (get_type_specifier, variable_size_p): New functions.
2523         (alloc_quantity, alloc_zone): New enums.
2524         (write_typed_alloc_def): New function.
2525         (write_typed_struct_alloc_def): Likewise.
2526         (write_typed_typed_typedef_alloc_def): Likewise.
2527         (write_typed_alloc_defns): Likewise.
2528         (output_typename, write_splay_tree_allocator_def): Likewise.
2529         (write_splay_tree_allocators): Likewise.
2530         (main): Call write_typed_alloc_defns and
2531         write_splay_tree_allocators.
2532
2533         * lto-streamer.h (lto_file_decl_data_ptr): New.
2534
2535         * passes.c (order): Define using cgraph_node_ptr.
2536
2537         * strinpool.c (struct string_pool_data): Declare nested_ptr using
2538         ht_identifier_ptr.
2539
2540         * gimple.h (union gimple_statement_d): Likewise.
2541
2542         * rtl.h (struct rtx_def): Likewise.
2543         (struct rtvec_def): Likewise.
2544
2545         * tree.h (union tree_node): Likewise.
2546
2547         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
2548
2549         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
2550
2551         * tree-scalar-evolution.c (scev_initialize): Likewise.
2552
2553         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
2554
2555         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2556
2557         * omp-low.c (lower_omp_critical): Likewise.
2558
2559         * bitmap.h (struct bitmap_head_def): Update comment to not
2560         reference ggc_alloc.
2561
2562         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
2563
2564         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
2565
2566         * ipa-prop.c (duplicate_ggc_array): Rename to
2567         duplicate_ipa_jump_func_array.  Use typed GC allocation.
2568         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
2569
2570         * gimple.c (gimple_alloc_stat): Use
2571         ggc_alloc_cleared_gimple_statement_d_stat.
2572
2573         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
2574
2575         * tree.c (make_node_stat): Use
2576         ggc_alloc_zone_cleared_tree_node_stat.
2577         (make_tree_vec_stat): Likewise.
2578         (build_vl_exp_stat): Likewise.
2579         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
2580         (make_tree_binfo_stat): Likewise.
2581         (tree_cons_stat): Likewise.
2582
2583         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
2584         (shallow_copy_rtx_stat): Likewise.
2585         (make_node_stat): Likewise.
2586
2587         * lto-symtab.c: Fix comment.
2588
2589         * tree-cfg.c (create_bb): Update comment to not reference
2590         ggc_alloc_cleared.
2591         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
2592
2593         * varpool.c (varpool_node): Use typed GC allocation.
2594         (varpool_extra_name_alias): Likewise.
2595
2596         * varasm.c (emutls_decl): Likewise.
2597         (get_unnamed_section): Likewise.
2598         (get_noswitch_section): Likewise.
2599         (get_section): Likewise.
2600         (get_block_for_section): Likewise.
2601         (build_constant_desc): Likewise.
2602         (create_constant_pool): Likewise.
2603         (force_const_mem): Likewise.
2604
2605         * tree.c (build_vl_exp_stat): Likewise.
2606         (build_real): Likewise.
2607         (build_string): Likewise.
2608         (decl_debug_expr_insert): Likewise.
2609         (decl_value_expr_insert): Likewise.
2610         (type_hash_add): Likewise.
2611         (build_omp_clause): Likewise.
2612
2613         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
2614
2615         * tree-ssa.c (init_tree_ssa): Likewise.
2616
2617         * tree-ssa-structalias.c (heapvar_insert): Likewise.
2618
2619         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
2620
2621         * tree-ssa-loop-niter.c (record_estimate): Likewise.
2622
2623         * tree-ssa-alias.c (get_ptr_info): Likewise.
2624
2625         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
2626
2627         * tree-phinodes.c (allocate_phi_node): Likewise.
2628
2629         * tree-iterator.c (tsi_link_before): Likewise.
2630         (tsi_link_after): Likewise.
2631
2632         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
2633
2634         * tree-dfa.c (create_var_ann): Likewise.
2635
2636         * tree-cfg.c (create_bb): Likewise.
2637
2638         * toplev.c (alloc_for_identifier_to_locale): Likewise.
2639         (general_init): Likewise.
2640
2641         * stringpool.c (stringpool_ggc_alloc): Likewise.
2642         (gt_pch_save_stringpool): Likewise.
2643
2644         * sese.c (if_region_set_false_region): Likewise.
2645
2646         * passes.c (do_per_function_toporder): Likewise.
2647
2648         * optabs.c (set_optab_libfunc): Likewise.
2649         (set_conv_libfunc): Likewise.
2650
2651         * lto-symtab.c (lto_symtab_register_decl): Likewise.
2652
2653         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
2654         (input_eh_region): Likewise.
2655         (input_eh_lp): Likewise.
2656         (make_new_block): Likewise.
2657         (unpack_ts_real_cst_value_fields): Likewise.
2658
2659         * lto-section-in.c (lto_new_in_decl_state): Likewise.
2660
2661         * lto-cgraph.c (input_node_opt_summary): Likewise.
2662
2663         * loop-init.c (loop_optimizer_init): Likewise.
2664
2665         * lambda.h (lambda_vector_new): Likewise.
2666
2667         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
2668
2669         * ira.c (update_equiv_regs): Likewise.
2670
2671         * ipa.c (cgraph_node_set_new): Likewise.
2672         (cgraph_node_set_add): Likewise.
2673         (varpool_node_set_new): Likewise.
2674         (varpool_node_set_add): Likewise.
2675
2676         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2677         (duplicate_ipa_jump_func_array): Likewise.
2678         (ipa_read_node_info): Likewise.
2679
2680         * ipa-cp.c (ipcp_create_replace_map): Likewise.
2681
2682         * integrate.c (get_hard_reg_initial_val): Likewise.
2683
2684         * gimple.c (gimple_alloc_stat): Likewise.
2685         (gimple_build_omp_for): Likewise.
2686         (gimple_seq_alloc): Likewise.
2687         (gimple_copy): Likewise.
2688
2689         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
2690         (gsi_insert_after_without_update): Likewise.
2691
2692         * function.c (add_frame_space): Likewise.
2693         (insert_temp_slot_address): Likewise.
2694         (assign_stack_temp_for_type): Likewise.
2695         (allocate_struct_function): Likewise.
2696         (types_used_by_var_decl_insert): Likewise.
2697
2698         * except.c (init_eh_for_function): Likewise.
2699         (gen_eh_region): Likewise.
2700         (gen_eh_region_catch): Likewise.
2701         (gen_eh_landing_pad): Likewise.
2702         (add_call_site): Likewise.
2703
2704         * emit-rtl.c (get_mem_attrs): Likewise.
2705         (get_reg_attrs): Likewise.
2706         (start_sequence): Likewise.
2707         (init_emit): Likewise.
2708
2709         * dwarf2out.c (new_cfi): Likewise.
2710         (queue_reg_save): Likewise.
2711         (dwarf2out_frame_init): Likewise.
2712         (new_loc_descr): Likewise.
2713         (find_AT_string): Likewise.
2714         (new_die): Likewise.
2715         (add_var_loc_to_decl): Likewise.
2716         (clone_die): Likewise.
2717         (clone_as_declaration): Likewise.
2718         (break_out_comdat_types): Likewise.
2719         (new_loc_list): Likewise.
2720         (loc_descriptor): Likewise.
2721         (add_loc_descr_to_each): Likewise.
2722         (add_const_value_attribute): Likewise.
2723         (tree_add_const_value_attribute): Likewise.
2724         (add_comp_dir_attribute): Likewise.
2725         (add_name_and_src_coords_attributes): Likewise.
2726         (lookup_filename): Likewise.
2727         (store_vcall_insn): Likewise.
2728         (dwarf2out_init): Likewise.
2729
2730         * dbxout.c (dbxout_init): Likewise.
2731
2732         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2733
2734         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2735
2736         * config/score/score7.c (score7_output_external): Likewise.
2737
2738         * config/score/score3.c (score3_output_external): Likewise.
2739
2740         * config/s390/s390.c (s390_init_machine_status): Likewise.
2741
2742         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
2743         (rs6000_init_machine_status): Likewise.
2744         (output_toc): Likewise.
2745
2746         * config/pa/pa.c (pa_init_machine_status): Likewise.
2747         (get_deferred_plabel): Likewise.
2748
2749         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
2750
2751         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
2752
2753         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
2754
2755         * config/mep/mep.c (mep_init_machine_status): Likewise.
2756         (mep_note_pragma_flag): Likewise.
2757
2758         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
2759
2760         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
2761
2762         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
2763
2764         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
2765         (i386_pe_maybe_record_exported_symbol): Likewise.
2766
2767         * config/i386/i386.c (get_dllimport_decl): Likewise.
2768         (ix86_init_machine_status): Likewise.
2769         (assign_386_stack_local): Likewise.
2770
2771         * config/frv/frv.c (frv_init_machine_status): Likewise.
2772
2773         * config/darwin.c (machopic_indirection_name): Likewise.
2774
2775         * config/cris/cris.c (cris_init_machine_status): Likewise.
2776
2777         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
2778
2779         * config/avr/avr.c (avr_init_machine_status): Likewise.
2780
2781         * config/arm/arm.c (arm_init_machine_status): Likewise.
2782
2783         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
2784         (alpha_need_linkage): Likewise.
2785         (alpha_use_linkage): Likewise.
2786
2787         * cgraph.c (cgraph_allocate_node): Likewise.
2788         (cgraph_create_edge_1): Likewise.
2789         (cgraph_create_indirect_edge): Likewise.
2790         (cgraph_add_asm_node): Likewise.
2791
2792         * cfgrtl.c (init_rtl_bb_info): Likewise.
2793
2794         * cfgloop.c (alloc_loop): Likewise.
2795         (rescan_loop_exit): Likewise.
2796
2797         * cfg.c (init_flow): Likewise.
2798         (alloc_block): Likewise.
2799         (unchecked_make_edge): Likewise.
2800
2801         * c-parser.c (c_parse_init): Likewise.
2802         (c_parse_file): Likewise.
2803
2804         * c-decl.c (bind): Likewise.
2805         (record_inline_static): Likewise.
2806         (push_scope): Likewise.
2807         (make_label): Likewise.
2808         (lookup_label_for_goto): Likewise.
2809         (finish_struct): Likewise.
2810         (finish_enum): Likewise.
2811         (c_push_function_context): Likewise.
2812
2813         * bitmap.c (bitmap_element_allocate): Likewise.
2814         (bitmap_gc_alloc_stat): Likewise.
2815
2816         * alias.c (record_alias_subset): Likewise.
2817         (init_alias_analysis): Likewise.
2818
2819 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
2820
2821         * fold-const.c (fold_comparison): Remove redundant parenthesis.
2822         * tree-inline.c (expand_call_inline): Pass translated return value of
2823         cgraph_inline_failed_string to diagnostic function.
2824
2825 2010-06-08  Andrew Pinski <pinskia@gmail.com>
2826             Shujing Zhao  <pearly.zhao@oracle.com>
2827
2828         PR c/37724
2829         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
2830         implicit bad conversions is initialization.
2831         (error_init): Use gmsgid instead of msgid for argument name and change
2832         the call for error.
2833         (pedwarn_init): Use gmsgid instead of msgid for argument name and
2834         change the call for pedwarn.
2835         (warning_init): Use gmsgid instead of msgid for argument name and
2836         change the call for warning.
2837
2838 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
2839
2840         * config/mips/mips-protos.h (mips_print_operand): Delete.
2841         (mips_print_operand_address): Delete.
2842         * config/mips/mips.h (mips_print_operand_punct): Delete.
2843         (PRINT_OPERAND): Delete.
2844         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2845         (PRINT_OPERAND_ADDRESS): Delete.
2846         * config/mips/mips.c (mips_print_operand_punct): Make static.
2847         (mips_print_operand_address): Make static.
2848         (mips_print_operand): Make static.  Call
2849         mips_print_operand_punct_valid_p.
2850         (mips_print_operand_punct_valid_p): New function.
2851         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2852         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2853
2854 2010-06-07  Jan Hubicka  <jh@suse.cz>
2855
2856         PR middle-end/44454
2857         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
2858         are allocated.
2859
2860 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2861
2862         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
2863         name of RECORD.
2864
2865 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2866
2867         * doc/sourcebuild.texi (Effective-Target Keywords, Other
2868         attributes): Document gas.
2869
2870 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
2871
2872         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
2873         <TYPE_LEA>: Split instruction.
2874         <default>: Remove alternative 2 handling.
2875         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
2876         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
2877         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
2878
2879         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
2880         (ashift_zext lea splitter): Use DImode for multiplication.
2881
2882         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
2883         to generate addition.
2884
2885 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
2886
2887         * common.opt (fira-verbose): Use Var.
2888         (fpcc-struct-return): Use Init instead of VarExists.
2889         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
2890         toplev.c.
2891         * flags.h (flag_signed_char, flag_short_enums,
2892         flag_pcc_struct_return, flag_ira_verbose,
2893         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
2894         * toplev.c (flag_detailed_statistics, flag_signed_char,
2895         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
2896         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
2897         * toplev.h (flag_crossjumping, flag_if_conversion,
2898         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
2899         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
2900         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
2901         flag_cprop_registers, time_report, flag_ira_loop_pressure,
2902         flag_ira_coalesce, flag_ira_move_spills,
2903         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
2904
2905 2010-06-07  Jan Hubicka  <jh@suse.cz>
2906
2907         * df-core.c (df_analyze_problem): Do verification after allocation.
2908
2909         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
2910         (df_lr_alloc): Initialize problem data; move bitmaps to
2911         lr_bitmaps obstack.
2912         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
2913         (df_lr_verify_solution_start): Do not initialize problem data;
2914         allocate bitmaps in lr_bitmaps.
2915         (df_lr_verify_solution_end): Do not free problem data.
2916
2917 2010-06-07  Jan Hubicka  <jh@suse.cz>
2918
2919         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
2920         if caller is noreturn.
2921         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
2922         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
2923         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
2924         * ipa-pure-const.c (check_decl): Add IPA parameter.
2925         (state_from_flags): New function.
2926         (better_state, worse_state): New functions.
2927         (check_call): When in IPA mode, do not care about callees.
2928         (check_load, check_store): Update.
2929         (check_ipa_load, check_ipa_store): New.
2930         (check_stmt): When in IPA mode, use IPA checkers.
2931         (analyze_function): Use state_from_flags.
2932         (propagate): Check indirect edges and references.
2933
2934 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
2935
2936         PR rtl-optimization/44404
2937         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
2938         of count_occurrences to see if it's safe to modify mem_insn.
2939
2940 2010-06-07  Richard Guenther  <rguenther@suse.de>
2941
2942         * gimplify.c (gimplify_cleanup_point_expr): For empty body
2943         and EH-only cleanup drop the cleanup instead of inserting it
2944         unconditionally.
2945
2946 2010-06-07  Ira Rosen  <irar@il.ibm.com>
2947
2948         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
2949         documentation.
2950         * targhooks.c (default_builtin_vectorization_cost): New function.
2951         * targhooks.h (default_builtin_vectorization_cost): Declare.
2952         * target.h (enum vect_cost_for_stmt): Define.
2953         (builtin_vectorization_cost): Change argument and comment.
2954         * tree-vectorizer.h: Remove cost model macros.
2955         * tree-vect-loop.c: Include target.h.
2956         (vect_get_cost): New function.
2957         (vect_estimate_min_profitable_iters): Replace cost model macros with
2958         calls to vect_get_cost.
2959         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
2960         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
2961         default implementation.
2962         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
2963         calls to target hook builtin_vectorization_cost.
2964         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
2965         Likewise.
2966         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
2967         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
2968         implementation to return costs.
2969         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
2970         * config/spu/spu.h: Remove vectorizer cost model macros.
2971         * config/i386/i386.h: Likewise.
2972         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
2973         a call to target hook builtin_vectorization_cost.
2974
2975 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
2976
2977         PR target/44319
2978         * config/i386/i386.c (override_options): Turn zee pass on for level 2
2979         and above and defer till target is known.
2980         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
2981         turn off otherwise.
2982
2983 2010-05-25  Jan Hubicka  <jh@suse.cz>
2984
2985         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
2986         (df_compact_blocks): Likewise.
2987         * df.h (struct df): Turn hardware_regs_used,
2988         regular_block_artificial_uses, eh_block_artificial_uses,
2989         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
2990         bitmap_head.
2991         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
2992         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
2993         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
2994         df_scan_blocks, df_insn_delete, df_insn_rescan,
2995         df_insn_rescan_debug_internal, df_insn_rescan_all,
2996         df_process_deferred_rescans, df_process_deferred_rescans,
2997         df_notes_rescan, df_get_call_refs, df_get_call_refs,
2998         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
2999         df_record_entry_block_defs, df_record_exit_block_uses,
3000         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
3001         df_scan_verify): Update.
3002
3003 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
3004
3005         PR c++/44188
3006         * c-common.c (is_typedef_decl): Move this definition ...
3007         * tree.c (is_typedef_decl): ... here.
3008         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
3009         * c-common.h (is_typedef_decl): Move this declaration ...
3010         * tree.h (is_typedef_decl): ... here.
3011         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
3012         * dwarf2out.c (is_naming_typedef_decl): New function.
3013         (gen_tagged_type_die): Split out of ...
3014         (gen_type_die_with_usage): ... this function. When an anonymous
3015         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
3016         is emitted for the typedef.
3017         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
3018         anonymous tagged types.
3019
3020 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3021
3022         PR c/20000
3023         * c-decl.c (grokdeclarator): Delete warning.
3024
3025 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3026
3027         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
3028         newly built CALL_EXPR.
3029         * tree-profile.c (tree_profiling): Don't profile functions produced
3030         for built-in stuff.
3031
3032 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
3033
3034         PR bootstrap/44427
3035         PR bootstrap/44428
3036         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
3037         endianness-independent.
3038
3039 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
3040
3041         * c-common.c: Move to c-family/.
3042         * c-common.def: Likewise.
3043         * c-common.h: Likewise.
3044         * c-cppbuiltin.c: Likewise.
3045         * c-dump.c: Likewise.
3046         * c-format.c: Likewise.
3047         * c-format.h : Likewise.
3048         * c-gimplify.c: Likewise.
3049         * c-lex.c: Likewise.
3050         * c-omp.c: Likewise.
3051         * c.opt: Likewise.
3052         * c-opts.c: Likewise.
3053         * c-pch.c: Likewise.
3054         * c-ppoutput.c: Likewise.
3055         * c-pragma.c: Likewise.
3056         * c-pragma.h: Likewise.
3057         * c-pretty-print.c: Likewise.
3058         * c-pretty-print.h: Likewise.
3059         * c-semantics.c: Likewise.
3060         * stub-objc.c: Likewise.
3061
3062         * gengtype.c (get_file_langdir): Special-case files in c-family/.
3063         (get_output_file_with_visibility): Fix name for c-common.h.
3064         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
3065
3066         * c-tree.h: Update include path for moved files.
3067         * c-lang.c: Likewise.
3068         * c-lang.h: Likewise.
3069         * c-parser.c: Likewise.
3070         * c-convert.c: Likewise.
3071         * c-decl.c: Likewise.
3072         * c-objc-common.c: Likewise.
3073         * configure.ac: Make sure c-family/ exists in the build directory.
3074         * configure: Regenerate.
3075         * Makefile.in: Update paths for moved files.  Regroup files per
3076         location and update dependencies.  Move generated_files down after
3077         ALL_GTFILES_H.
3078
3079         * config/spu/spu-c.c: Update paths for moved files.
3080         * config/mep/mep-pragma.c: Likewise.
3081         * config/darwin-c.c: Likewise.
3082         * config/i386/msformat-c.c: Likewise.
3083         * config/i386/i386-c.c: Likewise.
3084         * config/avr/avr-c.c: Likewise.
3085         * config/sol2-c.c: Likewise.
3086         * config/ia64/ia64-c.c: Likewise.
3087         * config/rs6000/rs6000-c.c: Likewise.
3088         * config/arm/arm.c: Likewise.
3089         * config/arm/arm-c.c: Likewise.
3090         * config/h8300/h8300.c: Likewise.
3091         * config/v850/v850-c.c: Likewise.
3092
3093         * config/t-darwin: Fix dependencies for moved files.
3094         * config/t-sol2: Fix dependencies for moved files.
3095         * config/mep/t-mep: Fix dependencies for moved files.
3096         * config/ia64/t-ia64: Fix dependencies for moved files.
3097         * config/rs6000/t-rs6000: Fix dependencies for moved files.
3098         * config/v850/t-v850: Fix dependencies for moved files.
3099         * config/v850/t-v850e: Fix dependencies for moved files.
3100
3101         * config/m32c/m32c-pragma.c
3102
3103         * po/exgettext: Look in c-family/ also.
3104
3105 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
3106
3107         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
3108         (mark_control_dependent_edges_necessary): Call it instead of marking
3109         the last statement manually.
3110         (propagate_necessity): Likewise.
3111
3112 2010-06-05  Jan Hubicka  <jh@suse.cz>
3113
3114         * basic-block.h (compute_dominance_frontiers): Updated.
3115         (compute_idf): Likewise.
3116
3117         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
3118         for dominance frontiers.
3119         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
3120         (insert_updated_phi_nodes_for): Likewise.
3121         (update_ssa): Likewise.
3122         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3123         (compute_dominance_frontiers): Likewise.
3124         (compute_idf): Likewise.
3125         * df-problems.c (df_md_local_compute): Likewise.
3126
3127 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
3128
3129         * target.h (struct gcc_target): Add memory_move_cost field.
3130         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
3131         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
3132         * targhooks.c (default_memory_move_cost): New function.
3133         * targhooks.h (default_memory_move_cost): Declare function.
3134         * reload.h (memory_move_cost): Declare.
3135         (memory_move_secondary_cost): Change type of 'in' argument to bool.
3136         * reginfo.c (memory_move_cost): New function.
3137         (memory_move_secondary_cost): Change type of 'in' argument to bool.
3138         * ira.h (ira_memory_move_cost): Update comment.
3139         * ira.c: (ira_memory_move_cost): Update comment.
3140         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
3141         with memory_move_cost.
3142         * postreload.c (reload_cse_simplify_set): (Ditto.).
3143         * reload1.c (choose_reload_regs): (Ditto.).
3144         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
3145         (MEMORY_MOVE_COST):  Revise documentation.
3146
3147         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
3148         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
3149         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
3150         type of 'in' argument to bool.
3151         (TARGET_MEMORY_MOVE_COST): Define.
3152
3153 2010-06-05  Jan Hubicka  <jh@suse.cz>
3154
3155         * ipa-pure-const.c (propagate): Fix typo in handling of functions
3156         that cannot return.  Be more careful when merging the results with
3157         previously known ones.
3158
3159 2010-06-05  Matthias Klose  <doko@ubuntu.com>
3160
3161         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
3162         function to add the -iplugindir option.
3163         (find_plugindir_spec_function): Add new declaration and function.
3164         (static_spec_func): Use it for "find-plugindir".
3165
3166 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
3167
3168         PR c++/44361
3169         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
3170         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
3171         statement expression.
3172
3173 2010-06-05  Jan Hubicka  <jh@suse.cz>
3174
3175         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
3176         (df_rd_problem_data): Convert sparse_invalidated_by_call,
3177         dense_invalidated_by_call to bitmap head.
3178         (df_rd_alloc, df_rd_bb_local_compute_process_def,
3179         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
3180         df_rd_start_dump, df_lr_verify_transfer_functions,
3181         df_live_verify_transfer_functions, df_chain_create_bb,
3182         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
3183         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
3184         df_simulate_one_insn_forwards, df_md_alloc,
3185         df_md_bb_local_compute_process_def,
3186         df_md_bb_local_compute_process_def, df_md_local_compute,
3187         df_md_transfer_function df_md_free): Update.
3188
3189 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
3190
3191         PR c/44322
3192         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
3193         target type for ADDR_EXPR; require no changes to qualifiers except
3194         for function types.
3195         * c-tree.h (c_build_type_variant): Remove.
3196
3197 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
3198
3199         * genautomata.c (get_excl_set): Do work per element, not per char.
3200         (check_presence_pattern_sets): Similar.
3201         (check_absence_pattern_sets): Similar.
3202
3203 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
3204
3205         * genautomata.c (curr_state_pass_num): Delete.
3206         (min_issue_delay_pass_states): Delete.
3207         (min_issue_delay): Delete.
3208         (initiate_min_issue_delay_pass_states): Delete.
3209         (output_min_issue_delay_table): Compute min_issue_delay_vect
3210         using a breadth-first search variant.
3211         (output_tables): Don't call initiate_min_issue_delay_pass_states.
3212
3213 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
3214
3215         PR boostrap/44421
3216         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
3217         (df_byte_lr_bb_local_compute): Likewise.
3218
3219 2010-06-03  Jason Merrill  <jason@redhat.com>
3220
3221         Implement noexcept operator (5.3.7)
3222         * c-common.c (c_common_reswords): Add noexcept.
3223         * c-common.h (enum rid): Add RID_NOEXCEPT.
3224
3225 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3226
3227         * config/darwin-driver.c (darwin_default_min_version): Use
3228         GCC-specific formats in diagnostics.
3229         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
3230         diagnostics.
3231         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
3232         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
3233         eval_spec_function, handle_braces, process_brace_body, main,
3234         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
3235         getenv_spec_function, compare_version_strings,
3236         version_compare_spec_function): Use GCC-specific formats in
3237         diagnostics.
3238
3239 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3240
3241         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
3242         that operand 0 and operand 1 are equal.
3243         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
3244         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
3245         and operand 1 are equal.
3246         <default>: Ditto.  Remove ??? comment.
3247         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
3248         and operand 1 are equal.
3249         <default>: Ditto.  Remove ??? comment.
3250         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
3251         are equal.
3252         (*add<mode>_4) <default>: Ditto.
3253         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
3254
3255 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
3256
3257         * config/i386/i386-protos.h (ix86_print_operand): Declare.
3258         * config/i386/i386.c (ix86_print_operand): Make non-static.
3259         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
3260         * output.h (output_operand): Declare.
3261         * final.c (output_operand): Make non-static.
3262
3263 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
3264
3265         PR rtl-optimization/44013
3266         * sched-deps.c (add_dependence_list_and_free): Don't free lists
3267         when processing debug insns.
3268
3269         PR debug/41371
3270         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
3271         recursing.  Check that recursion is bounded.  Rename inner var
3272         to avoid hiding incoming argument.
3273
3274 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3275
3276         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
3277         operands[2] == 255.
3278         (*addqi_3): Ditto.
3279         (*addqi_4): Ditto.
3280         (*addqi_5): Ditto.
3281         (*addqi_ext_1_rex64): Ditto.
3282         (*addqi_ext_1): Ditto.
3283
3284         (*addqi_4): Check for incdec_operand in QImode.
3285
3286         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
3287         using SWI mode iterator.
3288         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
3289         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
3290         mode iterator.
3291         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
3292         using SWI mode iterator.
3293
3294 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3295
3296         PR c/25880
3297         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
3298         * c-format.c (gcc_diag_flag_specs): Add hash.
3299         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
3300         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
3301         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
3302         pp_c_cv_qualifiers. Handle qualifiers spelling here.
3303         (pp_c_type_qualifier_list): Call the function above.
3304         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
3305         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
3306         (WARN_FOR_QUALIFIERS): New macro.
3307         (convert_for_assignment): Use it.
3308
3309 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
3310
3311         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
3312
3313 2010-06-04  Jan Hubicka  <jh@suse.cz>
3314
3315         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
3316         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
3317         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
3318         DF_BYTE_LR_OUT): Update for embedded bitmaps.
3319         * fwprop.c (single_def_use_enter_block): Likewise.
3320         * ddg.c (create_ddg_dep_from_intra_loop_link,
3321         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
3322         * loop-iv.c (latch_dominating_def): Likewise.
3323         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
3324         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
3325         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
3326         df_rd_transfer_function, df_rd_top_dump,
3327         df_rd_bottom_dump): Update.
3328         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
3329         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
3330         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
3331         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
3332         df_lr_verify_solution_start, df_lr_verify_solution_end,
3333         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
3334         df_live_free_bb_info, df_live_alloc, df_live_reset,
3335         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
3336         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
3337         df_live_verify_solution_start, df_live_verify_solution_end,
3338         df_live_verify_transfer_functions, df_chain_create_bb,
3339         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
3340         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3341         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3342         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
3343         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
3344         df_byte_lr_transfer_function, df_byte_lr_top_dump,
3345         df_byte_lr_bottom_dump, df_create_unused_note,
3346         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
3347         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
3348         df_md_transfer_function, df_md_init, df_md_confluence_0,
3349         df_md_confluence_n,
3350         df_md_top_dump, df_md_bottom_dump): Update.
3351         (struct df_lr_problem_data): Embedd bitmap headers.
3352
3353 2010-06-04  Jan Hubicka  <jh@suse.cz>
3354
3355         * dce.c (dce_process_block): Do not re-scan already marked
3356         instructions.
3357
3358 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
3359
3360         PR rtl-optimization/39871
3361         PR rtl-optimization/40615
3362         PR rtl-optimization/42500
3363         PR rtl-optimization/42502
3364         * ira.c (init_reg_equiv_memory_loc: New function.
3365         (ira): Call it twice.
3366         * reload.h (calculate_elim_costs_all_insns): Declare.
3367         * ira-costs.c: Include "reload.h".
3368         (regno_equiv_gains): New static variable.
3369         (init_costs): Allocate it.
3370         (finish_costs): Free it.
3371         (ira_costs): Call calculate_elim_costs_all_insns.
3372         (find_costs_and_classes): Take estimated elimination costs
3373         into account.
3374         (ira_adjust_equiv_reg_cost): New function.
3375         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
3376         * reload1.c (init_eliminable_invariants, free_reg_equiv,
3377         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
3378         (elim_bb): New static variable.
3379         (reload): Move code out of here into init_eliminable_invariants and
3380         free_reg_equiv.  Call them.
3381         (calculate_elim_costs_all_insns): New function.
3382         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
3383         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
3384         but call note_reg_elim_costly if we turned a valid memory address
3385         into an invalid one.
3386         * Makefile.in (ira-costs.o): Depend on reload.h.
3387
3388 2010-06-04  Julian Brown  <julian@codesourcery.com>
3389
3390         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
3391         for pool ranges.
3392
3393 2010-06-04  Richard Guenther  <rguenther@suse.de>
3394
3395         PR lto/41584
3396         * cgraph.h (struct varpool_node): Add lto_file_data field.
3397         * lto-cgraph.c (input_varpool_node): Initialize it.
3398
3399 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3400
3401         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
3402         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
3403         predicate in "type" attribute calculation.
3404         (*addsi_1_zext): Ditto.
3405         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
3406         (*addsi_2_zext): Ditto.
3407         (*add<mode>_3): Ditto.
3408         (*addsi_3_zext): Ditto.
3409         (*add<mode>_5): Ditto.
3410
3411 2010-06-03  Jan Hubicka  <jh@suse.cz>
3412
3413         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
3414         of bitmap_bit_p.
3415         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3416
3417 2010-06-03  Jan Hubicka  <jh@suse.cz>
3418
3419         * df-problems.c (df_create_unused_note, df_note_bb_compute):
3420         micro-optimize the checks when to add new note.
3421
3422 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
3423
3424         * final.c (output_asm_insn): Call
3425         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
3426         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
3427         (output_address): Call targetm.asm_out.print_operand_address.
3428         Update comments.
3429         * target.h (struct gcc_target): Add print_operand,
3430         print_operand_address, and print_operand_punct_valid_p fields.
3431         * targhooks.h (default_print_operand): Declare.
3432         (default_print_operand_address): Declare.
3433         (default_print_operand_punct_valid_p): Declare.
3434         * targhooks.c (default_print_operand): Define.
3435         (default_print_operand_address): Define.
3436         (default_print_operand_punct_valid_p): Define.
3437         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
3438         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
3439         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3440         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
3441         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
3442         * vmsdbgout.c (addr_const_to_string): Update comment.
3443         * config/i386/i386.c (print_operand): Rename to...
3444         (ix86_print_operand): ...this.  Make static.
3445         (print_operand_address): Rename to...
3446         (ix86_print_operand_address): ...this.  Make static.  Call
3447         ix86_print_operand instead of PRINT_OPERAND.
3448         (ix86_print_operand_punct_valid_p): New function.
3449         (TARGET_PRINT_OPERAND): Define.
3450         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3451         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3452         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
3453         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3454         (PRINT_OPERAND): Delete.
3455         (PRINT_OPERAND_ADDRESS): Delete.
3456         * config/i386/i386-protos.h (print_operand): Delete prototype.
3457         (print_operand_address): Delete prototype.
3458
3459 2010-06-03  Richard Guenther  <rguenther@suse.de>
3460
3461         PR tree-optimization/44403
3462         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3463         Preserve pointer qualifiers.
3464         (vect_create_data_ref_ptr): Likewise.
3465
3466 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3467
3468         PR c++/44294
3469         * defaults.h (MAX_FIXED_MODE_SIZE): New.
3470
3471         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
3472
3473 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
3474
3475         PR debug/44375
3476         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
3477         return false if merging the bbs would lead to goto_locus
3478         location being lost from the IL.
3479
3480 2010-06-03  Jan Hubicka  <jh@suse.cz>
3481             Jakub Jelinek  <jakub@redhat.com>
3482
3483         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
3484         set->regs[i] is NULL or has just one entry.
3485
3486 2010-06-03  Jan Hubicka  <jh@suse.cz>
3487
3488         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
3489         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
3490
3491 2010-06-03  Paul Brook  <paul@codesourcery.com>
3492
3493         * config/arm/arm.c (FL_TUNE): Define.
3494         (arm_default_cpu, arm_cpu_select): Remove.
3495         (all_cores): Populate core field.
3496         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
3497         (arm_find_cpu): New function.
3498         (arm_handle_option): Lookup cpu/architecture names.
3499         (arm_override_options): Cleanup mcpu/march/mtune handling.
3500         (arm_file_start): Ditto.
3501
3502 2010-06-03  Alan Modra  <amodra@gmail.com>
3503
3504         PR target/44169
3505         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
3506         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
3507         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
3508         (rs6000_emit_load_toc_table): Likewise.
3509
3510 2010-06-02  Jan Hubicka  <jh@suse.cz>
3511
3512         * passes.c (init_optimization_passes): Put ipa reference
3513         after ipa pure-const.
3514
3515 2010-06-02  Jan Hubicka  <jh@suse.cz>
3516
3517         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
3518         calls_read_all and calls_write_all.
3519         (get_reference_optimization_summary): Fix formatting.
3520         (is_proper_for_analysis): Check that decl is not readonly.
3521         (propagate_bits): Check CONST/PURE/noreturn flags.
3522         (ipa_init): Move all_module_statics to optimization_summary_obstack.
3523         (analyze_function): Ignore indirect edges.
3524         (copy_global_bitmap): For all module statics, do nothing.
3525         (generate_summary): Do not print calls_read_all/calls_write_all.
3526         (read_write_all_from_decl): Take node as argument; check
3527         cgraph_node_cannot_return.
3528         (propagate): Reorganize read_all/write_all computation;
3529         check indirect edges; check ecf flags; use all_module_statics
3530         in the results; do not free all_module_statics.
3531         (stream_out_bitmap): Handle all_module_statics.
3532         (ipa_reference_write_optimization_summary): Likewise; use
3533         varpool/cgraph encoders to get boundaries.
3534         (ipa_reference_read_optimization_summary): Read in all_module_statics;
3535         use it when possible.
3536
3537 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3538
3539         PR target/44218
3540         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
3541         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
3542
3543         * doc/extend.texi (powerpc builtins): Document vec_recip,
3544         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
3545
3546         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
3547         (rs6000_emit_swrsqrt): Ditto.
3548         (rs6000_emit_swdivsf): Delete.
3549         (rs6000_emit_swdivdf): Ditto.
3550         (rs6000_emit_swrsqrtsf): Ditto.
3551
3552         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
3553         describe the reciprocal estimate support for each type.
3554         (recip_options): Map -mrecip=<opt> into option bits.
3555         (gen_2arg_fn_t): New typedef for binary rtx gen function.
3556         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
3557         reciprocal estimate instructions.
3558         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
3559         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
3560         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
3561         cost information if -mdebug=cost or -mdebug=reg.
3562         (rs6000_override_options): Set -mrecip-precision for power6, and
3563         power7 machines.  If -mvsx or -mdfp, enable various options that
3564         came in previous instruction set ISAs, unless the option was
3565         explicitly disabled by the command line option.  Parse
3566         -mrecip=<opt> options.
3567         (rs6000_builtin_vectorized_function): Add support for vectorizing
3568         the reciprocal estimate builtins and expansions.
3569         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
3570         (bdesc_2arg): Add reciprocal estimate builtins.
3571         (bdesc_1arg): Add reciprocal square root estimate builtins.
3572         (rs6000_expand_builtin): Rewrite to use a switch statement,
3573         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
3574         (rs6000_init_builtins): Create declarations for reciprocal
3575         estimate builtins.
3576         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
3577         sized, prefer traditional floating point registers, if integer
3578         vector types, prefer altivec registers.  Don't actually look at
3579         the memory address any more.
3580         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
3581         builtins.
3582         (rs6000_load_constant_and_splat): New helper function to load up
3583         the constant for reciprocal estimate instructions.
3584         (rs6000_emit_madd): New helper function for generating
3585         multiply/add type instructions, based on the current switches.
3586         (rs6000_emit_msub): Ditto.
3587         (rs6000_emit_mnsub): Ditto.
3588         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
3589         replace a divide with a reciprocal estimate and fixup, adding
3590         support for machines with high precision and vectors.
3591         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
3592         low precision machines.
3593         (rs6000_emit_swdiv): New common function to be called to replace a
3594         division with reciprocal estimate and fixup.
3595         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
3596         for double and vector types.  Add support for high precision machines.
3597
3598         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
3599         the reciprocal estimate instructions can be generated.
3600         (TARGET_FRE): Ditto.
3601         (TARGET_FRSQRTES): Ditto.
3602         (TARGET_FRSQRTE): Ditto.
3603         (RS6000_RECIP_*): New macros for reciprocal estimate support.
3604
3605         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
3606         square root estimate on vectors.
3607         (re<mode>2): New insn for reciprocal division estimate on vectors.
3608
3609         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
3610         New builtin.
3611         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
3612         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
3613         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
3614         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
3615         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
3616         (RS6000_BUILTIN_RSQRT): Ditto.
3617         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
3618         floating point builtin.
3619
3620         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3621         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
3622         __RECIP_PRECISION__ based on the command line switches.
3623         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
3624
3625         * config/rs6000/rs6000.opt (-mrecip): Document add support for
3626         replacing division instructions with reciprocal estimate and fixup.
3627         (-mrecip=<opt>): New option.
3628         (-mrecip-precision): Ditto.
3629
3630         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
3631         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
3632         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
3633         precision scalar.
3634
3635         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
3636         (UNSPEC_VREFP): Ditto.
3637         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
3638         conterparts with regard to support of -mno-fused-madd and -ffast-math.
3639         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
3640         reciprocal estimate instructions to be generated.
3641         (altivec_vrefp): Ditto.
3642
3643         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
3644         estimate support.
3645         (rreg): New mode attribute for reciprocal estimate support.
3646         (recip<mode>3): New insn for division using reciprocal estimate
3647         and fixup builtins.
3648         (divide define_split): New define_split to convert floating point
3649         division to use reciprocal estimate if the user used the
3650         appropriate options and the split is run when we can add new
3651         pseudo registers for the fixup.
3652         (rsqrt<mode>2): New insn for reciprocal square root support.
3653         (recipsf3): Move into recip<mode>3.
3654         (recipdf3): Ditto.
3655         (fres): Use TARGET_FRES.
3656         (rsqrtsf2): Move into rsqrt<mode>2.
3657         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
3658         (copysignsf3): Add support for VSX.
3659         (fred): Use TARGET_FRE.
3660         (fred_fpr): Ditto.
3661         (rsqrtdf_internal1): New function for frsqrte instruciton.
3662
3663         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
3664         (vec_rsqrt): Ditto.
3665
3666 2010-06-03  Richard Guenther  <rguenther@suse.de>
3667
3668         PR middle-end/44291
3669         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
3670         (set_user_assembler_libfunc): Likewise.
3671
3672 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3673
3674         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
3675         defaults.h.
3676         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
3677         to defaults.h
3678         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
3679         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
3680         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
3681         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
3682         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
3683         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
3684         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
3685         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
3686         * defaults.h: Updated for above mentioned changes.
3687
3688 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
3689
3690         * c-common.c: Remove header include of tm_p.h.
3691         * Makefile.in (c-common.o): Remove TM_P_H dependency.
3692
3693 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
3694
3695         * tree.h (struct tree_decl_map): New type.
3696         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
3697         (tree_decl_map_hash): New prototype.
3698         (debug_expr_for_decl, value_expr_for_decl): Change into
3699         tree_decl_map hashtab from tree_map.
3700         (init_ttree): Adjust initialization.
3701         (tree_decl_map_hash): New function.
3702         (decl_debug_expr_lookup, decl_debug_expr_insert,
3703         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
3704
3705 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3706
3707         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
3708         linker emulations.
3709         * configure: Regenerate.
3710         * config.in: Regenerate.
3711
3712         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
3713         (X86_64_EMULATION): Define.
3714         (TARGET_LD_EMULATION): Use them.
3715
3716         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
3717         (SPARC64_EMULATION): Define.
3718         (LINK_ARCH_SPEC): Use them.
3719
3720 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3721
3722         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
3723         smallest_mode_for_size for computing the precision types of new
3724         graphite IVs.  Do not call lang_hooks.types.type_for_size.
3725
3726 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3727
3728         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
3729         information.
3730         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
3731
3732 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3733
3734         PR middle-end/44363
3735         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
3736         return false instead.
3737
3738 2010-06-02  Jan Hubicka  <jh@suse.cz>
3739
3740         PR middle-end/44295
3741         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
3742         create new cgraph node to check callee.
3743
3744 2010-06-02  Richard Guenther  <rguenther@suse.de>
3745
3746         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
3747
3748 2010-06-02  Richard Guenther  <rguenther@suse.de>
3749
3750         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
3751         (lto_wrapper_cleanup): ... this.  Do not exit.
3752         (fatal): Adjust.  Exit here.
3753         (fatal_perror): Likewise.
3754         (fatal_signal): New function.
3755         (main): Set up signal handlers to cleanup temporary files.
3756         * Makefile.in (lto-wrapper.o): Adjust dependencies.
3757
3758 2010-06-02  Richard Guenther  <rguenther@suse.de>
3759
3760         PR tree-optimization/44377
3761         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
3762
3763 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3764
3765         * config/s390/2097.md (z10_fhex): Remove insn reservation.
3766         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
3767         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
3768         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
3769         instruction.
3770         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
3771
3772 2010-06-02  Jan Hubicka  <jh@suse.cz>
3773
3774         * bitmap.c (bitmap_descriptor): Add search_iter.
3775         (bitmap_find_bit): Increment it.
3776         (print_statistics): Print it.
3777
3778 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
3779
3780         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
3781         instead of gimple_build_call_vec.  Delete unnecessary local variable.
3782
3783 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3784
3785         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
3786         change from yesterday.
3787
3788 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3789
3790         * c-ada-spec.c: Clean up redundant includes.
3791
3792 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
3793
3794         * gimplify.c: Do not include except.h and optabs.h.
3795         (gimplify_body): Do not initialize RTL profiling.
3796         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
3797         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
3798         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
3799         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
3800         langhooks.h.
3801
3802         * tree-pretty-print.h: Include pretty-print.h.
3803         * gimple-pretty-print.h: Include pretty-print.h.
3804
3805         * tree-pretty-print.c: Do not include diagnostic.h.
3806         * tree-vrp.c: Likewise.
3807         * tree-tailcall.c: Likewise
3808         * tree-scalar-evolution.c: Likewise
3809         * tree-ssa-dse.c: Likewise
3810         * tree-chrec.c: Likewise
3811         * tree-ssa-sccvn.c: Likewise
3812         * tree-ssa-copyrename.c: Likewise
3813         * tree-nomudflap.c: Likewise
3814         * tree-call-cdce.c: Likewise
3815         * tree-stdarg.c: Likewise
3816         * tree-ssa-math-opts.c: Likewise
3817         * tree-nrv.c: Likewise
3818         * tree-ssa-sink.c: Likewise
3819         * tree-browser.c: Likewise
3820         * tree-ssa-loop-ivcanon.c: Likewise
3821         * tree-ssa-loop.c: Likewise
3822         * tree-parloops.c: Likewise
3823         * tree-ssa-address.c: Likewise
3824         * tree-ssa-ifcombine.c: Likewise
3825         * tree-if-conv.c: Likewise
3826         * tree-data-ref.c: Likewise
3827         * tree-affine.c: Likewise
3828         * tree-ssa-phiopt.c: Likewise
3829         * tree-ssa-coalesce.c: Likewise
3830         * tree-ssa-pre.c: Likewise
3831         * tree-ssa-live.c: Likewise
3832         * tree-predcom.c: Likewise
3833         * tree-ssa-forwprop.c: Likewise
3834         * tree-ssa-dce.c: Likewise
3835         * tree-ssa-ter.c: Likewise
3836         * tree-ssa-loop-prefetch.c: Likewise
3837         * tree-optimize.c: Likewise
3838         * tree-ssa-phiprop.c: Likewise
3839         * tree-object-size.c: Likewise
3840         * tree-outof-ssa.c: Likewise
3841         * tree-ssa-structalias.c: Likewise
3842         * tree-switch-conversion.c: Likewise
3843         * tree-ssa-reassoc.c: Likewise
3844         * tree-ssa-operands.c: Likewise
3845         * tree-vectorizer.c: Likewise
3846         * tree-vect-data-refs.c: Likewise
3847         * tree-vect-generic.c: Likewise
3848         * tree-vect-stmts.c: Likewise
3849         * tree-vect-patterns.c: Likewise
3850         * tree-vect-slp.c: Likewise
3851         * tree-vect-loop.c: Likewise
3852         * tree-ssa-loop-ivopts.c: Likewise
3853         * tree-ssa-loop-im.c: Likewise
3854         * tree-ssa-loop-niter.c: Likewise
3855         * tree-ssa-loop-unswitch.c: Likewise
3856         * tree-ssa-loop-manip.c: Likewise
3857         * tree-ssa-loop-ch.c: Likewise
3858         * tree-dump.c: Likewise
3859         * tree-complex.c: Likewise
3860
3861         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
3862         * tree-ssa-uninit.c: Likewise
3863         * tree-ssa-threadupdate.c: Likewise
3864         * tree-ssa-uncprop.c: Likewise
3865         * tree-ssa-ccp.c: Likewise
3866         * tree-ssa-dom.c: Likewise
3867         * tree-ssa-propagate.c: Likewise
3868         * tree-ssa-alias.c: Likewise
3869         * tree-dfa.c: Likewise
3870         * tree-cfgcleanup.c: Likewise
3871         * tree-sra.c: Likewise
3872         * tree-ssa-copy.c: Likewise
3873         * tree-ssa.c: Likewise
3874         * tree-profile.c: Likewise
3875         * tree-cfg.c: Likewise
3876         * tree-ssa-threadedge.c: Likewise
3877         * tree-vect-loop-manip.c: Likewise
3878
3879         * tree-inline.c: Do not include diagnostic.h and expr.h.
3880         Include rtl.h.
3881         (copy_decl_for_dup_finish): Do not use NULL_RTX.
3882
3883         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
3884         * tree-loop-distribution.c: Likewise.
3885
3886 2010-06-01  Jan Hubicka  <jh@suse.cz>
3887
3888         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
3889
3890 2010-06-01  Jan Hubicka  <jh@suse.cz>
3891
3892         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
3893         remove return value.
3894         (split_bbs_on_noreturn_calls) .... here.
3895         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
3896         * tree-flow.h (fixup_noreturn_call): New.
3897
3898 2010-06-01  Jan Hubicka  <jh@suse.cz>
3899
3900         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
3901
3902 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
3903
3904         * tree.h (build_nt_call_list): Delete.
3905         * tree.c (build_nt_call_list): Delete.
3906
3907 2010-06-01  Jan Hubicka  <jh@suse.cz>
3908
3909         * fwprop.c: Make emit-rtl.h include last.
3910         * rtlanal.c: Include emit-rtl.h.
3911         * genautomata.c: Output emit-rtl include into insn-automata.c
3912         * df-scan.c: Include emit-rtl.h.
3913         * haifa-sched.c: Indlude emit-rtl.h.
3914         * mode-switching.c: Indlude emit-rtl.h.
3915         * graph.c: Indlude emit-rtl.h.
3916         * sel-sched.c: Include emit-rtl.h.
3917         * sel-sched-ir.c: Include emit-rtl.h.
3918         * ira-build.c: Include emit-rtl.h.
3919         * emit-rtl.c: (first_insn, last_insn): Remove defines.
3920         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
3921         Move to emit-rtl.h.
3922         (set_new_first_and_last_insn, get_last_insn_anywhere,
3923         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
3924         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
3925         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
3926         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
3927         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
3928         Use accessor functions.
3929         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
3930          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
3931         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
3932         mem_expr_equal_p): Move here from rtl.h.
3933         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
3934         Move here from emit-rtl.c; make inline.
3935         * cfglayout.h: Include emit-rtl.h.
3936         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
3937          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
3938         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
3939         mem_expr_equal_p, get_insns, set_first-insn,
3940         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
3941         * reg-stack.c: Include emit-rtl.h.
3942         * dce.c: Likewise.
3943
3944 2010-06-01  Jan Hubicka  <jh@suse.cz>
3945
3946         * cgraph.h (tree_function_versioning): Update prototype.
3947         (cgraph_function_versioning): Update prototype.
3948         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
3949         bitmap.
3950         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
3951         (cgraph_materialize_clone, save_inline_function_body): Update use of
3952         tree_function_versioning.
3953         * tree-inline.c (copy_bb): Look for previous copied block to link
3954         after; fix debug output.
3955         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
3956         (copy_body): Likewise.
3957         (expand_call_inline): Update use of copy_body.
3958         (tree_function_versioning): Update use of copy body; accept
3959         blocks_to_copy and new_entry.
3960
3961 2010-06-01  Jan Hubicka  <jh@suse.cz>
3962
3963         * gegenrtl.c: Remove unnecesary prototypes.
3964         (gendecl): Remove.
3965         (gendef): Produce static inline.
3966         (gencode): Remove.
3967         (main): Do not decode parameters; generate header only.
3968         * Makefile.in (genrtl.c): Remove.
3969
3970 2010-06-01  Jan Hubicka  <jh@suse.cz>
3971
3972         * tree-switch-conversion.c (build_one_array): Make it readonly.
3973
3974 2010-06-01  Richard Guenther  <rguenther@suse.de>
3975
3976         * optabs.c (init_optabs): Guard all accesses to reinit.
3977         * ipa-pure-const.c (propagate): Fix another typo.
3978         * opts.c (common_handle_option): Split assignment to bool.
3979         * c-opts.c (c_common_handle_option): Likewise.
3980
3981 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
3982             Matthew Gingell  <gingell@adacore.com>
3983
3984         * doc/invoke.texi: Mention -fdump-ada-spec.
3985         * tree-dump.c (dump_files): Add ada-spec.
3986         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
3987         * tree-pass.h (tree_dump_index): Add TDI_ada.
3988         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
3989         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
3990         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
3991         * c-decl.c: Include c-ada-spec.h.
3992         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
3993         functions.
3994         (c_write_global_declarations): Add handling of -fdump-ada-spec.
3995         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
3996         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
3997         * c-ada-spec.h, c-ada-spec.c: New files.
3998
3999 2010-06-01  Richard Guenther  <rguenther@suse.de>
4000
4001         PR lto/43853
4002         * ipa-pure-const.c (get_function_state): Hand back varying state
4003         if we do not have one.
4004         (has_function_state): New function.
4005         (duplicate_node_data): Adjust.
4006         (remove_node_data): Likewise.
4007         (pure_const_write_summary): Likewise.
4008         (propagate): Likewise.  Fix typo.
4009
4010 2010-06-01  Jan Hubicka  <jh@suse.cz>
4011
4012         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
4013         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
4014         (execute_all_ipa_transforms): Do not play with the states.
4015
4016 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4017
4018         * config/arm/t-linux-androideabi: New.
4019         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
4020
4021 2010-06-01  Jan Hubicka  <jh@suse.cz>
4022
4023         * tree-inline.c (estimate_num_insns): For stdarg functions look
4024         into call statement to count cost of argument passing.
4025
4026 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
4027
4028         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
4029         argument for fprintf.
4030         (ix86_output_addr_diff_elt): Likewise.
4031         (x86_function_profiler): Likewise.
4032         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
4033         (LPREFIX): Likewise.
4034         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
4035
4036 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
4037
4038         PR target/44338
4039         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
4040         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
4041         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
4042         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
4043         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
4044         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
4045         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
4046         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
4047         TARGET_FUSED_MADD.
4048
4049 2010-05-31  Jan Hubicka  <jh@suse.cz>
4050
4051         * tree.h (tree_range_check_failed): Declare noreturn.
4052
4053 2010-05-31  Jan Hubicka  <jh@suse.cz>
4054
4055         * gimple.c (gimple_call_builtin_p): New function.
4056         * gimple.h (gimple_call_builtin_p): Declare.
4057         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
4058         to exit.
4059         (execute_warn_function_return): BUILT_IN_RETURN is return.
4060         (split_critical_edges): Return edges are not critical.
4061         (is_ctrl_altering_stmt): Builtin_in_return is altering.
4062         (gimple_verify_flow_info): Handle built_in_return.
4063         (execute_warn_function_return): Handle built_in_return.
4064         * ipa-pure-const.c (check_call): Ignore builtin_return.
4065
4066 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
4067
4068         PR middle-end/44337
4069         * expr.c (expand_assignment): Don't store anything for out-of-bounds
4070         array accesses with non-MEM.
4071
4072         PR tree-optimization/44182
4073         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
4074         newly needs to end a bb is followed by debug stmts, instead return
4075         true from the function at the end.
4076         (maybe_move_debug_stmts_to_successors): New function.
4077         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
4078
4079 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
4080
4081         PR target/44161
4082         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
4083
4084 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
4085
4086         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
4087         for nested functions in non-optimized compilation.
4088
4089 2010-05-31  Richard Guenther  <rguenther@suse.de>
4090
4091         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
4092
4093 2010-05-30  Jan Hubicka  <jh@suse.cz>
4094
4095         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
4096
4097 2010-05-30  Richard Guenther  <rguenther@suse.de>
4098
4099         PR lto/42975
4100         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
4101         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
4102         no longer needed.
4103
4104 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
4105
4106         * config/darwin.c (output_objc_section_asm_op): Add comment.
4107         (name_needs_quotes): Add '_' to list of valid comment chars.
4108         (machopic_output_function_base_name): Remove unneeded quotes.
4109         (darwin_encode_section_info): Adjust asm whitespace.
4110         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
4111         (ASM_OUTPUT_LOCAL): Ditto.
4112         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
4113         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
4114         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
4115
4116 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4117
4118         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
4119         RS6000_OUTPUT_BASENAME unconditionally.
4120         (rs6000_output_function_epilogue): Likewise.
4121
4122 2010-05-30  Jan Hubicka  <jh@suse.cz>
4123
4124         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
4125         nodes.
4126
4127 2010-05-30  Richard Guenther  <rguenther@suse.de>
4128
4129         * tree-cfg.c (verify_gimple_assign_single): Implement
4130         verification for COND_EXPR rhs.
4131
4132 2010-05-30  Jan Hubicka  <jh@suse.cz>
4133
4134         * cgraph.h (cgraph_dump_file): Declare.
4135         * cgraphunit.c (cgraph_dump_file): Export.
4136         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
4137
4138 2010-05-30  Jan Hubicka  <jh@suse.cz>
4139
4140         * dwarf2out.c (reference_to_unused,
4141         premark_types_used_by_global_vars_helper): Avoid creation of new
4142         varpool nodes.
4143
4144 2010-05-30  Jan Hubicka  <jh@suse.cz>
4145
4146         * cgraph.h (cgraph_node_cannot_return,
4147         cgraph_edge_cannot_lead_to_return): New functions.
4148         * cgraph.c (cgraph_node_cannot_return,
4149         cgraph_edge_cannot_lead_to_return): Use them.
4150         * ipa-pure-const.c (pure_const_names): New static var.
4151         (check_call): Handle calls not leading to return.
4152         (pure_const_read_summary): Dump info read.
4153         (propagate): Dump info about propagation process; ignore side effects
4154         of functions not leading to exit; fix handling of pure functions.
4155
4156 2010-05-30  Jan Hubicka  <jh@suse.cz>
4157
4158         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
4159         for tail call epilogues.
4160
4161 2010-05-30  Jan Hubicka  <jh@suse.cz>
4162
4163         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
4164         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
4165         dump files.
4166
4167 2010-05-29  Jan Hubicka  <jh@suse.cz>
4168
4169         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
4170         node; remove references in node we no longer keep in cgrpah but need
4171         body of.
4172
4173 2010-05-29  Jan Hubicka  <jh@suse.cz>
4174
4175         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
4176
4177 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4178
4179         PR target/44165
4180         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
4181
4182 2010-05-29  Jan Hubicka  <jh@suse.cz>
4183
4184         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
4185         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
4186         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
4187         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
4188         debug_names_replaced_by, debug_update_ssa): Likewise.
4189         * sbitmap.c (debug_sbitmap): Likewise.
4190         * genrecog.c (debug_decision, debug_decision_list): Likewise.
4191         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
4192         debug_tree_chain): Likewise.
4193         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
4194         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
4195         * optabs.c  (debug_optab_libfuncs): Likewise.
4196         (verify_loop_closed_ssa): Likewise.
4197         * value-prof.c (verify_histograms): Likewise.
4198         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
4199         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
4200         * cfghooks.c (verify_flow_info): Likewise.
4201         * fold-const.c (debug_fold_checksum): Likewise.
4202         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
4203         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
4204         Likewise.
4205         * omega.c (debug_omega_problem): Likewise.
4206         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
4207         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
4208         * dominance.c (verify_dominators, debug_dominance_info,
4209         debug_dominance_tree): Likewise.
4210         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
4211         * df_regno_debug, df_ref_debug,
4212         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
4213         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
4214         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
4215         * sel-sched.c (debug_state): Likewise.
4216         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
4217         Likewise.
4218         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
4219         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
4220         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
4221         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
4222         Likewise.
4223         * c-pretty-print.c (debug_c_tree): Likewise.
4224         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
4225         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
4226         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
4227         * ebitmap.c (debug_ebitmap): Likewise.
4228         * function.c (debug_find_var_in_block_tree): Likewise.
4229         * print-rtl.c (debug_rtx): Likewise.
4230         (debug_rtx_count): Likewise.
4231         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
4232         * stor-layout.c (debug_rli): Likewise.
4233         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
4234         * tree-data-ref.c (debug_data_references,
4235         debug_data_dependence_relations, debug_data_reference,
4236         debug_data_dependence_relation, debug_rdg_vertex,
4237         debug_rdg_component, debug_rdg): Likewise.
4238         * tree-affine.c (debug_aff): Likewise.
4239         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
4240         Likewise.
4241         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
4242         * emit-rtl.c (verify_rtl_sharing): Likewise.
4243         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
4244         debug_value_expressions): Likewise.
4245         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
4246         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
4247         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
4248         * cfglayout.c (verify_insn_chain): Likewise.
4249         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
4250         debug_clast_stmt, debug_generated_program): Likewise.
4251         * ggc-page.c (debug_print_page_list): Likewise.
4252         * tree-ssa-ter.c (debug_ter): Likewise.
4253         * graphite-dependences.c (debug_pddr): Likewise.
4254         * sched-deps.c (debug_ds): Likewise.
4255         * tree-ssa.c (verify_ssa): Likewise.
4256         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
4257         debug_scattering_functions, debug_iteration_domains, debug_pdr,
4258         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
4259         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
4260         * tree-inline.c (debug_find_tree): Likewise.
4261         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
4262         debug_ppl_powerset_matrix): Likewise.
4263         * var-tracking.c (debug_dv): Likewise.
4264         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
4265         * cfgloop.c (verify_loop_structure): Likewise.
4266         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
4267         * c-common.c (verify_sequence_points): Likewise.
4268         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
4269         debug_candidates, debug_rgn_dependencies): Likewise.
4270         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
4271         * debug_constraint_graph, debug_solution_for_var,
4272         debug_sa_points_to_info): Likewise.
4273         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
4274         Likewie.
4275         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
4276         debug_loops, debug_loop, debug_loop_num): Likewise.
4277         * passes.c (debug_pass): Likewise.
4278         (dump_properties): Likewise; add cfglayout property.
4279         (debug_properties): Likewise.
4280         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
4281         * varpool.c (debug_varpool): Likewise.
4282         * regcprop.c (debug_value_data): Likewise.
4283         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
4284         debug_immediate_uses_for): Likewise.
4285
4286 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4287
4288         PR bootstrap/44315
4289         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
4290         Filter out insn-flags.h.
4291
4292 2010-05-29  Jan Hubicka  <jh@suse.cz>
4293
4294         * cgraph.h (struct varpool_node_set_def,
4295         struct cgraph_node_set_def): Remove unused AUX pointer.
4296         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
4297         VEC_empty macro.
4298
4299 2010-05-29  Jan Hubicka  <jh@suse.cz>
4300
4301         PR middle-end/44324
4302         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
4303
4304 2010-05-29  Richard Guenther  <rguenther@suse.de>
4305
4306         * lto-streamer.c (cached_bp): New global variable.
4307         (bitpack_create): Return the cached bitpack, if available.
4308         (bitpack_delete): Clear and cache the bitpack, if appropriate.
4309         (bp_pack_value): Remove redundant asserts.
4310
4311 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
4312
4313         PR middle-end/44306
4314         * tree-if-conv.c (is_true_predicate): New.
4315         (is_predicated): Use is_true_predicate.
4316         (add_to_predicate_list): Same.  Do not use unshare_expr.
4317         (add_to_dst_predicate_list): Same.
4318
4319 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
4320
4321         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
4322         field on edges.
4323         (predicate_bbs): Same.
4324         (clean_predicate_lists): Same.
4325         (find_phi_replacement_condition): Do not AND the predicate from
4326         edge->aux.
4327
4328 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4329
4330         PR bootstrap/44315
4331         * Makefile.in (build/gencondmd.o): Add a missing `\'.
4332
4333 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4334
4335         PR target/44261
4336         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
4337         (negdf2): Adjust expander pattern and use negdf2_slow.
4338         (negsf2): Likewise.
4339
4340 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
4341
4342         * basic-block.h (struct control_flow_graph): Move last_label_uid field
4343         up.
4344         * df.h (struct df_base_ref): Move regno field up.
4345         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
4346         * expr.h (struct separate_ops): Move location field up.
4347         * optabs.h (struct optab_d): Move libcall_basename field down.
4348         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
4349         * config/i386/i386.h (struct machine_function): Convert call_abi field
4350         into a bitfield.  Move cfa field to the end of the structure.
4351
4352 2010-05-29  Jan Hubicka  <jh@suse.cz>
4353
4354         * varpool.c (varpool_get_node): Fix lookup.
4355
4356 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4357
4358         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
4359         RTL specific prototypes with #ifdef RTX_CODE.
4360         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
4361         * config/spu/t-spu-elf: Fix dependencies.
4362
4363         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
4364
4365 2010-05-29  Mike Stump  <mikestump@comcast.net>
4366
4367         PR bootstrap/44315
4368         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
4369         TM_H when building to avoid dependency loops.
4370
4371 2010-05-29  Jan Hubicka  <jh@suse.cz>
4372
4373         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
4374         refs and body; not the whole node for masters of materialized clones.
4375
4376 2010-05-29  Mike Stump  <mikestump@comcast.net>
4377
4378         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
4379
4380 2010-05-29  Jan Hubicka  <jh@suse.cz>
4381
4382         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
4383         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
4384         use of clone_function_name.
4385         * cgraph.h (cgraph_create_virtual_clone,
4386         cgraph_function_versioning): update prototypes.
4387         (clone_function_name): Declare.
4388         * ipa-cp.c (ipcp_insert_stage): Update call of
4389         cgraph_create_virtual_clone.
4390         * omp-low.c (create_omp_child_function_name): Use
4391         cgraph_create_virtual_clone.
4392         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
4393         (cgraph_function_versioning): Take SUFFIX argument; produce new name
4394         and make decl local.
4395
4396 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4397
4398         * vec.h: Include statistics.h
4399         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
4400         with VEC_H.
4401
4402 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4403
4404         * c-lex.c: Do not include c-tree.h.
4405         * c-pretty-print.c: Likewise.
4406         * c-opts.c: Likewise.
4407         * c-gimplify.c: Likewise.
4408         * c-common.c: Likewise.
4409         * c-dump.c: Likewise.  Include c-common.h.
4410
4411 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4412
4413         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
4414         before including diagnostic-core.h.
4415         (c_cpp_error): New prototype moved from c-tree.h.
4416         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
4417         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
4418         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
4419         (c_cpp_error): Prototype moved to c-common.h.
4420         * Makefile.in: Update dependency for C_COMMON_H.
4421
4422 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4423
4424         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
4425         * c-common.c (c_register_addr_space): Remove here.
4426         * c-decl.c (c_register_addr_space): Re-add here.
4427
4428 2010-05-28  Mike Stump  <mikestump@comcast.net>
4429
4430         * config/darwin-c.c: Remove c-tree.h include.
4431
4432 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4433
4434         * gcc.c: Include diagnostic.h.
4435         (error_count): Remove.  All users changed to use errorcount.
4436         (programname): Remove.  All users changed to use progname.
4437         (fancy_abort, internal_error, fatal_error, error, warning, inform,
4438         fnotice): Remove.
4439         (execute): Don't include "Internal error" and bug reporting
4440         information in argument of internal_error call.
4441         (process_command): Don't increment error_count after calling
4442         perror_with_name.
4443         (input_filename): Rename to gcc_input_filename.  All users
4444         changed.
4445         (main): Call diagnostic_initialize.  Register delete_temp_files
4446         with atexit.  Use seen_error to test for errors.
4447         * gcc.h: Include diagnostic-core.h.
4448         (fatal_error, error, warning): Remove.
4449         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
4450         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
4451         (gcc.o): Update dependencies.
4452
4453 2010-05-28  Jeff Law  <law@redhat.com>
4454
4455         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
4456         functions.
4457         * ira.h (ira_bad_reload_regno): Declare
4458         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
4459
4460         * ira-color.c (update_curr_costs): Free updated hard reg costs.
4461         (ira_reassign_conflict_allocnos): Remove bogus asserts.
4462         (allocno_reload_assign): Likewise.
4463
4464 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
4465
4466         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
4467         build1_stat.
4468
4469 2010-05-28  Richard Guenther  <rguenther@suse.de>
4470
4471         PR lto/44312
4472         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
4473         Stream fixed-point constants mode.
4474         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
4475         and TYPE_PRECISION.
4476         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
4477         Stream fixed-point constants mode.
4478         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
4479         and TYPE_PRECISION.
4480
4481 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4482
4483         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
4484         only place it was called from.
4485         (number_of_latch_executions): Do not return chrec_dont_know when the
4486         may_be_zero is a runtime condition: instead, return a COND_EXPR
4487         including the may_be_zero condition.
4488         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
4489         of nb_iterations.
4490         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
4491         COND_EXPRs.
4492
4493 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4494
4495         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
4496         generate COND_EXPRs for degenerate_phi_result.
4497
4498 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4499
4500         PR middle-end/44293
4501         * tree-if-conv.c (if_convertible_loop_p): Check the
4502         if-convertibility of phi nodes in non predicated BBs.
4503
4504 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4505
4506         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
4507
4508 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4509
4510         PR driver/15303
4511         * gcc.c (inform, warning, inform): New functions.
4512         (fatal_ice): Rename to internal_error; change cmsgid parameter to
4513         gmsgid.  All callers changed.
4514         (notice): Rename to fnotice; add parameter fp.  All callers changed.
4515         (fatal_error): Rename to fatal_signal.  All users changed.
4516         (fatal): Rename to fatal_error; change cmsgid parameter to
4517         gmsgid.  All callers changed.
4518         (process_command): Use warning instead of error for warnings.
4519         (end_going_arg): Don't use _() around argument of error.
4520         (do_spec_1): Use inform for message from %n specs.  Use warning
4521         instead of error for warnings.
4522         (main): Use inform for comparison messages.  Use warning for
4523         message about unused linker input.
4524         (error): Increment error_count.  Print "error: ".
4525         * gcc.h (fatal): Change to fatal_error.
4526         (warning): Declare.
4527         * config/darwin-driver.c (darwin_default_min_version): Use warning
4528         instead of fprintf for warnings.
4529         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
4530
4531 2010-05-28  Julian Brown  <julian@codesourcery.com>
4532
4533         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
4534         (*thumb2_addsi3_compare0_scratch): New.
4535         * config/arm/constraints.md (Pv): New.
4536         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
4537         for ARM mode only.
4538         (*addsi3_compare0_scratch): Likewise.
4539
4540 2010-05-28  Jan Hubicka  <jh@suse.cz>
4541
4542         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
4543         check.
4544         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
4545         only on local statics.
4546
4547 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
4548
4549         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
4550
4551 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4552
4553         PR bootstrap/44314
4554         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
4555         (OPTION_GLIBC): Define.
4556
4557 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
4558
4559         PR debug/41048
4560         * dwarf2out.c (double_int_type_size_in_bits): New function.
4561         (round_up_to_align): Change first argument and return value to
4562         double_int.
4563         (field_byte_offset): Work internally on double_ints.
4564
4565         PR target/43636
4566         * builtins.c (expand_movstr): Use a temporary pseudo instead
4567         of target even when target is not NULL and not const0_rtx, but
4568         fails movstr predicate.
4569         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
4570
4571 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4572
4573         * final.c (rest_of_clean_state): Use %m in errors instead of
4574         strerror (errno).
4575         * gengtype.c (read_input_list, close_output_files): Use xstrerror
4576         instead of strerror.
4577         * toplev.c (process_options): Use %m in errors instead of strerror
4578         (errno).
4579         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
4580         (errno).
4581
4582 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
4583
4584         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
4585         (ix86_canonical_va_list_type): Make static.  Add declaration.
4586         (ix86_enum_va_list): Make static.  Reindent.
4587         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
4588         (ix86_canonical_va_list_type): Ditto.
4589         (ix86_enum_va_list): Ditto.
4590
4591 2010-05-28  Richard Guenther  <rguenther@suse.de>
4592
4593         * lto-wrapper.c (run_gcc): With -save-temps generate a
4594         user-visible ltrans filename.  Fixup ltrans unit numbering.
4595
4596 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
4597
4598         * c-common.c (c_common_nodes_and_builtins): Replace use
4599         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
4600         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
4601         to ix86_enum_va_list.
4602         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
4603         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
4604         (TARGET_ENUM_VA_LIST_P): Add hook description.
4605         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
4606         * target.h (gcc_target): Add enum_va_list hook.
4607
4608         PR bootstrap/44299
4609         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
4610         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
4611         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
4612
4613 2010-05-28  Alan Modra  <amodra@gmail.com>
4614
4615         PR target/44266
4616         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
4617         emit_library_call machinery to set up __tls_get_addr calls.
4618
4619 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4620
4621         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
4622
4623 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
4624
4625         Revert fix for PR c++/44188
4626         * c-common.c (is_typedef_decl): Revert the moving of  this
4627         definition ...
4628         * tree.c (is_typedef_decl): ... here.
4629         (typdef_variant_p): Revert the moving of this  definition
4630         here from gcc/cp/tree.c.
4631         * c-common.h (is_typedef_decl): Revert the moving of this
4632         declaration ...
4633         * tree.h (is_typedef_decl): ... here.
4634         (typedef_variant_p): Revert the moving of this  declaration here
4635         from gcc/cp/cp-tree.h
4636         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
4637         (gen_tagged_type_die): Revert the splitting out of ...
4638         (gen_type_die_with_usage): ... this function. Revert the anonymous
4639         tagged type handling.
4640         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
4641         typedefs naming anonymous tagged types.
4642
4643 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
4644
4645         * config/rs6000/rs6000-modes.def (PSImode): Delete.
4646
4647 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
4648
4649         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
4650         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
4651         throughout.
4652         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
4653         "xer" to "ca".
4654         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
4655         XER_REGS to CA_REGS throughout.
4656         * config/rs6000/rs6000.h: Same.
4657         (ADDITIONAL_REGISTER_NAMES): Add "xer".
4658         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
4659         that mode_iterator "P" is the size for arithmetic carries as well.
4660         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
4661
4662 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
4663
4664         PR bootstrap/44255
4665         * combine.c (struct rtx_subst_pair): Define unconditionally.
4666         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
4667         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
4668         Call make_compound_operation on pair->to.
4669         (propagate_for_debug): Don't call make_compound_operation here.
4670         Always use simplify_replace_fn_rtx.
4671
4672 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
4673
4674         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
4675         * config/xtensa/xtensa.c (override_options): Check
4676           TARGET_FORCE_NO_PIC and set flag_pic.
4677         * config/xtensa/xtensa.opt: Document -mforce-no-pic
4678
4679 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
4680
4681         PR bootstrap/44299
4682         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
4683         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
4684
4685 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
4686
4687         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
4688         toplev.h.
4689         * diagnostic.c: Don't include toplev.h.
4690         (progname): Define.  Moved from toplev.c.
4691         (seen_error): New function.
4692         * diagnostic.h: Include diagnostic-core.h.
4693         (diagnostic_t, emit_diagnostic): Don't declare here.
4694         * toplev.c (progname): Move to toplev.c.
4695         (emit_debug_global_declarations, compile_file, finalize,
4696         do_compile, toplev_main): Use seen_error.
4697         * toplev.h: Include diagnostic-core.h.
4698         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
4699         internal_error, warning, warning_at, error, error_n, error_at,
4700         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
4701         verbatim, fnotice, progname): Move to diagnostic-core.h.
4702         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
4703         (expand_builtin_expect): Use seen_error.
4704         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
4705         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
4706         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
4707         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
4708         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
4709         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
4710         errorcount for errors.
4711         * c-opts.c (c_common_finish): Use seen_error.
4712         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
4713         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
4714         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
4715         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
4716         (get_coverage_counts): Use seen_error.
4717         * dwarf2out.c (dwarf2out_finish): Use seen_error.
4718         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
4719         gimplify_body): Use seen_error.
4720         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
4721         * ipa-pure-const.c (gate_pure_const): Use seen_error.
4722         * ipa-reference.c (gate_reference): Use seen_error.
4723         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
4724         * lambda-code.c: Include diagnostic-core.h instead of
4725         diagnostic.h.
4726         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
4727         * lto-compress.c: Include diagnostic-core.h instead of
4728         diagnostic.h.
4729         * lto-section-in.c: Include diagnostic-core.h instead of
4730         diagnostic.h.
4731         * lto-streamer-out.c: Include diagnostic-core.h instead of
4732         diagnostic.h.
4733         * lto-streamer.c: Include diagnostic-core.h instead of
4734         diagnostic.h.
4735         (gate_lto_out): Use seen_error.
4736         * matrix-reorg.c: Include diagnostic-core.h instead of
4737         diagnostic.h.
4738         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
4739         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
4740         (gate_expand_omp, lower_omp_1): Use seen_error.
4741         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
4742         (rest_of_decl_compilation, rest_of_type_compilation,
4743         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
4744         * tree-cfg.c (label_to_block_fn): Use seen_error.
4745         * tree-inline.c (optimize_inline_calls): Use seen_error.
4746         * tree-mudflap.c (mudflap_finish_file): Use
4747         seen_error.
4748         * tree-optimize.c (gate_all_optimizations,
4749         gate_all_early_local_passes, gate_all_early_optimizations): Use
4750         seen_error.
4751         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
4752         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
4753         (varpool_remove_unreferenced_decls,
4754         varpool_assemble_pending_decls): Use seen_error.
4755         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
4756         (TOPLEV_H, DIAGNOSTIC_H): Update.
4757         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
4758         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
4759         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
4760         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
4761         coverage.o, lambda-code.o): Update dependencies.
4762
4763 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
4764
4765         PR c++/44188
4766         * c-common.c (is_typedef_decl): Move this definition ...
4767         * tree.c (is_typedef_decl): ... here.
4768         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
4769         * c-common.h (is_typedef_decl): Move this declaration ...
4770         * tree.h (is_typedef_decl): ... here.
4771         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
4772         * dwarf2out.c (is_naming_typedef_decl): New function.
4773         (gen_tagged_type_die): Split out of ...
4774         (gen_type_die_with_usage): ... this function. When an anonymous
4775         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
4776         is emitted for the typedef.
4777         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
4778         anonymous tagged types.
4779
4780 2010-05-27  Jason Merrill  <jason@redhat.com>
4781
4782         * print-tree.c (debug_vec_tree): New fn.
4783         (print_vec_tree): New fn.
4784         * tree.h: Declare them.
4785         * gdbinit.in (pvt): New command.
4786
4787         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
4788
4789         * gdbinit.in (pdd): New command.
4790
4791 2010-05-27  Jan Hubicka  <jh@suse.cz>
4792
4793         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
4794         (update_caller_keys): Return early if there are no callers;
4795         only update fibheap when decresing the key.
4796         (update_callee_keys): Avoid recursion.
4797         (decide_inlining_of_small_functions): When badness does not match;
4798         re-insert into fibheap.
4799
4800 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
4801
4802         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
4803         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
4804         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
4805         (ALL_HOST_OBJS): Now a union of the above two.
4806         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
4807         all files in ALL_HOST_FRONTEND_OBJS.
4808         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
4809
4810         * c-common.c: Pretend to be a backend file by undefining
4811         IN_GCC_FRONTEND (still need rtl.h here).
4812
4813 2010-05-27  Jan Hubicka  <jh@suse.cz>
4814
4815         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
4816         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
4817
4818 2010-05-27  Jan Hubicka  <jh@suse.cz>
4819
4820         * sched-ebb.c: Rename struct deps to struct deps_desc.
4821         * ddg.c: Likewise.
4822         * sel-sched-ir.c: Likewise.
4823         * sched-deps.c: Likewise.
4824         * sched-int.h: Likewise.
4825         * sched-rgn.c: Likewise.
4826
4827 2010-05-27  Jon Beniston <jon@beniston.com>
4828
4829         PR 43726
4830         * config/lm32/lm32.h: Remove definition of
4831         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
4832
4833 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4834
4835         PR lto/44230
4836         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
4837
4838 2010-05-27  Richard Guenther  <rguenther@suse.de>
4839
4840         PR tree-optimization/44284
4841         * tree-vect-stmts.c (vectorizable_assignment): Handle
4842         sign-changing conversions as simple copy.
4843
4844 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4845
4846         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
4847         Bionic C library.
4848         (__gthread_active_p): Check for pthread_create if compiling against
4849         Bionic C library.
4850
4851 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4852
4853         Support compilation for Android platform.  Reimplement -mandroid.
4854
4855         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
4856         (*android*): Set ANDROID_DEFAULT.
4857         (arm*-*-linux*): Include linux-android.h.
4858         (arm*-*-eabi*): Don't include previous -mandroid implementation.
4859         * config/arm/eabi.h: Remove, move Android-specific parts ...
4860         * config/linux-android.h: ... here.  New file.
4861         * config/arm/eabi.opt: Rename to ...
4862         * config/linux-android.opt: ... this.
4863         (mandroid): Allow -mno-android option.  Initialize based on
4864         ANDROID_DEFAULT.
4865         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
4866         Move logic to corresponding LINUX_TARGET_* macros.
4867         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
4868         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
4869         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
4870         Android definitions.
4871         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
4872         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
4873         Document.
4874
4875 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4876
4877         Add support for Bionic C library
4878
4879         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
4880         macro.
4881         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
4882         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
4883
4884         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
4885         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
4886         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
4887         to support multiple C libraries.  Handle Bionic.
4888         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
4889         (BIONIC_DYNAMIC_LINKER64): Define.
4890         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
4891         Update.
4892         (TARGET_HAS_SINCOS): Enable for Bionic.
4893
4894         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
4895         the last option specified on command line take effect.
4896         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
4897         (mbionic): New.
4898         (mglibc, muclibc): Update.
4899
4900         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
4901         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
4902         DEFAULT_LIBC.
4903
4904         * doc/invoke.texi (-mglibc, -muclibc): Update.
4905         (-mbionic): Document.
4906
4907 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4908
4909         * c-common.h (c_register_addr_space): Add prototype.
4910         (ADDR_SPACE_KEYWORD): Remove.
4911         * c-common.c (c_register_addr_space): New function.
4912         (c_addr_space_name): Reimplement.
4913         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
4914
4915         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
4916         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
4917
4918         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
4919         Remove TARGET_ADDR_SPACE_KEYWORDS.
4920
4921 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
4922
4923         * input.c: New file.
4924         * input.h (main_input_filename): Move declaration to toplev.h.
4925         * toplev.c (input_location, line_table): Move to input.c
4926         * toplev.h (main_input_filename): Move declaration from input.h.
4927         * tree.c (expand_location): Move to input.c.
4928         * Makefile.in (OBJS-common): Add input.o.
4929         (input.o): Add dependencies.
4930
4931 2010-05-27  Richard Guenther  <rguenther@suse.de>
4932
4933         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
4934         for non-existant files.
4935         (fork_execute): Mark args_name file as deleted.
4936
4937 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
4938
4939         PR bootstrp/44287
4940         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
4941         (narrow_signed_type): Likewise.
4942
4943 2010-05-26  Jan Hubicka  <jh@suse.cz>
4944
4945         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
4946         edge only when checking is enabled; check using former_clone_of;
4947         check inline clones too.
4948         (cgraph_materialize_clone): Record former_clone_of pointer.
4949         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
4950         combining redirections; dump args_to_skip bitmap
4951         (cgraph_materialize_all_clones): Do no redirection here.
4952         * ipa-inline.c (inline_transform): Do redirection here.
4953         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
4954         cheking only).
4955
4956 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
4957
4958         * config/avr/avr-c.c: Do not include regs.h.
4959         Include cpplib.h for cpp_define and tree.h for c-common.h.
4960         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
4961         * config/avr/t-avr: Fix dependencies for avr-c.o.
4962
4963 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
4964
4965         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
4966         string instead of SYMBOL_REF rtx.
4967         * rtl.h (set_stack_check_libfunc): Move prototype from here...
4968         * libfuncs.h: ...to here.  Adjust for explow.c change.
4969
4970 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
4971
4972         * pretty-print.c: Don't include ggc.h.
4973         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
4974         (identifier_to_locale): Use them for allocation.
4975         * pretty-print.h (identifier_to_locale_alloc,
4976         identifier_to_locale_free): Declare.
4977         * toplev.c (alloc_for_identifier_to_locale): New.
4978         (general_init): Set identifier_to_locale_alloc and
4979         identifier_to_locale_free.
4980         * Makefile.in (pretty-print.o): Update dependencies.
4981
4982 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4983
4984         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
4985         pointer types if they have different alignment or mode.
4986
4987 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
4988
4989         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4990         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4991         * config/sparc/sparc-protos.h (function_value): Remove declaration.
4992         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
4993         sparc_function_value_regno_p): New functions.
4994         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4995         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4996         (function_value): Rename to...
4997         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
4998         argument to 'outgoing'.
4999         (function_arg_record_value, function_arg_union_value,
5000         function_arg_vector_value): Update comment.
5001
5002 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5003
5004         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
5005         (fde_needed_for_eh_p): New predicate.
5006         (output_call_frame_info): Use it throughout to decide whether FDEs
5007         are needed for EH purpose.
5008         (dwarf2out_begin_prologue): Reorder assignments.
5009
5010 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5011
5012         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
5013         special case loop->header.
5014         (is_predicated): New.
5015         (if_convertible_loop_p): Call it.
5016
5017 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5018
5019         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
5020         iterator in parameter.  Do not generate code during the analysis.
5021         (tree_if_convert_cond_stmt): Removed.
5022         (tree_if_convert_stmt): Removed.
5023         (predicate_bbs): New.
5024         (if_convertible_loop_p): Call predicate_bbs.
5025         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
5026         now contains all the analysis part.
5027
5028 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5029
5030         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
5031         statements in the analysis part.
5032         (tree_if_convert_stmt): Update comment.
5033         (remove_conditions_and_labels): New.
5034         (combine_blocks): Call remove_conditions_and_labels.
5035         (tree_if_conversion): Update comment.
5036
5037 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5038
5039         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
5040         than 2 predecessors or more than 2 successors.
5041
5042 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5043
5044         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
5045         of loops in which the data dependence analysis fails.
5046
5047 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5048
5049         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
5050         CDI_POST_DOMINATORS.
5051         (tree_if_conversion): Same.
5052
5053 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5054
5055         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
5056
5057 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
5058
5059         * tree-if-conv.c: Update copyright years.  Fix comments.
5060         Fix indentation.
5061
5062 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
5063
5064         * builtin-types.def (BT_INT128): New primitive type.
5065         (BT_UINT128): Likewise.
5066         * c-common.c (c_common_r): Add __int128 keyword.
5067         (c_common_type_for_size): Handle __int128.
5068         (c_common_type_for_mode): Likewise.
5069         (c_common_signed_or_unsigned_type): Likewise.
5070         (c_common_nodes_and_builtins): Add builtin type
5071         if target supports 128-bit integer scalar.
5072         * c-common.h (enum rid): Add RID_INT128.
5073         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
5074         if target supports 128-bit integer scalar.
5075         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
5076         (finish_declspecs): Likewise.
5077         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
5078         (c_token_starts_declspecs): Likewise.
5079         (c_parser_declspecs): Likewise.
5080         (c_parser_attributes): Likewise.
5081         (c_parser_objc_selector): Likewise.
5082         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
5083         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
5084         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
5085         * tree.c (make_or_reuse_type): Likewise.
5086         (make_unsigned_type): Likewise.
5087         (build_common_tree_nodes_2): Likewise.
5088         * tree.h (enum integer_type_kind): Add itk_int128 and
5089         itk_unsigned_int128.
5090         (int128_integer_type_node): New define.
5091         (int128_unsigned_type_node): New define.
5092         * doc/extend.texi: Add documentation about __int128 type.
5093
5094 2010-05-26  Richard Guenther  <rguenther@suse.de>
5095
5096         * tree-ssa-sccvn.c (copy_nary): Adjust.
5097         (copy_phis): Rename to ...
5098         (copy_phi): ... this.  Adjust.
5099         (copy_references): Rename to ...
5100         (copy_reference): ... this.  Adjust.
5101         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
5102         result into the valid table.
5103
5104 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5105
5106         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
5107         insn-config.h, insn-codes.h, recog.h, and optabs.h.
5108
5109 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5110
5111         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
5112
5113 2010-05-26  Richard Guenther  <rguenther@suse.de>
5114
5115         * opts.c (common_handle_option): Handle OPT_Ofast.
5116
5117 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
5118
5119         * diagnostic.c: Don't include opts.h.
5120         (permissive_error_option): Define.
5121         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
5122         for classify_diagnostic.  Don't use memset for
5123         classify_diagnostic.  Initialize new and recently added fields.
5124         (diagnostic_classify_diagnostic): Use context->n_opts instead of
5125         N_OPTS.
5126         (diagnostic_report_diagnostic): Pass context parameter to
5127         diagnostic_report_warnings_p.  Use option_enabled and option_name
5128         hooks from context.
5129         (emit_diagnostic): Use permissive_error_option.
5130         (permerror): Likewise.
5131         * diagnostic.h: Don't include options.h.
5132         (struct diagnostic_context): Add n_opts, opt_permissive,
5133         inhibit_warnings, warn_system_headers, option_enabled and
5134         option_name fields.  Change classify_diagnostic to a pointer.
5135         * opts-diagnostic.h: New file.
5136         * opts.c: Include opts-diagnostic.h.
5137         (common_handle_option): Set global_dc fields for -Wfatal-errors,
5138         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
5139         (option_name): New function.
5140         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
5141         (c_common_handle_option): Set global_dc->permissive for
5142         -fpermissive.
5143         * c-common.c (c_cpp_error): Save and restore
5144         global_dc->warn_system_headers, not variable warn_system_headers.
5145         * toplev.c: Include opts-diagnostic.h.
5146         (general_init): Update call to diagnostic_initialize.  Set
5147         global_dc->show_column, global_dc->option_enabled and
5148         global_dc->option_name.
5149         (process_options): Don't set global_dc fields here.
5150         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
5151         (diagnostic.o, opts.o, toplev.o): Update dependencies.
5152
5153 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5154
5155         * config/picochip/picochip.md (movsi): Split a movsi from a
5156         const after reload.
5157
5158 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5159
5160         * ggc-zone.c: Update copyright year.
5161         (poison_region): Mark memory for Valgrind as undefined before
5162         memset () call and inaccessible afterwards.
5163         (ggc_pch_total_size): Change type of i to int.
5164
5165 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5166
5167         * ggc-common.c (ggc_free_overhead): Allow empty slot.
5168
5169 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5170
5171         * ggc-common.c: Update copyright year.
5172         (ggc_rlimit_bound): Remove prototype.  Compile only if
5173         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
5174         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
5175         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
5176         (ggc_min_heapsize_heuristic): Likewise.
5177
5178 2010-05-26  Richard Guenther  <rguenther@suse.de>
5179
5180         PR rtl-optimization/44164
5181         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
5182         no-common access-path disambiguation.
5183         (indirect_ref_may_alias_decl_p): Adjust.
5184         (indirect_refs_may_alias_p): Likewise.
5185         (refs_may_alias_p_1): Likewise.
5186
5187 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5188
5189         * c-typeck.c: Do not include expr.h.
5190
5191 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5192
5193         * rtl.h (decl_default_tls_model): Move prototype from here...
5194         * output.h: ...to here.
5195         * c-decl.c: Do not include rtl.h.
5196         * c-pragma.c: Likewise.
5197         * c-parser.c: Likewise.
5198         * c-gimplify.c: Likewise.  And also not hard-reg-set.
5199         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
5200         FIXME note for it.  Add a FIXME note for expr.h.
5201         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
5202         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
5203         defined.
5204
5205 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
5206
5207         PR target/44199
5208         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
5209         or total_size is larger than red zone size for non-V4 ABI, emit a
5210         stack_tie resp. frame_tie insn before stack pointer restore.
5211         * config/rs6000/rs6000.md (frame_tie): New insn.
5212
5213 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5214
5215         * function.h (struct function): Add can_throw_non_call_exceptions bit.
5216         * lto-streamer-in.c (input_function): Stream it in.
5217         * lto-streamer-out.c (output_function): Stream it out.
5218         * function.c (allocate_struct_function): Set it.
5219         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
5220         for flag_non_call_exceptions.
5221         * cfgbuild.c (control_flow_insn_p): Likewise.
5222         (make_edges): Likewise.
5223         * cfgexpand.c (expand_stack_alignment): Likewise.
5224         * combine.c (distribute_notes): Likewise.
5225         * cse.c (cse_extended_basic_block): Likewise.
5226         * except.c (insn_could_throw_p): Likewise.
5227         * gcse.c (simple_mem): Likewise.
5228         * ipa-pure-const.c (check_call): Likewise.
5229         (check_stmt ): Likewise.
5230         * lower-subreg.c (lower-subreg.c): Likewise.
5231         * optabs.c (emit_libcall_block): Likewise.
5232         (prepare_cmp_insn): Likewise.
5233         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
5234         * postreload.c (rest_of_handle_postreload): Likewise.
5235         * reload1.c (reload_as_needed): Likewise.
5236         (emit_input_reload_insns): Likewise.
5237         (emit_output_reload_insns): Likewise.
5238         (fixup_abnormal_edges): Likewise.
5239         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
5240         * store-motion.c (find_moveable_store): Likewise.
5241         * tree-eh.c (stmt_could_throw_p): Likewise.
5242         (tree_could_throw_p): Likewise.
5243         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5244         * config/arm/arm.c (arm_expand_prologue): Likewise.
5245         (thumb1_expand_prologue): Likewise.
5246         * config/rx/rx.md (cbranchsf4): Likewise.
5247         (cmpsf): Likewise.
5248         * config/s390/s390.c (s390_emit_prologue): Likewise.
5249         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
5250         (inline_forbidden_into_p): New predicate.
5251         (expand_call_inline): Use it to forbid inlining.
5252         (tree_can_inline_p): Likewise.
5253
5254 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5255
5256         * config/i386/i386-c.c: Do not include rtl.h.
5257         * config/i386/t-i386: Update dependencies.
5258
5259 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5260
5261         * attribs.c: Do not include rtl.h.
5262         * Makefile.in: Update dependencies.
5263
5264 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
5265
5266         * double-int.h (double_int_and): New.
5267         * combine.c (try_combine): Clean up, use double_int_* and
5268         immed_double_int_const functions.
5269
5270 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5271
5272         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
5273         stderr to /dev/null instead of grep -q.
5274         * configure: Regenerate.
5275
5276 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5277
5278         * Makefile.in (EXCEPT_H): Fix typo.
5279
5280 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
5281
5282         * ira-build.c (update_conflict_hard_reg_costs): New.
5283         (ira_build): Call update_conflict_hard_reg_costs.
5284
5285 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
5286
5287         PR debug/41371
5288         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
5289         ENABLE_CHECKING.
5290         (intersect_loc_chains): Walk the s2var's loc_chain together
5291         with s1node chain as long as the locations are equal, don't
5292         call find_loc_in_1pdv in that case.
5293
5294         PR debug/42801
5295         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
5296         (copy_bind_expr): ... instead of here.
5297         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
5298         if the block hasn't been remapped.
5299         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
5300         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
5301
5302 2010-05-25  Richard Guenther  <rguenther@suse.de>
5303
5304         PR middle-end/44069
5305         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
5306         out-of-bounds array accesses.
5307
5308 2010-05-25  Richard Guenther  <rguenther@suse.de>
5309
5310         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
5311         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
5312         (run_gcc): Re-organize to make cleanup easier.
5313
5314 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5315
5316         * config/s390/s390.c (optimization_options): Fix and move the
5317         flag_prefetch_loop_arrays override ...
5318         (override_options): ... here.
5319
5320 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
5321
5322         * diagnostic.c: Don't include plugin.h.
5323         (diagnostic_report_diagnostic): Don't handle plugins specially
5324         here.  Pass context to internal_error callback.
5325         * diagnostic.h (struct diagnostic_context): Add context parameter
5326         to internal_error callback.
5327         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
5328         * plugin.h (struct diagnostic_context): Declare.
5329         (warn_if_plugins, plugins_internal_error_function): Declare.
5330         * toplev.c (general_init): Set global_dc->internal_error.
5331         * Makefile.in (diagnostic.o): Update dependencies.
5332
5333 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
5334
5335         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
5336         * config/rs6000/t-darwin64: New.
5337         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
5338         build crt2.
5339
5340 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
5341
5342         PR 44203
5343         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
5344         match the original (and intended) behaviour before r159557.  This
5345         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
5346         in two ways.
5347
5348 2010-05-25  Richard Guenther  <rguenther@suse.de>
5349
5350         * doc/invoke.texi: Document -Ofast.
5351         * target.h (struct gcc_target): Add handle_ofast.
5352         * target-def.h (TARGET_HANDLE_OFAST): Add.
5353         (TARGET_INITIALIZER): Adjust.
5354         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
5355         * common.opt (Ofast): Add.
5356
5357 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
5358
5359         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
5360         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
5361
5362 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
5363
5364         PR target/43610
5365         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
5366         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
5367         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
5368         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
5369
5370 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
5371
5372         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
5373         DW_OP_minus with negated offset instead of DW_OP_plus.
5374         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
5375
5376 2010-05-25  Wei Guozhi  <carrot@google.com>
5377
5378         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
5379         tst instruction and a new alternative.
5380         * config/arm/constraints.md (Pu): New constraint.
5381
5382 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
5383
5384         * function.c (assign_stack_local_1): Initialize variable
5385         to avoid warning when bootstrapping at -O3.
5386
5387 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
5388
5389         * configure.ac (all_lang_makefiles): Remove everything related to it.
5390         * configure: Regenerate.
5391         * Makefile.in: Fix reference to ada Make-lang.in.
5392         Remove support for LANG_MAKEFILES.
5393
5394 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
5395             Sandra Loosemore  <sandra@codesourcery.com>
5396
5397         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
5398         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
5399         description.  Add arm_neon_fp16_ok.
5400         (Add Options): Add arm_neon and arm_neon_fp16.
5401
5402 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
5403
5404         * diagnostic.c: Don't include flags.h.
5405         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
5406         context parameters.  Check flags in the context passed as a parameter.
5407         (diagnostic_build_prefix): Add context parameter.  Check
5408         show_column flag in context.
5409         (diagnostic_action_after_output): Check fatal_errors flag in context.
5410         (diagnostic_report_current_module): Check show_column flag in context.
5411         (default_diagnostic_starter): Update call to
5412         diagnostic_build_prefix.
5413         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
5414         (emit_diagnostic): Pass context to permissive_error_kind.
5415         (permerror): Pass context to permissive_error_kind.
5416         * diagnostic.h (struct diagnostic_context): Add show_column,
5417         pedantic_errors, permissive and fatal_errors fields.
5418         (diagnostic_build_prefix): Update prototype.
5419         * langhooks.c
5420         * toplev.c (process_options): Set flags in global_dc from
5421         flag_show_column, flag_pedantic_errors, flag_permissive,
5422         flag_fatal_errors.
5423         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
5424         to diagnostic_build_prefix.
5425         * Makefile.in (diagnostic.o): Update dependencies.
5426
5427 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5428
5429         * config/i386/ia32intrin.h (__crc32q): Define only if
5430         __SSE4_2__ is defined.
5431
5432 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
5433
5434         PR target/44132
5435         PR middle-end/43602
5436         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
5437         DECL_VISIBILITY_SPECIFIED.
5438         (emutls_decl): Set DECL_PRESERVE_P and copy
5439         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
5440         (emutls_finalize_control_var): New callback.
5441         (emutls_finish): Finalize emutls control variables.
5442         * toplev.c (compile_file): Move the call to emutls_finish ()
5443         before varpool_assemble_pending_decls ().
5444
5445 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
5446
5447         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
5448         added to the preprocessor condition.
5449
5450 2010-05-24  Paul Brook  <paul@codesourcery.com>
5451
5452         * gengtype-lex.l: Add HARD_REG_SET.
5453         * expr.c (expand_expr_real_1): Record writes to hard registers.
5454         * function.c (rtl_data): Add asm_clobbers.
5455         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
5456         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
5457         Use crtl->asm_clobbers.
5458
5459 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5460
5461         * doc/makefile.texi (Makefile): Mention stages 'profile'
5462         and 'feedback' for profiledbootstrap.
5463
5464 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
5465
5466         PR target/44245
5467         * config/i386/i386.c (def_builtin): Properly check
5468         OPTION_MASK_ISA_64BIT.
5469
5470 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
5471
5472         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
5473         typedefs with different but compatible types.  Allow duplicate
5474         typedefs with the same type except for pedantic non-C1X, but give
5475         warning for variably modified types.
5476         * c-typeck.c (tagged_types_tu_compatible_p,
5477         function_types_compatible_p, type_lists_compatible_p,
5478         comptypes_internal): Add parameter different_types_p; set
5479         *different_types_p for different but compatible types.  All
5480         callers changed.
5481         (comptypes_check_different_types): New.
5482         * c-tree.h (comptypes_check_different_types): Declare.
5483
5484 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
5485
5486         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
5487         * jump.c: Include basic-block.h.
5488         * profile.c: Likewise.
5489         * tree-profile.c: Likewise.
5490         * coverage.c: Likewise.
5491         * basic-block.h (optimize_function_for_size_p): Move to function.h.
5492         (optimize_function_for_speed_p): Likewise.
5493         * function.h (optimize_function_for_size_p,
5494         optimize_function_for_speed_p): Moved here from basic-block.h.
5495         * Makefile.in: Update dependencies.
5496
5497 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5498
5499         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
5500         before calling make; allow override through $MAKE.
5501         * doc/invoke.texi (Optimize Options): Document override.
5502
5503 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
5504
5505         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
5506         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5507         (rs6000_mode_dependent_address_ptr): Make static.
5508         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5509         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
5510         Remove.
5511
5512 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
5513
5514         PR target/43869
5515         * config/i386/i386.c: Make sure that the correct regparm is passed.
5516
5517 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
5518
5519         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
5520         * sbitmap.c: ...to here to internalize sbitmap element access.
5521         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
5522         Explain why basic-block.h is included.
5523         * function.h: Include tm.h for CUMULATIVE_ARGS.
5524         * Makefile.in: Update dependencies.
5525
5526 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
5527
5528         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
5529         New core types.
5530         * sbitmap.h (struct sbitmap_def): Do not typedef here.
5531         * sbitmap.c: Include sbitmap.h.
5532         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
5533         hard-reg-set.h.  Split everything related to regsets out from here...
5534         * regset.h: ...to here.  New file.
5535         * df.h: Include regset.h and sbitmap.h.
5536         * tree-flow.h: Likewise.
5537         * cfgloop.h: Likewise.
5538         * except.h: Do not include sbitmap.h.  Include hashtab.h.
5539         * cgraph.h: Include vec.h and function.h.
5540         * reload.h (struct insn_chain): Change types of live_throughout
5541         and dead_or_set from regset_head to bitmap_head.
5542         (compute_use_by_pseudos): Be defined also if regset.h is not included.
5543         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
5544         spilled_regs from regset_head to bitmap_head to avoid dependency
5545         in regset.h.
5546         * sel-sched-ir.h: Include regset.h.
5547         * reload.c: Include df.h before reload.h.
5548         * caller-save.c: Likewise.
5549         * reload1.c: Likewise.
5550         * ira.c: Likewise.
5551         (mark_elimination): Update type of r to bitmap, consistent with
5552         DF_LR_IN.
5553         * dominance.c: Include bitmap.h.
5554         * modulo-sched.c: Include df.h.
5555         * cfganal.c: Include bitmap.h and sbitmap.h.
5556         * cfgbuild.c: Include sbitmap.h.
5557         * lcm.c: Include sbitmap.h.
5558         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
5559         * domwalk.c: Include sbitmap.h, exclude ggc.h.
5560         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
5561         * cselib.c: Include bitmap.h.
5562         * tree-optimize.c: Include regset.h.
5563         * stmt.c: Include bitmap.h.
5564         * Makefile.in: Update dependencies.
5565
5566 2010-05-22  Jan Hubicka  <jh@suse.cz>
5567
5568         * cgraph.h (struct varpool_node): Add same_comdat_group.
5569         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
5570         pointer.
5571         (output_varpool): Update call of lto_output_varpool_node.
5572         (input_varpool): Read same_comdat_group pointer.
5573         (input_varpool_1): Fixup same_comdat_group pointer.
5574         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
5575         group is needed, all are.
5576         * varpool.c (varpool_remove_node): Remove node from same comdat group
5577         linklist too.
5578         (varpool_analyze_pending_decls): Walk same comdat groups.
5579
5580 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
5581
5582         * rtl.h (union rtunion_def): Remove rt_bit member.
5583         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
5584         * print-rtl (print_rtx): Do not print the member.
5585         * gengtype.c (adjust_field_rtx_def): Do not handle it.
5586         * gengenrtl.c (type_from_format): Likewise.
5587         (accessor_from_format): Likewise.
5588
5589 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
5590
5591         * dbgcnt.c: Include toplev.h instead of errors.h.
5592         * ira-emit.c: Don't include errors.h.
5593         * ira.c: Include toplev.h instead of errors.h.
5594         * lto-compress.c: Include toplev.h instead of errors.h.
5595         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
5596         ira.o, dbgcnt.o): Update dependencies.
5597
5598 2010-05-22  Richard Guenther  <rguenther@suse.de>
5599
5600         * gimple.c (gimple_types_compatible_p): Check type qualifications
5601         before merging pointer to complete and pointer to incomplete type.
5602         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
5603         we use our own resolution algorithm.  The gold linker plugin
5604         doesn't do the job we want it to do here.
5605
5606 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
5607
5608         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5609         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5610         (sparc_mode_dependent_address_p): New function.
5611
5612 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
5613
5614         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
5615
5616         * timevar.c: Do not include any core headers.
5617         (timevar_print): De-i18n-ize.
5618         (print_time): Likewise.
5619         * timevar.h (timevar_push, timevar_pop): Make inline functions.
5620
5621 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
5622
5623         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
5624         langhooks-def.h.
5625         (diagnostic_initialize): Initialize x_data not last_function.
5626         (diagnostic_report_current_function): Move to tree-diagnostic.c.
5627         (default_diagnostic_starter): Call
5628         diagnostic_report_current_module not
5629         diagnostic_report_current_function.
5630         (diagnostic_report_diagnostic): Initialize x_data not
5631         abstract_origin.
5632         (verbatim): Likewise.
5633         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
5634         x_data.
5635         (struct diagnostic_context): Change last_function to x_data.
5636         (diagnostic_auxiliary_data): Replace with
5637         diagnostic_context_auxiliary_data and
5638         diagnostic_info_auxiliary_data.
5639         (diagnostic_last_function_changed, diagnostic_set_last_function,
5640         diagnostic_report_current_function): Move to tree-diagnostic.h.
5641         (print_declaration, dump_generic_node, print_generic_stmt,
5642         print_generic_stmt_indented, print_generic_expr,
5643         print_generic_decl, debug_c_tree, dump_omp_clauses,
5644         print_call_name, debug_generic_expr, debug_generic_stmt,
5645         debug_tree_chain, default_tree_printer): Move to
5646         tree-pretty-print.h.
5647         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
5648         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
5649         gimple-pretty-print.h.
5650         * pretty-print.c: Don't include tree.h
5651         (pp_base_format): Don't handle %K here.
5652         (pp_base_tree_identifier): Move to tree-pretty-print.c.
5653         * pretty-print.h (text_info): Change abstract_origin to x_data.
5654         (pp_tree_identifier, pp_unsupported_tree,
5655         pp_base_tree_identifier): Move to tree-pretty-print.h.
5656         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
5657         tree-pretty-print.h: New files.
5658         * tree-pretty-print.c: Include tree-pretty-print.h.
5659         (percent_K_format): New.  Moved from pretty-print.c.
5660         (pp_base_tree_identifier): Move from pretty-print.c.
5661         * c-objc-common.c: Include tree-pretty-print.h.
5662         (c_tree_printer): Handle %K here.
5663         * langhooks.c: Include tree-diagnostic.h.
5664         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
5665         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
5666         (default_tree_printer): Handle %K using percent_K_format.
5667         (general_init): Use default_tree_diagnostic_starter.
5668         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
5669         (free_lang_data): Use default_tree_diagnostic_starter.
5670         * c-pretty-print.c: Include tree-pretty-print.h.
5671         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5672         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5673         * dwarf2out.c: Include tree-pretty-print.h.
5674         * except.c: Include tree-pretty-print.h.
5675         * gimple-pretty-print.c: Include tree-pretty-print.h and
5676         gimple-pretty-print.h.
5677         * gimplify.c: Include tree-pretty-print.h.
5678         * graphite-poly.c: Include tree-pretty-print.h and
5679         gimple-pretty-print.h.
5680         * ipa-cp.c: Include tree-pretty-print.h.
5681         * ipa-inline.c: Include gimple-pretty-print.h.
5682         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5683         * ipa-pure-const.c: Include gimple-pretty-print.h.
5684         * ipa-struct-reorg.c: Include tree-pretty-print.h and
5685         gimple-pretty-print.h.
5686         * ipa-type-escape.c: Include tree-pretty-print.h.
5687         * print-rtl.c: Include tree-pretty-print.h.
5688         * print-tree.c: Include gimple-pretty-print.h.
5689         * sese.c: Include tree-pretty-print.h.
5690         * tree-affine.c: Include tree-pretty-print.h.
5691         * tree-browser.c: Include tree-pretty-print.h.
5692         * tree-call-cdce.c: Include gimple-pretty-print.h.
5693         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5694         * tree-chrec.c: Include tree-pretty-print.h.
5695         * tree-data-ref.c: Include tree-pretty-print.h and
5696         gimple-pretty-print.h.
5697         * tree-dfa.c: Include tree-pretty-print.h.
5698         * tree-if-conv.c: Include tree-pretty-print.h and
5699         gimple-pretty-print.h.
5700         * tree-inline.c: Include tree-pretty-print.h.
5701         * tree-into-ssa.c: Include tree-pretty-print.h and
5702         gimple-pretty-print.h.
5703         * tree-nrv.c: Include tree-pretty-print.h.
5704         * tree-object-size.c: Include tree-pretty-print.h and
5705         gimple-pretty-print.h.
5706         * tree-outof-ssa.c: Include tree-pretty-print.h and
5707         gimple-pretty-print.h.
5708         * tree-parloops.c: Include tree-pretty-print.h and
5709         gimple-pretty-print.h.
5710         * tree-predcom.c: Include tree-pretty-print.h and
5711         gimple-pretty-print.h.
5712         * tree-scalar-evolution.c: Include tree-pretty-print.h and
5713         gimple-pretty-print.h.
5714         * tree-sra.c: Include tree-pretty-print.h.
5715         * tree-ssa-address.c: Include tree-pretty-print.h.
5716         * tree-ssa-alias.c: Include tree-pretty-print.h.
5717         * tree-ssa-ccp.c: Include tree-pretty-print.h and
5718         gimple-pretty-print.h.
5719         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
5720         * tree-ssa-copy.c: Include tree-pretty-print.h and
5721         gimple-pretty-print.h.
5722         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
5723         * tree-ssa-dce.c: Include tree-pretty-print.h and
5724         gimple-pretty-print.h.
5725         * tree-ssa-dom.c: Include tree-pretty-print.h and
5726         gimple-pretty-print.h.
5727         * tree-ssa-dse.c: Include gimple-pretty-print.h.
5728         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
5729         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
5730         * tree-ssa-live.c: Include tree-pretty-print.h and
5731         gimple-pretty-print.h.
5732         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
5733         gimple-pretty-print.h.
5734         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
5735         gimple-pretty-print.h.
5736         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
5737         gimple-pretty-print.h.
5738         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
5739         gimple-pretty-print.h.
5740         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
5741         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
5742         * tree-ssa-operands.c: Include tree-pretty-print.h and
5743         gimple-pretty-print.h.
5744         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
5745         gimple-pretty-print.h.
5746         * tree-ssa-pre.c: Include tree-pretty-print.h and
5747         gimple-pretty-print.h.
5748         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
5749         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
5750         gimple-pretty-print.h.
5751         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
5752         gimple-pretty-print.h.
5753         * tree-ssa-sink.c: Include gimple-pretty-print.h.
5754         * tree-ssa-ter.c: Include tree-pretty-print.h and
5755         gimple-pretty-print.h.
5756         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
5757         * tree-ssa.c: Include tree-pretty-print.h and
5758         gimple-pretty-print.h.
5759         * tree-stdarg.c: Include gimple-pretty-print.h.
5760         * tree-switch-conversion.c: Include gimple-pretty-print.h.
5761         * tree-tailcall.c: Include tree-pretty-print.h and
5762         gimple-pretty-print.h.
5763         * tree-vect-data-refs.c: Include tree-pretty-print.h and
5764         gimple-pretty-print.h.
5765         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
5766         gimple-pretty-print.h.
5767         * tree-vect-loop.c: Include tree-pretty-print.h and
5768         gimple-pretty-print.h.
5769         * tree-vect-patterns.c: Include gimple-pretty-print.h.
5770         * tree-vect-slp.c: Include tree-pretty-print.h and
5771         gimple-pretty-print.h.
5772         * tree-vect-stmts.c: Include tree-pretty-print.h and
5773         gimple-pretty-print.h.
5774         * tree-vectorizer.c: Include tree-pretty-print.h.
5775         * tree-vrp.c: Include tree-pretty-print.h and
5776         gimple-pretty-print.h.
5777         * value-prof.c: Include tree-pretty-print.h and
5778         gimple-pretty-print.h.
5779         * var-tracking.c: Include tree-pretty-print.h.
5780         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
5781         (tree-diagnostic.o): New dependencies.
5782         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
5783         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
5784         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
5785         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
5786         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
5787         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
5788         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5789         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
5790         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
5791         tree-ssa-address.o, tree-ssa-loop-niter.o,
5792         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
5793         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
5794         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
5795         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
5796         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
5797         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
5798         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
5799         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
5800         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
5801         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
5802         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
5803         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
5804         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
5805         tree-switch-conversion.o, var-tracking.o, value-prof.o,
5806         cfgexpand.o, pretty-print.o): Update dependencies.
5807
5808 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
5809
5810         * tree-ssa-structalias.c: Remove tm_p.h from include.
5811
5812 2010-05-21  Jeff Law  <law@redhat.com>
5813
5814         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
5815
5816 2010-05-21  Jason Merrill  <jason@redhat.com>
5817
5818         * tree-eh.c (cleanup_is_dead_in): New.
5819         (lower_try_finally): Don't generate a dead cleanup region.
5820         (lower_cleanup): Likewise.
5821
5822 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
5823
5824         PR debug/44223
5825         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
5826         unchain each use from the cyclic next_regno_use chain first.
5827
5828 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
5829
5830         * real: Do not include gmp.h, mpfr.h, and mpc.h.
5831         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
5832         (real_value_negate, real_value_abs): New prototypes.
5833         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
5834         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
5835         new include file for interface between MPFR and REAL_VALUE_TYPE.
5836         * real.c: Include realmpfr.h.
5837         (real_arithmetic2): Remove legacy function.
5838         (real_value_negate): New.
5839         (real_value_abs): New.
5840         (mfpr_from_real, real_from_mpfr): Move from here...
5841         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
5842         * builtins.c: Include realmpfr.h.
5843         * fold-const.c: Include realmpfr.h.
5844         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
5845         (fold_negate_const): Likewise.
5846         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
5847         * toplev.c: Include realmpfr.h.
5848         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
5849         and real_value_negate.
5850         * fixed-value.c (check_real_for_fixed_mode): Likewise.
5851         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
5852         (vfp3_const_double_index): Likewise.
5853         (arm_print_operand): Likewise.
5854         * Makefile.in: Update dependencies.
5855
5856 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5857
5858         * config/s390/s390.c (override_options): Increase the default
5859         of max-completely-peel-times.
5860
5861 2010-05-21  Julian Brown  <julian@codesourcery.com>
5862             Mark Mitchell  <mark@codesourcery.com>
5863
5864         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
5865         sibling calls for Thumb-1.
5866         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
5867         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
5868         Thumb-2.
5869         (*call_insn, *call_value_insn): Don't use for Thumb-2.
5870         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
5871         for Thumb-2.
5872         (return): New expander.
5873         (*arm_return): New name for ARM return insn.
5874         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
5875
5876 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
5877
5878         * config.gcc (sparc64-*-rtems*): New target.
5879
5880 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
5881
5882         * tree.c (build_function_decl_skip_args): Fix grammar.
5883         (build_function_type_list_1): Fix typos, adjust formatting.
5884
5885 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
5886
5887         * tree.h: Include real.h and fixed-value.h as basic datatypes.
5888         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
5889         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
5890         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
5891         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
5892         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
5893         tree-pretty-print.c, tree-loop-distribution.c,
5894         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
5895         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
5896         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
5897         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
5898         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
5899         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
5900         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
5901         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
5902         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
5903         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
5904         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
5905         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
5906         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
5907         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
5908         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
5909         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
5910         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
5911         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
5912         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
5913         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
5914         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
5915         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
5916         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
5917         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
5918         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
5919         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
5920         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
5921         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
5922         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
5923         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
5924         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
5925         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
5926         config/score/score7.c, config/score/score.c, config/arm/arm.c,
5927         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
5928         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
5929         config/bfin/bfin.c: Clean up redundant includes.
5930         * Makefile.in: Update accordingly.
5931
5932 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
5933
5934         PR middle-end/44204
5935         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
5936         statement has no arguments.
5937
5938 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
5939
5940         PR/44139
5941         * varasm.c (emutls_decl): Merge attributes to new decl.
5942
5943 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5944
5945         PR middle-end/44101
5946         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
5947         around the uniquized constructor if its type requires a conversion.
5948
5949 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
5950
5951         PR debug/44205
5952         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
5953         at -O0 goto_locus of any of the incoming edges differs from
5954         goto_locus of outgoing edge, or gimple_location of any of the
5955         labels differs.
5956
5957 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
5958
5959         * ira.c (ira_non_ordered_class_hard_regs): Define.
5960         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
5961         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
5962         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
5963         cost of unaligned hard regs when allocating multi-reg pseudos.
5964
5965 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
5966
5967         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
5968         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
5969         for TARGET_NO_FLOAT.
5970         * config/mips/mips.c (mips_file_start): Expand conditional expression
5971         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
5972         (mips_override_options): Move -mno-float override -msoft-float and
5973         -mhard-float.
5974         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
5975         Condition(TARGET_SUPPORTS_NO_FLOAT).
5976         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
5977         __mips_no_float here.
5978         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
5979         (TARGET_SUPPORTS_NO_FLOAT): Define.
5980         * config/mips/sdemtk.opt: Delete.
5981
5982 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
5983
5984         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
5985
5986 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
5987
5988         PR target/43733
5989         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
5990         * configure: Regenerate.
5991         * config.in: Regenerate.
5992         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
5993         instead of sahf only for 64bit targets.
5994
5995 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
5996
5997         PR debug/44178
5998         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
5999         setup_ref_regs for DEBUG_INSNs.
6000
6001 2010-05-20  Jan Hubicka  <jh@suse.cz>
6002
6003         PR middle-end/44197
6004         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
6005
6006 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
6007
6008         PR bootstrap/43870
6009         * df-scan.c (df_ref_compare): Stabilize sort.
6010
6011 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
6012
6013         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
6014         argument.  Don't use DW_OP_piece if offset is non-zero,
6015         put offset into second DW_OP_bit_piece argument.
6016         (dw_sra_loc_expr): Adjust callers.  For memory expressions
6017         compute offset.
6018
6019 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
6020
6021         PR target/44202
6022         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
6023         settings for 16-bit-constant "addo" alternative.
6024
6025 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
6026
6027         * config/mips/mips-dsp.md (add<DSPV:mode>3,
6028         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
6029
6030         PR target/43764
6031         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
6032         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
6033         Use it.
6034
6035 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
6036
6037         * diagnostic.c (FLOAT, FFS): Don't undefine.
6038         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
6039         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
6040         include ordering.
6041
6042 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
6043
6044         * combine.c (propagate_for_debug): Call make_compound_operation
6045         on the source value.
6046         (try_combine): When implementing a split chosen by find_split_point,
6047         either copy i2src or set it to null.  Assert that i2src is not null
6048         before substituting into CALL_INSN_FUNCTION_USAGE.
6049
6050 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
6051
6052         * double-int.h (double_int_ior): New function.
6053         * tree.h (build_int_cst_wide_type): Remove.
6054         * tree.c (build_int_cst_wide_type): Remove.
6055         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
6056         of build_int_cst_wide_type.
6057         * stor-layout.c (set_sizetype): (Ditto.).
6058         * dojump.c (do_jump): Use build_int_cstu instead of
6059         build_int_cst_wide_type.
6060
6061 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6062
6063         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
6064         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
6065         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
6066         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
6067         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
6068         propagate the 'data' argument to copy_tree_r.
6069         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
6070         Propagate 'data' argument to walk_tree.
6071         (copy_if_shared): New function.
6072         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
6073         (unmark_visited): New function.
6074         (unshare_body): Call copy_if_shared instead of doing it manually.
6075         (unvisit_body): Call unmark_visited instead of doing it manually.
6076
6077 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
6078
6079         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
6080         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
6081         * hooks.c: Likewise.
6082         * target-def.h (TARGET_FOLD_BUILTIN): Define to
6083         hook_tree_tree_int_treep_bool_null.
6084         * target.h (struct gcc_target): Update signature of fold_builtin
6085         field.
6086         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
6087         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
6088         instead of the call expression.
6089         (fold_builtin_call_array): Pass n and argarray directly.
6090         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
6091         consing a list.
6092         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
6093         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
6094         `i' and use it in place of `arity'.
6095         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
6096         Dereference `args' directly.
6097         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
6098
6099 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6100
6101         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6102         3dnow, sse3, sse2.
6103         (Directives): Document optional dg-require-effective-target
6104         selector.
6105
6106 2010-05-19  Richard Guenther  <rguenther@suse.de>
6107
6108         PR lto/44196
6109         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
6110
6111 2010-05-19  Richard Guenther  <rguenther@suse.de>
6112
6113         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
6114         * common.opt (fwhopr=): New.
6115         * opts.c (common_handle_option): Handle OPT_fwhopr.
6116         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
6117         * collect2.c (main): Match -fwhopr*.
6118         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
6119         Execute ltrans stage in parallel when jobs is bigger than 1.
6120
6121 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6122
6123         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
6124         pentiumpro on Solaris 8/x86 with Sun as.
6125         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
6126         hidden alias bug.
6127         (gcc_cv_as_ix86_quad): Check for .quad directive.
6128         * configure: Regenerate.
6129         * config.in: Regenerate.
6130         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
6131
6132 2010-05-19  Martin Jambor  <mjambor@suse.cz>
6133
6134         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
6135         also for indirect edges.  Actual printing moved...
6136         (ipa_print_node_jump_functions_for_edge): ...here.
6137         (ipa_compute_jump_functions): Renamed to
6138         ipa_compute_jump_functions_for_edge and made static.
6139         (ipa_compute_jump_functions): New function.
6140         (make_edge_direct_to_target): Check if the number of arguments on
6141         the newly direct edge is the same as the number of parametrs of
6142         the callee.
6143         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
6144         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
6145         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6146         analysis functions unconditionally, call the new
6147         ipa_analyze_params_uses on the node instead of every edge.
6148
6149 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
6150
6151         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
6152         to tree.
6153         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
6154         also checks for a constant int vs.  non-constant but
6155         loop-invariant steps.
6156         (find_or_create_group): Change the sort algorithm to only consider
6157         steps that are constant ints.
6158         (idx_analyze_ref): Adopt code to handle a tree instead of a
6159         HOST_WIDE_INT for step.
6160         (gather_memory_references_ref): Handle tree instead of int and be
6161         prepared to see a NULL_TREE.
6162         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
6163         prefetches if the step cannot be calculated at compile time.
6164         (issue_prefetch_ref): Issue prefetches for non-constant but
6165         loop-invariant steps.
6166
6167 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6168
6169         Revert:
6170         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6171
6172         * tree.h (build_call_list): Remove.
6173         * tree.c (build_call_list): Remove.
6174
6175 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6176
6177         * tree.h (build_call_list): Remove.
6178         * tree.c (build_call_list): Remove.
6179
6180 2010-05-18  Jan Hubicka  <jh@suse.cz>
6181
6182         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
6183
6184 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
6185
6186         PR rtl-optimization/43332
6187         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
6188
6189 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
6190
6191         * tree.h (build_int_cstu): Implement as static inline.
6192         * tree.c (build_int_cstu): Remove function.
6193         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
6194         sign extended.
6195
6196 2010-05-18  Richard Guenther  <rguenther@suse.de>
6197
6198         PR lto/44143
6199         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
6200         (debug): Initialize from -save-temps.
6201         (collect_execute): Print command-line when verbose.
6202         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
6203         for ltrans invocation.  Produce -dumpbase flag again.
6204         (process_args): Remove.
6205         (main): Simplify.
6206         * collect2.c (maybe_run_lto_and_relink): Only pass object
6207         files to lto-wrapper.
6208         * gcc.c (LINK_COMMAND_SPEC): Likewise.
6209
6210 2010-05-18  Jan Hubicka  <jh@suse.cz>
6211
6212         * opts.c (decode_options): Do not disable whopr at ipa_cp.
6213         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
6214
6215 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
6216
6217         PR lto/44184
6218         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
6219         in a GIMPLE_ASM.
6220         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
6221         in a GIMPLE_ASM.
6222
6223 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
6224
6225         PR debug/41371
6226         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
6227         rtx_equal_p inline.
6228
6229 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
6230
6231         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
6232         lto-macho as lto_binary_reader.
6233
6234         * darwin.c (darwin_asm_named_section): Do not add assembler comment
6235         after .section directive; just print it before the directive instead.
6236
6237 2010-05-17  Jan Hubicka  <jh@suse.cz>
6238
6239         * cgraph.c (cgraph_create_virtual_clone): Only check
6240         versionable_function_p when not in wpa and checking is enabled.
6241         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
6242         there are no more functions to materialize.
6243
6244 2010-05-17  Jan Hubicka  <jh@suse.cz>
6245
6246         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
6247         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
6248         New functions.
6249         (output_cgraph): Call output_cgraph_opt_summary.
6250         (input_cgrpah): Call input_cgraph_opt_summary.
6251         (output_cgraph_opt_summary_p, output_node_opt_summary,
6252         input_node_opt_summary, input_cgraph_opt_section): New functions.
6253         * lto-section-in.c (lto_section_name): Add cgraphopt.
6254         * tree-inline.c (tree_function_versioning): Handle parm_num.
6255         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
6256         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
6257
6258 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
6259
6260         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
6261         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
6262         the insn to prefetch ratio heuristic to loops with known trip count.
6263
6264 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
6265
6266         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
6267         (schedule_prefetches): Do not generate a prefetch if the unroll factor
6268         is far from what is required by the prefetch.
6269
6270 2010-05-17  Jan Hubicka  <jh@suse.cz>
6271
6272         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
6273         (ipcp_estimate_growth): Likewise.
6274         (ipcp_const_param_count): Likewise.
6275         (ipcp_insert_stage): Likewise.
6276         * ipa-prop.c (visit_load_for_mod_analysis): New function.
6277         (visit_store_addr_for_mod_analysis): Set used flag.
6278         (ipa_detect_param_modifications): Set used flag for SSE params;
6279         update use of walk_stmt_load_store_addr_ops.
6280         (ipa_print_node_params): Print used flag.
6281         (ipa_write_node_info): Stream used flag.
6282         (ipa_read_node_info): Likewise.
6283         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
6284         (ipa_is_param_used): New function.
6285         (lto_ipa_fixup_call_notes): Remove unused declaration.
6286
6287 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6288
6289         PR target/44074
6290         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
6291         * configure: Regenerate.
6292         * config.in: Regenerate.
6293         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
6294         !HAVE_AS_IX86_REP_LOCK_PREFIX.
6295         Don't emit whitespace.
6296         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
6297         (*rep_movsi): Likewise.
6298         (*rep_movsi_rex64): Likewise.
6299         (*rep_movqi): Likewise.
6300         (*rep_movqi_rex64): Likewise.
6301         (*rep_stosdi_rex64): Likewise.
6302         (*rep_stossi): Likewise.
6303         (*rep_stossi_rex64): Likewise.
6304         (*rep_stosqi): Likewise.
6305         (*rep_stosqi_rex64): Likewise.
6306         (*cmpstrnqi_nz_1): Use {%;} after repz.
6307         (*cmpstrnqi_nz_rex_1): Likewise.
6308         (*cmpstrnqi_1): Likewise.
6309         (*cmpstrnqi_rex_1): Likewise.
6310         (*strlenqi_1): Use {%;} after repnz.
6311         (*strlenqi_rex_1): Likewise.
6312         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
6313         (*sync_compare_and_swap<mode>): Likewise.
6314         (sync_double_compare_and_swap<mode>): Likewise.
6315         (*sync_double_compare_and_swapdi_pic): Likewise.
6316         (sync_old_add<mode>): Likewise.
6317         (sync_add<mode>): Likewise.
6318         (sync_sub<mode>): Likewise.
6319         (sync_<code><mode>): Likewise.
6320
6321 2010-05-17  Martin Jambor  <mjambor@suse.cz>
6322
6323         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
6324         otr_token and polymorphic.
6325         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
6326         (cgraph_clone_edge): Copy the above fields.
6327         * tree.c (get_binfo_at_offset): New function.
6328         * tree.h (get_binfo_at_offset): Declare.
6329         * ipa-prop.h (enum jump_func_type): Added known_type jump function
6330         type, reordered items, updated comments.
6331         (union jump_func_value): Added base_type field, reordered fields.
6332         (enum ipa_lattice_type): Moved down in the file.
6333         (struct ipa_param_descriptor): New field polymorphic.
6334         (ipa_is_param_polymorphic): New function.
6335         * ipa-prop.c: Include gimple.h and gimple-fold.h.
6336         (ipa_print_node_jump_functions): Print known type jump functions.
6337         (compute_complex_pass_through): Renamed to...
6338         (compute_complex_assign_jump_func): this.
6339         (compute_complex_ancestor_jump_func): New function.
6340         (compute_known_type_jump_func): Likewise.
6341         (compute_scalar_jump_functions): Create known type and complex ancestor
6342         jump functions.
6343         (ipa_note_param_call): New parameter polymorphic, set the corresponding
6344         flag in the call note accordingly.
6345         (ipa_analyze_call_uses): Renamed to...
6346         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
6347         variable var only in the block where it is used.
6348         (ipa_analyze_virtual_call_uses): New function.
6349         (ipa_analyze_call_uses): Likewise.
6350         (combine_known_type_and_ancestor_jfs): Likewise.
6351         (update_jump_functions_after_inlining): Implemented handling of a
6352         number of new jump function types combination.
6353         (print_edge_addition_message): Removed.
6354         (make_edge_direct_to_target): New function.
6355         (try_make_edge_direct_simple_call): Likewise.
6356         (try_make_edge_direct_virtual_call): Likewise.
6357         (update_call_notes_after_inlining): Renamed to...
6358         (update_indirect_edges_after_inlining): this.  Moved edge creation for
6359         indirect calls to try_make_edge_direct_simple_call, also calls
6360         try_make_edge_direct_virtual_call for virtual calls.
6361         (ipa_print_node_params): Changed the header message.
6362         (ipa_write_jump_function): Stream also known type jump functions.
6363         (ipa_read_jump_function): Likewise.
6364         (ipa_write_indirect_edge_info): Stream new fields in
6365         cgraph_indirect_call_info.
6366         (ipa_read_indirect_edge_info): Likewise.
6367         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
6368         GIMPLE_FOLD_H.
6369
6370 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6371
6372         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
6373
6374 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
6375
6376         * tree.h (CALL_EXPR_ARGS): Delete.
6377         (call_expr_arglist): Delete.
6378         * tree.c (call_expr_arglist): Delete.
6379         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
6380         targetm.fold_builtin.
6381         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
6382         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
6383         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
6384         arglist parameter.  Use CALL_EXPR_ARG.
6385         (picochip_expand_builtin_3op): Likewise.
6386         (picochip_expand_builtin_2opvoid): Likewise.
6387         (picochip_expand_array_get): Likewise.
6388         (picochip_expand_array_put): Likewise.
6389         (picochip_expand_array_testport): Likewise.
6390         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
6391         rather than arglist.
6392         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
6393         CALL_EXPR_ARGS.
6394         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
6395         than TREE_VALUE and TREE_CHAIN.
6396         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
6397         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
6398         the arglist.
6399
6400 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
6401
6402         PR bootstrap/42347
6403         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
6404         to have no fallthru edge.
6405
6406         PR middle-end/44102
6407         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
6408         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
6409         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
6410         add BARRIER after previous bb if needed.
6411
6412 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
6413
6414         * tree.c (build_function_type_list_1): Remove bogus assert condition.
6415
6416 2010-05-17  Alan Modra  <amodra@gmail.com>
6417
6418         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
6419         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
6420         with copy_reg rtx param.
6421         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
6422         Correct cases where code for ABI_V4 did not initialise the reg
6423         used to access frame.  Also leave frame_reg_rtx as sp for large
6424         frames that save no regs.
6425
6426 2010-05-17  Martin Jambor  <mjambor@suse.cz>
6427
6428         PR middle-end/44133
6429         * tree-sra.c (create_access_replacement): New parameter rename, mark
6430         the replaement for renaming only when it is true.
6431         (get_access_replacement): Pass true in the rename parameter of
6432         create_access_replacement.
6433         (get_unrenamed_access_replacement): New function.
6434         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
6435         replacement declaration from it.
6436
6437 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
6438
6439         * function.c (try_fit_stack_local, add_frame_space): New static
6440         functions.
6441         (assign_stack_local_1): Use them.  Look for opportunities to use
6442         space previously wasted on alignment.
6443         * function.h (struct frame_space): New.
6444         (struct rtl_data): Add FRAME_SPACE_LIST member.
6445         * reload1.c (something_was_spilled): New static variable.
6446         (alter_reg): Set it.
6447         (reload): Test it in addition to testing if the frame size changed.
6448
6449 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
6450
6451         * config/s390/s390.c: Define sane prefetch settings and activate
6452         flag_prefetch_loop_arrays on -O3.
6453         * config/s390/s390.h: Declare that read can use write prefetch.
6454
6455 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
6456
6457         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
6458         build.
6459
6460 2010-05-16  Jan Hubicka  <jh@suse.cz>
6461
6462         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
6463         function body; do not check stdarg field of struct function.
6464
6465 2010-05-16  Jan Hubicka  <jh@suse.cz>
6466
6467         * cgraph.c (dump_cgraph_node): Dump versionable flag.
6468         * cgraph.h (cgraph_local_info): Add versionable flag.
6469         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
6470         (ipcp_versionable_function_p): Use it.
6471         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
6472         versionable flag.
6473
6474 2010-05-16  Jan Hubicka  <jh@suse.cz>
6475
6476         * cgraph.c (cgraph_clone_node): Take decl argument and insert
6477         clone into hash when it is different from orig.
6478         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
6479         * cgraph.h (cgraph_clone_node): Update prototype.
6480         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
6481         (lto_cgraph_encoder_delete): Delete body map.
6482         (lto_cgraph_encoder_size): Move to header.
6483         (lto_cgraph_encoder_encode_body_p,
6484         lto_set_cgraph_encoder_encode_body): New.
6485         (lto_output_node): Do not take written_decls argument; output clone_of
6486         pointer.
6487         (add_node_to): Add include_body_argument; call
6488         lto_set_cgraph_encoder_encode_body on master of the clone.
6489         (add_references): Update use of add_node_to.
6490         (compute_ltrans_boundary): Likewise.
6491         (output_cgraph): Do not create written_decls bitmap.
6492         (input_node): Take nodes argument; stream in clone_of correctly.
6493         (input_cgraph_1): Update use of input_node.
6494         * lto-streamer-out.c (lto_output): Use encoder info to decide
6495         what bodies to output.
6496         * ipa-inline.c (cgraph_clone_inlined_nodes,
6497         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
6498         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
6499         (lto_cgraph_encoder_size): Define here.
6500         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
6501         Declare.
6502
6503 2010-05-16  Richard Guenther  <rguenther@suse.de>
6504
6505         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
6506         -fipa-type-escape.
6507         * ipa-type-escape.c (gate_type_escape_vars): Run when
6508         -fipa-struct-reorg runs.
6509         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
6510         * common.opt (fipa-type-escape): Remove.
6511
6512 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6513
6514         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
6515         (decode_options): Likewise.
6516         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
6517
6518 2010-05-16  Jan Hubicka  <jh@suse.cz>
6519
6520         * ipa.c (function_and_variable_visibility): Also bring local all
6521         aliases.
6522
6523 2010-05-16  Richard Guenther  <rguenther@suse.de>
6524
6525         * alias.c (nonoverlapping_memrefs_p): Remove use of
6526         IPA type-escape information.
6527
6528 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
6529
6530         * c-common.c (c_common_reswords): Add _Static_assert for C.
6531         * c-parser.c (c_token_starts_declaration,
6532         c_parser_next_token_starts_declaration,
6533         c_parser_static_assert_declaration_no_semi,
6534         c_parser_static_assert_declaration): New.
6535         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
6536         Handle static assertions if static_assert_ok.
6537         (c_parser_external_declaration, c_parser_declaration_or_fndef,
6538         c_parser_compound_statement_nostart, c_parser_label,
6539         c_parser_for_statement, c_parser_objc_methodprotolist,
6540         c_parser_omp_for_loop): All callers of
6541         c_parser_declaration_or_fndef changed.
6542         (c_parser_struct_declaration): Handle static assertions.
6543         (c_parser_compound_statement_nostart): Use
6544         c_parser_next_token_starts_declaration and
6545         c_token_starts_declaration to detect start of declarations.
6546         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
6547         Likewise.
6548
6549 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
6550
6551         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6552         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6553         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6554         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6555         (mmix_function_outgoing_value): Rename to...
6556         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
6557         (mmix_function_value_regno_p): Make static.
6558         (mmix_libcall_value): New function.
6559         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
6560         mmix_function_value_regno_p): Remove declaration.
6561
6562 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6563
6564         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
6565         BUILT_IN_ALLOCA if stack checking is enabled.
6566
6567 2010-05-16  Richard Guenther  <rguenther@suse.de>
6568
6569         * var-tracking.c (vars_copy_1): Inline ...
6570         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
6571         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
6572         (variable_merge_over_cur): Adjust.  Merge asserts.
6573         (variable_merge_over_src): Likewise.
6574         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
6575         (variable_post_merge_new_vals): Merge asserts.
6576         (variable_post_merge_perm_vals): Likewise.
6577         (find_mem_expr_in_1pdv): Likewise.
6578         (dataflow_set_different_value): Remove.
6579         (onepart_variable_different_p): Merge asserts.
6580         (variable_different_p): Likewise.
6581         (dataflow_set_different_1): Inline ...
6582         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
6583         (emit_notes_for_differences_1): Merge asserts.
6584
6585 2010-05-16  Richard Guenther  <rguenther@suse.de>
6586
6587         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
6588         * optabs.c (libfunc_decl_hash): Likewise.
6589         * varasm.c (emutls_decl): Likewise.
6590
6591 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
6592
6593         * c-decl.c: Don't include gimple.h.
6594         (merge_decls): Do not copy gimple_body.
6595
6596 2010-05-15  Jason Merrill  <jason@redhat.com>
6597
6598         * c.opt: Add -fnothrow-opt.
6599
6600 2010-05-15  Jan Hubicka  <jh@suse.cz>
6601
6602         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
6603         analyzed.
6604         * passes.c (ipa_write_summaries): Write all analyzed nodes.
6605
6606 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
6607
6608         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
6609         * Makefile.in: Add it.
6610         Fix all other Makefile dependencies for changes below.
6611         * tree.h: Include it instead of defining VEC primitives here.
6612         * gimple.h: Likewise.
6613         * rtl.h: Likewise.
6614         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
6615         * except.h: Include vecir.h, break dependence on tree.h.
6616
6617         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
6618         Move from here...
6619         * tree-iterator.c: ...to here.
6620         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
6621
6622         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
6623         tm_p.h.
6624         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
6625         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
6626         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
6627         tree-mudflap.h, and target.h.
6628         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
6629         predict.h, tree-inline.h, gimple.h, and langhooks.h.
6630         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
6631         Add FIXME for why gimple.h is still included (should be unnecessary
6632         since GCC 4.5 gimplification unit-at-a-time).
6633         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
6634         * c-pragma.c: Add FIXME for why function.h needs to be included just
6635         for cfun, at front-end level.
6636         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
6637         Do not include ggc.h, but include vecprim.h for VEC(char).
6638         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
6639         Explain why target.h is included.
6640         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
6641         Explain why gimple.h is included.
6642         * c-ppoutput.c: Do not include tm.h.
6643         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
6644         * c-parses.c: Explain why rtl.h is included, and that this (and only
6645         this) is also why tm.h must be included.
6646         Do not include except.h.
6647         * c-lang.c: Do not include ggc.h.
6648
6649 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
6650
6651         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
6652
6653 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
6654
6655         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
6656         unions by default if those structs and unions have no tags.  Do
6657         not condition anonymous struct and unions handling on flag_iso.
6658         Allow anonymous structs and unions for C1X.
6659         (finish_struct): Do not diagnose lack of named fields when
6660         anonymous structs and unions present for C1X.  Accept flexible
6661         array members in structure with anonymous structs or unions but no
6662         directly named fields.
6663         * doc/extend.texi (Unnamed Fields): Update.
6664
6665 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
6666
6667         * gimple.h (compare_field_offset): Rename into...
6668         (gimple_compare_field_offset): ...this.
6669         * gimple.c (compare_field_offset): Rename into...
6670         (gimple_compare_field_offset): ...this.  Compare the full access if
6671         the offset is self-referential.
6672         (gimple_types_compatible_p): Adjust for above renaming.
6673         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
6674         DECL_NONADDRESSABLE_P flag of fields before merging them.
6675
6676 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
6677
6678         * tree.h (ctor_to_list): Delete.
6679         * tree.c (ctor_to_list): Delete.
6680
6681 2010-05-15  Jan Hubicka  <jh@suse.cz>
6682
6683         * ipa-reference.c: Include toplev.h
6684         (is_proper_for_analysis): Only add to all_module_statics
6685         if it is allocated.
6686         (write_node_summary_p, stream_out_bitmap,
6687         ipa_reference_write_optimization_summary,
6688         ipa_reference_read_optimization_summary): New.
6689         (struct ipa_opt_pass_d pass_ipa_reference): Add
6690         optimization summary streaming.
6691         * lto-cgraph.c (referenced_from_this_partition_p,
6692         reachable_from_this_partition_p): New functions.
6693         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
6694         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
6695         * opts.c (decode_options): Enable ipa_reference.
6696         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
6697         * lto-streamer.h (referenced_from_this_partition_p,
6698         reachable_from_this_partition_p): Declare.
6699
6700 2010-05-15  Richard Guenther  <rguenther@suse.de>
6701
6702         PR tree-optimization/44038
6703         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
6704         taking the address of a V_C_E of a constant.
6705
6706 2010-05-14  Jan Hubicka  <jh@suse.cz>
6707
6708         * tree.h (memory_identifier_string): Remove.
6709         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
6710         (ipa_reference_global_vars_info_d): Remove statics_not_read and
6711         statics_not_written.
6712         (ipa_reference_optimization_summary_d): New structure.
6713         (ipa_reference_optimization_summary_t): New type and vector.
6714         (ipa_reference_vars_info_d): Embedd structures instead of using
6715         pointers.
6716         (reference_vars_to_consider): Remove out of GGC space.
6717         (module_statics_escape): Remove.
6718         (global_info_obstack): Rename to ...
6719         (optimization_summary_obstack): ... this one.
6720         (initialization_status_t): Remove.
6721         (memory_identifier_string): Remove.
6722         (get_reference_vars_info): Fix indenting.
6723         (set_reference_vars_info): Likewise.
6724         (get_reference_optimization_summary): New.
6725         (set_reference_optimization_summary): New.
6726         (get_global_reference_vars_info): Remove.
6727         (ipa_reference_get_read_global): Remove.
6728         (ipa_reference_get_written_global): Remove.
6729         (ipa_reference_get_not_read_global): Update.
6730         (ipa_reference_get_not_written_global): Update.
6731         (is_proper_for_analysis): Outlaw addressable.
6732         (propagate_bits): Update for new datastructures.
6733         (analyze_variable): Remove.
6734         (init_function_info): Update for new datastructures.
6735         (clean_function_local_data): Remove.
6736         (clean_function): Remove.
6737         (copy_global_bitmap): Use optimizations_summary_obstack.
6738         (duplicate_node_data): Duplicate optimization summary only.
6739         (remove_node_data): Remove optimization summary only.
6740         (generate_summary): Do not analyze variables; do not compute
6741         module_statics_escape; do not prune solutions by it.
6742         (read_write_all_from_decl): Fix typos in comments.
6743         (propagate): Doscover readonly and nonaddressable first;
6744         update for new datastructures; share global bitmaps.
6745         * ipa-reference.h (ipa_reference_get_read_global,
6746         ipa_reference_get_written_global): Remove.
6747         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
6748         * Makefile.in: Remove ipa-refereference from GT files.
6749
6750 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
6751
6752         PR debug/44112
6753         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
6754         for all SYMBOL_REF_DECLs.
6755
6756 2010-05-14  Jan Hubicka  <jh@suse.cz>
6757
6758         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
6759         (varpool_all_refs_explicit_p): New inline function.
6760         * ipa-reference.c: Update comment.
6761         (module_statics_written): Remove.
6762         (get_static_decl): Remove.
6763         (ipa_init): Do not initialize module_statics_written.
6764         (analyze_function): Likewise.
6765         (generate_summary): Likewise; do not compute module_statics_readonly
6766         and do not update variable flags.
6767         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
6768         * ipa.c: Inlucde flags.h
6769         (cgraph_local_node_p): New.
6770         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
6771         promote functions to local.
6772         (ipa_discover_readonly_nonaddressable_vars): New function.
6773         (function_and_variable_visibility): Use cgraph_local_node_p.
6774         * varpool.c (varpool_finalize_decl): Set force_output for
6775         DECL_PRESERVE_P vars.
6776
6777 2010-05-14  Jan Hubicka  <jh@suse.cz>
6778
6779         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
6780
6781 2010-05-14  Richard Guenther  <rguenther@suse.de>
6782
6783         PR tree-optimization/44119
6784         * tree-ssa-pre.c (eliminate): Properly mark replacement of
6785         a PHI node necessary.
6786
6787 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
6788
6789         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
6790
6791 2010-05-14  Jason Merrill  <jason@redhat.com>
6792
6793         PR c++/44127
6794         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
6795         (gimple_call_set_nothrow): New.
6796         * gimple.c (gimple_build_call_from_tree): Call it.
6797         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
6798
6799         PR c++/44127
6800         * gimplify.c (gimplify_seq_add_stmt): No longer static.
6801         * gimple.h: Declare it.
6802         * gimple.c (gimple_build_eh_filter): No ops.
6803
6804 2010-05-14  Jan Hubicka  <jh@suse.cz>
6805
6806         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
6807         nodes already in queue.
6808         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
6809         re-enqueueing node.
6810
6811 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
6812
6813         PR debug/44136
6814         * cfgexpand.c (expand_debug_expr): If non-memory op0
6815         has BLKmode, return NULL.
6816
6817 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
6818
6819         * config.gcc: Add support for --with-cpu option for bdver1.
6820         * config/i386/i386.h (TARGET_BDVER1): New macro.
6821         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
6822         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
6823         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
6824         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
6825         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
6826         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
6827         (processor_type): Add PROCESSOR_BDVER1.
6828         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
6829         processor_type in config/i386/i386.h.
6830         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
6831         movaps <reg, reg> instead of movapd <reg, reg> when replacing
6832         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
6833         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
6834         to emit packed xor instead of packed double/packed integer
6835         xor for SSE and AVX when moving a zero value.
6836         * config/i386/sse.md: Add check for
6837         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
6838         movapd/movdqa for SSE and AVX.
6839         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
6840         single logical operations i.e and, or and xor instead of packed double
6841         logical operations for SSE and AVX.
6842         * config/i386/i386-c.c (ix86_target_macros_internal):
6843         Add PROCESSOR_BDVER1.
6844         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
6845         (has_fma4, has_xop): New.
6846         * config/i386/i386.c (bdver1_cost): New variable.
6847         (m_BDVER1): New macro.
6848         (m_AMD_MULTIPLE): Add m_BDVER1.
6849         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
6850         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
6851         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
6852         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
6853         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
6854         x86_tune_sse_partial_reg_dependency,
6855         x86_tune_sse_unaligned_load_optimal,
6856         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
6857         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
6858         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
6859         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
6860         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
6861         Enable/disable for bdver1.
6862         (processor_target_table): Add bdver1_cost.
6863         (cpu_names): Add bdver1.
6864         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
6865          processor_alias_table.
6866         (ix86_expand_vector_move_misalign): Change.
6867         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
6868         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
6869         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
6870         of movupd/movdqu for SSE and AVX.
6871         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
6872         (ix86_tune_adjust_cost): Add code for bdver1.
6873         (standard_sse_constant_opcode): Add check for
6874         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
6875         of packed double xor for SSE and AVX.
6876
6877 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
6878
6879         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
6880         result to unsigned.
6881
6882 2010-05-14  Tristan Gingold  <gingold@adacore.com>
6883
6884         * toplev.c (default_debug_hooks): Remove this variable.
6885         (process_options): Remove assignments to default_debug_hooks.
6886
6887 2010-05-14  Martin Jambor  <mjambor@suse.cz>
6888
6889         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
6890         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
6891         * langhooks.h (struct lang_hooks_for_decls): Removed field
6892         fold_obj_type_ref.
6893         * tree.c (free_lang_data): Remove assignment to
6894         lang_hooks.fold_obj_type_ref.
6895         * tree.def (OBJ_TYPE_REF): Update comment.
6896
6897 2010-05-14  Richard Guenther  <rguenther@suse.de>
6898
6899         PR tree-optimization/44124
6900         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
6901
6902 2010-05-14  Alan Modra  <amodra@gmail.com>
6903
6904         PR target/44075
6905         * config/rs6000/rs6000.c (struct machine_function): Reorder
6906         fields for better packing.  Add lr_save_state.
6907         (rs6000_ra_ever_killed): Return lr_save_state if set.
6908         (rs6000_emit_eh_reg_restore): Set lr_save_state.
6909
6910 2010-05-13  Jan Hubicka  <jh@suse.cz>
6911
6912         * varpool.c (decide_is_variable_needed): Drop code checking
6913         TREE_SYMBOL_REFERENCED.
6914
6915 2010-05-13  Jan Hubicka  <jh@suse.cz>
6916
6917         * final.c (output_addr_const): Do not call mark_decl_referenced.
6918         * cgraphunit.c (process_function_and_variable_attributes): Use
6919         mark_needed_node dirrectly.
6920         (assemble_thunk): Do not call mark_decl_referenced.
6921
6922 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
6923
6924         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
6925
6926 2010-05-13  Jeff Law  <law@redhat.com>
6927
6928         * ira-conflicts.c (print_allocno_conflicts): New function broken out
6929         from...
6930         (print_conflicts): Call print_allocno_conflicts.
6931
6932 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
6933
6934         PR debug/44104
6935         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
6936         if it is NULL.
6937
6938 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
6939
6940         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
6941         t-mingw-w64 or t-mingw-w32 for multilib configuration.
6942         * config/i386/t-mingw-w32: New.
6943         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
6944
6945 2010-05-13  Martin Jambor  <mjambor@suse.cz>
6946
6947         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
6948         gimple-fold.c).
6949         * gimple-fold.c (get_base_binfo_for_type): New function.
6950         (gimple_get_relevant_ref_binfo): Likewise.
6951         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6952         (gimple_fold_obj_type_ref): Likewise.
6953         (fold_gimple_call): Simplify condition for folding virtual calls
6954         and call gimple_fold_obj_type_ref.
6955         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
6956         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6957
6958 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
6959
6960         * config/rs6000/rs6000-protos.h
6961         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
6962         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
6963         (rs6000_debug_mode_dependent_address)
6964         (rs6000_mode_dependent_address_ptr): Likewise.
6965
6966 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
6967
6968         PR debug/43983
6969         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
6970         by SRA.
6971         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
6972         * tree-sra.c (create_access_replacement): Call unshare_expr before
6973         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
6974         * dwarf2out.c: Include tree-flow.h.
6975         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
6976         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
6977         Handle DW_OP_bit_piece.
6978         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
6979         construct_piece_list, adjust_piece_list): New functions.
6980         (add_var_loc_to_decl): Handle SRA optimized variables.
6981         Adjust for var_loc_note to loc field renaming.
6982         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
6983         in VAR_LOCATION note.
6984         (new_loc_descr_op_bit_piece): New function.
6985         (dw_sra_loc_expr): New function.
6986         (dw_loc_list): Use it.  Don't handle the last range after the
6987         loop, handle it inside of the loop.  Adjust for var_loc_note
6988         to loc field renaming.
6989         (add_location_or_const_value_attribute): Only special case
6990         single entry loc lists if loc is NOTE_P.  Adjust for
6991         var_loc_note to loc field renaming.
6992         (dwarf2out_var_location): Don't set newloc->var_loc_note
6993         and newloc->next here.
6994
6995 2010-05-12  Jan Hubicka  <jh@suse.cz>
6996
6997         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
6998         flag.
6999         * cgraph.h (cgraph_only_called_directly_p,
7000         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
7001         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
7002         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
7003         (assemble
7004         * ipa.c (cgraph_remove_unreachable_nodes): Use
7005         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
7006         flags.
7007         * tree-inline.c (copy_bb): Check address_taken flag.
7008         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
7009         externally_visible flag.
7010
7011 2010-05-12  Jason Merrill  <jason@redhat.com>
7012
7013         PR bootstrap/44048
7014         PR target/44099
7015         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
7016         * sdbout.c (plain_type_1): Likewise.
7017         * dwarf2out.c (is_base_type): Likewise.
7018         (gen_type_die_with_usage): Likewise.  Generate
7019         DW_TAG_unspecified_type for any LANG_TYPE.
7020
7021 2010-05-12  Jan Hubicka  <jh@suse.cz>
7022
7023         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
7024         indrect edges too.
7025         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
7026         (cgraph_clone_edge): Update.
7027         (cgraph_node_remove_callees): Remove indirect calls too.
7028         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
7029         (cgraph_create_indirect_edge): Update prototype.
7030         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
7031         is_proper_for_analysis.
7032         (add_new_function, visited_nodes, function_insertion_hook_holder,
7033         get_local_reference_vars_info, mark_address_taken, mark_address,
7034         mark_load, mark_store, check_asm_memory_clobber, check_call,
7035         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
7036         (ipa_init): Do not initialize visited_nodes;
7037         function_insertion_hook_holder.
7038         (analyze_variable): Rewrite.
7039         (analyze_function): Rewrite.
7040         (copy_local_bitmap): Remove.
7041         (duplicate_node_dat): Do not duplicate local info.
7042         (generate_summary): Simplify to only walk cgraph.
7043         (write_node_summary_p, ipa_reference_write_summary,
7044         ipa_reference_read_summary): Remove.
7045         (propagate): Do not remove function insertion;
7046         generate summary.
7047         (pass_ipa_reference): NULLify summary handling fields.
7048         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
7049         (input_edge): Input ecf_flags.
7050         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
7051         (update_indirect_edges_after_inlining): Ignore edges with unknown
7052         param.
7053
7054 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
7055
7056         * implicit-zee.c: New file.
7057         * tree-pass.h (pass_implicit_zee): Declare.
7058         * passes.c (init_optimization_passes): Add zee pass.
7059         * common.opt (fzee): New flag.
7060         * timevar.def (TV_ZEE): Define.
7061         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
7062         and beyond.
7063         * Makefile.in (implicit-zee.o): Add new build file.
7064
7065 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7066             Nathan Froyd  <froydnj@codesourcery.com>
7067
7068         * c-common.c (sync_resolve_params): Remove write-only variable.
7069
7070 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
7071
7072         * target.h (struct gcc_target): Add mode_dependent_address_p field.
7073         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
7074         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
7075         * targhooks.c (default_mode_dependent_address_p): New function.
7076         * targhooks.h (default_mode_dependent_address_p): Declare function.
7077         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
7078         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
7079         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
7080         target hook. Change return type to bool.
7081         * recog.h (mode_dependent_address_p): Change return type to bool.
7082
7083 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7084             Nathan Froyd  <froydnj@codesourcery.com>
7085
7086         * tree-mudflap.c (build_function_type_0, build_function_type_1,
7087         build_function_type_2, build_function_type_3): Remove.
7088         (mudflap_init): Use build_function_type_list.
7089
7090 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7091             Nathan Froyd  <froydnj@codesourcery.com>
7092
7093         * coverage.c (build_fn_info_value): Call build_constructor instead of
7094         build_constructor_from_list.
7095         (build_ctr_info_value): Likewise.
7096         (build_gcov_info): Likewise.
7097
7098 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
7099
7100         * tree.c (build_constructor): Compute TREE_CONSTANT for the
7101         resultant constructor.
7102         (build_constructor_single): Don't set TREE_CONSTANT.
7103         (build_constructor_from_list): Don't compute TREE_CONSTANT.
7104
7105 2010-05-12  Jan Hubicka  <jh@suse.cz>
7106
7107         * cgraph.h (struct varpool_node): Add aux.
7108         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
7109         * varpool.c (varpool_remove_node): Do not remove initializer.
7110         (varpool_reset_queue): Export.
7111         (varpool_finalize_decl): Volatile vars are forced to be output.
7112         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
7113         replaced decl.
7114         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
7115         process_references, varpool_can_remove_if_no_refs): New functions.
7116         (cgraph_remove_unreachable_nodes): Handle variables too.
7117
7118 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7119
7120         PR target/44088
7121         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
7122
7123 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
7124
7125         PR middle-end/44085
7126         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
7127         change value of ORT_TASK.
7128         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
7129         (omp_notice_threadprivate_variable): New function.
7130         (omp_notice_variable): Call it for threadprivate variables.
7131         If enclosing ctx is a task, print enclosing task rather than
7132         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
7133         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
7134         if task has untied clause.
7135
7136         PR debug/42278
7137         * dwarf2out.c (base_type_die): Don't add name attribute here.
7138         (modified_type_die): Instead of sizetype use
7139         its underlying original type.  If a DW_TAG_base_type doesn't
7140         have name added, add __unknown__.
7141         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
7142         always call force_type_die instead.
7143
7144 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
7145
7146         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
7147         for __stack_chk_guard.
7148
7149 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
7150
7151         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
7152         don't call start_source_file debug hook here...
7153         (finish_options): ... but here, after outputting predefined and
7154         command line defines and undefs.
7155
7156         PR middle-end/44071
7157         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
7158         no fallthru edge.
7159         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
7160         optimizing away empty bb with no successors, move over its
7161         footer chain to fallthru predecessor.
7162         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
7163         (rtl_split_edge): For asm goto call patch_jump_insn even if
7164         splitting fallthru edge.
7165
7166         PR c++/44059
7167         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
7168         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
7169         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
7170         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
7171         on DW.ref.* decls.
7172
7173         PR c++/44062
7174         * c-parser.c (c_parser_expression): Mark LHS of a comma
7175         expression as read if it is a decl, handled component or
7176         COMPOUND_EXPR with that on the RHS.
7177         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
7178         if it is a decl or handled component.
7179
7180 2010-05-11  Jan Hubicka  <jh@suse.cz>
7181
7182         * lto-symtab.c (lto_symtab_free): New function.
7183         * lto-streamer.h (lto_symtab_free): Declare.
7184
7185 2010-05-11  Jan Hubicka  <jh@suse.cz>
7186
7187         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
7188         that if function is needed it is reachable.
7189         (lto_output_node): See if it the function is reachable or referenced.
7190         (output_cgraph): Update call of lto_output_node.
7191         * lto-streamer.h (reachable_from_other_partition_p): Declare.
7192
7193 2010-05-11  Jan Hubicka  <jh@suse.cz>
7194
7195         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
7196         Mark as used.
7197
7198 2010-05-11  Jan Hubicka  <jh@suse.cz>
7199
7200         PR tree-optimize/44063
7201         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
7202         queue.
7203         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
7204         limits.
7205         (estimate_function_body_sizes): Compute sizes even when disregarding.
7206
7207 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
7208
7209         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
7210
7211 2010-05-11  Jan Hubicka  <jh@suse.cz>
7212
7213         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
7214         into every boundary.
7215
7216 2010-05-11  Jan Hubicka  <jh@suse.cz>
7217
7218         * matrix-reorg.c (matrix_reorg): Rebuild edges.
7219
7220 2010-05-11  Jan Hubicka  <jh@suse.cz>
7221
7222         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
7223         lto_streamer_cache_delete): Put nodes into heap.
7224         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
7225         heap.
7226
7227 2010-05-11  Jan Hubicka  <jh@suse.cz>
7228
7229         * cgraphbuild.c (cgraph_rebuild_references): New.
7230         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
7231         out extern inlines.
7232         * cgraph.h (cgraph_rebuild_references): Declare.
7233         * tree-inline.c (tree_function_versioning): Use it.
7234         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
7235
7236 2010-05-11  Jan Hubicka  <jh@suse.cz>
7237
7238         * cgraph.c: Include ipa-utils.h
7239         (cgraph_create_virtual_clone): Update references.
7240         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
7241
7242 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
7243
7244         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
7245         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
7246         cache size.
7247
7248 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
7249
7250         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
7251
7252 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
7253
7254         * gcc.c (execute): For -### don't quote arguments that
7255         contain just alphanumerics and _/-. characters.
7256         * doc/invoke.texi: Document that change for -###.
7257
7258         PR debug/44023
7259         * df-problems.c (struct dead_debug): Add to_rescan field.
7260         (dead_debug_init): Clear to_rescan field.
7261         (dead_debug_finish): Rescan all debug insns in to_rescan
7262         bitmap and free the bitmap.
7263         (dead_debug_insert_before): Instead of rescanning debug insns
7264         immediately queue their rescanning until dead_debug_finish.
7265         (df_note_bb_compute): After dead_debug_add do continue instead
7266         of break.
7267
7268 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
7269
7270         PR debug/44028
7271         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
7272         clear also INSN_REG_USE_LIST.
7273
7274 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7275
7276         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
7277
7278 2010-05-10  Jan Hubicka  <jh@suse.cz>
7279
7280         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
7281         commited change.
7282
7283 2010-05-10  Jan Hubicka  <jh@suse.cz>
7284
7285         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
7286         Allocate encoders.
7287         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
7288         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
7289         (lto_streamer_cache_create): Init alloc pool.
7290         (lto_streamer_cache_delete): Free alloc pool.
7291         * lto-streamer.h: Include alloc pool.
7292         (lto_streamer_cache_d): Use alloc pool.
7293         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
7294
7295 2010-05-10  Jan Hubicka  <jh@suse.cz>
7296
7297         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
7298         * cgraphbuild.c: Include except.h
7299         (record_type_list, record_eh_tables): New function.
7300         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
7301
7302 2010-05-10  Jan Hubicka  <jh@suse.cz>
7303
7304         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
7305         __frame_dummy_init_array_entry, force_to_data): Attribute as used
7306         rather than unused.
7307
7308 2010-05-10  Michael Matz  <matz@suse.de>
7309
7310         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
7311         (can_reassociate_p): Use FLOAT_TYPE_P.
7312         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
7313         (vect_force_simple_reduction): ... this.
7314         * tree-parloops.c (gather_scalar_reductions): Use
7315         vect_force_simple_reduction.
7316         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
7317         vect_is_simple_reduction, add modify argument, if true rewrite
7318         "a-b" into "a+(-b)".
7319         (vect_is_simple_reduction, vect_force_simple_reduction): New
7320         functions.
7321         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
7322
7323 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7324             Vladimir Makarov  <vmakarov@redhat.com>
7325
7326         PR rtl-optimization/44012
7327         * ira-build.c (remove_unnecessary_allocnos): Nullify
7328         regno_allocno_map of the removed allocno.
7329
7330 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7331
7332         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
7333         to /dev/null.
7334         * configure: Regenerate.
7335
7336 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7337
7338         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
7339         unused.
7340         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
7341         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
7342         support in Sun ld.
7343         * configure: Regenerate.
7344
7345 2010-05-10  Richard Guenther  <rguenther@suse.de>
7346
7347         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
7348         marked if the entry identifier is marked.
7349
7350 2010-05-10  Richard Guenther  <rguenther@suse.de>
7351
7352         * c-common.c (struct c_common_attributes): Add fnspec attribute.
7353         (handle_fnspec_attribute): New function.
7354         * gimple.h (gimple_call_return_flags): Declare.
7355         (gimple_call_arg_flags): Likewise.
7356         * gimple.c (gimple_call_arg_flags): New function.
7357         (gimple_call_return_flags): Likewise.
7358         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
7359         New argument flags.
7360         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
7361         return value flags.
7362         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
7363         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
7364         main work to ...
7365         (make_heapvar_for): ... this new function.
7366         (handle_rhs_call): Handle fnspec attribute argument specifiers.
7367         (handle_lhs_call): Likewise.
7368         (find_func_aliases): Adjust.
7369
7370 2010-05-10  Richard Guenther  <rguenther@suse.de>
7371
7372         PR tree-optimization/44050
7373         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
7374
7375 2010-05-10  Wei Guozhi  <carrot@google.com>
7376
7377         PR target/42879
7378         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
7379
7380 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
7381
7382         PR c/10676
7383         * c-typeck.c (lookup_field): Take a type directly.  Update
7384         recursive calls.
7385         (build_component_ref): Update call to lookup_field.
7386         (set_init_label): Use lookup_field to find initialized field.
7387         Handle returned list of fields like a sequence of designators.
7388
7389 2010-05-09  Richard Guenther  <rguenther@suse.de>
7390
7391         PR middle-end/44024
7392         * fold-const.c (tree_single_nonzero_warnv_p): Properly
7393         handle &FUNCTION_DECL.
7394
7395 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
7396
7397         PR c/4784
7398         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
7399         structures and unions recursively.
7400         (detect_field_duplicates): Move duplicate detection with a hash to
7401         detect_field_duplicates_hash.  Always use a hash if anonymous
7402         structures or unions are present.
7403         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
7404         give errors.
7405
7406 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7407
7408         PR target/44046
7409         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
7410         detect Atom, Core 2 and Core i7.
7411
7412 2010-05-09  Richard Guenther  <rguenther@suse.de>
7413
7414         * gcc.c (store_arg): Handle temporary file deletion for
7415         joined arguments.
7416
7417 2010-05-09  Richard Guenther  <rguenther@suse.de>
7418
7419         PR middle-end/44043
7420         * ipa-inline.c (estimate_function_body_sizes): Return after
7421         disregarding inline limits.
7422
7423 2010-05-09  Richard Guenther  <rguenther@suse.de>
7424
7425         * gcc.c (store_arg): Revert last change.
7426
7427 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
7428
7429         PR middle-end/28685
7430         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
7431         (optimize_ops_list): Call it.
7432
7433 2010-05-08  Richard Guenther  <rguenther@suse.de>
7434
7435         PR tree-optimization/44030
7436         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
7437         NECESSARY flag if we propagate from a inserted expression.
7438
7439 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7440
7441         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
7442         domain types as equal if they are both PLACEHOLDER_EXPRs.
7443
7444 2010-05-08  Richard Guenther  <rguenther@suse.de>
7445
7446         * lto-wrapper.c (run_gcc): Remove linker output from
7447         command line for LTRANS invocation.
7448
7449 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7450
7451         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7452         lto-macho as lto_binary_reader.
7453         * target.h (struct gcc_target): New hooks lto_start and lto_end.
7454         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
7455         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
7456         in lto_start and lto_end calls.
7457         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
7458         magic numbers.
7459         (scan_prog_file): Update is_elf_or_coff call.
7460         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
7461
7462         * collect2.c (main): Fix enum comparison.
7463
7464         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
7465         Add prototypes.
7466         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
7467         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
7468         and TARGET_ASM_LTO_END.
7469         * darwin.c: Include obstack.h and lto-streamer.h.
7470         (lto_section_names_offset, lto_section_names_obstack,
7471         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
7472         global variables.
7473         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
7474         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
7475         to a temporary file.
7476         (darwin_asm_lto_end): New function.  Restore asm_out_file.
7477         (darwin_asm_named_section): For LTO sections, replace the name with
7478         the offset of the section name in a string table, and build this
7479         table.
7480         (darwin_file_start): Initialize global vars for LTO support.
7481         (darwin_file_end): If output to asm_out_file was redirected, append it
7482         to the proper asm_out_file here.  Add the section names section.
7483
7484 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7485
7486         * c-pragma.c (pending_weak_d, pending_weak): New.
7487         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
7488         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
7489         handle_pragma_weak): Update the uses of pending_weaks.
7490
7491 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7492
7493         PR documentation/44016
7494         * doc/standards.texi (Standards): Link to unversioned
7495         cxx0x_status.html page.
7496
7497 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
7498
7499         PR target/43708
7500         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
7501         in addition to TREE_USED, to avoid "set but unused" warnings.
7502
7503 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7504
7505         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
7506         (is_loop_prefetching_profitable): Do not insert prefetches
7507         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
7508         times the prefetch ahead distance.
7509
7510 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7511
7512         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
7513         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
7514         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
7515         the unroll_factor.
7516
7517 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7518
7519         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
7520         a diagnostic info when the insn-to-mem ratio is too small.
7521
7522 2010-05-07  Richard Guenther <rguenther@suse.de>
7523
7524         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
7525         the linker plugin.
7526         (store_arg): Queue temp_filename for deletion instead of
7527         the whole argument.
7528
7529 2010-05-07  Richard Guenther  <rguenther@suse.de>
7530
7531         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
7532         (run_gcc): Handle LTRANS phase invocation.
7533         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
7534
7535 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
7536
7537         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
7538         this is also meaningful on PARM_DECLs and RESULT_DECLs.
7539
7540 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7541
7542         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
7543
7544 2010-05-07  Richard Guenther  <rguenther@suse.de>
7545
7546         PR tree-optimization/44020
7547         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
7548         code when PRE is not yet initialized.
7549
7550 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7551
7552         * config/mips/dbxmdebug.h: Remove.
7553         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
7554
7555 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
7556
7557         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
7558         with null pointer and also warn about ordered comparison of zero with
7559         pointer if -Wextra.
7560
7561 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7562
7563         * graphite-blocking.c
7564         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
7565         * graphite-clast-to-gimple.c
7566         (clast_to_gcc_expression): Same.
7567         (precision_for_value): Same.
7568         (precision_for_interval): Same.
7569         (gcc_type_for_interval): Same.
7570         (graphite_create_new_guard): Same.
7571         (compute_bounds_for_level): Same.
7572         (graphite_create_new_loop_guard): Same.
7573         * graphite-interchange.c
7574         (build_linearized_memory_access): Same.
7575         (pdr_stride_in_loop): Same.
7576         (memory_strides_in_loop_1): Same.
7577         (memory_strides_in_loop): Same.
7578         (extend_scattering): Same.
7579         (psct_scattering_dim_for_loop_depth): Same.
7580         (pbb_number_of_iterations): Same.
7581         * graphite-poly.h
7582         (debug_iteration_domains): Same.
7583         * graphite-ppl.c
7584         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7585         (ppl_set_inhomogeneous_gmp): Same.
7586         (ppl_strip_loop): Same.
7587         (ppl_lexico_compare_linear_expressions): Same.
7588         (ppl_read_polyhedron_matrix): Same.
7589         (ppl_max_for_le_pointset): Same.
7590         * graphite-ppl.h
7591         (ppl_read_polyhedron_matrix): Same.
7592         (tree_int_to_gmp): Same.
7593         (gmp_cst_to_tree): Same.
7594         (ppl_set_inhomogeneous): Same.
7595         (ppl_set_inhomogeneous_tree): Same.
7596         (ppl_set_coef): Same.
7597         (ppl_set_coef_tree): Same.
7598         * graphite-sese-to-poly.c
7599         (build_pbb_scattering_polyhedrons): Same.
7600         (build_scop_scattering): Same.
7601         (scan_tree_for_params_right_scev): Same.
7602         (scan_tree_for_params): Same.
7603         (find_params_in_bb): Same.
7604         (find_scop_parameters): Same.
7605         (add_upper_bounds_from_estimated_nit): Same.
7606         (build_loop_iteration_domains): Same.
7607         (add_condition_to_domain): Same.
7608         (pdr_add_memory_accesses): Same.
7609
7610 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7611
7612         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
7613         CLooG's value_* macros to their respective mpz_* counterparts.
7614         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
7615         (graphite_create_new_loop_guard): Same.
7616         * graphite-interchange.c (build_linearized_memory_access): Same.
7617         (pdr_stride_in_loop): Same.
7618         (memory_strides_in_loop_1): Same.
7619         (1st_interchange_profitable_p): Same.
7620         * graphite-poly.c (extend_scattering): Same.
7621         (psct_scattering_dim_for_loop_depth): Same.
7622         (pbb_number_of_iterations): Same.
7623         (pbb_number_of_iterations_at_time): Same.
7624         * graphite-poly.h (new_1st_loop): Same.
7625         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
7626         (oppose_constraint): Same.
7627         (insert_constraint_into_matrix): Same.
7628         (ppl_set_inhomogeneous_gmp): Same.
7629         (ppl_set_coef_gmp): Same.
7630         (ppl_strip_loop): Same.
7631         (ppl_lexico_compare_linear_expressions): Same.
7632         (ppl_max_for_le_pointset): Same.
7633         (ppl_min_for_le_pointset): Same.
7634         (ppl_build_realtion): Same.
7635         * graphite-ppl.h (gmp_cst_to_tree): Same.
7636         (ppl_set_inhomogeneous): Same.
7637         (ppl_set_inhomogeneous_tree): Same.
7638         (ppl_set_coef): Same.
7639         (ppl_set_coef_tree): Same.
7640         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
7641         (build_scop_scattering): Same.
7642         (add_value_to_dim): Same.
7643         (scan_tree_for_params_right_scev): Same.
7644         (scan_tree_for_params_int): Same.
7645         (scan_tree_for_params): Same.
7646         (find_params_in_bb): Same.
7647         (find_scop_parameters): Same.
7648         (add_upper_bounds_from_estimated_nit): Same.
7649         (build_loop_iteration_domains): Same.
7650         (create_linear_expr_from_tree): Same.
7651         (add_condition_to_domain): Same.
7652         (pdr_add_memory_accesses): Same.
7653
7654 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
7655             Jason Merrill  <jason@redhat.com>
7656
7657         * c-common.c (c_common_reswords): Add nullptr.
7658         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
7659         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
7660         (gen_type_die_with_usage): Likewise.
7661         * dbxout.c (dbxout_type): Likewise.
7662         * sdbout.c (plain_type_1): Likewise.
7663
7664 2010-05-06  Jason Merrill  <jason@redhat.com>
7665
7666         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
7667         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
7668         ret appropriately.
7669         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
7670
7671         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
7672         stripping WITH_SIZE_EXPR.
7673         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
7674         change.
7675
7676 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7677
7678         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
7679         list of obsolete configurations.
7680         Disabled check for obsolete configurations.
7681         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
7682         Removed support for previous versions.
7683         * config/mips/iris.h: Removed.
7684         * config/mips/iris5.h: Removed.
7685         * config/mips/iris6.h: Merged old iris.h contents.
7686         (TARGET_IRIX): Removed.
7687         (DRIVER_SELF_SPECS): Removed mabi=32.
7688         (IDENT_ASM_OP): Removed undef.
7689         (STARTFILE_SPEC): Removed mabi=32.
7690         (ENDFILE_SPEC): Likewise.
7691         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
7692         (MACHINE_TYPE): Update for IRIX 6.5.
7693         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
7694         TARGET_IRIX by TARGET_IRIX6.
7695         (mips_file_start): Likewise.
7696         (mips_output_external): Remove IRIX 5/6 O32 support.
7697         (mips_output_function_prologue): Likewise.
7698         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
7699         TARGET_IRIX6.
7700         (TARGET_CPU_CPP_BUILTINS): Likewise.
7701         (TARGET_IRIX): Removed.
7702         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
7703         (MULTILIB_DIRNAMES): Removed 32.
7704         (MULTILIB_OSDIRNAMES): Removed ../lib.
7705         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
7706         (Specific, mips-sgi-irix5): Document removal.
7707         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
7708         Remove references to older IRIX 6 releases and the O32 ABI.
7709
7710 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
7711
7712         PR bootstrap/43994
7713         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
7714         instead of DF_REF_REAL_REG.
7715
7716 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
7717
7718         PR target/43888
7719         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
7720         handling to still return true for x64 targets.
7721
7722 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7723
7724         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
7725
7726 2010-05-06  Jan Hubicka  <jh@suse.cz>
7727
7728         PR tree-optimization/43791
7729         * ipa-inline.c (update_caller_keys): Remove bogus
7730         disregard_inline_limits check.
7731
7732 2010-05-06  Michael Matz  <matz@suse.de>
7733
7734         PR tree-optimization/43984
7735         * tree-ssa-pre.c (inserted_phi_names): Remove.
7736         (inserted_exprs): Change to bitmap.
7737         (create_expression_by_pieces): Set bits, don't append to vector.
7738         (insert_into_preds_of_block): Don't handle inserted_phi_names.
7739         (eliminate): Don't look at inserted_phi_names, remove deleted
7740         insns from inserted_exprs.
7741         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
7742         (init_pre, fini_pre): Allocate and free bitmaps.
7743         (execute_pre): Insert insns on edges before elimination.
7744
7745 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7746
7747         * tree.c (initializer_zerop): Handle STRING_CST.
7748
7749 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7750
7751         PR 40989
7752         * doc/invoke.texi (Wimplicit): Document as C only.
7753         * opts.c (common_handle_option): Add argument kind.
7754         (handle_option): Rename as read_cmdline_option. Factor out code to...
7755         (handle_option): ... here. New.
7756         (handle_options): Rename as read_cmdline_options.
7757         (decode_options): Update call.
7758         (set_option): Use option index instead of option pointer. Classify
7759         diagnostics correctly.
7760         (enable_warning_as_error): Call handle_option.
7761         * opts.h (set_option): Update declaration.
7762         (handle_option): Declare.
7763         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
7764         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
7765         * c-opts.c (set_Wimplicit): Delete.
7766         (c_family_lang_mask): New static constant.
7767         (c_common_handle_option): Add argument kind. Use handle_option
7768         instead of set_Wimplicit.
7769         (c_common_post_options): warn_implicit and warn_implicit_int
7770         are disabled by default.
7771         * c-common.c (warn_implicit): Do not define here.
7772         * c-common.h (warn_implicit): Do not declare here.
7773         (c_common_handle_option): Update declaration.
7774         * lto-opts.c (lto_reissue_options): Update call to set_option.
7775
7776 2010-05-06  Richard Guenther  <rguenther@suse.de>
7777
7778         PR tree-optimization/43571
7779         * domwalk.c (walk_dominator_tree): Walk the dominator
7780         sons in more optimal order.
7781
7782 2010-05-06  Richard Guenther  <rguenther@suse.de>
7783
7784         PR tree-optimization/43934
7785         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
7786         (stmt_cost): Likewise.
7787         (extract_true_false_args_from_phi): New helper.
7788         (determine_max_movement): For PHI nodes verify we can hoist them
7789         and compute their cost.
7790         (determine_invariantness_stmt): Handle PHI nodes.
7791         (move_computations_stmt): Likewise.  Hoist PHI nodes in
7792         if-converted form using COND_EXPRs.
7793         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
7794         (tree_ssa_lim): Likewise.
7795         * tree-flow.h (tree_ssa_lim): Adjust prototype.
7796         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
7797
7798 2010-05-06  Richard Guenther  <rguenther@suse.de>
7799
7800         PR tree-optimization/43987
7801         * tree-ssa-structalias.c (could_have_pointers): For possibly
7802         address-taken variables force pointers to be recorded.
7803         (create_variable_info_for_1): Likewise.
7804         (push_fields_onto_fieldstack): Pass in wheter all fields
7805         must have pointers.
7806         (find_func_aliases): Query types instead of vars whether
7807         they contain pointers where appropriate.
7808
7809 2010-05-06  Jan Hubicka  <jh@suse.cz>
7810
7811         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
7812         (record_reference, mark_address, mark_load, mark_store): Record
7813         references.
7814         (record_references_in_initializer): Update call of record_references.
7815         (rebuild_cgraph_edges): Remove all references before rebuiding.
7816         * cgraph.c (cgraph_create_node): Clear ref list.
7817         (cgraph_remove_node): Remove references.
7818         (dump_cgraph_node): Dump references.
7819         (cgraph_clone_node): Clone references.
7820         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
7821         (struct cgraph_node, varpool_node): Add ref_lst.
7822         * ipa-ref.c: New file.
7823         * ipa-ref.h: New file.
7824         * ipa-ref-inline.h: New file.
7825         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
7826         (referenced_from_other_partition_p): New function.
7827         (lto_output_varpool_node): Take set arugment; call
7828         referenced_from_other_partition.
7829         (lto_output_ref): New.
7830         (add_references): New.
7831         (output_refs): New.
7832         (output_cgraph): Compute boundary based on references; output refs.
7833         (output_varpool): Accept cgraph_node_set argument.
7834         (input_ref): New.
7835         (input_refs): New.
7836         (input_cgraph): Call input_refs.
7837         * lto-section-in.c (lto_section_name): Add refs.
7838         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
7839         (ipa-ref.o): New file.
7840         * varpool.c (varpool_node): Clear ipa ref list.
7841         (varpool_remove_node): Remove references.
7842         (dump_varpool_node): Dump references.
7843         (varpool_assemble_decl): Only compile finalized ones.
7844         (varpool_extra_name_alias): Initialize ref list.
7845         * lto-streamer.c (lto-get_section_name): Add .refs section.
7846         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
7847         (referenced_from_other_partition_p): Declared.
7848
7849 2010-05-06  Ira Rosen  <irar@il.ibm.com>
7850
7851         PR tree-optimization/43901
7852         * tree-vect-stmts.c (vectorizable_call): Assert that vector
7853         type is not NULL if it's transformation phase, and return
7854         FALSE if it's analysis.
7855         (vectorizable_conversion, vectorizable_operation,
7856         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
7857
7858 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
7859
7860         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
7861         Delete.
7862         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
7863         New define.
7864         * config/mips/mips-protos.h
7865         (mips_small_register_classes_for_mode_p): Delete prototype.
7866
7867 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
7868
7869         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
7870         * config/arm/arm.c (multiple_operation_profitable_p,
7871         compute_offset_order): New static functions.
7872         (load_multiple_sequence, store_multiple_sequence): Use them.
7873         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
7874         memory offsets, not register numbers.
7875         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
7876
7877 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
7878
7879         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
7880         (get_pending_sizes, put_pending_size, put_pending_sizes):
7881         Update the uses of pending_sizes.
7882         * c-decl.c (store_parm_decls): Likewise.
7883         * c-tree.h (struct c_arg_info): Likewise.
7884         * tree.h: Update the prototype for get_pending_sizes and
7885         put_pending_sizes.
7886
7887 2010-05-05  Jason Merrill  <jason@redhat.com>
7888
7889         PR debug/43370
7890         * c-common.c (handle_aligned_attribute): Respect
7891         ATTR_FLAG_TYPE_IN_PLACE.
7892
7893         PR testsuite/43758
7894         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
7895         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
7896         (TARGET_INITIALIZER): Use it.
7897         * c-common.c (attribute_takes_identifier_p): Call it.
7898         * c-common.h: Update prototype.
7899         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
7900         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
7901
7902 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
7903
7904         PR debug/43950
7905         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
7906         DW_ID_down_case for Fortran compilation units.
7907
7908 2010-05-05  Jan Hubicka  <jh@suse.cz>
7909
7910         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
7911         handle aliases.
7912
7913 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7914
7915         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
7916         a variable-sized RESULT_DECL.
7917
7918 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
7919
7920         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
7921
7922 2010-05-05  Jason Merrill  <jason@redhat.com>
7923
7924         PR c++/43787
7925         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
7926         returns GS_OK.
7927         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
7928
7929 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
7930             Jakub Jelinek  <jakub@redhat.com>
7931
7932         PR debug/43478
7933         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
7934         (dead_debug_init, dead_debug_finish): New functions.
7935         (dead_debug_add, dead_debug_insert_before): Likewise.
7936         (df_note_bb_compute): Initialize a dead_debug object, add dead
7937         debug uses to it, insert debug bind insns before death insns,
7938         reset debug insns that refer to pending uses at the end.
7939         * rtl.h (make_debug_expr_from_rtl): New prototype.
7940         * varasm.c (make_debug_expr_from_rtl): New function.
7941
7942 2010-05-05  Jan Hubicka  <jh@suse.cz>
7943
7944         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
7945         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
7946         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
7947         lto_varpool_encoder_deref, lto_varpool_encoder_size,
7948         lto_varpool_encoder_encode_initializer_p,
7949         lto_set_varpool_encoder_encode_initializer): New functions.
7950         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
7951         call output_varpool.
7952         (input_varpool_node): Do not always set analyzed.
7953         (input_cgraph_1): Return vector of cgraph nodes.
7954         (input_varpool_1): Return vector of varpools.
7955         (input_cgraph): Free the vectors.
7956         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7957         output only initializers needed.
7958         (lto_output): Only call output_cgraph.
7959         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
7960         * lto-section-out.c (lto_new_out_decl_state): Initialize
7961         state->varpool_node_encoder.
7962         * lto-streamer.h (lto_varpool_encoder_d): New.
7963         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
7964         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
7965         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
7966         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
7967         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
7968         Declare.
7969         (output_varpool, input_varpool): Remove declarations.
7970
7971 2010-05-05  Jan Hubicka  <jh@suse.cz>
7972
7973         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
7974         with body can prevail.
7975
7976 2010-05-05  Jan Hubicka  <jh@suse.cz>
7977
7978         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
7979         size.
7980
7981 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7982
7983         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
7984
7985         * gengtype.h (erro_at_line): Constify pos argument.
7986
7987         * gengtype.c: Include hashtab.h.
7988         (enum gc_used): Document GC_MAYBE_POINTED_TO.
7989         (error_at_line): Constify pos argument.
7990         (do_typedef): Initialize p->opt field.
7991         (get_file_gtfilename): Fix comment typo.
7992         (struct walk_type_data): Constify line field.
7993         (get_output_file_for_structure): New function.
7994         (write_local_func_for_structure): Constify orig_s argument.
7995         Use get_output_file_for_structure.
7996         (write_func_for_structure): Use get_output_file_for_structure.
7997         (INDENT): New define.
7998         (dump_pair, dump_type, dump_type_list, dump_typekind)
7999         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
8000         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
8001         functions.
8002         (seen_types): New variable.
8003         (main): New variable do_dump.  Process "-d" command line option.
8004         Call dump_everything if dump requested.
8005
8006 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
8007
8008         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
8009         in a temporary instead of invoking the macro multiple times.
8010         (track_expr_p): Likewise.
8011
8012 2010-05-04  Neil Vachharajani <nvachhar@google.com>
8013
8014         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
8015         per new semantics.
8016         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
8017         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
8018         conditions for printing notes.
8019         * common.opt (-Wcoverage-mismatch): Allow negative, default to
8020         true, update documentation.
8021         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
8022
8023 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
8024
8025         PR c/43981
8026         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
8027         on dimen.
8028
8029 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8030
8031         PR target/43799
8032         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
8033         (*sse_prologue_save_insn1): Likewise.
8034         (SSE prologue save splitter): Likewise.
8035
8036 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
8037
8038         * tree.c (free_lang_data_in_one_sizepos): New inline function.
8039         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
8040         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
8041         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
8042         all decls.  Call it on DECL_FIELD_OFFSET of fields.
8043         (find_decls_types_r): Follow DECL_VALUE_EXPR.
8044         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
8045
8046 2010-05-04  Martin Jambor  <mjambor@suse.cz>
8047
8048         * tree-sra.c (build_access_from_expr_1): The first parameter type
8049         changed to simple tree.
8050         (build_access_from_expr): Likewise, gsi parameter was eliminated.
8051         (scan_assign_result): Renamed to assignment_mod_result, enum elements
8052         renamed as well.
8053         (build_accesses_from_assign): Removed all parameters except for a
8054         simple gimple statement.  Now returns a simple bool.
8055         (scan_function): All non-analysis parts moved to separate functions
8056         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
8057         parameters and updated both callers.
8058         (sra_modify_expr): Removed parameter data.
8059         (sra_modify_function_body): New function.
8060         (perform_intra_sra): Call sra_modify_function_body to modify the
8061         function body.
8062         (replace_removed_params_ssa_names): Parameter data changed into
8063         adjustments vector.
8064         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
8065         changed the parameter dont_convert to convert with the opposite
8066         meaning.
8067         (sra_ipa_modify_assign): Parameter data changed into adjustments
8068         vector, return value changed to bool.
8069         (ipa_sra_modify_function_body): New function.
8070         (sra_ipa_reset_debug_stmts): Updated a comment.
8071         (modify_function): Use ipa_sra_modify_function_body to modify function
8072         body.
8073
8074 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8075
8076         PR middle-end/43671
8077         * alias.c (true_dependence): Handle the same VALUE in x and mem.
8078         (canon_true_dependence): Likewise.
8079         (write_dependence_p): Likewise.
8080
8081 2010-05-04  Jan Hubicka  <jh@suse.cz>
8082
8083         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
8084         * cgraphbuild.c: Include ipa-utils.h
8085         (record_reference_ctx): New struct.
8086         (record_reference): Simplify to work on initializers; not statements.
8087         (mark_address, mark_load, mark_store): New.
8088         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
8089         walk PHI nodes too.
8090         (record_references_in_initializer): Update use of record_reference.
8091         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
8092         walk PHI nodes too.
8093
8094 2010-05-04  Jan Hubicka  <jh@suse.cz>
8095
8096         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
8097         node will be removed anyway.
8098         (lto_varpool_replace_node): Allow also unanalyzed nodes;
8099         relink aliases of node into prevailing node.
8100         * varpool.c (varpool_remove_node): Remove aliases properly;
8101         when removing node, remove all its aliases too; remove DECL_INITIAL
8102         of removed node; ggc_free the varpool node.
8103
8104 2010-05-04  Richard Guenther  <rguenther@suse.de>
8105
8106         PR tree-optimization/43879
8107         * tree-ssa-structalias.c (alias_get_name): Use
8108         DECL_ASSEMBLER_NAME if available.
8109         (create_function_info_for): Return the varinfo node.
8110         (ipa_pta_execute): Associate same-body aliases and extra names
8111         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
8112
8113 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8114
8115         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
8116
8117 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
8118
8119         PR bootstrap/43964
8120         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
8121         only if HONOR_REG_ALLOC_ORDER is not defined.
8122
8123 2010-05-04  Richard Guenther  <rguenther@suse.de>
8124
8125         PR tree-optimization/43949
8126         * tree-vrp.c (extract_range_from_binary_expr): Only handle
8127         TRUNC_MOD_EXPR.
8128
8129 2010-04-26  Jason Merrill  <jason@redhat.com>
8130
8131         * c.opt (-fstrict-enums): New.
8132         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
8133
8134 2010-05-03  David Ung <davidu@mips.com>
8135             James E. Wilson  <wilson@codesourcery.com>
8136
8137         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
8138         emit the trap instruction before the divide for TUNE_74K.
8139
8140 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
8141
8142         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
8143         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
8144         based on the above, for new target hook.
8145
8146         * hooks.c (hook_bool_mode_true): New generic hook.
8147         * hooks.h (hook_bool_mode_true): Add prototype.
8148
8149         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
8150         target hook.
8151         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
8152         target hook, set to hook_bool_mode_false.
8153         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
8154         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
8155         with targetm.small_register_classes_for_mode_p.
8156         (find_reusable_reload): Likewise.
8157         (combine_reloads): Likewise.
8158         * reload1.c (reload_as_needed): Likewise.
8159         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
8160         * ifcvt.c (noce_process_if_block, check_cond_move_block,
8161         dead_or_predicable): Likewise.
8162         * regmove.c (optimize_reg_copy_1): Likewise.
8163         * calls.c (prepare_call_address): Likewise.
8164         (precompute_register_parameters): Likewise.
8165
8166         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
8167         hook definition.
8168         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
8169         implementation of the hook that considers all register classes
8170         small except for SH64.
8171         (sh_override_options): Use the new hook.
8172         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
8173         Add prototype.
8174
8175         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
8176         hook definition.
8177         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
8178         implementation of the hook that considers all register classes
8179         small for THUMB1.
8180         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
8181         Add prototype.
8182
8183         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
8184         hook definition.
8185         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
8186         implementation of the hook that considers all register classes
8187         small for MIPS16.
8188         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
8189         Add prototype.
8190
8191         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
8192         hook definition.
8193         * config/m32c/m32c.h: Likewise.
8194         * config/pdp11/pdp11.h: Likewise.
8195         * config/avr/avr.h: Likewise.
8196         * config/xtensa/xtensa.h: Likewise.
8197         * config/m68hc11/m68hc11.h: Likewise.
8198         * config/mn10300/mn10300.h: Likewise.
8199         * config/mcore/mcore.h: Likewise.
8200         * config/h8300/h8300.h: Likewise.
8201         * config/bfin/bfin.h: Likewise.
8202
8203         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
8204         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
8205
8206 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
8207
8208         * double-int.h (tree_to_double_int): Remove macro.
8209         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
8210         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
8211         (tree_to_double_int): New function.
8212         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
8213         Move ...
8214         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
8215
8216 2010-05-03  Richard Guenther  <rguenther@suse.de>
8217
8218         PR tree-optimization/43971
8219         * tree-ssa-structalias.c (get_constraint_for_1): Fix
8220         constraints in the !flag_delete_null_pointer_checks case.
8221
8222 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
8223
8224         PR debug/43972
8225         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
8226         result mode matches original rtl mode.
8227
8228 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
8229
8230         PR target/43888
8231         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
8232
8233 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8234
8235         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
8236         when processing flag options.
8237
8238 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8239
8240         * gcov-iov.c (main): Change format string placeholder
8241         from %#08x to 0x%08x.
8242         * genchecksum.c (dosum): Change format string placeholder
8243         from %#02x to 0x%02x.
8244
8245 2010-05-02  Richard Guenther  <rguenther@suse.de>
8246
8247         PR tree-optimization/43879
8248         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
8249
8250 2010-05-02  Bruno Haible  <bruno@clisp.org>
8251
8252         * doc/extend.texi (Function Attributes): Fix a typo.
8253
8254 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8255
8256         Revert:
8257         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
8258         placeholder from 0x%x to %#x.
8259         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
8260         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
8261         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
8262         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
8263         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
8264         * config/i386/i386.c (ix86_target_string): Ditto.
8265         * config/i386/i386.c (output_pic_addr_const): Ditto.
8266         (print_operand): Ditto.
8267
8268 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8269
8270         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
8271         placeholder from 0x%x to %#x.
8272         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
8273         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
8274         (ASM_OUTPUT_DEBUG_DATA): Ditto.
8275         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
8276         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
8277         * optc-gen.awk: Ditto.
8278         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
8279         (HOST_WIDE_INT_PRINT_HEX): Ditto.
8280         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
8281         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
8282
8283 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
8284
8285         * target.h (struct calls): Add function_value_regno_p field.
8286         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
8287         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
8288         * targhooks.c (default_function_value_regno_p): New function.
8289         * targhooks.h (default_function_value_regno_p): Declare function.
8290         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
8291         * builtins.c. (apply_result_size): (Ditto.).
8292         * combine.c. (likely_spilled_retval_p): (Ditto.).
8293         * mode-switching.c. Include 'target.h'.
8294         (create_pre_exit): Use function_value_regno_p hook.
8295         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
8296         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
8297         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
8298
8299         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
8300         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
8301         (ix86_function_value_regno_p): Declare as static, change argument
8302         type to const unsigned int.
8303         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
8304
8305 2010-05-01  Richard Guenther  <rguenther@suse.de>
8306
8307         PR tree-optimization/43949
8308         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
8309         types.
8310         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
8311
8312 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
8313
8314         * rtl.h (CONST_DOUBLE_P): Define.
8315         (rtx_to_double_int): Declare.
8316         * emit-rtl.c (rtx_to_double_int): New function.
8317         * dwarf2out.c (insert_double): New function.
8318         (loc_descriptor, add_const_value_attribute): Clean up, use
8319         rtx_to_double_int and insert_double functions.
8320
8321 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
8322
8323         * doc/extend.texi (Inline): Add missing return keyword to examples.
8324         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
8325         "command-line".
8326
8327 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
8328
8329         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
8330         the variable part of the offset as well.  Use highest_pow2_factor for
8331         all alignment checks.
8332
8333 2010-04-30  Richard Guenther  <rguenther@suse.de>
8334
8335         PR tree-optimization/43879
8336         * tree-ssa-structalias.c (type_could_have_pointers): Functions
8337         can have pointers.
8338
8339 2010-04-30  Jan Hubicka  <jh@suse.cz>
8340
8341         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
8342         varpool.
8343         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
8344
8345 2010-04-30  Jan Hubicka  <jh@suse.cz>
8346
8347         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
8348         New.
8349         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
8350         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
8351         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
8352         cgraph_node_set_needs_ltrans_p): Remove.
8353
8354 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8355
8356         * sdbout.c: Include vec.h, do not include varray.h.
8357         (deferred_global_decls, sdbout_global_decl,
8358         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
8359         * toplev.c: Do not include varray.h.
8360         (dump_memory_report): Do not dump VARRAY statistics.
8361         * gengtype.c (open_base_file): Ignore varray.h.
8362         * Makefile.in: Update for abovementioned changes.
8363         Remove all traces of varray.c and varray.h.
8364         * varray.c: Remove file.
8365         * varray.h: Remove file.
8366
8367 2010-04-30  Jan Hubicka  <jh@suse.cz>
8368
8369         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
8370         references.
8371
8372 2010-04-30  Jan Hubicka  <jh@suse.cz>
8373
8374         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
8375         needed.
8376
8377 2010-04-30  Richard Guenther  <rguenther@suse.de>
8378
8379         * tree-ssa-structalias.c (get_constraint_for_1): Generate
8380         constraints for CONSTRUCTOR.
8381
8382 2010-04-30  Richard Guenther  <rguenther@suse.de>
8383
8384         PR lto/43946
8385         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
8386         first after all lowering passes.
8387
8388 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8389
8390         * toplev.c: Include varray.h for statistics dumping.
8391         * tree.h: Do not declare varray_head_tag.
8392         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
8393         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
8394         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
8395         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
8396         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
8397         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
8398         c-common.c, c-common.h, reg-stack.c, basic-block.h,
8399         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
8400         include varray.h.
8401         * Makefile.in: Update for abovementioned changes.
8402
8403 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
8404
8405         PR debug/43942
8406         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
8407
8408 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8409
8410         * config/picochip/picochip.c (picochip_legitimize_address): Define.
8411         Use this function to do machine-specific conversion.
8412         (picochip_legitimize_reload_address): Likewise.
8413         (picochip_legitimate_address_p): Check valid base register only if
8414         strict.
8415         (picochip_check_conditional_copy): Check for modw only if opnd is
8416         register.
8417         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
8418         to call the function in c.
8419         * config/picochip/picochip-protos.h
8420         (picochip_legitimize_reload_address): Define.
8421         * config/picochip/picochip.md (supported_compare1): Define.
8422
8423 2010-04-30  Jan Hubicka  <jh@suse.cz>
8424
8425         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
8426         (cgraph_global_info): Remove inlined.
8427         (LTO_cgraph_tag_names): Remove.
8428         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
8429         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
8430         simplify cgraph tags and document.
8431         (lto_output_node): Use only LTO_cgraph_unavail_node and
8432         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
8433         for_functions_valid, global info, process and output flags.
8434         (input_overwrite_node): Initialize estimated stack size and
8435         estimated growth.  Do not read flags we no longer store.
8436         (input_node): Likewise do not read info no longer stored.
8437         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
8438         flag.
8439
8440 2010-04-30  Richard Guenther  <rguenther@suse.de>
8441
8442         PR tree-optimization/43879
8443         * tree-ssa-structalias.c (get_constraint_for_1): Properly
8444         handle non-zero initializers.
8445
8446 2010-04-30  Richard Guenther  <rguenther@suse.de>
8447
8448         * builtins.c (fold_builtin_1): Delete free (0).
8449
8450 2010-04-29  Jan Hubicka  <jh@suse.cz>
8451
8452         * gengtype.c (open_base_files): Add lto-streamer.h
8453         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
8454         (pass_ipa_cp): GGC collect.
8455         * toplev. (compile_file): Do not output symbols.
8456         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
8457         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
8458         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
8459         * lto-section-in.c: Include ggc.h
8460         (lto_new_in_decl_state): Alloc in GGC.
8461         (lto_delete_in_decl_state): Likewise.
8462         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
8463         Collect.
8464
8465 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
8466
8467         PR target/42895
8468         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
8469         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
8470         (HONOR_REG_ALLOC_ORDER): Describe new macro.
8471         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
8472         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
8473         account only if HONOR_REG_ALLOC_ORDER is not defined.
8474         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
8475         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
8476
8477 2010-04-29  Jon Grant  <04@jguk.org>
8478
8479         * collect2.c (vflag): Change type from int to bool.
8480         (debug): Likewise.
8481         (helpflag): New global bool.
8482         (main): Set vflag and debug with boolean, not integer truth values.
8483         Accept new "--help" option and output usage text if found.
8484         * collect2.h (vflag): Update prototype.
8485         (debug): Likewise.
8486
8487 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8488
8489         PR bootstrap/43936
8490         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
8491
8492 2010-04-29  Richard Guenther  <rguenther@suse.de>
8493
8494         PR bootstrap/43935
8495         * plugin.h (invoke_plugin_callbacks): Annotate arguments
8496         with ATTRIBUTE_UNUSED.
8497
8498 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8499
8500         PR target/43921
8501         * config/i386/i386.c (get_some_local_dynamic_name): Replace
8502         INSN_P with NONDEBUG_INSN_P.
8503         (distance_non_agu_define): Likewise.
8504         (distance_agu_use): Likewise.
8505
8506 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
8507
8508         From Dominique d'Humieres <dominiq@lps.ens.fr>
8509         PR bootstrap/43858
8510         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
8511         test_set.
8512
8513 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
8514
8515         * plugin.h (invoke_plugin_callbacks): New inline function.
8516         * plugin.c (flag_plugin_added): New global flag.
8517         (add_new_plugin): Initialize above flag.
8518         (invoke_plugin_callbacks): Rename to ...
8519         (invoke_plugin_callbacks_full): ... this.
8520
8521 2010-04-28  Jan Hubicka  <jh@suse.cz>
8522
8523         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
8524         (lto_varpool_replace_node): New.
8525         (lto_symtab_resolve_symbols): Resolve varpool nodes.
8526         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
8527         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
8528         * cgraph.h (varpool_node_ptr): New type.
8529         (varpool_node_ptr): New vector.
8530         (varpool_node_set_def): New structure.
8531         (varpool_node_set): New type.
8532         (varpool_node_set): New vector.
8533         (varpool_node_set_element_def): New structure.
8534         (varpool_node_set_element, const_varpool_node_set_element): New types.
8535         (varpool_node_set_iterator): New type.
8536         (varpool_node): Add prev pointers, add used_from_other_partition,
8537         in_other_partition.
8538         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
8539         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
8540         varpool_get_node, varpool_remove_node): Declare.
8541         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
8542         varpool_node_set_size): New inlines.
8543         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
8544         * tree-pass.h (varpool_node_set_def): Forward declare.
8545         (ipa_opt_pass_d): Summary writting takes vnode sets too.
8546         (ipa_write_optimization_summaries): Update prototype.
8547         * ipa-cp.c (ipcp_write_summary): Update.
8548         * ipa-reference.c (ipa_reference_write_summary): Update.
8549         * lto-cgraph.c (lto_output_varpool_node): New static function.
8550         (output_varpool): New function.
8551         (input_varpool_node): New static function.
8552         (input_varpool_1): New function.
8553         (input_cgraph): Input varpool.
8554         * ipa-pure-const.c (pure_const_write_summary): Update.
8555         * lto-streamer-out.c (lto_output): Update, output varpool too.
8556         (write_global_stream): Kill WPA hack.
8557         (produce_asm_for_decls): Update.
8558         (output_alias_pair_p): Handle variables.
8559         (output_unreferenced_globals): Output only needed partition of varpool.
8560         * ipa-inline.c (inline_write_summary): Update.
8561         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
8562         cgraph.
8563         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
8564         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
8565         varpool_node_set_new, varpool_node_set_add,
8566         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
8567         debug_varpool_node_set): New functions.
8568         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
8569         (execute_one_pass): Process new decls too.
8570         (ipa_write_summaries_2): Pass around vsets.
8571         (ipa_write_summaries_1): Likewise.
8572         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
8573         to add.
8574         (ipa_write_optimization_summaries_1): Pass around vsets.
8575         (ipa_write_optimization_summaries): Likewise.
8576         * varpool.c (varpool_get_node): New.
8577         (varpool_node): Update doubly linked lists.
8578         (varpool_remove_node): New.
8579         (dump_varpool_node): More dumping.
8580         (varpool_enqueue_needed_node): Update doubly linked lists.
8581         (decide_is_variable_needed): Kill ltrans hack.
8582         (varpool_finalize_decl): Kill lto hack.
8583         (varpool_assemble_decl): Skip decls in other partitions.
8584         (varpool_assemble_pending_decls): Update doubly linkes lists.
8585         (varpool_empty_needed_queue): Likewise.
8586         (varpool_extra_name_alias): Likewise.
8587         * lto-streamer.c (lto_get_section_name): Add vars section.
8588         * lto-streamer.h (lto_section_type): Update.
8589         (output_varpool, input_varpool): Declare.
8590
8591 2010-04-28  Mike Stump  <mikestump@comcast.net>
8592
8593         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
8594
8595 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8596
8597         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
8598         record or union type with RECORD_OR_UNION_TYPE_P predicate.
8599         (lto_input_ts_type_tree_pointers): Likewise.
8600         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
8601         (lto_output_ts_type_tree_pointers): Likewise.
8602
8603 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8604
8605         Uniquization of constants at the Tree level
8606         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
8607         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
8608         bit to the end.
8609         (tree_output_constant_def): Declare.
8610         * gimplify.c (gimplify_init_constructor): When using block copy, first
8611         uniquize the constant constructor on the RHS.
8612         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
8613         DECL_IN_CONSTANT_POOL flag.
8614         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
8615         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
8616         constant pool.
8617         (assemble_variable): Deal with symbols belonging to the tree constant
8618         pool.
8619         (get_constant_section): Add ALIGN parameter and simplify.
8620         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
8621         (assemble_constant_contents): Use the expression of the VAR_DECL.
8622         (output_constant_def_contents): Use the alignment of the VAR_DECL.
8623         (tree_output_constant_def): New global function.
8624         (mark_constant): Use the expression of the VAR_DECL.
8625         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
8626         its expression.
8627         (output_object_block): Likewise and assemble the expression.
8628
8629 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8630
8631         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
8632         hash_tree, eq_tree): New tree hash table.
8633         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
8634         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
8635         lto_orig_address_remove): Reimplement.
8636
8637 2010-04-28  Xinliang David Li  <davidxl@google.com>
8638
8639         PR c/42643
8640         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
8641         (compute_uninit_opnds_pos): New function.
8642         (is_non_loop_exit_postdominating): New function.
8643         (compute_control_dep_chain): New function.
8644         (find_pdom): New function.
8645         (convert_control_dep_chain_into_preds): New function.
8646         (find_predicates): New function.
8647         (find_control_equiv_block): New function.
8648         (collect_phi_def_edges): New function.
8649         (find_def_preds): New function.
8650         (find_dom): New function.
8651         (dump_predicates): New function.
8652         (get_cmp_code): New function.
8653         (is_value_included_in): New function.
8654         (find_matching_predicate_in_rest_chains): New function.
8655         (use_pred_not_overlap_with_undef_path_pred): New function.
8656         (is_use_properly_guarded): New function.
8657         (normalize_cond_1): New function.
8658         (is_and_or_or): New function.
8659         (normalize_cond): New function.
8660         (is_gcond_subset_of): New function.
8661         (is_subset_of_any): New function.
8662         (is_or_set_subset_of): New function.
8663         (is_and_set_subset_of): New function.
8664         (is_norm_cond_subset_of): New function.
8665         (is_pred_expr_subset_of): New function.
8666         (is_pred_chain_subset_of): New function.
8667         (is_included_in): New function.
8668         (is_superset_of): New function.
8669         (find_uninit_use): New function.
8670         (warn_uninitialized_phi): New function.
8671         (compute_possibly_undefined_names): New function.
8672         (ssa_undefined_value_p): New function.
8673         (execute_late_warn_uninitialized): New function.
8674         * tree-ssa.c (ssa_undefined_value_p): Removed.
8675         (warn_uninit): Changed to extern.
8676         (warn_uninitialized_phi): Removed.
8677         (warn_uninitialized_vars): Changed to extern.
8678         (execute_late_warn_uninitialized): Removed
8679         * tree-flow.h: Add new prototypes.
8680         * timevar.def: Add new time variable.
8681         * Makefile.in: Add new build file.
8682
8683 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
8684
8685         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
8686         type if available.
8687
8688 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8689
8690         PR target/22224
8691         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
8692
8693 2010-04-28  Martin Jambor  <mjambor@suse.cz>
8694
8695         * cgraph.h (struct cgraph_node): New field indirect_calls.
8696         (struct cgraph_indirect_call_info): New type.
8697         (struct cgraph_edge): Removed field indirect_call. New fields
8698         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
8699         (cgraph_create_indirect_edge): Declare.
8700         (cgraph_make_edge_direct): Likewise.
8701         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
8702         * ipa-prop.h (struct ipa_param_call_note): Removed.
8703         (struct ipa_node_params): Removed field param_calls.
8704         (ipa_create_all_structures_for_iinln): Declare.
8705         * cgraph.c: Described indirect edges and uids in initial comment.
8706         (cgraph_add_edge_to_call_site_hash): New function.
8707         (cgraph_edge): Search also among the indirect edges, use
8708         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
8709         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
8710         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
8711         site hash.
8712         (initialize_inline_failed): Assign a reason to indirect edges.
8713         (cgraph_create_edge_1): New function.
8714         (cgraph_create_edge): Moved some functionality to
8715         cgraph_create_edge_1.
8716         (cgraph_create_indirect_edge): New function.
8717         (cgraph_edge_remove_callee): Add an assert checking for
8718         non-indirectness.
8719         (cgraph_edge_remove_caller): Special-case indirect edges.
8720         (cgraph_remove_edge): Likewise.
8721         (cgraph_set_edge_callee): New function.
8722         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
8723         (cgraph_make_edge_direct): New function.
8724         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
8725         the declaration of the call statement matches.
8726         (cgraph_node_remove_callees): Special-case indirect edges.
8727         (cgraph_clone_edge): Likewise.
8728         (cgraph_clone_node): Clone also the indirect edges.
8729         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
8730         indirect_call, dump count of indirect_calls edges.
8731         * ipa-prop.c (iinlining_processed_edges): New variable.
8732         (ipa_note_param_call): Create indirect edges instead of
8733         creating notes.  New parameter node.
8734         (ipa_analyze_call_uses): New parameter node, pass it on to
8735         ipa_note_param_call.
8736         (ipa_analyze_stmt_uses): Likewise.
8737         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
8738         (print_edge_addition_message): Work on edges rather than on notes.
8739         (update_call_notes_after_inlining): Likewise, renamed to
8740         update_indirect_edges_after_inlining.
8741         (ipa_create_all_structures_for_iinln): New function.
8742         (ipa_free_node_params_substructures): Do not free notes.
8743         (ipa_edge_duplication_hook): Propagate bits within
8744         iinlining_processed_edges bitmap.
8745         (ipa_node_duplication_hook): Do not duplicate notes.
8746         (free_all_ipa_structures_after_ipa_cp): Renamed to
8747         ipa_free_all_structures_after_ipa_cp.
8748         (free_all_ipa_structures_after_iinln): Renamed to
8749         ipa_free_all_structures_after_iinln.
8750         (ipa_write_param_call_note): Removed.
8751         (ipa_read_param_call_note): Removed.
8752         (ipa_write_indirect_edge_info): New function.
8753         (ipa_read_indirect_edge_info): Likewise.
8754         (ipa_write_node_info): Do not stream notes, do stream information
8755         in indirect edges.
8756         (ipa_read_node_info): Likewise.
8757         (lto_ipa_fixup_call_notes): Removed.
8758         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
8759         * ipa-inline.c (pass_ipa_inline): Likewise.
8760         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
8761         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
8762         * tree-inline.c (copy_bb): Removed an unnecessary double check for
8763         is_gimple_call.
8764         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
8765         edges.
8766         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
8767         (output_cgraph): Stream also indirect edges.
8768         (lto_output_edge): Added capability to stream indirect edges.
8769         (input_edge): Likewise.
8770         (input_cgraph_1): Likewise.
8771         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
8772         of indirect edges.
8773
8774 2010-04-28  Richard Guenther  <rguenther@suse.de>
8775
8776         PR tree-optimization/43879
8777         PR tree-optimization/43909
8778         * tree-ssa-structalias.c (struct variable_info): Add
8779         only_restrict_pointers flag.
8780         (new_var_info): Initialize it.  Increment stats.total_vars here.
8781         (create_function_info_for): Do not increment stats.total_vars here.
8782         (get_function_part_constraint): Fix build with C++.
8783         (insert_into_field_list): Remove.
8784         (push_fields_onto_fieldstack): Properly merge fields.
8785         (create_variable_info_for): Split and simplify.
8786         (create_variable_info_for_1): New piece.
8787         (intra_create_variable_infos): Properly make restrict constraints
8788         from parameters.
8789
8790 2010-04-28  Richard Guenther  <rguenther@suse.de>
8791
8792         PR c++/43880
8793         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
8794
8795 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8796             Jan Hubicka <hubicka@ucw.cz>
8797
8798         * doc/invoke.texi (-Wsuggest-attribute=const,
8799         -Wsuggest-attribute=pure): Document.
8800         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
8801         (function_always_visible_to_compiler_p,
8802         suggest_attribute, warn_function_pure, warn_function_const):
8803         New functions.
8804         (check_call): Improve debug info.
8805         (analyze_function): Do not check availability.
8806         (add_new_function): Check availability.
8807         (propagate): Output warnings.
8808         (skip_function_for_local_pure_const): New function.
8809         (local_pure_const): Use it; output warnings.
8810         * common.opt (Wsuggest-attribute=const,
8811         Wsuggest-attribute=pure): New.
8812
8813 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
8814
8815         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
8816         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
8817         or DW_CFA_def_cfa_offset{,_sf}.
8818
8819 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8820
8821         * tree.h: Fix truncated long macros.
8822
8823 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
8824
8825         * collect2.c (TARGET_64BIT): Redefine to target's default.
8826         * tlink.c: Likewise.
8827         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
8828         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
8829         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
8830         for underscoring __USER_LABEL_PREFIX__.
8831         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
8832         (SUB_LINK_ENTRY32): New.
8833         (SUB_LINK_ENTRY64): New.
8834         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
8835         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
8836         (SUB_LINK_ENTRY64): New.
8837         (SUB_LINK_ENTRY): New.
8838         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
8839         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
8840         x64 target is choosen.
8841         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
8842         * configure: Regenerated.
8843         * configure.ac (leading-mingw64-underscores): Option added.
8844
8845 2010-04-27  Jan Hubicka  <jh@suse.cz>
8846
8847         * doc/invoke.texi (-fipa-profile): Document.
8848         * opts.c (decode_options): Enable ipa-profile at -O1.
8849         * timevar.def (TV_IPA_PROFILE): Define.
8850         * common.opt (fipa-profile): Add.
8851         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
8852         flag for clones.
8853         (cgraph_propagate_frequency): Handle only local ones.
8854         * tree-pass.h (pass_ipa_profile): Declare.
8855         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
8856         (pass_ipa_profile): Use TV_IPA_PROFILE.
8857         * ipa.c (ipa_profile): New function.
8858         (gate_ipa_profile): Likewise.
8859         (pass_ipa_profile): New global variable.
8860         * passes.c (pass_ipa_profile): New.
8861
8862 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
8863
8864         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
8865
8866 2010-04-27  Martin Jambor  <mjambor@suse.cz>
8867
8868         PR middle-end/43812
8869         * ipa.c (dissolve_same_comdat_group_list): New function.
8870         (function_and_variable_visibility): Call
8871         dissolve_same_comdat_group_list when comdat group contains external or
8872         newly local nodes.
8873         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
8874         lists are circular and that they contain only DECL_ONE_ONLY nodes.
8875
8876 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8877
8878         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
8879         (const_hash_1) <VECTOR_CST>: New case.
8880         (compare_constant) <VECTOR_CST>: Likewise.
8881         <ADDR_EXPR>: Deal with LABEL_REFs.
8882         (copy_constant) <VECTOR_CST>: New case.
8883
8884 2010-04-27  Jan Hubicka  <jh@suse.cz>
8885
8886         * cgraph.c (cgraph_propagate_frequency): New function.
8887         * cgraph.h (cgraph_propagate_frequency): Declare.
8888         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
8889         cgraph_propagate_frequency.
8890
8891 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
8892
8893         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
8894
8895 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
8896
8897         PR target/40657
8898         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
8899         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
8900         here to determine which regs to push and how much stack to reserve.
8901
8902 2010-04-27  Jie Zhang  <jie@codesourcery.com>
8903
8904         * doc/gimple.texi (gimple_statement_with_ops): Remove
8905         addresses_taken field.
8906         (gimple_statement_with_memory_ops): Likewise.
8907
8908 2010-04-27  Jan Hubicka  <jh@suse.cz>
8909
8910         * tree-inline.c (eni_inlining_weights): Remove.
8911         (estimate_num_insns): Special case more builtins.
8912
8913 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
8914
8915         PR c/32207
8916         * c-typeck.c (build_binary_op): Move forward check for comparison
8917         pointer with null pointer constant and adjust the diagnostic message.
8918
8919 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
8920
8921         PR lto/42776
8922         * configure.ac (gcc_cv_as_section_has_align): Set if installed
8923         binutils supports extended .section directive needed by LTO, or
8924         warn if older binutils found.
8925         (LTO_BINARY_READER): New AC_SUBST'd variable.
8926         (LTO_USE_LIBELF): Likewise.
8927         * gcc/config.gcc (lto_binary_reader): New target-specific configure
8928         variable.
8929         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
8930         (LTO_USE_LIBELF): Likewise.
8931         * configure: Regenerate.
8932
8933         * collect2.c (is_elf): Rename from this ...
8934         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
8935          object files in addition to ELF-formatted ones.
8936         (scan_prog_file): Caller updated.  Also allow for LTO info marker
8937         symbol to be prefixed or not by an extra underscore.
8938
8939         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
8940         * config/i386/winnt.c: Also #include lto-streamer.h
8941         (i386_pe_asm_named_section): Specify 1-byte section alignment for
8942         LTO named sections.
8943         (i386_pe_asm_output_aligned_decl_common): Add comment.
8944         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
8945
8946 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
8947
8948         PR target/43889
8949         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
8950         Add missing earlyclobber for second alternative.
8951
8952 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
8953
8954         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
8955         bits for artificial defs at the top of the block.
8956         * fwprop.c (single_def_use_enter_block): Don't call it.
8957
8958 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
8959
8960         PR 43715
8961         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
8962         instead of "$gcc_cv_objdump -T".
8963         Use "-undefined dynamic_lookup" on darwin.
8964         * gcc/configure: Regenerate.
8965
8966 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
8967
8968         PR c/43893
8969         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
8970
8971 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
8972
8973         * c-parser.c (struct c_token): Move location field up.
8974         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
8975         (struct c_declspecs): Convert typespec_word, storage_class, and
8976         default_int_p into bitfields.
8977         (struct c_declarator): Move loc field up.
8978
8979 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
8980
8981         * cfgloop.h (struct loop): Move can_be_parallel field up.
8982         * ipa-prop.h (struct ip_node_params): Move bitfields up.
8983         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
8984         down.
8985         (struct iv_cand): Convert pos field into a bitfield.
8986         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
8987         field up.
8988         (struct _stmt_vec_info): Shuffle fields for better packing.
8989
8990 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
8991
8992         * varasm.c (IN_NAMED_SECTION): Remove guard.
8993         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
8994         (IN_NAMED_SECTION_P): ...this.
8995         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
8996         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
8997
8998 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
8999
9000         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
9001         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
9002         of shadowing it.  Fix comments.
9003
9004 2010-04-26  Jan Hubicka  <jh@suse.cz>
9005
9006         * cgraph.c (cgraph_create_node): Set node frequency to normal.
9007         (cgraph_clone_node): Copy function frequency.
9008         * cgraph.h (node_frequency): New enum
9009         (struct cgraph_node): Add.
9010         * final.c (rest_of_clean_state): Update.
9011         * lto-cgraph.c (lto_output_node): Output node frequency.
9012         (input_overwrite_node): Input node frequency.
9013         * tre-ssa-loop-ivopts (computation_cost): Update.
9014         * lto-streamer-out.c (output_function): Do not output function
9015         frequency.
9016         * predict.c (maybe_hot_frequency_p): Update and handle functions
9017         executed once.
9018         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
9019         attribute lookup.
9020         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
9021         (compute_function_frequency): Set noreturn functions to be executed
9022         once.
9023         (choose_function_section): Update.
9024         * lto-streamer-in.c (input_function): Do not input function frequency.
9025         * function.c (allocate_struct_function): Do not initialize function
9026         frequency.
9027         * function.h (function_frequency): Remove.
9028         (struct function): Remove function frequency.
9029         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
9030         (try_update): Update.
9031         * tree-inline.c (initialize_cfun): Do not update function frequency.
9032         * passes.c (pass_init_dump_file): Update.
9033         * i386.c (ix86_compute_frame_layout): Update.
9034         (ix86_pad_returns): Update.
9035
9036 2010-04-26  Jie Zhang  <jie@codesourcery.com>
9037
9038         PR tree-optimization/43833
9039         * tree-vrp.c (range_int_cst_p): New.
9040         (range_int_cst_singleton_p): New.
9041         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
9042         when both operands are constants.  Use range_int_cst_p in
9043         BIT_IOR_EXPR case.
9044
9045 2010-04-26  Jan Hubicka  <jh@suse.cz>
9046
9047         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
9048
9049 2010-04-26  Richard Guenther  <rguenther@suse.de>
9050
9051         PR lto/43080
9052         * gimple.c (gimple_decl_printable_name): Deal gracefully
9053         with a NULL DECL_NAME.
9054
9055 2010-04-26  Richard Guenther  <rguenther@suse.de>
9056
9057         PR lto/42425
9058         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
9059         if emitting debug information and it is either a function
9060         or a namespace decl.
9061
9062 2010-04-26  Ira Rosen  <irar@il.ibm.com>
9063
9064         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
9065         determine if the statement is vectorizable, and a macro to access it.
9066         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
9067         Skip statements that can't be vectorized. If the analysis fails,
9068         mark the statement as unvectorizable if vectorizing basic block.
9069         (vect_compute_data_refs_alignment): Likewise.
9070         (vect_verify_datarefs_alignment): Skip statements marked as
9071         unvectorizable. Add print.
9072         (vect_analyze_group_access): Skip statements that can't be
9073         vectorized. If the analysis fails, mark the statement as
9074         unvectorizable if vectorizing basic block.
9075         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
9076         * tree-vect-stmts.c (vectorizable_store): Fix the number of
9077         generated stmts for SLP.
9078         (new_stmt_vec_info): Initialize the new field.
9079         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
9080         statements marked as unvectorizable.
9081
9082 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
9083
9084         * c-common.c (flag_isoc1x): New.
9085         (flag_isoc99): Update comment.
9086         * c-common.h (flag_isoc1x): New.
9087         (flag_isoc99): Update comment.
9088         * c-cppbuiltin.c (builtin_define_float_constants): Also define
9089         __<type>_DECIMAL_DIG__.
9090         * c-opts.c (set_std_c1x): New.
9091         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
9092         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
9093         * c.opt (-std=c1x, -std=gnu1x): New options.
9094         * doc/cpp.texi: Mention -std=c1x.
9095         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
9096         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
9097         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
9098         * doc/standards.texi: Mention C1X.
9099         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
9100         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
9101         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
9102         Define for C1X.
9103
9104 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
9105
9106         * config/i386/gmon-sol2.c (_mcleanup): Change format string
9107         placeholder from 0x%x to %#x.
9108         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
9109         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
9110         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
9111         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
9112         * config/i386/i386.c (ix86_target_string): Ditto.
9113         (output_pic_addr_const): Ditto.
9114         (print_operand): Ditto.
9115
9116 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
9117
9118         * combine.c (find_split_point): Add third argument.  Use it
9119         to find nested multiply-accumulate instructions.  Adjust calls.
9120         (try_combine): Adjust call to find_split_point.
9121
9122 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9123
9124         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
9125
9126 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
9127
9128         PR tree-optimization/41442
9129         * fold-const.c (merge_truthop_with_opposite_arm): New function.
9130         (fold_binary_loc): Call it.
9131
9132 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9133
9134         * toplev.c (general_init): Set default for fdiagnostics-show-option.
9135         * opts.c (common_handle_option): Allow disabling it.
9136         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
9137
9138 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
9139
9140         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
9141         between modes if both types are integral.
9142
9143 2010-04-23  Richard Guenther  <rguenther@suse.de>
9144
9145         PR tree-optimization/43572
9146         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
9147
9148 2010-04-23  Richard Guenther  <rguenther@suse.de>
9149
9150         PR lto/43455
9151         * tree-inline.c (tree_can_inline_p): Also check compatibility
9152         of return types.
9153
9154 2010-04-23  Martin Jambor  <mjambor@suse.cz>
9155
9156         PR tree-optimization/43846
9157         * tree-sra.c (struct access): New flag grp_assignment_read.
9158         (build_accesses_from_assign): Set grp_assignment_read.
9159         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
9160         (enum mark_read_status): New type.
9161         (analyze_access_subtree): Propagate grp_assignment_read, create
9162         accesses also if both direct_read and root->grp_assignment_read.
9163
9164 2010-04-23  Martin Jambor  <mjambor@suse.cz>
9165
9166         PR middle-end/43835
9167         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
9168         function does not have type attributes.
9169
9170 2010-04-23  Richard Guenther  <rguenther@suse.de>
9171
9172         PR lto/42653
9173         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
9174         of FUNCTION_DECLs.
9175
9176 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9177
9178         * sese.h (create_if_region_on_edge): Remove.
9179
9180         * sese.c (create_if_region_on_edge): Make static.
9181
9182         * tree-inline.c: Do not include ggc.h.
9183
9184         * expr.c: Do not include ggc.h.
9185
9186         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
9187         dependencies.
9188
9189 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
9190
9191         PR target/43744
9192         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9193         in the middle of insns for casesi_worker_2.
9194
9195 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
9196
9197         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
9198
9199 2010-04-22  Ira Rosen  <irar@il.ibm.com>
9200
9201         PR tree-optimization/43842
9202         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
9203         loop unrolling in update of exit phis. Fix comment.
9204         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
9205         least two reduction statements in the loop before starting SLP
9206         analysis.
9207
9208 2010-04-22  Nick Clifton  <nickc@redhat.com>
9209
9210         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
9211
9212 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
9213
9214         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
9215         to simplify a + ~a.
9216
9217 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9218
9219         * tree-parloops.c (loop_parallel_p): New argument
9220         parloop_obstack.  Pass it down.
9221         (parallelize_loops): New variable parloop_obstack.  Initialize it,
9222         pass it down, free it.
9223
9224         * tree-loop-linear.c (linear_transform_loops): Pass down
9225         lambda_obstack.
9226
9227         * tree-data-ref.h (lambda_compute_access_matrices): New argument
9228         of type struct obstack *.
9229
9230         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
9231         scratch_obstack.  Initialize it, pass down, free it.
9232
9233         * lambda.h (lambda_loop_new): Remove.
9234         (lambda_matrix_new, lambda_matrix_inverse)
9235         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
9236         argument of type struct obstack *.
9237
9238         * lambda-trans.c (lambda_trans_matrix_new): New argument
9239         lambda_obstack.  Pass it down, use obstack allocation for ret.
9240         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
9241         it down.
9242
9243         * lambda-mat.c (lambda_matrix_get_column)
9244         (lambda_matrix_project_to_null): Remove.
9245         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
9246         allocation for mat.
9247         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
9248         lambda_obstack.
9249
9250         * lambda-code.c (lambda_loop_new): New function.
9251         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
9252         (lambda_compute_auxillary_space, lambda_compute_target_space)
9253         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
9254         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
9255         (build_access_matrix): New argument lambda_obstack.  Use obstack
9256         allocation for am.
9257         (lambda_compute_step_signs, lambda_compute_access_matrices): New
9258         argument lambda_obstack.  Pass it down.
9259
9260 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9261
9262         * optabs.h (expand_widening_mult): Declare.
9263
9264 2010-04-22  Richard Guenther  <rguenther@suse.de>
9265
9266         PR tree-optimization/43845
9267         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
9268         lookup the CALL_EXPR function and arguments.
9269
9270 2010-04-22  Nick Clifton  <nickc@redhat.com>
9271
9272         * config/stormy16/stormy16.c
9273         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
9274         * config/stormy16/stormy16.h: Tidy up formatting.
9275         (DONT_USE_BUILTIN_SETJMP): Remove definition.
9276         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
9277         (ineqbranchsi): Delete pattern.
9278         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
9279         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
9280         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
9281         stormy16-lib2-ucmpsi2.c.
9282
9283 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9284
9285         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
9286         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
9287         extra set merge_set_noclobber, and use it to relax the final test
9288         slightly.
9289         * df.h (df_simulate_find_noclobber_defs): Declare.
9290         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
9291         conditional defs.
9292         (df_simulate_find_noclobber_defs): New function.
9293
9294 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
9295
9296         * config/i386/i386.md: Use {} around multi-line preparation statements.
9297
9298 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9299
9300         * c-tree.h (push_init_level, pop_init_level, set_init_index)
9301         (process_init_element): New argument of type struct obstack *.
9302
9303         * c-typeck.c (push_init_level, pop_init_level, set_designator)
9304         (set_init_index, set_init_label, set_nonincremental_init)
9305         (set_nonincremental_init_from_string, find_init_member)
9306         (output_init_element, output_pending_init_elements)
9307         (process_init_element): New argument braced_init_obstack.  Pass it
9308         down.
9309         (push_range_stack, add_pending_init): New argument
9310         braced_init_obstack.  Use obstack allocation.
9311
9312         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
9313         braced_init_obstack.  Pass it down.
9314         (c_parser_braced_init): New variables ret, braced_init_obstack.
9315         Initialize obstack, pass it down and finally free it.
9316
9317 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9318
9319         PR middle-end/29274
9320         * tree-pass.h (pass_optimize_widening_mul): Declare.
9321         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
9322         gate_optimize_widening_mul): New static functions.
9323         (pass_optimize_widening_mul): New.
9324         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
9325         <case MULT_EXPR>: Remove support for widening multiplies.
9326         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
9327         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
9328         simplify_gen_unary rather than directly building extensions.
9329         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
9330         WIDEN_MULT_EXPR.
9331         * expmed.c (expand_widening_mult): New function.
9332         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
9333
9334 2010-04-21  Jan Hubicka  <jh@suse.cz>
9335
9336         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
9337         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
9338         * lto-wpa-fixup.c: Remove.
9339         * Makefile.in (lto-wpa-fixup.o): Remove.
9340         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
9341         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
9342         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
9343
9344 2010-04-21  Jan Hubicka  <jh@suse.cz>
9345
9346         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
9347         add write_optimization_summary, read_optimization_summary.
9348         (ipa_write_summaries_of_cgraph_node_set): Remove.
9349         (ipa_write_optimization_summaries): Declare.
9350         (ipa_read_optimization_summaries): Declare.
9351         * ipa-cp.c (pass_ipa_cp): Update.
9352         * ipa-reference.c (pass_ipa_reference): Update.
9353         * ipa-pure-const.c (pass_ipa_pure_const): Update.
9354         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
9355         Update.
9356         * ipa-inline.c (pass_ipa_inline): Update.
9357         * ipa.c (pass_ipa_whole_program): Update.
9358         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
9359         * passes.c (ipa_write_summaries_1): Do not test wpa.
9360         (ipa_write_optimization_summaries_1): New.
9361         (ipa_write_optimization_summaries): New.
9362         (ipa_read_summaries): Do not test ltrans.
9363         (ipa_read_optimization_summaries_1): New.
9364         (ipa_read_optimization_summaries): New.
9365
9366 2010-04-21  Jan Hubicka  <jh@suse.cz>
9367
9368         * lto-cgraph.c (lto_output_node): Do not output comdat groups
9369         for boundary nodes.
9370         (output_cgraph): Do not arrange comdat groups for boundary nodes.
9371
9372 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9373
9374         PR debug/40040
9375         * dwarf2out.c (add_name_and_src_coords_attributes): Add
9376         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
9377
9378 2010-04-21  Jan Hubicka  <jh@suse.cz>
9379
9380         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
9381
9382 2010-04-21  Jan Hubicka  <jh@suse.cz>
9383
9384         * varpool.c (decide_is_variable_needed): Variable is always needed
9385         during ltrans.
9386
9387 2010-04-21  Jan Hubicka  <jh@suse.cz>
9388
9389         * opts.c (decode_options): Enable pure-const pass for whopr.
9390
9391 2010-04-21  Jan Hubicka  <jh@suse.cz>
9392
9393         * cgraph.c (dump_cgraph_node): Dump also assembler name.
9394         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
9395         at WPA dumping.
9396         (cgraph_decide_inlining): Do not expect callee to be removed in all
9397         cases.
9398
9399 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
9400
9401         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
9402
9403 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
9404
9405         * config/i386/i386.md (x86_shrd): Add athlon_decode and
9406         amdfam10_decode attributes.
9407
9408 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9409
9410         PR middle-end/43570
9411         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
9412         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
9413         (lower_copyprivate_clauses): Use private var in outer
9414         context instead of original var.  Make sure the types
9415         are correct for VLAs.
9416
9417 2010-04-21  Richard Guenther  <rguenther@suse.de>
9418
9419         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
9420         to non-pointer objects.
9421
9422 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9423
9424         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
9425         last chain entry if it starts with the still current label.
9426         (add_location_or_const_value_attribute): Check that
9427         loc_list->first->next is NULL instead of comparing ->first with ->last.
9428         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
9429         to add_var_loc_to_decl.
9430
9431         * dwarf2out.c (output_call_frame_info): For dw_cie_version
9432         >= 4 add also address size and segment size fields into CIE header.
9433
9434         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
9435         long as address size is the same as sizeof (void *) and
9436         segment size is 0.
9437         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
9438         address size or segment size is unexpected, return DW_EH_PE_omit.
9439         (classify_object_over_fdes): If get_cie_encoding returned
9440         DW_EH_PE_omit, return -1.
9441         (init_object): If classify_object_over_fdes returned -1,
9442         pretend there were no FDEs at all.
9443
9444 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
9445
9446         * config/i386/i386.md (bswap<mode>2): Macroize expander from
9447         bswap{si,di}2 using SWI48 mode iterator.
9448         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
9449         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
9450         set modrm attribute of bswap insn to 0 and remove length attribute.
9451         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
9452         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
9453         set mode attribute to <MODE> and remove length attribute.
9454
9455 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
9456
9457         PR rtl-optimization/43520
9458         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
9459         zero available registers.
9460
9461 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9462
9463         * builtins.c (fold_builtin_cproj): Fold more cases.
9464
9465 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9466
9467         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
9468         (fold_builtin_1): Fold builtin cproj.
9469         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
9470         Use ATTR_CONST_NOTHROW_LIST.
9471
9472 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
9473
9474         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
9475         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
9476         ffsi2_no_cmove for !TARGET_CMOVE.
9477         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
9478         (ffssi2): Remove expander.
9479         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
9480         mode iterator.
9481         (ctz<mode>2): Ditto from ctz{si,di}2.
9482         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
9483         mode iterator.
9484         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
9485         mode iterator.
9486
9487 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
9488
9489         * dwarf2out.c (AT_linkage_name): Define.
9490         (clone_as_declaration): Handle DW_AT_linkage_name.
9491         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
9492         of DW_AT_MIPS_linkage_name.
9493         (move_linkage_attr): Likewise.
9494         (dwarf2out_finish): Likewise.
9495
9496 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
9497
9498         PR middle-end/41952
9499         * fold-const.c (fold_comparison): New folding rule.
9500
9501 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
9502
9503         * double-int.h (double_int_setbit): Declare.
9504         * double-int.c (double_int_setbit): New function.
9505         * rtl.h (immed_double_int_const): Declare.
9506         * emit-rtl.c (immed_double_int_const): New function.
9507         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
9508         and immed_double_int_const functions.
9509         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
9510         expand_copysign_bit):  (Ditto.).
9511         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
9512         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
9513         * dojump.c (prefer_and_bit_test): (Ditto.).
9514         * expr.c (convert_modes, reduce_to_bit_field_precision,
9515         const_vector_from_tree): (Ditto.).
9516         * expmed.c (mask_rtx, lshift_value): (Ditto.).
9517
9518 2010-04-20  Jan Hubicka  <jh@suse.cz>
9519
9520         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
9521         (dump_cgraph_node): Dump new flags.
9522         * cgraph.h (struct cgraph_node): Add flags
9523         reachable_from_other_partition and in_other_partition.
9524         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
9525         other partition can not be removed.
9526         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
9527         the other partition must be output; silence sanity checking on
9528         leaking functions bodies from other paritition.
9529         * lto-cgraph.c (reachable_from_other_partition_p): New function.
9530         (lto_output_node): Output new flags; do not sanity check that inline
9531         clones are output; drop lto_forced_extern_inline_p code; do not mock
9532         visibility flags at partition boundaries.
9533         (add_node_to): New function.
9534         (output_cgraph): Use it to sort functions so masters appear before
9535         clones.
9536         (input_overwrite_node): Input new flags.
9537         * passes.c (ipa_write_summaries): Do not call
9538         lto_new_extern_inline_states.
9539         * lto-section-out.c (forced_extern_inline,
9540         lto_new_extern_inline_states lto_delete_extern_inline_states,
9541         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
9542         * lto-streamer.h (lto_new_extern_inline_states,
9543         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
9544         lto_forced_extern_inline_p): Kill.
9545
9546 2010-04-20  Richard Guenther  <rguenther@suse.de>
9547
9548         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
9549         from vars that can have pointers.
9550         (process_constraint): Dump useless constraints.
9551
9552 2010-04-20  Richard Guenther  <rguenther@suse.de>
9553
9554         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
9555         (dump_sa_points_to_info): Remove asserts.
9556         (init_base_vars): nothing_id isn't an escape point nor does it
9557         have pointers.
9558
9559 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
9560
9561         * tree.h (TYPE_REF_IS_RVALUE): Define.
9562         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
9563         should_move_die_to_comdat, prune_unused_types_walk): Handle
9564         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
9565         (modified_type_die, gen_reference_type_die): Emit
9566         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
9567         if TYPE_REF_IS_RVALUE and -gdwarf-4.
9568
9569 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9570
9571         PR target/43635
9572         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
9573         calls for -fpic -m31 if they have been sibcall optimized.
9574
9575 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
9576
9577         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
9578         ar.lc fixed and call-used.
9579
9580         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
9581
9582 2010-04-19  Jan Hubicka  <jh@suse.cz>
9583
9584         * opts.c (decode_options): Disable whpr incompatible passes.
9585         * lto/lto.c (lto_1_to_1_map): Skip clones.
9586         (read_cgraph_and_symbols): Do not mark everything as needed.
9587         (do_whole_program_analysis): Do map only after optimizing;
9588         set proper cgraph_state; use passmanager.
9589
9590 2010-04-19  DJ Delorie  <dj@redhat.com>
9591
9592         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
9593         POINTER_PLUS_EXPR and fix them.
9594
9595 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
9596
9597         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
9598         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
9599         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
9600         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
9601         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
9602         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
9603         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
9604         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
9605         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
9606         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
9607         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
9608
9609 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9610
9611         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
9612         (check_cond_move_block): Likewise.
9613         (cond_move_process_if_block): Likewise.
9614         (noce_find_if_block): Improve formatting.
9615         (find_if_header): Pass 0 to memset and tweak conditions.
9616         (cond_exec_find_if_block): Fix long lines and tweak conditions.
9617
9618 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
9619
9620         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
9621         for -gdwarf-4.
9622
9623         PR middle-end/43337
9624         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
9625         with non-local decl doesn't need chain.
9626
9627 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
9628
9629         * ira-color.c (allocno_reload_assign): Avoid accumulating
9630         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
9631
9632 2010-04-19  Martin Jambor  <mjambor@suse.cz>
9633
9634         * gimple.h (create_tmp_reg): Declare.
9635         * gimplify.c (create_tmp_reg): New function.
9636         (gimplify_return_expr): Use create_tmp_reg.
9637         (gimplify_omp_atomic): Likewise.
9638         (gimple_regimplify_operands): Likewise.
9639         * tree-dfa.c (make_rename_temp): Likewise.
9640         * tree-predcom.c (predcom_tmp_var): Likewise.
9641         (reassociate_to_the_same_stmt): Likewise.
9642         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
9643         (get_replaced_param_substitute): Likewise.
9644         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
9645         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
9646         * tree-ssa-pre.c (get_representative_for): Likewise.
9647         (create_expression_by_pieces): Likewise.
9648         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
9649         (create_tailcall_accumulator): Likewise.
9650
9651 2010-04-19  Martin Jambor  <mjambor@suse.cz>
9652
9653         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
9654         new_stmt.
9655         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
9656
9657 2010-04-19  Richard Guenther  <rguenther@suse.de>
9658
9659         PR tree-optimization/43796
9660         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
9661         from SCEV in the lattice.
9662         (vrp_visit_phi_node): Dump change.
9663
9664 2010-04-19  Richard Guenther  <rguenther@suse.de>
9665
9666         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
9667         * configure: Re-generated.
9668
9669 2010-04-19  Richard Guenther  <rguenther@suse.de>
9670
9671         PR tree-optimization/43783
9672         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
9673         constant ARRAY_REF operands two and three if possible.
9674
9675 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
9676
9677         PR target/43766
9678         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
9679
9680 2010-04-19  Jie Zhang  <jie@codesourcery.com>
9681
9682         PR target/43662
9683         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
9684
9685 2010-04-19  Ira Rosen  <irar@il.ibm.com>
9686
9687         PR tree-optimization/37027
9688         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
9689         and macro to access it.
9690         (vectorizable_reduction): Add argument.
9691         (vect_get_slp_defs): Likewise.
9692         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
9693         statements for possible use in SLP.
9694         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
9695         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
9696         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
9697         add new argument.
9698         (vectorizable_reduction): Likewise.
9699         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
9700         vect_get_slp_defs.
9701         (vectorizable_type_demotion, vectorizable_type_promotion,
9702         vectorizable_store): Likewise.
9703         (vect_analyze_stmt): Update call to vectorizable_reduction.
9704         (vect_transform_stmt): Likewise.
9705         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
9706         (vect_build_slp_tree): Fix indentation. Check that there are no loads
9707         from different interleaving chains in same node.
9708         (vect_slp_rearrange_stmts): New function.
9709         (vect_supported_load_permutation_p): Allow load permutations for
9710         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
9711         inside SLP nodes if necessary.
9712         (vect_analyze_slp_instance): Handle reductions.
9713         (vect_analyze_slp): Try to build SLP instances originating from groups
9714         of reductions.
9715         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
9716         (vect_get_constant_vectors): Create initial vectors for reductions
9717         according to reduction code. Add new argument.
9718         (vect_get_slp_defs): Add new argument, pass it to
9719         vect_get_constant_vectors.
9720         (vect_schedule_slp_instance): Remove SLP tree root statements.
9721
9722 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
9723
9724         * tree.h (ENUM_IS_SCOPED): Define.
9725         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
9726         for ENUM_IS_SCOPED enums.
9727
9728 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9729
9730         * fold-const.c (fold_comparison): Use ssizetype.
9731         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
9732         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
9733         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
9734         * tree-object-size.c (compute_object_sizes): Use size_type_node.
9735
9736         * tree.h (initialize_sizetypes): Remove parameter.
9737         (build_common_tree_nodes): Remove second parameter.
9738         * stor-layout.c (initialize_sizetypes): Remove parameter.
9739         Always create an unsigned type.
9740         (set_sizetype): Assert that the passed type is unsigned and simplify.
9741         * tree.c (build_common_tree_nodes): Remove second parameter.
9742         Adjust call to initialize_sizetypes.
9743         * c-decl.c (c_init_decl_processing): Remove second argument in call to
9744         build_common_tree_nodes.
9745
9746 2010-04-18  Matthias Klose  <doko@ubuntu.com>
9747
9748         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
9749
9750 2010-04-18  Ira Rosen  <irar@il.ibm.com>
9751
9752         PR tree-optimization/43771
9753         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
9754         load permutation doesn't have gaps.
9755
9756 2010-04-18  Jan Hubicka  <jh@suse.cz>
9757
9758         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
9759         (sse_prologue_save_insn expander): Use new pattern.
9760         (sse_prologue_save_insn1): New pattern and splitter.
9761         (sse_prologue_save_insn): Update to deal also with 64bit aligned
9762         blocks.
9763         * i386.c (setup_incoming_varargs_64): Do not compute jump
9764         destination here.
9765         (ix86_gimplify_va_arg): Update alignment needed.
9766         (ix86_local_alignment): Do not align all local arrays to 128bit.
9767
9768 2010-04-17  Jan Hubicka  <jh@suse.cz>
9769
9770         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
9771
9772 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
9773
9774         * arm.md (negdi2): Remove redundant code to force values into a
9775         register.
9776
9777 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
9778
9779         * arm/bpabi.S: Add EABI alignment attributes to objects.
9780         * arm/bpabi-v6m.S: Likewise.
9781         * arm/crti.asm: Likewise.
9782         * arm/crtn.asm: Likewise.
9783         * arm/lib1funcs.asm: Likewise.
9784         * arm/libunwind.S: Likewise.
9785
9786 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
9787
9788         * arm-protos.h (tune_params): New structure.
9789         * arm.c (current_tune): New variable.
9790         (arm_constant_limit): Delete.
9791         (struct processors): Add pointer to the tune parameters.
9792         (arm_slowmul_tune): New tuning option.
9793         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
9794         (all_cores): Adjust to pick up the tuning model.
9795         (arm_constant_limit): New function.
9796         (arm_override_options): Select the appropriate tuning model.  Delete
9797         initialization of arm_const_limit.
9798         (arm_split_constant): Use the new constant-limit model.
9799         (arm_rtx_costs): Pick up the current tuning model.
9800         * arm.md (is_strongarm, is_xscale): Delete.
9801         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
9802         for Xscale variant architectures.
9803         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
9804
9805 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9806
9807         * config/arm/arm.c (arm_gen_constant): Remove unused variable
9808         can_shift.
9809         (arm_rtx_costs_1): Remove unused variable extra_cost.
9810         (arm_unwind_emit_set): Use variable offset.
9811         (thumb1_output_casesi): Remove unused variable flags.
9812
9813 2010-04-16  Jeff Law  <law@redhat.com>
9814
9815         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
9816         needing assignment rather than doing a two-phase assignment.  Remove
9817         unused variable 'm'.
9818
9819 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
9820
9821         PR bootstrap/43767
9822         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
9823
9824 2010-04-16  Doug Kwan  <dougkwan@google.com>
9825
9826         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
9827         (next_operand_entry_id): New static variable.
9828         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
9829         (add_to_ops_vec): Assigned unique ID to operand entry.
9830         (struct oecount_s): New field ID.
9831         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
9832         (undistribute_ops_list): Assign unique IDs to oecounts.
9833         (init_reassoc): reset next_operand_entry_id.
9834
9835 2010-04-16  Doug Kwan  <dougkwan@google.com>
9836
9837         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
9838         missing left parenthesis.
9839
9840 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
9841
9842         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
9843         *btdi_rex64 using SWI48 mode iterator.
9844         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
9845         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
9846         *jcc_btdi_mask_rex64.
9847
9848 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
9849
9850         * double-int.h (tree_to_double_int): Convert to macro.
9851         * double-int.c (tree_to_double_int): Remove.
9852
9853 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
9854
9855         PR debug/43762
9856         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
9857         with want_address 2 and in case a single element list might be
9858         possible, call it again with want_address 0.
9859
9860 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9861
9862         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
9863         case 'W' print operands for HI mode.
9864         * config/h8300/h8300.h (Y0, Y2) : New constraints.
9865         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
9866         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
9867         * config/h8300/predicate.md (bit_register_indirect_operand): New.
9868
9869         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
9870
9871         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
9872         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
9873         #xx:3 and #xx:4 mode.
9874
9875         * config/h8300/h8300.md (inverted load with HImode dest): Add
9876         support for H8300SX.
9877
9878         * config/h8300/predicate.md (bit_operand): Allow immediate values that
9879         satisfy 'U' constraint.
9880
9881 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9882
9883         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
9884         * configure: Regenerate.
9885         * config.in: Regenerate.
9886         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
9887         works.
9888
9889 2010-04-16  Richard Guenther  <rguenther@suse.de>
9890
9891         * tree.h (struct tree_decl_minimal): Move pt_uid ...
9892         (struct tree_decl_common): ... here.
9893         (DECL_PT_UID): Adjust.
9894         (SET_DECL_PT_UID): Likewise.
9895         (DECL_PT_UID_SET_P): Likewise.
9896
9897 2010-04-16  Richard Guenther  <rguenther@suse.de>
9898
9899         PR tree-optimization/43572
9900         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
9901         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
9902         * tree-flow.h (is_call_clobbered): Remove.
9903         * tree-flow-inline.h (is_call_clobbered): Likewise.
9904         * tree-dfa.c (dump_variable): Do not dump call clobber state.
9905         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
9906         (execute_return_slot_opt): Adjust.
9907         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
9908         check for call clobbered vars here.
9909         (find_tail_calls): Move tailcall verification to the
9910         proper place.
9911
9912 2010-04-16  Diego Novillo  <dnovillo@google.com>
9913
9914         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
9915
9916 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
9917
9918         PR target/40603
9919         * config/arm/arm.md (cbranchqi4): New pattern.
9920         * config/arm/predicates.md (const0_operand,
9921         cbranchqi4_comparison_operator): New predicates.
9922
9923 2010-04-16  Richard Guenther  <rguenther@suse.de>
9924
9925         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
9926         (dump_gimple_stmt): Likewise.
9927
9928 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
9929
9930         * recog.h (struct recog_data): New field is_operator.
9931         (struct insn_operand_data): New field is_operator.
9932         * recog.c (extract_insn): Set recog_data.is_operator.
9933         * genoutput.c (output_operand_data): Emit code to set the
9934         is_operator field.
9935         * reload.c (find_reloads): Use it rather than testing for an
9936         empty constraint string.
9937
9938         PR target/41514
9939         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
9940         If the previous insn is a cbranchsi4_insn with the same arguments,
9941         omit the compare instruction.
9942
9943         * config/arm/arm.md (addsi3_cbranch): If destination is a high
9944         register, inputs must be low registers and we need a low register
9945         scratch.  Handle alternative 2 like alternative 3.
9946
9947 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
9948
9949         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
9950         don't call get_addr on both.  If one expression is a VALUE and
9951         the other a REG, check VALUE's locs if the REG isn't among them.
9952
9953 2010-04-16  Christian Bruel  <christian.bruel@st.com>
9954
9955         * config/sh/sh.h (sh_frame_pointer_required): New function.
9956         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
9957         (flag_omit_frame_pointer) Set.
9958         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
9959         (rounded_frame_size): Adjust size with outgoing_args_size.
9960         (sh_set_return_address): Must return from stack pointer.
9961         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
9962         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
9963         (ACCUMULATE_OUTGOING_ARGS): Define.
9964         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
9965         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
9966
9967 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
9968
9969         PR target/43471
9970         * config/sh/sh.c (sh_legitimize_reload_address): Use
9971         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
9972         Remove a unneeded check for offset_base.
9973
9974 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
9975
9976         * configure: Regenerated.
9977
9978 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9979
9980         * config/s390/s390.c (s390_call_save_register_used): Switch back
9981         to HARD_REGNO_NREGS.
9982
9983 2010-04-15  Richard Guenther  <rguenther@suse.de>
9984
9985         * alias.c (alias_set_subset_of): Handle alias-set zero
9986         child properly.
9987
9988 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
9989             Julian Brown  <julian@codesourcery.com>
9990
9991         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
9992         alternatives according to use of high and low regs.
9993         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
9994         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
9995         optimizing for size on Thumb-2.
9996
9997 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
9998
9999         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
10000
10001 2010-04-15  Richard Guenther  <rguenther@suse.de>
10002
10003         * tree-ssa-structalias.c (struct variable_info): Add
10004         is_fn_info flag.
10005         (new_var_info): Initialize it.
10006         (dump_constraints): Support printing last added constraints.
10007         (debug_constraints): Adjust.
10008         (dump_constraint_graph): Likewise.
10009         (make_heapvar_for): Check for NULL cfun.
10010         (get_function_part_constraint): New function.
10011         (get_fi_for_callee): Likewise.
10012         (find_func_aliases): Properly implement IPA PTA constraints.
10013         (process_ipa_clobber): New function.
10014         (find_func_clobbers): Likewise.
10015         (insert_into_field_list_sorted): Remove.
10016         (create_function_info_for): Properly allocate vars for IPA mode.
10017         Do not use insert_into_field_list_sorted.
10018         (create_variable_info_for): Properly generate constraints for
10019         global vars in IPA mode.
10020         (dump_solution_for_var): Always dump the solution.
10021         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
10022         (find_what_var_points_to): Adjust.
10023         (pt_solution_set): Change.
10024         (pt_solution_ior_into): New function.
10025         (pt_solution_empty_p): Export.
10026         (pt_solution_includes_global): Adjust.
10027         (pt_solution_includes_1): Likewise.
10028         (pt_solutions_intersect_1): Likewise.
10029         (dump_sa_points_to_info): Check some invariants.
10030         (solve_constraints): Move constraint dumping ...
10031         (compute_points_to_sets): ... here.
10032         (ipa_pta_execute): ... and here.
10033         (compute_may_aliases): Do not re-compute points-to info
10034         locally if IPA info is available.
10035         (ipa_escaped_pt): New global var.
10036         (ipa_pta_execute): Properly implement IPA PTA.
10037         * tree-into-ssa.c (dump_decl_set): Support dumping
10038         decls not in referenced-vars.
10039         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
10040         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
10041         (dump_points_to_solution): Likewise.
10042         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
10043         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
10044         (remap_gimple_stmt): Reset call clobber/use information if necessary.
10045         (copy_decl_to_var): Copy DECL_PT_UID.
10046         (copy_result_decl_to_var): Likewise.
10047         * tree.c (make_node_stat): Initialize DECL_PT_UID.
10048         (copy_node_stat): Copy it.
10049         * tree.h (DECL_PT_UID): New macro.
10050         (SET_DECL_PT_UID): Likewise.
10051         (DECL_PT_UID_SET_P): Likewise.
10052         (struct tree_decl_minimal): Add pt_uid member.
10053         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
10054         (pt_solution_empty_p): Declare.
10055         (pt_solution_set): Adjust.
10056         (ipa_escaped_pt): Declare.
10057         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
10058         * gimple-pretty-print.c (pp_points_to_solution): New function.
10059         (dump_gimple_call): Dump call clobber/use information.
10060         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
10061         * tree-pass.h (TDF_ALIAS): New dump option.
10062         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
10063         * doc/invoke.texi (-fipa-pta): Update documentation.
10064
10065 2010-04-15  Richard Guenther  <rguenther@suse.de>
10066
10067         * Makefile.in (OBJS-common): Add gimple-fold.o.
10068         (gimple-fold.o): New rule.
10069         * tree.h (maybe_fold_offset_to_reference,
10070         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
10071         prototypes ...
10072         * gimple.h: ... here.
10073         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
10074         may_propagate_address_into_dereference): Move prototypes ...
10075         * gimple.h: ... here.
10076         * tree-ssa-ccp.c (get_symbol_constant_value,
10077         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
10078         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
10079         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
10080         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
10081         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
10082         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
10083         gimplify_and_update_call_from_tree): Move ...
10084         * gimple-fold.c: ... here.  New file.
10085         (ccp_fold_builtin): Rename to ...
10086         (gimple_fold_builtin): ... this.
10087         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
10088
10089 2010-04-15  Richard Guenther  <rguenther@suse.de>
10090
10091         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
10092         fit_double_type, force_fit_type_double, add_double_with_sign,
10093         neg_double, mul_double_with_sign, lshift_double, rshift_double,
10094         lrotate_double, rrotate_double, div_and_round_double): Move ...
10095         * double-int.c: ... here.
10096         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
10097         add_double, neg_double, mul_double_with_sign, mul_double,
10098         lshift_double, rshift_double, lrotate_double, rrotate_double,
10099         div_and_round_double): Move prototypes ...
10100         * double-int.h: ... here.
10101
10102 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
10103
10104         PR target/43742
10105         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
10106         matching constraints to ensure inputs match the output.
10107
10108 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10109
10110         PR target/43742
10111         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
10112         in an input-only operand.
10113
10114 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
10115
10116         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
10117         (double_int_not, double_int_lshift, double_int_rshift): Declare.
10118         (double_int_negative_p): Convert to static inline function.
10119         * double-int.c (double_int_lshift, double_int_lshift): New functions.
10120         (double_int_negative_p): Remove.
10121         * tree.h (lshift_double, rshift_double):
10122         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
10123         * fold-const.c (fold_convert_const_int_from_real,
10124         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
10125         (lshift_double): Change type of arith argument to bool.
10126         (rshift_double): Change type of arith argument to bool. Correct
10127         comment.
10128         * expmed.c (mask_rtx, lshift_value): (Ditto.).
10129
10130 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
10131
10132         PR target/21803
10133         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
10134         at the start and end of the then/else blocks, and omit them from the
10135         conversion.
10136         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
10137         argument; all callers changed.  Pass zero to old_insns_match_p instead.
10138         (flow_find_head_matching_sequence): New function.
10139         (old_insns_match_p): Check REG_EH_REGION notes for calls.
10140         * basic-block.h (flow_find_cross_jump,
10141         flow_find_head_matching_sequence): Declare functions.
10142
10143 2010-04-14  Jason Merrill  <jason@redhat.com>
10144
10145         PR c++/36625
10146         * c-common.c (attribute_takes_identifier_p): New fn.
10147         * c-common.h: Declare it.
10148
10149 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10150
10151         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
10152         splitter condition.
10153         (*udivmod<mode>4): Ditto.
10154
10155 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10156
10157         * config/i386/i386.md (maxmin_int): Rename code attribute from
10158         maxminiprefix and update all users.
10159         (maxmin_float): Ditto from maxminfprefix.
10160         (logic): Ditto from logicprefix.
10161         (absneg_mnemonic): Ditto from absnegprefix.
10162         * config/i386/mmx.md: Update all users of maxminiprefix,
10163         maxminfprefix and logicprefix for rename.
10164         * config/i386/sse.md: Ditto.
10165         * config/i386/sync.md (sync_<code><mode>): Update for
10166         logicprefix rename.
10167
10168 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10169
10170         PR 42966
10171         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
10172         warnings converted to errors.
10173
10174 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10175
10176         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
10177         used insn_type variable.
10178         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
10179         to avoid set-but-not-used warning.
10180
10181 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10182
10183         * df-core.c (df_ref_debug): Change format string placeholder
10184         from 0x%x to %#x.
10185         * dwarf2asm.c (dw2_asm_output_data_raw,
10186         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
10187         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
10188         * dwarf2out.c (output_cfi, output_cfi_directive,
10189         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
10190         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
10191         Ditto.
10192         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
10193         * print-rtl.c (print_rtx): Ditto.
10194
10195 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10196
10197         PR middle-end/42694
10198         * builtins.c (expand_builtin_pow_root): New function to expand pow
10199         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
10200         series of sqrt and cbrt calls under -ffast-math.
10201         (expand_builtin_pow): Call it.
10202
10203 2010-04-14  Michael Matz  <matz@suse.de>
10204
10205         PR tree-optimization/42963
10206         * tree-cfg.c (touched_switch_bbs): New static variable.
10207         (group_case_labels_stmt): New function broken out from ...
10208         (group_case_labels): ... here, use the above.
10209         (start_recording_case_labels): Allocate touched_switch_bbs.
10210         (end_recording_case_labels): Deallocate it, call
10211         group_case_labels_stmt.
10212         (gimple_redirect_edge_and_branch): Remember index of affected BB.
10213
10214 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10215
10216         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
10217         from insn template.
10218
10219 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10220
10221         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
10222
10223 2010-04-13  Jan Hubicka  <jh@suse.cz>
10224
10225         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
10226         of optimized out static functions.
10227         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
10228         cost computation.  Also sanity check for overflows.
10229         (update_caller_keys): Update cgraph_edge_badness call; properly
10230         update fibheap and sanity check that it is up to date.
10231         (add_new_edges_to_heap): Update cgraph_edge_badness.
10232         (cgraph_decide_inlining_of_small_function): Likewise;
10233         add sanity checking that badness in heap is up to date;
10234         improve dumping of reason; Update badness of calls to the
10235         offline copy of function currently inlined; dump badness
10236         of functions not inlined because of unit growth limits.
10237
10238 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10239
10240         PR middle-end/32628
10241         * c-common.c (pointer_int_sum): Disregard overflow that occured only
10242         because of sign-extension change when converting to sizetype here...
10243         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
10244
10245         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
10246         the folding to constants.  Remove redundant final conversion.
10247         (fold_binary) <associate>: Do not associate if the re-association of
10248         constants alone overflows.
10249         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
10250         to the end of the list.
10251         (multiple_of_p) <COND_EXPR>: New case.
10252
10253 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10254
10255         * opt-functions.awk (opt_sanitized_name): New.
10256         (opt_enum): New.
10257         * optc-gen.awk: Use it
10258         * opth-gen.awk: Use it.
10259
10260 2010-04-13  Martin Jambor  <mjambor@suse.cz>
10261
10262         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
10263         (sra_modify_assign): Delete stmts loading dead data even if racc has no
10264         children.  Call replace_uses_with_default_def_ssa_name to handle
10265         SSA_NAES on lhs.
10266
10267 2010-04-13  Michael Matz  <matz@suse.de>
10268
10269         PR middle-end/43730
10270         * builtins.c (expand_builtin_interclass_mathfn): Also create
10271         a register if the predicate doesn't match.
10272
10273 2010-04-13  Diego Novillo  <dnovillo@google.com>
10274
10275         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
10276         * c-pch.c: Include timevar.h.
10277         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
10278         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
10279         * ggc-common.c: Include timevar.h.
10280         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
10281         * timevar.def (TV_PCH_SAVE): Define.
10282         (TV_PCH_CPP_SAVE): Define.
10283         (TV_PCH_PTR_REALLOC): Define.
10284         (TV_PCH_PTR_SORT): Define.
10285         (TV_PCH_RESTORE): Define.
10286         (TV_PCH_CPP_RESTORE): Define.
10287
10288 2010-04-13  Michael Matz  <matz@suse.de>
10289
10290         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
10291         into MINUS_EXPRs.
10292         (can_reassociate_p): New function.
10293         (break_up_subtract_bb, reassociate_bb): Use it.
10294
10295 2010-04-13  Richard Guenther  <rguenther@suse.de>
10296
10297         PR bootstrap/43737
10298         * builtins.c (c_readstr): Fix assert.
10299
10300 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
10301
10302         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
10303         when generating cltd insn.
10304
10305         (*ashl<mode>3_1): Remove special handling for register operand 2.
10306         (*ashlsi3_1_zext): Ditto.
10307         (*ashlhi3_1): Ditto.
10308         (*ashlhi3_1_lea): Ditto.
10309         (*ashlqi3_1): Ditto.
10310         (*ashlqi3_1_lea): Ditto.
10311         (*<shiftrt_insn><mode>3_1): Ditto.
10312         (*<shiftrt_insn>si3_1_zext): Ditto.
10313         (*<shiftrt_insn>qi3_1_slp): Ditto.
10314         (*<rotate_insn><mode>3_1): Ditto.
10315         (*<rotate_insn>si3_1_zext): Ditto.
10316         (*<rotate_insn>qi3_1_slp): Ditto.
10317
10318 2010-04-13  Richard Guenther  <rguenther@suse.de>
10319
10320         * tree-ssa-structalias.c (callused_id): Remove.
10321         (call_stmt_vars): New.
10322         (get_call_vi): Likewise.
10323         (lookup_call_use_vi): Likewise.
10324         (lookup_call_clobber_vi): Likewise.
10325         (get_call_use_vi): Likewise.
10326         (get_call_clobber_vi): Likewise.
10327         (make_transitive_closure_constraints): Likewise.
10328         (handle_const_call): Adjust to do per-call call-used handling.
10329         (handle_pure_call): Likewise.
10330         (find_what_var_points_to): Remove general callused handling.
10331         (init_base_vars): Likewise.
10332         (init_alias_vars): Initialize call_stmt_vars.
10333         (compute_points_to_sets): Process call-used and call-clobbered
10334         vars for call statements.
10335         (delete_points_to_sets): Free call_stmt_vars.
10336
10337 2010-04-13  Richard Guenther  <rguenther@suse.de>
10338
10339         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
10340         Only add RW dependence for dependence distance zero.
10341         Adjust maximal vectorization factor according to dependences.
10342         Move alignment handling ...
10343         (vect_find_same_alignment_drs): ... here.  New function.
10344         (vect_analyze_data_ref_dependences): Adjust.
10345         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
10346         (vect_analyze_data_refs): Adjust minimal vectorization factor
10347         according to data references.
10348         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
10349         dependences before determining the vectorization factor.
10350         Analyze alignment after determining the vectorization factor.
10351         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
10352         dependences before alignment.
10353         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
10354         Adjust prototype.
10355         (vect_analyze_data_refs): Likewise.
10356         (MAX_VECTORIZATION_FACTOR): New define.
10357
10358 2010-04-13  Duncan Sands  <baldrick@free.fr>
10359
10360         * except.h (lang_eh_type_covers): Remove.
10361         * except.c (lang_eh_type_covers): Likewise.
10362
10363 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10364             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10365
10366         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
10367         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
10368         UNITS_PER_LONG where it is ABI relevant.
10369         (s390_return_addr_rtx): Likewise.
10370         (s390_back_chain_rtx): Likewise.
10371         (s390_frame_area): Likewise.
10372         (s390_frame_info): Likewise.
10373         (s390_initial_elimination_offset): Likewise.
10374         (save_gprs): Likewise.
10375         (s390_emit_prologue): Likewise.
10376         (s390_emit_epilogue): Likewise.
10377         (s390_function_arg_advance): Likewise.
10378         (s390_function_arg): Likewise.
10379         (s390_va_start): Likewise.
10380         (s390_gimplify_va_arg): Likewise.
10381         (s390_function_profiler): Likewise.
10382         (s390_optimize_prologue): Likewise.
10383         (s390_rtx_costs): Likewise.
10384         (s390_secondary_reload): Likewise.
10385         (s390_promote_function_mode): Likewise.
10386         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
10387         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
10388         registers available.
10389         (s390_unwind_word_mode): New function.
10390         (s390_function_value): Split 64 bit values into register pair if
10391         used as return value.
10392         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
10393         function call parameters.  Handle parallels.
10394         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
10395         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
10396         (DWARF_CIE_DATA_ALIGNMENT): New macro.
10397         (s390_expand_setmem): Remove unused variable src_addr.
10398         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
10399         deal with 64 bit registers.
10400         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
10401         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
10402         (UNITS_PER_LONG): New macro.
10403         * libjava/include/s390-signal.h: Define extended ucontext
10404         structure containing the upper halfs of the 64 bit registers.
10405
10406 2010-04-13  Simon Baldwin  <simonb@google.com>
10407
10408         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
10409
10410 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10411
10412         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
10413         rvalue on the RHS if the LHS is of a non-renamable type.
10414         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
10415
10416 2010-04-13  Matthias Klose  <doko@ubuntu.com>
10417
10418         * gcc.c (cc1_options): Handle -iplugindir before processing
10419         the cc1 spec. Only add -iplugindir once.
10420         (cpp_unique_options): Add -iplugindir option if -fplugin* options
10421         found.
10422         * common.opt (iplugindir): Remove `Separate' property, initialize.
10423         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
10424         option.
10425         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
10426         (distclean): Remove plugin dir.
10427         * doc/invoke.texi: Document -iplugindir.
10428
10429 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
10430
10431         * doc/plugins.texi (Loading Plugins): Document short
10432         -fplugin=foo option.
10433         (Plugin API): Mention default_plugin_dir_name function.
10434
10435         * gcc.c (find_file_spec_function): Add new declaration.
10436         (static_spec_func): Use it for "find-file".
10437         (find_file_spec_function): Add new function.
10438         (cc1_options): Add -iplugindir option if -fplugin* options found.
10439
10440         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
10441
10442         * plugin.c (add_new_plugin): Updated comment, and handle short
10443         plugin name.
10444         (default_plugin_dir_name): Added new function.
10445
10446         * common.opt (iplugindir): New option to set the plugin directory.
10447
10448 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
10449
10450         * config/i386/i386.md (any_rotate): New code iterator.
10451         (rotate_insn): New code attribute.
10452         (rotate): Ditto.
10453         (SWIM124): New mode iterator.
10454         (<rotate_insn>ti3): New expander.
10455         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
10456         any_rotate code iterator.
10457         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
10458         using any_rotate code iterator and SWIM124 mode iterator.
10459         (ix86_rotlti3): New insn_and_split pattern.
10460         (ix86_rotrti3): Ditto.
10461         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
10462         ix86_rotl{di,ti}3 patterns.
10463         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
10464         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
10465         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
10466         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
10467         code iterator and SWI mode iterator.
10468         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
10469         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
10470         code iterator.
10471         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
10472         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
10473         (bswap rotatert splitter): Add splitter.
10474         (bswap splitter): Macroize splitter using any_rotate code iterator.
10475         Add insn predicate to split only for TARGET_USE_XCHGB or when
10476         optimizing function for size.
10477
10478 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10479
10480         * config/pa/pa.c (emit_move_sequence): Remove use of
10481         deleted variable flag_argument_noalias.
10482
10483 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10484
10485         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
10486         configurations.
10487         Add to unsupported targets list.
10488         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
10489         sparc*-sun-solaris2.[567]* from target lists.
10490         * configure: Regenerate.
10491         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
10492         removal.
10493         Remove Solaris 7 patch references.
10494         (Specific, sparc-sun-solaris2.7): Removed.
10495         (sparc-sun-solaris2*): Update Solaris 7 example.
10496         (sparc64-*-solaris2*): Likewise.
10497
10498 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10499
10500         * config.build (alpha*-dec-osf4*): Remove.
10501         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
10502         of obsolete configurations.
10503         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
10504         support.
10505         * config/alpha/t-osf4: Renamed to ...
10506         * config/alpha/t-osf5: ... this.
10507         * config/alpha/osf.h: Renamed to ...
10508         * config/alpha/osf5.h: ... this.
10509         Merged old osf5.h contents.
10510         Update comments.
10511         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
10512         (EXTRA_SPECS): Removed.
10513         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
10514         reflect removal of Tru64 UNIX V4.0/V5.0 support.
10515         Document that.
10516
10517 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10518
10519         * doc/contrib.texi (Contributors, Rainer Orth): Update.
10520
10521 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
10522
10523         PR/43702
10524         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
10525         __thiscall convention.
10526
10527 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10528
10529         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
10530         orig_base.
10531         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
10532
10533 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10534
10535         * function.c (assign_parms_initialize_all): Add unused attribute
10536         to fntype.
10537
10538 2010-04-12  Richard Guenther  <rguenther@suse.de>
10539
10540         * gsstruct.def (GSS_CALL): New.
10541         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
10542         * gimple.h: Include tree-ssa-alias.h.
10543         (struct gimple_statement_call): New.
10544         (union gimple_statement_struct_d): Add gimple_call member.
10545         (gimple_call_reset_alias_info): Declare.
10546         (gimple_call_use_set): New function.
10547         (gimple_call_clobber_set): Likewise.
10548         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
10549         * gimple.c (gimple_call_reset_alias_info): New function.
10550         (gimple_build_call_1): Call it.
10551         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10552         * tree-inline.c (remap_gimple_stmt): Likewise.
10553         (expand_call_inline): Remove callused handling.
10554         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
10555         * tree-dfa.c (dump_variable): Likewise.
10556         * tree-parloops.c (parallelize_loops): Likewise.
10557         * tree-ssa.c (init_tree_ssa): Likewise.
10558         (delete_tree_ssa): Likewise.
10559         * tree-flow-inline.h (is_call_used): Remove.
10560         * tree-flow.h (struct gimple_df): Remove callused member.
10561         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
10562         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
10563         (ref_maybe_used_by_call_p_1): Simplify.
10564         (call_may_clobber_ref_p_1): Likewise.
10565         * tree-ssa-structalias.c (compute_points_to_sets): Set
10566         the call stmt used and clobbered sets.
10567         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
10568         (find_tail_calls): Verify the tail call.
10569
10570 2010-04-12  Richard Guenther  <rguenther@suse.de>
10571
10572         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
10573         single-iteration always-inline inlining.
10574         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
10575         (cgraph_decide_inlining): Do not handle always-inline specially.
10576         (try_inline): Remove always-inline cycle detection special case.
10577         Do not recurse on always-inlines.
10578         (cgraph_early_inlining): Do not iterate if not optimizing.
10579         (cgraph_gate_early_inlining): remove.
10580         (pass_early_inline): Run unconditionally.
10581         (gate_cgraph_decide_inlining): New function.
10582         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
10583         not inlining or optimizing.
10584         (cgraph_decide_inlining_of_small_functions): Also consider
10585         always-inline functions.
10586         (cgraph_default_inline_p): Return true for nodes which should
10587         disregard inline limits.
10588         (estimate_function_body_sizes): Assume zero size and time for
10589         nodes which are marked as disregarding inline limits.
10590         (cgraph_decide_recursive_inlining): Do not perform recursive
10591         inlining on always-inline nodes.
10592
10593 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
10594
10595         PR bootstrap/43699
10596         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
10597         for exprs satisfying handled_component_p.
10598
10599 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10600
10601         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
10602         non-constant aggregate elements.
10603
10604         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
10605         is a real initialization.
10606
10607 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
10608
10609         PR c/36774
10610         * c-decl.c (start_function): Move forward check for nested function.
10611
10612 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
10613
10614         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
10615         * config/sh/sh.c: Include reload.h.
10616         (sh_legitimize_reload_address): New.
10617         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
10618         sh_legitimize_reload_address.
10619
10620 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10621
10622         * config/sh/sh.md (*movqi_pop): New insn pattern.
10623         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
10624
10625 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
10626
10627         * config/i386/i386.md (any_shiftrt): New code iterator.
10628         (shiftrt_insn): New code attribute.
10629         (shiftrt): Ditto.
10630         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
10631         using any_shiftrt code iterator.
10632         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
10633         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
10634         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
10635         pattern from corresponding peephole2 patterns.
10636         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
10637         using any_shiftrt code iterator.
10638         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
10639         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
10640         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
10641         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
10642         *{ashr,lshr}<mode>3_cmp_zext.
10643         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
10644
10645 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
10646
10647         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
10648         scratch register.
10649         (*lshr<mode>3_cconly): Ditto.
10650
10651 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
10652
10653         * config/i386/i386.md (lshr<mode>3): Macroize expander from
10654         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
10655         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
10656         pattern from *lshr{di,ti}3_1 and corresponding splitters using
10657         DWI mode iterator.
10658         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
10659         from corresponding peephole2 patterns.
10660         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
10661         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
10662         and *lshrdi3_1_rex64 using SWI mode iterator.
10663         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
10664         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
10665         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
10666         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
10667         and *lshrdi3_cmp_rex64 using SWI mode iterator.
10668         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
10669         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
10670         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
10671         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
10672         SWI mode iterator.
10673
10674 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
10675
10676         * config/i386/i386.md (ashr<mode>3): Macroize expander from
10677         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
10678         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
10679         pattern from *ashr{di,ti}3_1 and corresponding splitters using
10680         DWI mode iterator.
10681         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
10682         from corresponding peephole2 patterns.
10683         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
10684         (ashrsi3_cvt): Rename from ashrsi3_31.
10685         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
10686         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
10687         and x86_64_shift_adj_3 using SWI48 mode iterator.
10688         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
10689         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
10690         and *ashrdi3_1_rex64 using SWI mode iterator.
10691         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
10692         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
10693         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
10694         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
10695         and *ashrdi3_cmp_rex64 using SWI mode iterator.
10696         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
10697         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
10698         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
10699         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
10700         SWI mode iterator.
10701         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
10702         * config/i386/i386.c (ix86_split_ashr): Update for renamed
10703         x86_shift<mode>_adj_3 expanders.
10704
10705 2010-04-10  Wei Guozhi  <carrot@google.com>
10706
10707         PR target/42601
10708         * config/arm/arm.c (arm_pic_static_addr): New function.
10709         (legitimize_pic_address): Call arm_pic_static_addr when it detects
10710         a static symbol.
10711         (arm_output_addr_const_extra): Output expression for new pattern.
10712         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
10713
10714 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
10715
10716         * ira-costs.c (record_reg_classes): Ignore alternatives that are
10717         not enabled.
10718
10719         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
10720         * web.c: Include "insn-config.h" and "recog.h".
10721         (union_match_dups): New function.
10722         (web_main): Call it.
10723         (union_defs): Don't try to recognize match_dups.
10724
10725         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
10726         if doing so would replace the entire pattern.
10727
10728 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
10729
10730         PR target/43707
10731         PR target/43709
10732         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
10733         and splitter pattern.  Change splitter operand 1 predicate to
10734         nonmemory_operand.
10735
10736 2010-04-09  Martin Jambor  <mjambor@suse.cz>
10737
10738         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
10739         lattices are addresses of CONST_DECLs with the same initial value.
10740         (ipcp_print_all_lattices): Print values of CONST_DECLs.
10741         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
10742
10743 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
10744             Bernd Schmidt  <bernds@codesourcery.com>
10745
10746         * loop-invariant.c (replace_uses): New static function.
10747         (move_invariant_reg): Use it to ensure we can replace the uses.
10748
10749 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10750
10751         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
10752         function template.
10753         (picochip_override_options): Enable section anchors only above -O1.
10754         (picochip_reorg): Fixed a couple of build warnings.
10755
10756 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10757
10758         * configure.ac (plugin -rdynamic test): Log result.
10759         * configure: Regenerate.
10760         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
10761         (RDYNAMIC_SPEC): Define.
10762         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
10763
10764 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10765
10766         * configure.ac: Determine Sun ld version numbers.
10767         (comdat_group): Restrict GNU ld version checks to gld.
10768         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
10769         (enable_comdat): Support --enable-comdat.
10770         * configure: Regenerate.
10771         * doc/install.texi (Configuration): Document --enable-comdat.
10772
10773 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10774
10775         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
10776         * config/sol2-gld.h: ... here.
10777         * config.gcc (sparc*-*-solaris2*): Reflect this.
10778         (i[34567]86-*-solaris2*): Use it.
10779
10780 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
10781
10782         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
10783         setup_clocks_p.
10784         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
10785
10786 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10787
10788         PR 42965
10789         * diagnostic.c (diagnostic_initialize): Initialize
10790         some_warnings_are_errors.
10791         (diagnostic_finish): New.
10792         (diagnostic_action_after_output): Call it before exiting.
10793         (diagnostic_report_diagnostic): Do not print message here. Set
10794         some_warnings_are_errors.
10795         * diagnostic.h (diagnostic_context): Delete
10796         issue_warnings_are_errors_message. Add some_warnings_are_errors.
10797         (diagnostic_finish): Declare.
10798         * toplev.c (toplev_main): Call it before exit.
10799
10800 2010-04-09  Jason Merrill  <jason@redhat.com>
10801
10802         PR c++/42623
10803         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
10804         for incomplete type.
10805
10806         PR c++/41788
10807         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
10808         based on a warning flag.
10809
10810 2010-04-09  Richard Guenther  <rguenther@suse.de>
10811
10812         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
10813
10814 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
10815
10816         PR bootstrap/43684
10817         * varasm.c (default_assemble_visibility): Wrap vars that are
10818         set, but unused, by targets without GAS.
10819         * config/rs6000/rs6000.c (paired_emit_vector_compare):
10820         Remove set, but unused, vars.
10821         (rs6000_legitimize_tls_address): Likewise.
10822         (altivec_expand_dst_builtin): Likewise.
10823         * config/darwin.c (machopic_classify_symbol): Likewise.
10824         (machopic_indirection_name): Likewise.
10825
10826 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
10827
10828         * config/i386/i386.md (DWI): New mode iterator.
10829         (S): New mode attribute.
10830         (shift_operand): Ditto.
10831         (shift_immediate_operand): Ditto.
10832         (ashl_input_operand): Ditto.
10833         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
10834         using SDWIM mode iterator.
10835         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
10836         pattern from *ashl{di,ti}3_1 and corresponding splitters using
10837         DWI mode iterator.
10838         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
10839         from corresponding peephole2 patterns.
10840         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
10841         and x86_64_shift_adj_1 using SWI48 mode iterator.
10842         (x86_shift<mode>_adj_2): Ditto.
10843         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
10844         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
10845         using SWI48 mode iterator.
10846         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
10847         *ashldi3_cmp_rex64 using SWI mode iterator.
10848         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
10849         *ashldi3_cconly_rex64 using SWI mode iterator.
10850         * config/i386/i386.c (ix86_split_ashl): Update for renamed
10851         x86_shift<mode>_adj_{1,2}.
10852         (ix86_split_ashr): Ditto.
10853         (ix86_split_lshr): Ditto.
10854
10855 2010-04-09  Richard Guenther  <rguenther@suse.de>
10856
10857         * target.h (builtin_conversion): Pass in input and output types.
10858         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
10859         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
10860         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
10861         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
10862
10863         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
10864         Handle AVX modes.
10865         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
10866
10867 2010-04-09  Richard Guenther  <rguenther@suse.de>
10868
10869         PR target/43152
10870         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
10871
10872 2010-04-09  Richard Guenther  <rguenther@suse.de>
10873
10874         * tree-vectorizer.h (struct _stmt_vec_info): Document
10875         that vectype is the type of the LHS.
10876         (supportable_widening_operation, supportable_narrowing_operation):
10877         Get both input and output vector types as arguments.
10878         (vect_is_simple_use_1): Declare.
10879         (get_same_sized_vectype): Likewise.
10880         * tree-vect-loop.c (vect_determine_vectorization_factor):
10881         Set STMT_VINFO_VECTYPE to the vector type of the def.
10882         (vectorizable_reduction): Adjust.
10883         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
10884         Adjust.  Specify the output vector type.
10885         (vect_pattern_recog_1): Adjust.
10886         * tree-vect-stmts.c (get_same_sized_vectype): New function.
10887         (vectorizable_call): Adjust.
10888         (vectorizable_conversion): Likewise.
10889         (vectorizable_operation): Likewise.
10890         (vectorizable_type_demotion): Likewise.
10891         (vectorizable_type_promotion): Likewise.
10892         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
10893         the def.
10894         (vect_is_simple_use_1): New function.
10895         (supportable_widening_operation): Get both input and output
10896         vector types.
10897         (supportable_narrowing_operation): Likewise.
10898         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
10899
10900 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
10901
10902         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
10903         __thiscall and _thiscall as predefined macros.
10904         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
10905         thiscall attribute handling.
10906         (ix86_comp_type_attributes): Likewise.
10907         (ix86_function_regparm): Likewise.
10908         (ix86_return_pops_args): Likewise.
10909         (init_cumulative_args): Likewise.
10910         (find_drap_reg): Likewise.
10911         (ix86_static_chain): Likewise.
10912         (x86_this_parameter): Likewise.
10913         (x86_output_mi_thunk): Likewise.
10914         (ix86_attribute_table): Add description for thiscall attribute.
10915         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
10916         * doc/extend.texi: Add documentation for thiscall.
10917
10918 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10919
10920         PR c++/28584
10921         * c.opt (Wint-to-pointer-cast): Available in C++.
10922         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
10923
10924 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
10925
10926         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
10927         * calls.c (expand_call): Pass the function type to aggregate_value_p.
10928         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
10929         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
10930         function type instead.  Reorder and simplify checks.
10931
10932         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
10933
10934 2010-04-08  Jing Yu  <jingyu@google.com>
10935             Zdenek Dvorak  <ook@ucw.cz>
10936
10937         PR tree-optimization/42720
10938         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
10939         loop unswitch conditions here from ...
10940         (tree_unswitch_single_loop): ... here.
10941
10942 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
10943
10944         * tree-if-conv.c: Fix comments and simplify logic.
10945
10946 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
10947
10948         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
10949         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
10950         (main_tree_if_conversion): Update call to tree_if_conversion.
10951
10952 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10953
10954         PR 42485
10955         * doc/invoke.texi (-b,-V): Delete.
10956         * doc/tm.texi: Do not mention -b.
10957         * gcc.c (display_help): Delete -b and -V.
10958         (process_command): Delete -b and -V.
10959         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
10960
10961 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
10962             Wolfgang Gellerich  <gellerich@de.ibm.com>
10963
10964         Implement target hook for loop unrolling
10965         * target.h (loop_unroll_adjust): Add a new target hook function.
10966         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
10967         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
10968         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
10969         (s390_loop_unroll_adjust): Implement the new target hook for s390.
10970         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
10971         target hook.
10972         (decide_unroll_stupid): Likewise.
10973
10974 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10975
10976         PR target/43643
10977         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
10978
10979 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10980
10981         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
10982         (Specific, *-*-solaris2*): Likewise.
10983         Don't prefer Sun as over GNU as.
10984
10985 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
10986
10987         * config/s390/s390.c (override_options): Adjust the z10 defaults
10988         for max-unroll-times, max-completely-peeled-insns
10989         and max-completely-peel-times.
10990
10991 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10992
10993         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
10994         instructions for z10.
10995         (s390_expand_setmem): Likewise.
10996         (s390_expand_cmpmem): Likewise.
10997
10998 2010-04-08  Richard Guenther  <rguenther@suse.de>
10999
11000         PR tree-optimization/43679
11001         * tree-ssa-pre.c (eliminate): Only propagate copies.
11002
11003 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
11004
11005         PR bootstrap/43681
11006         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
11007         set but not used variable warning.
11008
11009 2010-04-08  Wei Guozhi  <carrot@google.com>
11010
11011         PR target/41653
11012         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
11013         (arm_size_rtx_costs): Call the new function when optimized for size.
11014
11015 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
11016
11017         PR debug/43670
11018         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
11019         op0 is not a MEM, just return NULL instead of assertion
11020         failure.
11021         (discover_nonconstant_array_refs): Don't walk debug stmts.
11022
11023 2010-04-08  Doug Kwan  <dougkwan@google.com>
11024
11025         * configure.ac: Recognize gold and do not use its version number
11026         to test ld features.
11027         * configure: Regenerate.
11028
11029 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
11030
11031         PR middle-end/40815
11032         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
11033         (negate_value): Move code to push elements to broken_up_substracts ...
11034         (eliminate_plus_minus_pair): ... here.  Push operands that have no
11035         negative pair to plus_negates.
11036         (repropagate_negates, init_reassoc, fini_reassoc): Update.
11037
11038 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11039
11040         * doc/install.texi (Configuration): Move description of
11041         --enable-lto, --with-libelf*, --enable-gold from Java section to
11042         general section.
11043
11044         * doc/generic.texi (Working with declarations)
11045         (Function Properties, C and C++ Trees): Fix typos.
11046         * doc/sourcebuild.texi (Top Level): Likewise.
11047
11048 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
11049
11050         PR c/18624
11051         * tree.h (DECL_READ_P): Define.
11052         (struct tree_decl_common): Add decl_read_flag.
11053         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
11054         a set but not used warning.
11055         (merge_decls): Merge DECL_READ_P flag.
11056         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
11057         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
11058         * c-common.c (handle_used_attribute, handle_unused_attribute):
11059         Likewise.
11060         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
11061         New prototypes.
11062         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
11063         New functions.
11064         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
11065         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
11066         c_parser_binary_expression, c_parser_cast_expression,
11067         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
11068         Call default_function_array_read_conversion instead of
11069         default_function_array_conversion where needed.
11070         (c_parser_unary_expression, c_parser_conditional_expression,
11071         c_parser_postfix_expression_after_primary, c_parser_initelt):
11072         Likewise.  Call mark_exp_read where needed.
11073         (c_parser_statement_after_labels, c_parser_asm_operands,
11074         c_parser_typeof_specifier, c_parser_sizeof_expression,
11075         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
11076         where needed.
11077         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
11078         New.
11079         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
11080         (warn_unused_but_set_parameter): Default to warn_unused
11081         && extra_warnings.
11082         * doc/invoke.texi: Document -Wunused-but-set-variable and
11083         -Wunused-but-set-parameter.
11084
11085         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
11086         used count variable.
11087         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
11088         when operandN variables aren't used in the body of the expander
11089         or splitter.
11090         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
11091         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
11092         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
11093         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
11094         FOR_EACH_IMM_USE_ON_STMT): Likewise.
11095         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
11096         * tree.c (PROCESS_ARG): Likewise.
11097
11098 2010-04-07  Simon Baldwin  <simonb@google.com>
11099
11100         * diagnostic.h (diagnostic_override_option_index): New macro to
11101         set a diagnostic's option_index.
11102         * c-tree.h (c_cpp_error): Add warning reason argument.
11103         * opts.c (_warning_as_error_callback): New.
11104         (register_warning_as_error_callback): Store callback for
11105         warnings enabled via enable_warning_as_error.
11106         (enable_warning_as_error): Call callback, minor code tidy.
11107         * opts.h (register_warning_as_error_callback): Declare.
11108         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
11109         response to -Werror=.
11110         (c_common_init_options): Register warning_as_error_callback in opts.c.
11111         * common.opt: Add -Wno-cpp option.
11112         * c-common.c (struct reason_option_codes_t): Map cpp warning
11113         reason codes to gcc option indexes.
11114         * (c_option_controlling_cpp_error): New function, lookup the gcc
11115         option index for a cpp warning reason code.
11116         * (c_cpp_error): Add warning reason argument, call
11117         c_option_controlling_cpp_error for diagnostic_override_option_index.
11118         * doc/invoke.texi: Document -Wno-cpp.
11119
11120 2010-04-07  Richard Guenther  <rguenther@suse.de>
11121
11122         * ipa-reference.c (mark_load): Use get_base_address.
11123         (mark_store): Likewise.
11124
11125         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
11126         inserting GIMPLE_NOPs into the IL.
11127         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11128         Explicitly strip handled components and indirect references.
11129
11130         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
11131         folding address expressions.
11132         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
11133         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
11134         operand_equal_p to compare decls.
11135         (ptr_deref_may_alias_decl_p): Likewise.
11136         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
11137         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
11138         Handle reversed comparison ops.
11139         * tree-sra.c (asm_visit_addr): Use get_base_address.
11140         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
11141         * ipa-reference.c (mark_address): Use get_base_address.
11142
11143 2010-04-07  Richard Guenther  <rguenther@suse.de>
11144
11145         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
11146         Propagate constants everywhere.
11147
11148 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
11149
11150         PR debug/43516
11151         * tree.c (MAX_INT_CACHED_PREC): Define.
11152         (nonstandard_integer_type_cache): New array.
11153         (build_nonstandard_integer_type): Cache results for precision
11154         <= MAX_INT_CACHED_PREC.
11155
11156 2010-04-07  Richard Guenther  <rguenther@suse.de>
11157
11158         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
11159         -fargument-noalias-global, -fargument-noalias-anything): Remove.
11160         * common.opt: Likewise.
11161         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
11162         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
11163         (nonoverlapping_memrefs_p): Likewise.
11164         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11165         * opts.c (common_handle_option): Handle OPT_fargument_alias,
11166         OPT_fargument_noalias, OPT_fargument_noalias_anything and
11167         OPT_fargument_noalias_global for backward compatibility.
11168
11169 2010-04-07  Richard Guenther  <rguenther@suse.de>
11170
11171         PR tree-optimization/43270
11172         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
11173         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
11174         * tree-ssa-pre.c (phi_translate_1): Adjust.
11175         (fully_constant_expression): Split out vn_reference handling to ...
11176         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
11177         Fold reads from constant strings.
11178         (vn_reference_lookup): Handle fully constant references.
11179         (vn_reference_lookup_pieces): Likewise.
11180         * Makefile.in (expmed.o-warn): Add -Wno-error.
11181
11182 2010-04-07  Martin Jambor  <mjambor@suse.cz>
11183
11184         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
11185
11186 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
11187
11188         PR driver/41594
11189         * gcc.c: Add -static-libstdc++ to list of recognized options.
11190
11191 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11192
11193         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
11194
11195 2010-04-07  Richard Guenther  <rguenther@suse.de>
11196
11197         PR middle-end/42617
11198         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
11199         bases build simple mem attributes to retain points-to information.
11200
11201 2010-04-07  Richard Guenther  <rguenther@suse.de>
11202
11203         PR middle-end/42617
11204         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
11205         preserve points-to related information.
11206
11207 2010-04-07  Richard Guenther  <rguenther@suse.de>
11208
11209         PR middle-end/42617
11210         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
11211         discard plain indirect references.
11212         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
11213         * tree.c (tree_nop_conversion): Likewise.
11214
11215 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
11216
11217         PR debug/43628
11218         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
11219
11220 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
11221
11222         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
11223         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
11224
11225 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11226
11227         * tree-if-conv.c: Fix indentation and comments.
11228
11229 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11230
11231         * tree-if-conv.c: Sort static functions in topological order.
11232
11233 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11234
11235         * tree-if-conv.c: Fix indentation and comments.
11236
11237 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11238
11239         PR middle-end/43519
11240         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
11241         lang_hooks.types.type_for_size instead of
11242         build_nonstandard_integer_type.
11243         When converting an unsigned type to signed, double its precision.
11244         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
11245         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
11246         (graphite_create_new_loop_guard): When ub + 1 wraps around,
11247         use lb <= ub.
11248
11249 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11250
11251         PR middle-end/43519
11252         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
11253         POINTER_PLUS_EXPR for pointer types.
11254
11255 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11256
11257         PR middle-end/43519
11258         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
11259         * graphite-clast-to-gimple.c: Include langhooks.h.
11260         (max_signed_precision_type): New.
11261         (max_precision_type): Takes two types as arguments.
11262         (precision_for_value): New.
11263         (precision_for_interval): New.
11264         (gcc_type_for_interval): New.
11265         (gcc_type_for_value): New.
11266         (gcc_type_for_clast_term): New.
11267         (gcc_type_for_clast_red): New.
11268         (gcc_type_for_clast_bin): New.
11269         (gcc_type_for_clast_expr): Split up into several functions.
11270         (gcc_type_for_clast_eq): Rewritten.
11271         (compute_bounds_for_level): New.
11272         (compute_type_for_level_1): New.
11273         (compute_type_for_level): New.
11274         (gcc_type_for_cloog_iv): Removed.
11275         (gcc_type_for_iv_of_clast_loop): Rewritten.
11276         (graphite_create_new_loop): Compute the lower and upper bound types
11277         with gcc_type_for_clast_expr.
11278         (graphite_create_new_loop_guard): Same.
11279         (find_cloog_iv_in_expr): Removed.
11280         (compute_cloog_iv_types_1): Removed.
11281         (compute_cloog_iv_types): Removed.
11282         (gloog): Do not call compute_cloog_iv_types.
11283         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
11284         GBB_CLOOG_IV_TYPES.
11285         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
11286         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
11287         (GBB_CLOOG_IV_TYPES): Removed.
11288
11289 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11290
11291         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
11292         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
11293         (detect_commutative_reduction): Same.
11294
11295 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11296
11297         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
11298         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
11299         argument.
11300         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
11301         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
11302         (rewrite_commutative_reductions_out_of_ssa): Same.
11303         * passes.c (execute_function_todo): Call verify_ssa for every pass
11304         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
11305         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
11306         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
11307         with an extra argument.
11308         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
11309         verify_ssa only when the extra argument is true.
11310         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
11311         with an extra argument.
11312         (tree_transform_and_unroll_loop): Same.
11313
11314 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11315
11316         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
11317         for all the passes of the LNO having LOOP_CLOSED_SSA.
11318         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
11319         * tree-loop-distribution.c (pass_loop_distribution): Same.
11320         * tree-pass.h (TODO_verify_loops): Removed.
11321         * tree-ssa-loop.c (pass_tree_loop_init): Same.
11322         (pass_lim): Same.
11323         (pass_tree_unswitch): Same.
11324         (pass_predcom): Same.
11325         (pass_vectorize): Same.
11326         (pass_linear_transform): Same.
11327         (pass_graphite_transforms): Same.
11328         (pass_iv_canon): Same.
11329         (pass_complete_unroll): Same.
11330         (pass_complete_unrolli): Same.
11331         (pass_parallelize_loops): Same.
11332         (pass_loop_prefetch): Same.
11333         (pass_iv_optimize): Same.
11334
11335 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
11336
11337         PR middle-end/32824
11338         * passes.c (init_optimization_passes): Move pass_lim before
11339         pass_copy_prop and pass_dce_loop.
11340
11341 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
11342
11343         PR target/43667
11344         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
11345         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
11346         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
11347         MULTI_* defines for 4 argument vpermil2p* builtins.
11348
11349 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
11350
11351         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
11352         * config/i386/i386.c (x86_maybe_negate_const_int): New.
11353         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
11354         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
11355         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
11356         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
11357         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
11358         Use x86_maybe_negate_const_int to output insn mnemonic.
11359         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
11360         check from instruction predicate.  Update comments.
11361         * config/i386/sync.md (sync_add<mode>): Use
11362         x86_maybe_negate_const_int to output insn mnemonic.
11363
11364 2010-04-06  Jan Hubicka  <jh@suse.cz>
11365
11366         PR tree-optimization/42906
11367         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
11368         IGNORE_SELF argument.  Set visited_control_parents for fully
11369         processed BBs.
11370         (find_obviously_necessary_stmts): Update call of
11371         mark_control_dependent_edges_necessary.
11372         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
11373
11374 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
11375
11376         * config/i386/i386.md: Remove comment about 'e' and 'E'
11377         operand modifier.
11378
11379 2010-04-06  Richard Guenther  <rguenther@suse.de>
11380
11381         PR tree-optimization/43627
11382         * tree-vrp.c (extract_range_from_unary_expr): Widenings
11383         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
11384         not varying.
11385
11386 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
11387
11388         * BASE-VER: Change to 4.6.0.
11389
11390         PR target/43638
11391         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
11392         handling.
11393
11394 2010-04-06  Richard Guenther  <rguenther@suse.de>
11395
11396         PR middle-end/43661
11397         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
11398
11399 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11400
11401         * doc/invoke.texi (Optimize Options): Document that LTO
11402         won't remove object access purely due to incompatible
11403         declarations.
11404
11405 2010-04-04  Matthias Klose  <doko@ubuntu.com>
11406
11407         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
11408         Initialize variable.
11409
11410 2010-04-03  Richard Guenther  <rguenther@suse.de>
11411
11412         PR middle-end/42509
11413         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
11414         require a non-NULL MEM_OFFSET.
11415
11416 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
11417
11418         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
11419         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
11420         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
11421         config/alpha/predicates.md, config/arm/arm.md,
11422         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
11423         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
11424         config/darwin9.h, config/darwin.c, config/darwin.h,
11425         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
11426         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
11427         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
11428         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
11429         config/mips/mips.md, config/mn10300/mn10300.c,
11430         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
11431         config/rs6000/aix.h, config/rs6000/dfp.md,
11432         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
11433         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
11434         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
11435         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
11436         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
11437         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
11438         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
11439         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
11440         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
11441         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
11442         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
11443         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
11444         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
11445         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
11446         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
11447         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
11448         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
11449         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
11450         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
11451         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
11452         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
11453         opt-functions.awk, opth-gen.awk, params.def, passes.c,
11454         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
11455         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
11456         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
11457         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
11458         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
11459         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
11460         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
11461         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
11462         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
11463         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
11464         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
11465         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
11466         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
11467         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
11468
11469 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11470
11471         PR other/43620
11472         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
11473         * aclocal.m4: Regenerate.
11474
11475 2010-04-02  Richard Guenther  <rguenther@suse.de>
11476
11477         PR tree-optimization/43629
11478         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
11479         if we have seen a constant value.
11480
11481 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
11482
11483         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
11484
11485 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
11486
11487         PR target/43469
11488         * arm.c (legitimize_tls_address): Adjust call to
11489         gen_tls_load_dot_plus_four.
11490         (arm_note_pic_base): New function.
11491         (arm_cannot_copy_insn_p): Use it.
11492         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
11493         constraint.
11494
11495 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11496
11497         PR bootstrap/43531
11498
11499         Revert:
11500         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11501
11502         * Makefile.in ($(out_object_file)): Depend on
11503         gt-$(basename $(notdir $(out_file))).h.
11504
11505 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
11506
11507         * config.gcc (lm32-*-rtems*): Add t-lm32.
11508
11509 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
11510
11511         * config.gcc: Add lm32-*-rtems*.
11512         * config/lm32/rtems.h: New file.
11513
11514 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
11515
11516         PR target/42609
11517         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
11518
11519 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
11520
11521         * dwarf2out.c (output_compilation_unit_header): For
11522         -gdwarf-4 use version 4 instead of version 3.
11523         (output_line_info): For version 4 and above emit additional
11524         maximum ops per insn header field.
11525         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
11526
11527         * dwarf2out.c (is_c_family, is_java): Remove.
11528         (lower_bound_default): New function.
11529         (add_bound_info, gen_descr_array_type_die): Use it.
11530
11531 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
11532
11533         PR debug/43325
11534         * dwarf2out.c (gen_variable_die): Allow debug info for variable
11535         re-declaration when it happens in a function.
11536
11537 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
11538
11539         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
11540         (cgraph_remove_function_insertion_hook): Same.
11541         (cgraph_call_function_insertion_hooks): Same.
11542
11543 2010-04-01  Richard Guenther  <rguenther@suse.de>
11544
11545         PR middle-end/43614
11546         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
11547         and TREE_THIS_VOLATILE.
11548         (copy_ref_info): Likewise.
11549         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
11550         * tree.c (build6_stat): Ignore side-effects of all but arg5
11551         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
11552         TARGET_MEM_REF.
11553
11554 2010-04-01  Richard Guenther  <rguenther@suse.de>
11555
11556         PR tree-optimization/43607
11557         * ipa-type-escape.c (check_call): Do not access non-existing
11558         arguments.
11559
11560 2010-04-01  Richard Guenther  <rguenther@suse.de>
11561
11562         PR middle-end/43602
11563         Revert
11564         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
11565                     Jack Howarth <howarth@bromo.med.uc.edu>
11566
11567         * tree-profile.c (tree_init_ic_make_global_vars): Make static
11568         variables TLS.
11569
11570 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11571
11572         * doc/install.texi (Prerequisites): Document libelf usability on
11573         IRIX 5/6 and Solaris 2.
11574         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
11575         Update GNU as, GNU ld requirements.
11576         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
11577         Document Sun Studio compiler download.
11578         Update and simplify as, ld recommendations.
11579         (Specific, *-*-solaris2.7): Note obsoletion, removal.
11580
11581 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11582
11583         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
11584         with_tune_32 to pentium4.
11585
11586 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
11587
11588         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
11589
11590 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11591
11592         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
11593         obsoletion, removal.
11594         Update IDO URL.
11595         Document GNU as requirement.
11596         Update configure requirements.
11597         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
11598         Recomment IRIX 6.5.18+.
11599         Document IDF/IDL requirement.
11600         Document GNU as requirement.
11601         Document GNU ld bootstrap failure.
11602         Remove freeware.sgi.com reference.
11603
11604 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11605
11606         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
11607         UNIX V4.0, V5.0 obsoletion, removal.
11608         Remove --with-gc=simple reference.
11609         Update VM requirements during bootstrap.
11610         Remove -oldas bootstrap description.
11611         Update binutils reference.
11612         Remove comparison failure note.
11613
11614 2010-03-31  Richard Guenther  <rguenther@suse.de>
11615             Zdenek Dvorak  <ook@ucw.cz>
11616             Sebastian Pop  <sebastian.pop@amd.com>
11617
11618         PR middle-end/43464
11619         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
11620         with multiple arguments.
11621         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
11622
11623 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11624
11625         * graphite-dependences.c (print_pddr): Call print_pdr with an
11626         extra argument.
11627         * graphite-poly.c (debug_pdr): Add an extra argument for the
11628         verbosity level.
11629         (print_pdr): Same.
11630         (print_pbb_domain): Same.
11631         (print_pbb): Same.
11632         (print_scop_context): Same.
11633         (print_scop): Same.
11634         (print_cloog): Same.
11635         (debug_pbb_domain): Same.
11636         (debug_pbb): Same.
11637         (print_pdrs): Same.
11638         (debug_pdrs): Same.
11639         (debug_scop_context): Same.
11640         (debug_scop): Same.
11641         (debug_cloog): Same.
11642         (print_scop_params): Same.
11643         (debug_scop_params): Same.
11644         (print_iteration_domain): Same.
11645         (print_iteration_domains): Same.
11646         (debug_iteration_domain): Same.
11647         (debug_iteration_domains): Same.
11648         (print_scattering_function): Same.
11649         (print_scattering_functions): Same.
11650         (debug_scattering_function): Same.
11651         (debug_scattering_functions): Same.
11652         * graphite-poly.h (debug_pdr): Update declaration.
11653         (print_pdr): Same.
11654         (print_pbb_domain): Same.
11655         (print_pbb): Same.
11656         (print_scop_context): Same.
11657         (print_scop): Same.
11658         (print_cloog): Same.
11659         (debug_pbb_domain): Same.
11660         (debug_pbb): Same.
11661         (print_pdrs): Same.
11662         (debug_pdrs): Same.
11663         (debug_scop_context): Same.
11664         (debug_scop): Same.
11665         (debug_cloog): Same.
11666         (print_scop_params): Same.
11667         (debug_scop_params): Same.
11668         (print_iteration_domain): Same.
11669         (print_iteration_domains): Same.
11670         (debug_iteration_domain): Same.
11671         (debug_iteration_domains): Same.
11672         (print_scattering_function): Same.
11673         (print_scattering_functions): Same.
11674         (debug_scattering_function): Same.
11675         (debug_scattering_functions): Same.
11676
11677 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11678
11679         * graphite-poly.c (print_scattering_function_1): New.
11680         (print_scattering_function): Call it.
11681         (print_scop_params): Remove spaces at the end of lines.
11682         (print_cloog): New.
11683         (debug_cloog): New.
11684         * graphite-poly.h (print_cloog): Declared.
11685         (debug_cloog): Declared.
11686
11687 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11688
11689         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
11690         in loop->header.
11691         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
11692         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
11693         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
11694         to switch between adding the IV bump in loop->latch or in loop->header.
11695
11696 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11697
11698         * graphite-poly.c (print_scattering_function): Pretty print following
11699         the scoplib format.
11700         (print_pdr): Same.
11701         (print_pbb_domain): Same.
11702         (dump_gbb_cases): Same.
11703         (dump_gbb_conditions): Same.
11704         (print_pdrs): Same.
11705         (print_pbb): Same.
11706         (print_scop_params): Same.
11707         (print_scop_context): Same.
11708         (print_scop): Same.
11709         (print_pbb_body): New.
11710         (lst_indent_to): New.
11711         (print_lst): Start new lines with a #.
11712         * graphite-poly.h (pbb_bb): New.
11713         (pbb_index): Use pbb_bb.
11714         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
11715         disjuncts.
11716         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
11717
11718 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
11719
11720         * dwarf2out.c (size_of_die): For -gdwarf-4 use
11721         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
11722         and 0 instead of 1 for dw_val_class_flag.
11723         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
11724         dw_val_class_range_list, dw_val_class_loc_list,
11725         dw_val_class_lineptr and dw_val_class_macptr, use
11726         DW_FORM_flag_present for dw_val_class_flag and
11727         DW_FORM_exprloc for dw_val_class_loc.
11728         (output_die): For -gdwarf-4 print dw_val_class_loc
11729         size as uleb128 instead of 1 or 2 bytes and don't print
11730         anything for dw_val_class_flag.
11731
11732         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
11733         instead of cselib_lookup following by tweaking locs->setting_insn.
11734
11735         PR bootstrap/43596
11736         * cselib.c (cselib_process_insn): Clear cselib_current_insn
11737         even before returning from label, setjmp call or volatile asm
11738         handling.
11739
11740 2010-03-31  Richard Guenther  <rguenther@suse.de>
11741
11742         PR middle-end/43600
11743         * cgraphunit.c (cgraph_output_in_order): Do not allocate
11744         temporary data on stack.
11745
11746 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11747
11748         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
11749         (PUSHSECTION_ASM_OP): Remove.
11750         (POPSECTION_ASM_OP): Remove.
11751         (PUSHSECTION_FORMAT): Remove.
11752         * config/sol2.h (PUSHSECTION_FORMAT): Define.
11753         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
11754         * config/sol2.c (solaris_output_init_fini): Use it.
11755
11756 2010-03-31  Jie Zhang  <jie@codesourcery.com>
11757
11758         PR 43574
11759         * opt-functions.awk (var_type_struct): Use signed char type
11760         for simple variables.
11761
11762 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11763
11764         * config/sol2.c: Include output.h.
11765         (solaris_assemble_visibility): New function.
11766         * config/t-sol2 (sol2.o): Add output.h dependency.
11767         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
11768         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
11769         Redefine.
11770
11771 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
11772
11773         PR target/43580
11774         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
11775         V2SImode or XFmode on PRE_DEC.
11776
11777         PR debug/43557
11778         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
11779         BLKmode.
11780
11781 2010-03-31  Jie Zhang  <jie@codesourcery.com>
11782
11783         PR 43562
11784         * reload.h (caller_save_initialized_p): Declare.
11785         * toplev.c (backend_init_target): Don't call
11786         init_caller_save but set caller_save_initialized_p to false.
11787         * caller-save.c (caller_save_initialized_p): Define.
11788         (init_caller_save): Check caller_save_initialized_p.
11789         * ira.c (ira): Call init_caller_save if flag_caller_saves.
11790
11791 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11792
11793         PR target/39048
11794         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
11795         and soft-fp/t-softfp to tmake_file.
11796         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
11797         (LIBGCC2_TF_CEXT): Define.
11798         (TF_SIZE): Define.
11799
11800 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
11801
11802         PR debug/42977
11803         * cselib.c (n_useless_values): Document handling of debug locs.
11804         (n_useless_debug_values, n_debug_values): New variables.
11805         (new_elt_loc_list): Don't add to debug values, keep count.
11806         (promote_debug_loc): New.
11807         (cselib_reset_table): Zero new variables.
11808         (entry_and_rtx_equal_p): Promote debug locs.
11809         (discard_useless_locs): Increment n_useless_debug_values for
11810         debug values.
11811         (remove_useless_values): Adjust n_useless_values and n_debug_values
11812         with n_useless_debug_values.
11813         (add_mem_for_addr): Promote debug locs.
11814         (cselib_lookup_mem): Likewise.
11815         (cselib_lookup_addr): Renamed to...
11816         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
11817         (cselib_log_lookup): ... this.  Turn into...
11818         (cselib_lookup_addr): ... new wrapper.
11819         (cselib_lookup_from_insn): New.
11820         (cselib_invalidate_regno): Increment n_useless_debug_values for
11821         debug values.
11822         (cselib_invalidate_mem): Likewise.
11823         (cselib_process_insn): Take n_deleted and n_debug_values into
11824         account to guard remove_useless_value call.
11825         (cselib_finish): Zero n_useless_debug_values.
11826         * cselib.h (cselib_lookup_from_insn): Declare.
11827         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
11828         (sched_analyze_2): Likewise.
11829
11830 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
11831
11832         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
11833         functions.
11834         (adjust_mems): Replace narrowing SUBREG of expression containing
11835         just PLUS, MINUS, MULT and ASHIFT of registers and constants
11836         with operations in the narrower mode.
11837
11838         PR debug/43593
11839         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
11840         regs_invalidated_by_call instead all call_used_reg_set registers.
11841
11842 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
11843
11844         PR middle-end/43430
11845         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
11846         pointer comparisons with types_compatible_p.
11847         * tree-vect-stmts.c (vectorizable_call): Same.
11848         (vectorizable_condition): Same.
11849
11850 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11851
11852         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
11853         stack check if the mask would be zero.
11854
11855 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
11856             Jack Howarth <howarth@bromo.med.uc.edu>
11857
11858         * tree-profile.c (tree_init_ic_make_global_vars): Make static
11859         variables TLS.
11860
11861 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
11862
11863         PR other/25232
11864         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
11865         and __unordtf2.
11866         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
11867         Include ___unordxf2 and ___unordtf2.
11868         * config/i386/libgcc-glibc.ver: Do not define inheritance from
11869         GCC_4.4.0 here.
11870
11871 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
11872
11873         * config/lm32/t-lm32: New file.
11874         * config.gcc: Use the above file when targetting lm32.
11875
11876 2010-03-28  Duncan Sands  <baldrick@free.fr>
11877
11878         * Makefile.in (PLUGIN_HEADERS): Add except.h.
11879
11880 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
11881
11882         PR middle-end/43431
11883         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
11884         Improve vectorization cost model diagnostic.
11885
11886 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
11887
11888         PR middle-end/43436
11889         * tree-vect-data-refs.c (vect_analyze_data_refs): When
11890         compute_data_dependences_for_loop returns false, early exit
11891         and output an extra diagnostic for the failed data reference
11892         analysis.
11893
11894 2010-03-29  Richard Guenther  <rguenther@suse.de>
11895
11896         PR tree-optimization/43560
11897         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
11898         (can_sm_ref_p): Treat stores to readonly locations as trapping.
11899
11900 2010-03-29  Jie Zhang  <jie@codesourcery.com>
11901
11902         PR 43564
11903         * toplev.c (process_options): Set optimization_default_node
11904         and optimization_current_node.
11905         * opts.c (decode_options): Don't set optimization_default_node
11906         and optimization_current_node.
11907
11908 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
11909
11910         * config/rtems.h: Abandon -qrtems_debug.
11911
11912 2010-03-28  Jan Hubicka  <jh@suse.cz>
11913
11914         PR tree-optimization/43505
11915         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
11916         map should not be copied.
11917
11918 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11919
11920         PR middle-end/41674
11921         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
11922         cdtors, set DECL_PRESERVE_P.
11923         * ipa.c (cgraph_externally_visible_p): Return true if declaration
11924         should be preseved.
11925
11926 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
11927
11928         PR tree-optimization/43528
11929         * stor-layout.c (place_field): Check that constant fits into
11930         unsigned HWI when skipping calculation of MS bitfield layout.
11931
11932 2010-03-27  Jan Hubicka  <jh@suse.cz>
11933
11934         PR middle-end/43391
11935         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
11936         notice_global_symbol work.
11937
11938 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
11939
11940         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
11941         instead of dwarf2out_decl.
11942         (struct var_loc_node): Remove section_label field.
11943         (dwarf2out_function_decl): New function.
11944         (dwarf2out_var_location): Don't set section_label field.
11945         (dwarf2out_begin_function): Don't empty decl_loc_table here.
11946
11947 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11948
11949         PR tree-optimization/43544
11950         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
11951         First argument for builtin vectorized function hook is now a
11952         tree to be able to distinguish between machine specific and
11953         standard builtins.
11954         * targhooks.c (default_builtin_vectorized_function): Ditto.
11955         * targhooks.h (default_builtin_vectorized_function): Ditto.
11956         * target.h (struct gcc_target): Ditto.
11957         * tree-vect-stmts.c (vectorizable_function): Ditto.
11958         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
11959         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
11960         Ditto.
11961
11962 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
11963
11964         PR c/43381
11965         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
11966         nested binding iff it is a FUNCTION_DECL.
11967         (store_parm_decls_newstyle): Pass nested=true to bind for
11968         FUNCTION_DECLs amongst parameters.
11969
11970 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
11971
11972         * var-tracking.c (vt_expand_loc_callback): Don't run
11973         cselib_expand_value_rtx_cb in dummy mode if
11974         cselib_dummy_expand_value_rtx_cb returned false.
11975
11976         * var-tracking.c (emit_note_insn_var_location): For one part
11977         notes with offset 0, don't add EXPR_LIST around the location.
11978         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
11979         add_location_or_const_value_attribute): Adjust for that change.
11980
11981         PR debug/43540
11982         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
11983         into first operand and location into second.
11984         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
11985         dw_cfi_oprnd_loc for DW_CFA_expression.
11986         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
11987         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
11988         assume first argument is regnum and second argument is location.
11989
11990 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
11991
11992         PR target/42113
11993         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
11994         of scratch register to DImode.  Split to DImode comparison operator.
11995         Use SImode subreg of scratch register in the multiplication.
11996         (*cmp_sadd_sidi): Ditto.
11997         (*cmp_ssub_si): Ditto.
11998         (*cmp_ssub_sidi): Ditto.
11999
12000 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
12001
12002         PR target/43524
12003         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
12004         Remove invalid assert and wrong comment.
12005
12006 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
12007
12008         PR debug/43516
12009         * flags.h (final_insns_dump_p): New extern.
12010         * final.c (final_insns_dump_p): New variable.
12011         (rest_of_clean_state): Set it before -fdump-final-insns=
12012         dumping, clear afterwards.
12013         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
12014         MEM_ALIAS_SET on MEMs.
12015
12016 2010-03-26  David S. Miller  <davem@davemloft.net>
12017
12018         * configure.ac: Fix sparc GOTDATA_OP bug check.
12019         * configure: Rebuild.
12020
12021 2010-03-26  Alan Modra  <amodra@gmail.com>
12022
12023         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
12024
12025 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12026
12027         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
12028         TLS_SECTION_ASM_FLAG.
12029
12030 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
12031
12032         PR bootstrap/43511
12033         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
12034         Clear first_function_block_is_cold.
12035
12036         PR c/43385
12037         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
12038         argument if the argument is truth_value_p.
12039
12040 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12041
12042         * config/rs6000/constraints.md: Update copyright year for my changes.
12043
12044         PR target/43484
12045         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
12046         used in reg+reg addressing, swap registers.
12047
12048 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
12049
12050         PR debug/43293
12051         * target.h (struct gcc_target): Add code_end hook.
12052         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
12053         if not yet defined.
12054         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
12055         * toplev.c (compile_file): Call targetm.asm_out.code_end
12056         hook before unwind info/debug info output.
12057         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
12058         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
12059         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
12060         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
12061         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
12062         * config/i386/i386.c (ix86_file_end): Renamed to...
12063         (ix86_code_end): ... this.  Make static.  Don't call
12064         file_end_indicate_exec_stack.  Emit unwind info using
12065         final_start_function/final_end_function.
12066         (darwin_x86_file_end): Remove.
12067         (TARGET_ASM_CODE_END): Define.
12068         * config/i386/i386.h (TARGET_ASM_FILE_END,
12069         NEED_INDICATE_EXEC_STACK): Don't define.
12070         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
12071         (TARGET_ASM_FILE_END): Define to darwin_file_end.
12072         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
12073         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
12074
12075         PR target/43498
12076         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
12077         at the beginning and final_end_function at the end.
12078         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
12079
12080 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12081
12082         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
12083         and Sun as TLS syntax.
12084         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
12085         * configure: Regenerate.
12086         * config.in: Regenerate.
12087         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
12088         (default_elf_asm_named_section): Use it.
12089         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
12090         (i386_output_dwarf_dtprel): Likewise.
12091         (output_addr_const_extra): Likewise.
12092         (output_pic_addr_const): Lowercase @GOTTPOFF.
12093         (output_addr_const_extra): Likewise.
12094         (output_pic_addr_const): Lowercase @GOTNTPOFF.
12095         (output_addr_const_extra): Likewise.
12096         (output_pic_addr_const): Lowercase @INDNTPOFF.
12097         (output_addr_const_extra): Likewise.
12098         (output_pic_addr_const): Lowercase @NTPOFF.
12099         (output_addr_const_extra): Likewise.
12100         (output_pic_addr_const): Lowercase @TPOFF.
12101         (output_addr_const_extra): Likewise.
12102         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
12103         (*tls_global_dynamic_64): Likewise.
12104         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
12105         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
12106
12107         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
12108         (ASM_OUTPUT_TLS_COMMON): Use it.
12109         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
12110
12111         PR target/38118
12112         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
12113         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
12114         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
12115         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
12116         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
12117         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
12118
12119 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12120
12121         * config/i386/i386.c (override_options): Don't accept
12122         -mtls-dialect=sun any longer.
12123         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
12124         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
12125         (*tls_local_dynamic_base_32_sun): Likewise.
12126         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
12127
12128 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
12129
12130         PR debug/43508
12131         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
12132         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
12133
12134         PR debug/43479
12135         * ira.c (adjust_cleared_regs): New function.
12136         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
12137
12138         PR debug/19192
12139         PR debug/43479
12140         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
12141         from gimple_block.
12142         * expr.c (expand_expr_real): Restore previous
12143         curr_insn_source_location and curr_insn_block after
12144         expand_expr_real_1 call.
12145         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
12146         instead of expand_expr_real_1.
12147
12148 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
12149
12150         PR rtl-optimization/43413
12151         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
12152         hard regs too.
12153
12154 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
12155
12156         PR target/43348
12157         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
12158         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
12159
12160 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
12161
12162         * config/i386/i386.c (ix86_target_string): Add -mfma.
12163         Fix a typo in comment.
12164
12165 2010-03-22  Mike Stump  <mikestump@comcast.net>
12166
12167         PR target/23071
12168         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
12169         Don't overly align based upon packed packed fields.
12170
12171 2010-03-22  Jason Merrill  <jason@redhat.com>
12172
12173         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
12174         Use () rather than [], and move before the element type.
12175
12176 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12177
12178         * doc/configfiles.texi (Configuration Files): Removed
12179         fixinc/Makefile*, intl/Makefile.*.
12180         * doc/makefile.texi: Fixed markup. Abstract from version
12181         control system used.
12182         (Makefile): Removed obsolete gcc/java/parse.y example.
12183         * doc/sourcebuild.texi: Likewise.
12184         (Top Level): Added config, gnattools, libdecnumber, libgcc,
12185         libgomp, libssp.  Removed fastjar.
12186         (Miscellaneous Docs): Clarify location.
12187         Added COPYING3, COPYING3.LIB.
12188         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
12189
12190 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12191
12192         PR target/38085
12193         * config/i386/i386.c (x86_function_profiler)
12194         [!NO_PROFILE_COUNTERS]: Fix typo.
12195         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
12196         instead of callq.
12197
12198 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
12199             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12200
12201         * doc/sourcebuild.texi (Test Directives): Split into six
12202         subsections, with most of the current text in new subsections
12203         Directives, Selectors, and Final Actions.
12204         (Directives): Split list of test directives into multiple
12205         subsubsections.
12206         (Selectors): Describe use and syntax of selectors.
12207         (Effective-Target Keywords): Describe all existing keywords.
12208         (Add Options): Describe features for dg-add-options.
12209         (Require Support): Describe variants of dg-require-support.
12210         (Final Actions): Describe commands to use in dg-final.
12211
12212 2010-03-22  Michael Matz  <matz@suse.de>
12213
12214         PR middle-end/43475
12215         * recog.c (validate_replace_rtx_group): Replace also in
12216         REG_EQUAL and REG_EQUIV notes.
12217
12218 2010-03-22  Richard Guenther  <rguenther@suse.de>
12219
12220         PR tree-optimization/43390
12221         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
12222         sure vector extracts are type correct.
12223
12224 2010-03-22  Richard Guenther  <rguenther@suse.de>
12225
12226         PR middle-end/40106
12227         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
12228         x * sqrt (x) even when optimizing for size if the target
12229         has native support for sqrt.
12230
12231 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
12232
12233         * varasm.c (make_decl_rtl_for_debug): Also clear
12234         flag_mudflap for the duration of make_decl_rtl call.
12235
12236         PR debug/43443
12237         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
12238         locs from preserved VALUEs.
12239
12240 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12241
12242         PR middle-end/42718
12243         * pa.md (movmemsi): Set align to one if zero.
12244         (movmemdi): Likewise.
12245
12246 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
12247
12248         PR target/42321
12249         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
12250         with their corresponding prologue pushes.
12251
12252 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
12253
12254         PR target/43156
12255         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
12256         at the begining or end.
12257         (spu_expand_epilogue): Likewise.
12258
12259 2010-03-20  Richard Guenther  <rguenther@suse.de>
12260
12261         PR rtl-optimization/43438
12262         * combine.c (make_extraction): Properly zero-/sign-extend an
12263         extraction of the low part of a CONST_INT.  Also handle
12264         CONST_DOUBLE.
12265
12266 2010-03-19  Mike Stump  <mikestump@comcast.net>
12267
12268         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
12269         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
12270         (override_options): Use SUBTARGET32_DEFAULT_CPU.
12271
12272 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
12273
12274         PR c/43211
12275         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
12276         an error.
12277
12278 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
12279
12280         PR rtl-optimization/42258
12281         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
12282         use that may match DEF.
12283
12284         PR target/40697
12285         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
12286         the cost of loading the constant rather than assuming
12287         COSTS_N_INSNS (1).
12288         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
12289         outer code is AND, do the same tests as the andsi3 expander and
12290         return COSTS_N_INSNS (1) if and is cheap.
12291
12292         * optabs.c (avoid_expensive_constant): Fix formatting.
12293
12294 2010-03-19  Michael Matz  <matz@suse.de>
12295
12296         PR c++/43116
12297         * attribs.c (decl_attributes): When rebuilding a function pointer
12298         type use the same qualifiers as the original pointer type.
12299
12300 2010-03-19  Martin Jambor  <mjambor@suse.cz>
12301
12302         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
12303         and is_gimple_ip_invariant_address.
12304
12305 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12306
12307         Revert
12308         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12309
12310         * config/arm/arm.c (arm_override_options): Turn off
12311         flag_dwarf2_cfi_asm for AAPCS variants.
12312
12313 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12314
12315         PR target/43399
12316         * config/arm/arm.c (emit_multi_reg_push): Update comments.
12317         Use PRE_MODIFY instead of PRE_DEC.
12318         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
12319         (vfp_emit_fstmd): Likewise.
12320
12321 2010-03-19  Michael Matz  <matz@suse.de>
12322
12323         PR target/43305
12324         * builtins.c (expand_builtin_interclass_mathfn,
12325         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
12326         if that fails.
12327
12328 2010-03-19  Richard Guenther  <rguenther@suse.de>
12329
12330         PR tree-optimization/43415
12331         * tree-ssa-pre.c (phi_translate): Split out worker to ...
12332         (phi_translate_1): ... this.
12333         (phi_translate): Move all caching here.  Cache all NARY
12334         and REFERENCE translations.
12335
12336 2010-03-19  David S. Miller  <davem@davemloft.net>
12337
12338         With help from Eric Botcazou.
12339         * config/sparc/sparc.c: Include dwarf2out.h.
12340         (emit_pic_helper): Delete.
12341         (pic_helper_symbol_name): Delete.
12342         (pic_helper_emitted_p): Delete.
12343         (pic_helper_needed): New.
12344         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
12345         (get_pc_thunk_name): New.
12346         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
12347         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
12348         Set pic_helper_needed to true.  Don't call emit_pic_helper.
12349         (sparc_expand_prologue): Update load_pic_register call.
12350         (sparc_output_mi_thunk): Likewise.
12351         (sparc_file_end): Emit a hidden comdat symbol for the PIC
12352         thunk if possible.  Output CFI information as needed.
12353
12354 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
12355             Jack Howarth <howarth@bromo.med.uc.edu>
12356
12357         PR target/36399
12358         * config/i386/i386.h: Fix ABI on darwin x86-32.
12359
12360 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
12361
12362         * tree.h: Declare make_decl_rtl_for_debug.
12363         * varasm.c (make_decl_rtl_for_debug): New.
12364         * dwarf2out.c (rtl_for_decl_location): Call it.
12365         * cfgexpand.c (expand_debug_expr): Call it.
12366
12367 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
12368
12369         PR bootstrap/43399
12370         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
12371         mem_mode.
12372
12373         PR bootstrap/43403
12374         * var-tracking.c (vt_init_cfa_base): Do nothing if
12375         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
12376
12377 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
12378
12379         PR debug/42873
12380         * var-tracking.c (canonicalize_vars_star): New.
12381         (dataflow_post_merge_adjust): Use it.
12382
12383 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
12384
12385         PR debug/43058
12386         * var-tracking.c (non_suitable_const): New function.
12387         (add_uses): For DEBUG_INSNs with constants, don't record any
12388         value, instead just the constant value itself.
12389         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
12390         is not VAR_LOC_UNKNOWN_P, set var to the constant.
12391         (emit_notes_in_bb): Likewise.
12392         (emit_note_insn_var_location): For onepart variables if
12393         cur_loc is a VOIDmode constant, use DECL_MODE.
12394
12395 2010-03-18  Martin Jambor  <mjambor@suse.cz>
12396
12397         PR middle-end/42450
12398         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
12399         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
12400         all non-clones.  Moved call redirection...
12401         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
12402         (cgraph_materialize_all_clones): Dispose of all
12403         combined_args_to_skip bitmaps.
12404         (verify_cgraph_node): Do not check for edges pointing to wrong
12405         nodes in inline clones.
12406         * tree-inline.c (copy_bb): Call
12407         cgraph_redirect_edge_call_stmt_to_callee.
12408         * ipa.c (cgraph_remove_unreachable_nodes): Call
12409         cgraph_node_remove_callees even when there are used clones.
12410
12411 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
12412
12413         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
12414
12415 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
12416
12417         PR target/43383
12418         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
12419         for 32bit.
12420
12421 2010-03-18  Michael Matz  <matz@suse.de>
12422
12423         PR middle-end/43419
12424         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
12425         into sqrt(x) if we need to preserve signed zeros.
12426
12427 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
12428             Eric Botcazou  <ebotcazou@adacore.com>
12429
12430         PR rtl-optimization/43360
12431         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
12432         note if we don't know its invariant status.
12433
12434 2010-03-18  Michael Matz  <matz@suse.de>
12435
12436         PR tree-optimization/43402
12437         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
12438         PHI chains of ssa names registered for update.
12439
12440 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
12441
12442         PR target/42427
12443         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
12444         non-offsettable and pre_modify update addressing.
12445         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
12446         and "2" alternatives "#".
12447         (*movdd_softfloat32): Make all alternatives "#";
12448         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
12449         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
12450         (*movdf_softfloat32): Make all alternatives "#";
12451         (movdi): Use the new DIFD mode iterator to create a common splitter
12452         for movdi, movdf and movdd patterns.
12453
12454 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
12455
12456         * common.opt (dumpdir): Remove redundant tab.
12457
12458 2010-03-17  Martin Jambor  <mjambor@suse.cz>
12459
12460         PR tree-optimization/43347
12461         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
12462         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
12463
12464 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
12465
12466         PR rtl-optimization/42216
12467         * regrename.c (create_new_chain): New function, broken out from...
12468         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
12469         appending a use to an empty chain.
12470         (build_def_use): Remove previous changes that convert OP_INOUT to
12471         OP_OUT operands; instead detect the case where an OP_INOUT operand
12472         uses a previously untracked register and create an empty chain for it.
12473
12474 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12475
12476         * doc/extend.texi (Function Attributes): Rewrite unfinished
12477         sentence in ms_abi documentation.
12478
12479 2010-03-17  Alan Modra  <amodra@gmail.com>
12480
12481         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
12482         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
12483         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
12484         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
12485
12486 2010-03-16  Richard Henderson  <rth@redhat.com>
12487
12488         PR middle-end/43365
12489         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
12490         (lower_try_finally): Save and restore eh_seq around the expansion
12491         of the try-finally.
12492
12493 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
12494
12495         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
12496         statements before splitting block.
12497
12498 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12499
12500         * doc/sourcebuild.texi (Testsuites): Fix markup.
12501         Use pathnames relative to gcc/testsuite.
12502         (Test Directives): Move description of how timeout is determined.
12503         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
12504         (C Tests): Correct gcc.misc-tests directory.
12505         Framework tests now live in gcc.test-framework.
12506
12507 2010-03-16  Richard Guenther  <rguenther@suse.de>
12508
12509         PR middle-end/43379
12510         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
12511         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
12512
12513 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
12514             Alexandre Oliva  <aoliva@redhat.com>
12515
12516         PR tree-optimization/42917
12517         * lambda-code.c (remove_iv): Skip debug statements.
12518         (lambda_loopnest_to_gcc_loopnest): Likewise.
12519         (not_interesting_stmt): Debug statements are not interesting.
12520
12521 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
12522
12523         PR debug/43051
12524         PR debug/43092
12525         * cselib.c (cselib_preserve_constants,
12526         cfa_base_preserved_val): New static variables.
12527         (preserve_only_constants): New function.
12528         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
12529         clear its REG_VALUES.  If cselib_preserve_constants, don't
12530         empty the whole hash table, but preserve there VALUEs with constants,
12531         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
12532         (cselib_preserve_cfa_base_value): New function.
12533         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
12534         (cselib_init): Change argument to int bitfield.  Set
12535         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
12536         is in it.
12537         (cselib_finish): Clear cselib_preserve_constants and
12538         cfa_base_preserved_val.
12539         * cselib.h (enum cselib_record_what): New enum.
12540         (cselib_init): Change argument to int.
12541         (cselib_preserve_cfa_base_value): New prototype.
12542         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
12543         * dse.c (dse_step1): Likewise.
12544         * cfgcleanup.c (thread_jump): Likewise.
12545         * sched-deps.c (sched_analyze): Likewise.
12546         * gcse.c (local_cprop_pass): Likewise.
12547         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
12548         If FN is non-NULL, call the callback always and whenever it returns
12549         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
12550         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
12551         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
12552         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
12553         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
12554         * var-tracking.c: Include recog.h.
12555         (bb_stack_adjust_offset): Remove.
12556         (vt_stack_adjustments): Don't call it, instead just gather the
12557         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
12558         (adjust_stack_reference): Remove.
12559         (compute_cfa_pointer): New function.
12560         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
12561         (struct adjust_mem_data): New type.
12562         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
12563         functions.
12564         (get_address_mode): New function.
12565         (replace_expr_with_values): Use it.
12566         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
12567         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
12568         (adjust_sets): Remove.
12569         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
12570         Use get_address_mode.
12571         (get_adjusted_src): Remove.
12572         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
12573         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
12574         (add_with_sets): Don't call adjust_sets.
12575         (fp_setter, vt_init_cfa_base): New functions.
12576         (vt_initialize): Change return type to bool.  Move most of pool etc.
12577         initialization to the beginning of the function from end.  Pass
12578         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
12579         If !frame_pointer_needed, call vt_stack_adjustment before mos
12580         vector is filled, call vt_init_cfa_base if argp/framep has been
12581         eliminated to sp.  If frame_pointer_needed and argp/framep has
12582         been eliminated to hard frame pointer, set
12583         hard_frame_pointer_adjustment and call vt_init_cfa_base after
12584         encountering fp setter in the prologue.  For MO_ADJUST, call
12585         log_op_type before pusing the op into mos vector, not afterwards.
12586         Call adjust_insn before cselib_process_insn/add_with_sets,
12587         call cancel_changes (0) afterwards.
12588         (variable_tracking_main_1): Adjust for vt_initialize calling
12589         vt_stack_adjustments and returning whether it succeeded or not.
12590
12591 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
12592
12593         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
12594         debug statements.
12595
12596 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
12597
12598         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
12599         has been set.
12600         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
12601         drap_reg has not been set.
12602
12603 2010-03-15  Michael Matz  <matz@suse.de>
12604
12605         PR middle-end/43300
12606         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
12607         use it to expand block copies.
12608         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
12609         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
12610         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
12611
12612 2010-03-15  Richard Guenther  <rguenther@suse.de>
12613
12614         PR tree-optimization/43367
12615         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
12616         elimination check.
12617
12618 2010-03-15  Richard Guenther  <rguenther@suse.de>
12619
12620         PR tree-optimization/43317
12621         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
12622
12623 2010-03-15  Martin Jambor  <mjambor@suse.cz>
12624
12625         PR tree-optimization/43141
12626         * tree-sra.c (create_abstract_origin): New function.
12627         (modify_function): Call create_abstract_origin.
12628
12629 2010-03-15  Chris Demetriou  <cgd@google.com>
12630
12631         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
12632         wasn't copied.
12633
12634 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12635
12636         PR middle-end/43354
12637         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
12638         call insert_out_of_ssa_copy for default definitions.
12639
12640 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12641
12642         * graphite-clast-to-gimple.c (my_long_long): Defined.
12643         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
12644         * graphite-sese-to-poly.c (my_long_long): Defined.
12645         (scop_ivs_can_be_represented): Use it.
12646
12647 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12648
12649         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
12650         graphite-max-bbs-per-function, and loop-block-tile-size.
12651         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
12652         with "maximum".
12653         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
12654
12655 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12656
12657         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
12658         forward declaration.
12659         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
12660         (add_upper_bounds_from_estimated_nit): New.
12661         (build_loop_iteration_domains): Use it.
12662
12663 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12664
12665         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
12666
12667 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12668
12669         PR middle-end/43306
12670         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
12671         should be an INTEGER_CST.  Also handle CASE_CONVERT.
12672
12673 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12674
12675         * graphite.c (graphite_initialize): To bound the number of bbs per
12676         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
12677         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
12678         * doc/invoke.texi: Document it.
12679
12680 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12681
12682         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
12683         * graphite-sese-to-poly.h (build_poly_scop): Same.
12684
12685 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12686
12687         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
12688         the number of parameters in the scop.  Use as an upper bound
12689         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
12690         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
12691         * doc/invoke.texi: Document it.
12692
12693 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
12694
12695         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
12696         * doc/c-tree.texi: Remove.
12697         * doc/generic.texi: Merge c-tree.texi here.
12698         * doc/gccint.texi (Trees): Remove menu entry.
12699         (c-tree.texi): Remove @include.
12700         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
12701         * doc/languages.texi (Reading RTL): Ditto.
12702
12703 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
12704
12705         PR target/42869
12706         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
12707
12708 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
12709
12710         PR middle-end/42431
12711         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
12712         code added to work around reload clobbering CONST insns.
12713
12714 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
12715
12716         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
12717         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
12718         (cselib_preserve_only_values): Remove retain argument, don't
12719         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
12720         * cselib.h (cselib_preserve_only_values): Remove retain argument.
12721         * var-tracking.c (micro_operation): Move insn field before union.
12722         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
12723         (struct variable_tracking_info_def): Remove n_mos field, change
12724         mos into a vector of micro_operations.
12725         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
12726         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
12727         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
12728         changing into a vector.
12729         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
12730         come before all other uops generated by add_stores.
12731         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
12732         argument removal.
12733         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
12734         a vector.  Run just one pass over the bbs instead of separate counting
12735         and computation phase.
12736         (vt_finalize): Free VTI (bb)->mos vector instead of array.
12737
12738         PR debug/43329
12739         * tree-inline.c (remap_decls): Put old_var rather than origin_var
12740         into *nonlocalized_list vector.
12741         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
12742         even if origin is non-NULL.
12743         (gen_variable_die): Likewise.
12744         (process_scope_var): Don't change origin.
12745         (gen_decl_die): Likewise.
12746         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
12747         before adding new edges instead of after it, fix moving over
12748         debug stmts.
12749
12750 2010-03-11  David S. Miller  <davem@davemloft.net>
12751
12752         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
12753         of four.
12754         * configure: Rebuild.
12755
12756 2010-03-11  Martin Jambor  <mjambor@suse.cz>
12757
12758         PR tree-optimization/43257
12759         * tree.c (assign_assembler_name_if_neeeded): New function.
12760         (free_lang_data_in_cgraph): Assembler name assignment moved to the
12761         above new function.
12762         * tree.h (assign_assembler_name_if_neeeded): Declare.
12763         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
12764         the function if needed.
12765
12766 2010-03-11  Chris Demetriou  <cgd@google.com>
12767
12768         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
12769         include/stdint-gcc.h, and include/stdint.h world-readable.
12770
12771 2010-03-11  Richard Guenther  <rguenther@suse.de>
12772
12773         PR tree-optimization/43255
12774         * tree-vrp.c (process_assert_insertions_for): Do not insert
12775         asserts for trivial conditions.
12776
12777 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12778
12779         PR tree-optimization/43280
12780         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
12781         generation.  Move calculation of size out of the if branch.
12782         (find_bswap): Modify compare number generation.
12783
12784 2010-03-11  Richard Guenther  <rguenther@suse.de>
12785
12786         PR lto/43200
12787         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
12788         (input_gimple_stmt): Fixup handled component types during
12789         operand read.  Also fix up decls in ADDR_EXPRs.
12790
12791 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
12792
12793         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
12794         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
12795
12796 2010-03-10  Jan Hubicka  <jh@suse.cz>
12797
12798         PR c/43288
12799         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
12800         * varasm.c (get_variable_section): Don't do that here...
12801         (make_decl_rtl): ... and here.
12802         (do_assemble_alias): Produce decl RTL.
12803         (assemble_alias): Likewise.
12804
12805 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
12806
12807         PR debug/43290
12808         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
12809         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
12810         of fde->vdrap_reg.
12811         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
12812         (based_loc_descr): Only express drap or vdrap regno based expressions
12813         using DW_OP_fbreg when not optimizing.
12814         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
12815         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
12816         REG_CFA_SET_VDRAP note.
12817
12818 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
12819
12820         PR tree-optimization/43236
12821         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
12822         error in calculation of base address in reverse iteration case.
12823         (generate_builtin): Take number of latch executions if the statement
12824         is in the latch.
12825
12826 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
12827
12828         PR middle-end/42859
12829         * tree-eh.c: Include pointer-set.h.
12830         (lower_eh_dispatch): Filter out duplicate case labels and
12831         remove the unneeded edge when the label is unused.  Return
12832         true when some edges are removed.
12833         (execute_lower_eh_dispatch): When any lowering resulted in
12834         removing an edge, also delete unreachable blocks.
12835
12836 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
12837
12838         PR bootstrap/43287
12839         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12840         UNSPEC_MACHOPIC_OFFSET.
12841
12842 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
12843
12844         PR target/43294
12845         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
12846         (m68k_delegitimize_address): New function.
12847
12848 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
12849
12850         PR debug/43299
12851         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
12852
12853         PR debug/43299
12854         * var-tracking.c (adjust_sets): New function.
12855         (count_with_sets, add_with_sets): Use it.
12856         (get_adjusted_src): New inline function.
12857         (add_stores): Use it.
12858
12859         PR debug/43304
12860         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
12861         call cselib_dummy_expand_value_rtx_cb instead of
12862         cselib_expand_value_rtx_cb.
12863
12864         PR debug/43293
12865         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
12866         * config/i386/i386.c: Include debug.h and dwarf2out.h.
12867         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
12868         and .cfi_endproc around the pic thunks.
12869         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
12870         all queued unwind info register saves are saved before the call.
12871         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
12872         considered as sp-=4 for unwind info and the pop as sp+=4 which
12873         also clobbers dest, but doesn't actually restore it.
12874
12875         PR debug/43290
12876         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
12877         RTX_FRAME_RELATED_P.
12878
12879 2010-03-09  Jie Zhang  <jie@codesourcery.com>
12880
12881         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
12882         whitespaces in output template.
12883
12884 2010-03-09  Jie Zhang  <jie@codesourcery.com>
12885
12886         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
12887         out array boundary.
12888
12889 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
12890
12891         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
12892         builtins.exp in a separate job.
12893
12894 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12895
12896         * graphite-sese-to-poly.c (add_param_constraints): Use
12897         lower_bound_in_type and upper_bound_in_type.
12898
12899 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12900
12901         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
12902         instead of unsigned_type_node.
12903
12904 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12905             Reza Yazdani  <reza.yazdani@amd.com>
12906
12907         PR middle-end/43065
12908         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
12909         on pointer type parameters.
12910
12911 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
12912
12913         PR middle-end/42644
12914         PR middle-end/42130
12915         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
12916         handle conversions from pointer to integers.
12917         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
12918         induction variable, to be able to work with code generated by CLooG.
12919         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
12920         (build_poly_scop): Bail out if we cannot codegen a loop.
12921
12922 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
12923
12924         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
12925         code generation with gloog_error.
12926
12927 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12928
12929         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
12930         Call fold_convert on all the returned values.
12931         (expand_scalar_variables_expr): Pass to
12932         expand_scalar_variables_ssa_name the type of the resulting expression.
12933
12934 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12935
12936         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
12937         ppl_min_for_le_pointset.
12938         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
12939         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
12940
12941 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12942
12943         * graphite-dependences.c (map_into_dep_poly): Removed.
12944         (dependence_polyhedron_1): Use combine_context_id_scat.
12945
12946 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12947
12948         * graphite-poly.h (struct poly_scattering): Add layout documentation.
12949         (struct poly_bb): Same.
12950         (combine_context_id_scat): New.
12951
12952 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12953
12954         PR middle-end/42326
12955         * sese.c (name_defined_in_loop_p): Return false for default
12956         definitions.
12957
12958 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12959
12960         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
12961         and clean up the logic.
12962
12963 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12964
12965         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
12966         early return.
12967
12968 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
12969
12970         * var-tracking.c (remove_cselib_value_chains): Define only for
12971         ENABLE_CHECKING.
12972         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
12973         delete_slot_part, emit_notes_for_differences_1): Don't call
12974         remove_cselib_value_chains here.
12975         (set_slot_part, emit_notes_for_differences_2): Don't call
12976         add_cselib_value_chains here.
12977         (preserved_values): New vector.
12978         (preserve_value): New function.
12979         (add_uses, add_stores, vt_add_function_parameters): Use it
12980         instead of cselib_preserve_value.
12981         (changed_values_stack): New vector.
12982         (check_changed_vars_0): New function.
12983         (check_changed_vars_1, check_changed_vars_2): Use it.
12984         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
12985         changed_values_stack VALUEs.
12986         (vt_emit_notes): For all preserved_values call
12987         add_cselib_value_chains.  If ENABLE_CHECKING call
12988         remove_cselib_value_chains before verifying value_chains is empty.
12989         Initialize and free changed_values_stack.
12990         (vt_initialize): Initialize preserved_values.
12991         (vt_finalize): Free preserved_values.
12992
12993 2010-03-08  Richard Guenther  <rguenther@suse.de>
12994
12995         PR tree-optimization/43269
12996         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
12997         region detection.
12998
12999 2010-03-08  Martin Jambor  <mjambor@suse.cz>
13000
13001         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
13002         (ipa_is_param_called): Removed.
13003         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
13004         (ipa_print_node_params): Do not print the called flag.
13005         (ipa_write_node_info): Do not stream the called flag.
13006         (ipa_read_node_info): Likewise.
13007
13008 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
13009
13010         PR debug/43176
13011         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
13012         * cselib.c (struct expand_value_data): Add dummy field.
13013         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
13014         dummy to false.
13015         (cselib_dummy_expand_value_rtx_cb): New function.
13016         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
13017         any rtl.
13018         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
13019         * var-tracking.c: Include pointer-set.h.
13020         (variable): Change n_var_parts to char from int.  Add
13021         cur_loc_changed and in_changed_variables fields.
13022         (variable_canonicalize): Remove.
13023         (shared_var_p): New inline function.
13024         (unshare_variable): Maintain cur_loc_changed and
13025         in_changed_variables fields.  If var was in changed_variables,
13026         replace it there with new_var.  Just copy cur_loc instead of
13027         resetting it to something else.
13028         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
13029         (dataflow_set_union): Don't call variable_canonicalize.
13030         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
13031         of their DEBUG_EXPR_TREE_DECLs.
13032         (canonicalize_loc_order_check): Verify that cur_loc is NULL
13033         and in_changed_variables and cur_loc_changed is false.
13034         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
13035         and cur_loc_changed.  Don't update cur_loc here.
13036         (variable_merge_over_src): Don't call variable_canonicalize.
13037         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
13038         removing loc that is equal to cur_loc, clear cur_loc,
13039         set cur_loc_changed and ensure variable_was_changed is called.
13040         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
13041         compare pointers in cur_loc check, if it is equal to loc,
13042         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
13043         (variable_different_p): Remove compare_current_location argument,
13044         don't compare cur_loc.
13045         (dataflow_set_different_1): Adjust variable_different_p caller.
13046         (variable_was_changed): If dv had some var in changed_variables
13047         already, reset in_changed_variables flag for it and propagate
13048         cur_loc_changed over to the new variable.  On empty var
13049         always set cur_loc_changed.  Set in_changed_variables on whatever
13050         var is added to changed_variables.
13051         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
13052         Use shared_var_p.  When removing loc that is equal to cur_loc,
13053         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
13054         end, don't set it to something else, just call variable_was_changed.
13055         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
13056         loc being removed, clear cur_loc and set cur_loc_changed.
13057         Set cur_loc_changed if all locations have been removed.
13058         (struct expand_loc_callback_data): New type.
13059         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
13060         allocated.  Always create SUBREGs if simplify_subreg failed.
13061         Prefer to use cur_loc, when that fails and still in
13062         changed_variables (and seen first time) recompute it.  Set
13063         cur_loc_changed of variables which had to change cur_loc and
13064         compute elcd->cur_loc_changed if any of the subexpressions used
13065         had to change cur_loc.
13066         (vt_expand_loc): Adjust to pass arguments in
13067         expand_loc_callback_data structure.
13068         (vt_expand_loc_dummy): New function.
13069         (emitted_notes): New variable.
13070         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
13071         that weren't used for any other decl in current
13072         emit_notes_for_changes call call vt_expand_loc_dummy to update
13073         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
13074         first loc_chain location if NULL before.  Always use just
13075         cur_loc instead of first loc_chain location.  When cur_loc_changed
13076         is false, when not --enable-checking=rtl just don't emit any note.
13077         When rtl checking, compute the note and assert it is the same
13078         as previous note.  Clear cur_loc_changed and in_changed_variables
13079         at the end before removing from changed_variables.
13080         (check_changed_vars_3): New function.
13081         (emit_notes_for_changes): Traverse changed_vars to call
13082         check_changed_vars_3 on each changed var.
13083         (emit_notes_for_differences_1): Clear cur_loc_changed and
13084         in_changed_variables.  Recompute cur_loc of new_var.
13085         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
13086         (vt_emit_notes): Initialize and destroy emitted_notes.
13087
13088 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
13089
13090         PR rtl-optimization/42220
13091         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
13092         Use verify_reg_tracked to determine if we should use OP_OUT rather
13093         than OP_INOUT.
13094         (build_def_use): If we see an in-out operand for a register that we
13095         know nothing about, treat is an output if possible, fail the block if
13096         not.
13097
13098 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
13099
13100         PR debug/42897
13101         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
13102         permanently.
13103
13104 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
13105
13106         PR debug/42897
13107         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
13108         uses of relevant DEFs that are dead outside the loop too.
13109
13110 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
13111
13112         * var-tracking.c (dataflow_set_merge): Swap src and src2.
13113         Reverted:
13114         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
13115         PR debug/41371
13116         * var-tracking.c (values_to_unmark): New variable.
13117         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13118         values_to_unmark vector.  Moved body to...
13119         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
13120         instead queue it into values_to_unmark vector.
13121         (vt_find_locations): Free values_to_unmark vector.
13122
13123 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
13124
13125         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
13126         (site.exp): Export them when plugins are enabled.
13127
13128 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
13129
13130         PR middle-end/42326
13131         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
13132         that contain scevs.
13133         (chrec_fold_multiply): Same.
13134
13135 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
13136
13137         PR c/43248
13138         * c-decl.c (build_compound_literal): Return early if init is
13139         an error_mark_node.
13140
13141 2010-03-04  Martin Jambor  <mjambor@suse.cz>
13142
13143         PR tree-optimization/43164
13144         PR tree-optimization/43191
13145         * tree-sra.c (type_consists_of_records_p): Reject records with
13146         zero-size bit-fields at the end.
13147
13148 2010-03-04  Mike Stump  <mikestump@comcast.net>
13149
13150         * Makefile.in (TAGS): Remove *.y.
13151
13152 2010-03-04  Richard Guenther  <rguenther@suse.de>
13153
13154         PR tree-optimization/40761
13155         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
13156         in reverse order.
13157         (my_rev_post_order_compute): New function.
13158         (init_pre): Call it.
13159
13160 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
13161
13162         PR middle-end/43209
13163         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
13164         decrease the cost of an IV candidate when the cost is infinite.
13165
13166 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13167
13168         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
13169         Use '3DNow!' for the extension of that name, ensure normal space
13170         after the string.
13171         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
13172
13173 2010-03-03  Jeff Law  <law@redhat.com>
13174
13175         * PR middle-end/32693
13176         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
13177         than gen_rtx_SUBREG.
13178         (extract_bit_field_1): Likewise.
13179
13180 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
13181
13182         * doc/sourcebuild.texi (Test directives): Document that arguments
13183         include-opts and exclude-opts are now optional for dg-skip-if,
13184         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
13185
13186 2010-03-03  Jason Merrill  <jason@redhat.com>
13187
13188         PR c++/12909
13189         * cgraph.h (varpool_node): Add extra_name field.
13190         * varpool.c (varpool_extra_name_alias): New.
13191         (varpool_assemble_decl): Emit extra name aliases.
13192         (varpool_mark_needed_node): Look past an extra name alias.
13193         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
13194         * lto-streamer-in.c (lto_input_tree): Read it.
13195         * lto-streamer-out.c (output_unreferenced_globals): Write it.
13196
13197 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
13198
13199         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
13200         (sparc*-*-solaris2*): ...this.
13201
13202 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
13203
13204         PR debug/43229
13205         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
13206         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
13207         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
13208         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
13209
13210         PR debug/43237
13211         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
13212         fallthrough to default handling, just with want_address 0 instead of 2.
13213         For single element lists, add_AT_loc directly, otherwise create an
13214         artificial variable DIE and stick location list to it.
13215
13216         PR debug/43177
13217         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
13218         (VAL_EXPR_HAS_REVERSE): Define.
13219         (reverse_op): New function.
13220         (add_stores): For reversible operations add an extra MO_VAL_USE.
13221
13222 2010-03-02  Jason Merrill  <jason@redhat.com>
13223
13224         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
13225
13226 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13227
13228         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
13229         (sparc64-*-linux*): Likewise.
13230         (sparc64-*-solaris2*): Include assembler files before linker ones.
13231         (sparc-*-solaris2*): Simplify and reorder to match previous case.
13232         * config/sparc/gas.h: Delete.
13233         * config/sparc/sol2-64.h: Add copyright notice.
13234         * config/sparc/sol2-gas-bi.h: Likewise.
13235         * config/sparc/sol2-gld.h: Likewise.
13236         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
13237         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
13238         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
13239         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
13240         (sparc_elf_asm_named_section): Rename into...
13241         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
13242
13243 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
13244
13245         * config/alpha/alpha.c (override_options): Fix -mtune error message.
13246
13247 2010-03-02  Jeff Law  <law@redhat.com>
13248
13249         PR middle-end/42431
13250         * reload1.c (rtx_p, substitute_stack): Declare.
13251         (substitute): Record addresses of changed rtxs.
13252         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
13253         Restore the original rtx when complete.
13254         (reload): Free subsitute_stack when complete.
13255
13256 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
13257
13258         * doc/gccint.texi (menu): Add Testsuites as a chapter.
13259         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
13260         new chapter.
13261         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
13262         LTO Testing, gcov Testing, profopt Testing, compat Testing,
13263         Torture Tests): Change from subsection to section.
13264
13265 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
13266             Steven Bosscher  <steven@gcc.gnu.org>
13267
13268         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
13269         instead of bb.
13270
13271 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
13272
13273         PR middle-end/42640
13274         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
13275         the assignment from the new induction variable to the assignment
13276         of the value from the original loop PHI function.
13277
13278 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
13279             Daniel Jacobowitz  <dan@codesourcery.com>
13280
13281         * doc/sourcebuild.texi (Test directives): Clarify options to
13282         dg-skip-if.
13283
13284 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13285
13286         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
13287         Disable cfi directives unless GCC and gas agree on using read-only
13288         .eh_frame sections for 64-bit.
13289         * configure: Regenerate.
13290
13291 2010-03-01  Richard Guenther  <rguenther@suse.de>
13292
13293         PR tree-optimization/43220
13294         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
13295         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
13296
13297 2010-03-01  Richard Guenther  <rguenther@suse.de>
13298             Martin Jambor  <mjambor@suse.cz>
13299
13300         PR middle-end/41250
13301         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
13302         gimplified parameters.
13303
13304 2010-03-01  Christian Bruel  <christian.bruel@st.com>
13305
13306         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
13307
13308 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
13309
13310         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
13311
13312 2010-03-01  Richard Guenther  <rguenther@suse.de>
13313
13314         PR middle-end/43213
13315         * expr.c (expand_assignment): Use the alias-oracle to tell
13316         if the rhs aliases the result decl.
13317
13318 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13319
13320         PR pch/14940
13321         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
13322         to sol_gt_pch_get_address.
13323         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
13324         64-bit, SPARC and x86.
13325         (sol_gt_pch_get_address): New function.
13326
13327 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
13328
13329         * toplev.h (inform_n, error_n): Declare.
13330         * diagnostic.c (inform_n, error_n): New function.
13331
13332 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
13333
13334         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
13335         has no rtl yet when processing local_decls, queue it and recheck
13336         if deferred stack allocation hasn't assigned it rtl.
13337
13338 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
13339
13340         * config/sh/sh.c (unspec_bbr_uid): New.
13341         (gen_block_redirect): Use it instead of INSN_UID.
13342         (gen_far_branch): Likewise.
13343
13344 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
13345
13346         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
13347         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
13348
13349 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13350
13351         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
13352         (Warning Options): -Wno-conversion-null is valid for
13353         Objective-C++ as well.
13354         * doc/tm.texi (Named Address Spaces): Likewise.
13355         * doc/plugins.texi (Plugins): Replace TABs with spaces.
13356         * doc/tree-ssa.texi (Tree SSA): Likewise.
13357
13358 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13359
13360         PR bootstrap/43202
13361         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
13362         by default.  Don't set the default arch for
13363         i[34567]86-*-darwin*|x86_64-*-darwin*.
13364
13365 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13366
13367         PR bootstrap/43202
13368         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
13369         default.  Set the default 32bit/64bit archs with $with_arch
13370         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
13371
13372 2010-02-27  Richard Guenther  <rguenther@suse.de>
13373
13374         PR tree-optimization/43186
13375         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
13376         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
13377         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
13378         unroller iterations.
13379
13380 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13381
13382         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
13383         required and i[34567]86-*-* targets don't support 64bit ISA.
13384
13385 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
13386
13387         PR ada/43096
13388         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
13389         the same alias set.
13390
13391 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13392
13393         * config.gcc: Set the default arch at least to Prescott for
13394         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
13395         if SSE math is enabled.
13396
13397 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13398
13399         * diagnostic.c (diagnostic_initialize): Update.
13400         (diagnostic_report_diagnostic): Test inhibit_notes_p for
13401         informative notes.
13402         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
13403         (diagnostic_inhibit_notes): New.
13404         * toplev.c (process_options): inhibit notes with -fcompare-debug.
13405
13406 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13407
13408         PR c/20631
13409         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
13410         * doc/standards.texi: Likewise.
13411         * doc/extend.texi: Likewise.
13412         * doc/trouble.texi: Likewise.
13413         * doc/cppopts.texi: Likewise.
13414         * doc/install.texi: Likewise.
13415         * c.opt (std=c90,std=gnu90): New options.
13416         * c-opts.c (c_common_handle_option): Handle them.
13417
13418 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13419
13420         PR c/24577
13421         * c-decl.c (undeclared_variable): Use an informative note.
13422
13423 2010-02-26  Richard Guenther  <rguenther@suse.de>
13424
13425         PR tree-optimization/43186
13426         * gimple.h (gimple_fold): Remove.
13427         * gimple.c (gimple_fold): Remove.  Inline into single user ...
13428         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
13429         Try harder for conditions.
13430
13431 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
13432
13433         PR debug/43190
13434         * function.c (used_types_insert): Don't skip through named pointer
13435         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
13436         and it is different from the main variant's type.
13437
13438 2010-02-26  Nick Clifton  <nickc@redhat.com>
13439
13440         * config/rx/rx.md (sminsi3): Remove bogus alternative.
13441
13442 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13443
13444         * config.gcc: Support --with-fpmath=sse for x86.
13445
13446         * config/i386/ssemath.h: New.
13447
13448         * doc/install.texi (--with-fpmath=sse): Documented.
13449
13450 2010-02-26  Richard Guenther  <rguenther@suse.de>
13451
13452         PR tree-optimization/43188
13453         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
13454         vector types of over-aligned element type.
13455
13456 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
13457
13458         PR target/43175
13459         * config/i386/i386.c (expand_vec_perm_blend): Use correct
13460         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
13461
13462 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
13463
13464         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
13465
13466 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
13467
13468         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
13469         * var-tracking.c: Include diagnostic.h.
13470         (debug_dv): New function.
13471         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
13472
13473         PR debug/43160
13474         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
13475         (add_value_chain, add_value_chains, remove_value_chain,
13476         remove_value_chains): Handle DEBUG_EXPRs.
13477         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
13478
13479         PR debug/43161
13480         * regcprop.c (struct queued_debug_insn_change): New type.
13481         (struct value_data_entry): Add debug_insn_changes field.
13482         (struct value_data): Add n_debug_insn_changes field.
13483         (debug_insn_changes_pool): New variable.
13484         (free_debug_insn_changes, apply_debug_insn_changes,
13485         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
13486         (kill_value_one_regno): Call free_debug_insn_changes if needed.
13487         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
13488         fields.
13489         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
13490         changes for them.
13491         (copyprop_hardreg_forward_1): Don't call apply_change_group for
13492         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
13493         changes, call cprop_find_used_regs via note_stores.
13494         (copyprop_hardreg_forward): When copying vd from predecessor
13495         which has any queued DEBUG_INSN changes, make sure the pointers are
13496         cleared.  At the end call df_analyze and then if there are any
13497         DEBUG_INSN changes queued at the end of some basic block for still
13498         live registers, apply them.
13499         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
13500
13501 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
13502
13503         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
13504         (arm*-*-*): Ditto.
13505
13506 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
13507
13508         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
13509         targets.  Set the default with_cpu/with_arch from arch/cpu.
13510         Allow x86-64 and native for with_cpu/with_arch.
13511
13512 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
13513
13514         * ebitmap.c: Change calls to verify_popcount with calls to
13515         sbitmap_verify_popcount.
13516         (ebitmap_clear_bit): Fixed map->cacheindex test and
13517         map>cache update when bit clearing results in an empty
13518         element.
13519
13520 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
13521
13522         PR target/43154
13523         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
13524         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
13525         and support both V2DF and V2DI modes.
13526         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
13527         support both V2DF and V2DI modes.
13528         (general): Delete trailing whitespace from a few patterns.
13529
13530         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13531         V2DF/V2DI interleave high/low builtins.
13532
13533         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
13534         new VSX builtins.
13535
13536         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
13537         interleave high/low functions.
13538
13539 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
13540
13541         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
13542         #pragma extern_prefix.
13543
13544 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
13545
13546         PR debug/43166
13547         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
13548         BLKmode, assert op0 is a MEM and just adjust its mode.
13549
13550         PR debug/43165
13551         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
13552         if bitpos isn't multiple of mode's bitsize.
13553
13554 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13555
13556         * c.opt (-ftemplate-depth=): New.
13557         (-ftemplate-depth-): Deprecate.
13558         * optc-gen.awk: Handle -ftemplate-depth=.
13559         * opth-gen.awk: Likewise.
13560         * c-opts.c (c_common_handle_option): Likewise.
13561         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
13562
13563 2010-02-24  Jason Merrill  <jason@redhat.com>
13564
13565         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
13566
13567 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13568
13569         * cfg.c (alloc_aux_for_block): Remove inline.
13570         (alloc_aux_for_edge): Likewise.
13571
13572 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13573
13574         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
13575
13576 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13577
13578         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
13579         * config/i386/sol2-gas.h: New file.
13580         * config.gcc (i[34567]86-*-solaris2*): Use it.
13581
13582 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13583
13584         PR c/43128
13585         * c-typeck.c (ep_convert_and_check): New.
13586         (build_conditional_expr): Use it.
13587         (build_binary_op): Likewise.
13588
13589 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
13590
13591         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
13592
13593         PR debug/43150
13594         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
13595         bounds even for -O+.
13596         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
13597         expr needs to have DECL_NAME set.
13598
13599 2010-02-24  Nick Clifton  <nickc@redhat.com>
13600
13601         * config/mep/mep.c: Include gimple.h.
13602         (mep_function_uses_sp): Delete unused function.
13603         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
13604         parameters.  Use unsigned integers to count args.  Return a
13605         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
13606
13607 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
13608
13609         PR target/43107
13610         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
13611         greater or equal to nelt instead of 2 * nelt.
13612         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
13613         with nelt - 1.
13614
13615 2010-02-23  Jason Merrill  <jason@redhat.com>
13616
13617         PR debug/42800
13618         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
13619         in cfun->local_decls even if they have register types.
13620
13621         PR c++/42837
13622         * stor-layout.c (place_field): Don't warn about unnecessary
13623         DECL_PACKED if the type is packed.
13624
13625 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
13626
13627         PR target/43139
13628         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
13629         GOTOFF relocs, even when the base reg isn't pic pointer.
13630
13631 2010-02-23  Michael Matz  <matz@suse.de>
13632
13633         PR debug/43077
13634         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
13635         (expand_gimple_basic_block): Generate and use debug temps if there
13636         are debug uses left after the last real use of TERed ssa names.
13637         Unlink debug immediate uses when they are expanded.
13638
13639 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13640
13641         PR 43123
13642         * config/i386/i386.c (override_options): Reorganise to provide
13643         better error messages.
13644
13645 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13646
13647         PR middle-end/43083
13648         * graphite-scop-detection.c (create_single_exit_edge): Move
13649         the call to find_single_exit_edge to....
13650         (create_sese_edges): ...here.  Don't handle multiple edges
13651         exiting the function.
13652         (build_graphite_scops): Don't handle multiple edges
13653         exiting the function.
13654
13655 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13656
13657         PR middle-end/43097
13658         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
13659         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
13660
13661 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13662
13663         PR middle-end/43026
13664         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
13665
13666 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13667
13668         PR c++/43126
13669         * c-typeck.c (convert_arguments): Print declaration location.
13670         * c-common.c (validate_nargs): Rename as
13671         builtin_function_validate_nargs.
13672         (check_builtin_function_arguments): Update.
13673
13674 2010-02-22  Richard Guenther  <rguenther@suse.de>
13675
13676         PR lto/43045
13677         * tree-inline.c (declare_return_variable): Use the type of
13678         the call stmt lhs if available.
13679
13680 2010-02-22  Duncan Sands  <baldrick@free.fr>
13681
13682         * passes.c (register_pass): Always consider all pass lists when
13683         ref_pass_instance_number is zero.
13684
13685 2010-02-22  Richard Guenther  <rguenther@suse.de>
13686
13687         PR tree-optimization/42749
13688         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
13689         parameter.  Do arithmetic in the original type.
13690         (update_accumulator_with_ops): Likewise.
13691         (adjust_accumulator_values): Adjust.
13692
13693 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13694
13695         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
13696         (QI to BLKmode splitter): New splitter.
13697
13698 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
13699
13700         * config/i386/i386.c (initial_ix86_tune_features): Turn on
13701         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
13702
13703 2010-02-22  Richard Guenther  <rguenther@suse.de>
13704
13705         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
13706
13707 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
13708
13709         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
13710         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
13711         ($(T)crti.o, $(T)crtn.o): Remove rules.
13712
13713 2010-02-21  Tobias Burnus  <burnus@net-b.de>
13714
13715         PR fortran/35259
13716         * doc/invoke.texi (-fassociative-math): Document that this
13717         option is automatically enabled for Fortran.
13718
13719 2010-02-20  David S. Miller  <davem@davemloft.net>
13720
13721         * configure.ac: Test if linker and assembler properly support
13722         GOTDATA_OP relocations.
13723         * configure: Rebuild.
13724         * config.in: Likewise.
13725         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
13726         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
13727         (movsi_high_pic): Likewise.
13728         (movdi_lo_sum_pic): Likewise.
13729         (movdi_high_pic): Likewise.
13730         (movsi_pic_gotdata_op): New pattern.
13731         (movdi_pic_gotdata_op): Likewise.
13732         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
13733         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
13734
13735 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
13736
13737         PR target/43067
13738         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
13739         attribute to ssemul.
13740         (xop_mulv2div2di3_high): Ditto.
13741
13742 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13743
13744         PR c++/35669
13745         * c.opt (Wconversion-null): New option.
13746         * doc/invoke.texi (Wconversion-null): Document.
13747
13748 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13749
13750         * common.opt (Wlarger-than-): Add Undocumented.
13751
13752 2010-02-19  Mike Stump  <mikestump@comcast.net>
13753
13754         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
13755
13756 2010-02-19  Jason Merrill  <jason@redhat.com>
13757
13758         PR target/40332
13759         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
13760         * configure: Likewise.
13761
13762 2010-02-20  Alan Modra  <amodra@gmail.com>
13763
13764         PR middle-end/42344
13765         * cgraph.h (cgraph_make_decl_local): Declare.
13766         * cgraph.c (cgraph_make_decl_local): New function.
13767         (cgraph_make_node_local): Use it.
13768         * cgraphunit.c (cgraph_function_versioning): Likewise.
13769         * ipa.c (function_and_variable_visibility): Likewise.
13770
13771 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13772
13773         PR bootstrap/43121
13774         * except.c (sjlj_emit_function_enter): Don't call
13775         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
13776         directly.
13777         * rtl.h (add_reg_br_prob_note): Remove prototype.
13778
13779 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13780
13781         PR 41779
13782         * c-common.c (conversion_warning): Remove widening conversions
13783         before checking the conversion of integers to reals.
13784
13785 2010-02-19  Mike Stump  <mikestump@comcast.net>
13786
13787         PR middle-end/43125
13788         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
13789
13790         PR objc/43061
13791         * cgraphunit.c (process_function_and_variable_attributes): Check
13792         DECL_PRESERVE_P instead of looking up attribute "used".
13793         * ipa-pure-const.c (check_decl): Likewise.
13794         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
13795         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
13796         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
13797         instead of attribute "used".
13798         * config/sol2-c.c (solaris_pragma_init): Likewise.
13799         (solaris_pragma_fini): Likewise.
13800
13801 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13802
13803         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
13804         Use XCNEW instead of xcalloc.
13805         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
13806         XNEW instead of xmalloc.
13807         (get_fields): Use XNEWVEC instead of xmalloc.
13808
13809         PR debug/43084
13810         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
13811         populate vars array.
13812         (create_new_general_access): For debug stmts just reset value.
13813         (get_stmt_accesses): For accesses within debug stmts just record them
13814         using add_access_to_acc_sites instead of preventing the peeling or
13815         counting them as accesses.
13816
13817         PR middle-end/42233
13818         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
13819
13820 2010-02-19  Richard Guenther  <rguenther@suse.de>
13821
13822         PR tree-optimization/42916
13823         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
13824         instructions.
13825
13826 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
13827
13828         * configure.ac: Replace all uses of changequote in macro arguments
13829         with proper quoting.
13830
13831 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13832
13833         PR middle-end/42233
13834         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
13835
13836 2010-02-19  Richard Guenther  <rguenther@suse.de>
13837
13838         PR tree-optimization/42944
13839         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
13840         test for aliasing with errno.
13841
13842 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13843
13844         PR middle-end/42233
13845         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
13846         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
13847         * dojump.c: Include output.h.
13848         (inv): New inline function.
13849         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
13850         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
13851         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
13852         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
13853         argument, pass it down to other calls.
13854         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
13855         add REG_BR_PROB note to the conditional jump.
13856         * cfgexpand.c (add_reg_br_prob_note): Removed.
13857         (expand_gimple_cond): Don't call it, add the probability
13858         as last argument to jumpif_1/jumpifnot_1.
13859         * Makefile.in (dojump.o): Depend on output.h.
13860         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
13861         callers.
13862         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
13863         * stmt.c (do_jump_if_equal): Likewise.
13864         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
13865         * loop-unswitch.c (compare_and_jump_seq): Likewise.
13866         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
13867         Likewise.
13868         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
13869         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
13870         jumpifnot_1 callers.
13871         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
13872         callers.
13873         (store_expr): Adjust jumpifnot caller.
13874         (store_constructor): Adjust jumpif caller.
13875
13876         PR middle-end/42233
13877         * gimplify.c (gimple_boolify): For __builtin_expect call
13878         gimple_boolify also on its first argument.
13879
13880 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
13881
13882         * configure.ac (gnu-unique-object): Wrap regexps using [] in
13883         changequote block.
13884         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
13885         * configure: Regenerated.
13886
13887 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13888
13889         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
13890         lang_hooks.types_compatible_p instead of comptypes.
13891
13892 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
13893
13894         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
13895         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
13896         if __prefer_thumb__ is defined.
13897
13898 2010-02-18  Martin Jambor  <mjambor@suse.cz>
13899
13900         PR tree-optimization/43066
13901         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
13902         array with zero-sized element type.
13903
13904 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
13905
13906         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
13907         rtx, allocate struct var_loc_node here and return it to the
13908         caller, and only if it is actually needed.
13909         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
13910         move it earlier and return immediately if it returns NULL.
13911
13912 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
13913
13914         * config/sparc/gas.h: New file.  Restore
13915         TARGET_ASM_NAMED_SECTION to its ELF default.
13916         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
13917         check !HAVE_GNU_AS.
13918         * config/sparc/sparc.c (sparc_elf_asm_named_section):
13919         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
13920         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
13921         after sparc/sysv4.h.
13922
13923 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
13924
13925         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
13926
13927 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
13928
13929         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
13930         patterns from predicated pattern.
13931
13932 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
13933
13934         PR target/43103
13935         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
13936         for insn mnemonic suffix.
13937
13938 2010-02-17  Richard Guenther  <rguenther@suse.de>
13939
13940         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
13941         to loop PHI nodes.
13942
13943 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
13944
13945         PR debug/42918
13946         * caller-save.c (save_call_clobbered_regs): If BB ends with
13947         a DEBUG_INSN, move any notes in between last real insn and the last
13948         DEBUG_INSN after the last DEBUG_INSN.
13949
13950 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
13951
13952         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
13953         Fix return type.  Fix argument type.  Explain meaning of return value.
13954
13955 2010-02-16  Richard Guenther  <rguenther@suse.de>
13956
13957         PR tree-optimization/41043
13958         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
13959         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
13960         statements ...
13961         (vrp_visit_phi_node): ... but only for loop PHI nodes.
13962
13963 2010-02-16  Ira Rosen  <irar@il.ibm.com>
13964
13965         PR tree-optimization/43074
13966         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
13967         * tree-vect-loop.c (vect_analyze_loop_operations): Add
13968         vectorizable cycles in hybrid SLP check.
13969         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
13970
13971 2010-02-16  Richard Guenther  <rguenther@suse.de>
13972
13973         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
13974         (true_dependence): If memrefs_conflict_p computes must-alias
13975         trust it.  Move TBAA check after offset-based disambiguation.
13976         (canon_true_dependence): Likewise.
13977
13978 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
13979
13980         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
13981         * doc/invoke.texi: Document it.
13982         * var-tracking.c: Include toplev.h and params.h.
13983         (vt_find_locations): Return bool indicating success.  Compute
13984         hash sizes unconditionally.  Check new parameter, report.
13985         (variable_tracking_main_1): Check vt_find_locations results and
13986         retry.  Renamed from...
13987         (variable_tracking_main): ... this.  New wrapper to preserve
13988         flag_var_tracking_assignments.
13989         * Makefile.in (var-tracking.o): Adjust dependencies.
13990
13991 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
13992             Jakub Jelinek <jakub@redhat.com>
13993
13994         PR target/42854
13995         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
13996         if weak_import attribute is present.
13997         * config/darwin.c (machopic_select_section): Likewise.
13998
13999 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14000
14001         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
14002         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
14003         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
14004         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
14005
14006         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
14007         types.
14008
14009         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
14010         Fix argument types.
14011
14012         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
14013         Rewrite text to refer to the names.
14014
14015 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
14016
14017         * config/i386/i386-builtin-types.def
14018         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
14019         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
14020         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
14021         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
14022         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
14023         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
14024         IX86_BUILTIN_VPERMIL2PS256.
14025         (MULTI_ARG_4_DF2_DI_I): Defined.
14026         (MULTI_ARG_4_DF2_DI_I1): Defined.
14027         (MULTI_ARG_4_SF2_SI_I): Defined.
14028         (MULTI_ARG_4_SF2_SI_I1): Defined.
14029         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
14030         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
14031         __builtin_ia32_vpermil2ps256.
14032         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
14033         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
14034         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
14035         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
14036         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
14037         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
14038         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
14039         CODE_FOR_xop_vpermil2v8sf3.
14040         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
14041         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
14042         * config/i386/xopintrin.h (_mm_permute2_pd): New.
14043         (_mm256_permute2_pd): New.
14044         (_mm_permute2_ps): New.
14045         (_mm256_permute2_ps): New.
14046
14047 2010-02-15  Nick Clifton  <nickc@redhat.com>
14048
14049         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
14050         boolean parameters.  Use emit_jump_insn when emitting a pop
14051         instruction containing a return insn.
14052         (push): Use 'true' rather than '1' as second parameter to F.
14053         (h8300_expand_prologue): Likewise.
14054         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
14055         (h8300_expand_epilogue): Likewise.
14056
14057 2010-02-15  Richard Guenther  <rguenther@suse.de>
14058
14059         PR middle-end/43068
14060         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
14061         if that is zero.
14062
14063 2010-02-15  Nick Clifton  <nickc@redhat.com>
14064
14065         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
14066         delta.
14067
14068 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
14069
14070         * intl.c (fake_ngettext): New function.
14071         * intl.h (fake_ngettext): Declare.
14072         (ngettext): Define macro.
14073         * collect2.c (notice_translated): New function.
14074         (main): Use notice_translated and ngettext.
14075         * collect2.h (notice_translated): Declare.
14076
14077 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
14078
14079         * reorg.c (delete_computation): Comment fixes.
14080         * caller-save.c (setup_save_areas): Idem.
14081         * sel-sched-dump.c (dump_lv_set): Idem.
14082         * rtl.def: Idem.
14083
14084 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14085
14086         * config/s390/s390.c (s390_sched_init): New function.
14087         (TARGET_SCHED_INIT): Target hook defined.
14088
14089 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
14090             Jack Howarth  <howarth@bromo.med.uc.edu>
14091             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14092
14093         PR target/42982
14094         Partial revert of unintended change in fix for PR41605.
14095         * config/darwin.h: Fix typo.
14096         * config/darwin9.h: Same.
14097
14098 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
14099
14100         * c-pch.c (pch_init): Clear v.
14101
14102 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14103
14104         PR middle-end/42930
14105         * graphite-scop-detection.c (graphite_can_represent_scev): Call
14106         graphite_can_represent_init for MULT_EXPR.
14107
14108 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14109
14110         PR middle-end/42914
14111         PR middle-end/42530
14112         * graphite-sese-to-poly.c (remove_phi): New.
14113         (translate_scalar_reduction_to_array): Call remove_phi.
14114
14115 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14116
14117         PR middle-end/42771
14118         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
14119         * graphite-clast-to-gimple.h (gloog): Update declaration.
14120         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
14121         * graphite-poly.h (struct poly_bb): Add missing comments.
14122         (struct scop): Add poly_scop_p field.
14123         (POLY_SCOP_P): New.
14124         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
14125         * graphite.c (graphite_transform_loops): Build the polyhedral
14126         representation for each scop before code generation.
14127         * sese.c (rename_variables_in_operand): Removed.
14128         (rename_variables_in_expr): Return the renamed expression.
14129         (rename_sese_parameters): New.
14130         * sese.h (rename_sese_parameters): Declared.
14131
14132 2010-02-11  Richard Guenther  <rguenther@suse.de>
14133
14134         PR tree-optimization/42998
14135         * tree-ssa-pre.c (create_expression_by_pieces): Treat
14136         POINTER_PLUS_EXPR properly.
14137
14138 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14139             Changpeng Fang  <changpeng.fang@amd.com>
14140
14141         PR middle-end/40886
14142         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
14143         the cost of an IV candidate when the IV is used in a test against zero.
14144
14145         * gcc.dg/tree-ssa/ivopts-3.c: New.
14146
14147 2010-02-11  Richard Guenther  <rguenther@suse.de>
14148
14149         PR lto/41664
14150         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
14151         pointer-vs-decl case by swapping refs.  Handle some cases
14152         of pointer-vs-decl disambiguations more conservatively.
14153         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
14154         to false after expanding.
14155
14156 2010-02-11  Richard Guenther  <rguenther@suse.de>
14157
14158         PR driver/43021
14159         * gcc.c (process_command): Handle LTO file@offset case more
14160         appropriately.
14161
14162 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
14163
14164         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
14165         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
14166         of DEBUG_INSNs.
14167         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
14168
14169         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
14170         if MEM's mode size isn't DWARF2_ADDR_SIZE.
14171         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
14172         Optimize eq/ne comparisons when both arguments are known to be
14173         zero-extended.
14174         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
14175         Don't mask operands unnecessarily if they are known to be already
14176         zero-extended.
14177
14178 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
14179
14180         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
14181         instead of loop.
14182
14183 2010-02-10  Richard Guenther  <rguenther@suse.de>
14184
14185         PR tree-optimization/43017
14186         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
14187         for wrapping signed arithmetic.
14188
14189 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
14190
14191         PR debug/43010
14192         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
14193         if no debug info should be emitted for it.
14194
14195 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14196
14197         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
14198         note when flag_exceptions is set.
14199
14200 2010-02-10  Duncan Sands  <baldrick@free.fr>
14201
14202         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
14203
14204 2010-02-10  Richard Guenther  <rguenther@suse.de>
14205
14206         PR c/43007
14207         * tree.c (get_unwidened): Handle constants.
14208         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
14209
14210 2010-02-10  Martin Jambor  <mjambor@suse.cz>
14211
14212         PR lto/42985
14213         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
14214         check for variable argument counts independently.
14215
14216 2010-02-10  Christian Bruel  <christian.bruel@st.com>
14217
14218         PR target/42841
14219         * config/sh/sh.c (find_barrier): Increase length for non delayed
14220         conditional branches.
14221
14222 2010-02-10  Christian Bruel  <christian.bruel@st.com>
14223
14224         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
14225
14226 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
14227
14228         * builtins.c (set_builtin_user_assembler_name): Also handle
14229         ffs if int is smaller than word.
14230
14231 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
14232
14233         PR middle-end/42973
14234         * ira-conflicts.c (get_dup): Remove.
14235         (process_reg_shuffles): Add new parameter.  Use it as an
14236         additional guard for copy generation.
14237         (add_insn_allocno_copies): Rewrite.
14238
14239 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
14240
14241         * common.opt (fsched2-use-traces): Preserved for backward
14242         compatibility.
14243         * doc/invoke.texi: Remove the documentation about option
14244         -fsched2-use-traces.
14245         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
14246         flag_sched2_use_traces.
14247         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
14248         the backward compatibility flag section.
14249
14250 2010-02-09  Richard Guenther  <rguenther@suse.de>
14251
14252         PR tree-optimization/43008
14253         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
14254         make HEAP variables initialized from global memory if they
14255         are not known builtin functions.
14256         (find_func_aliases): Adjust.
14257
14258 2010-02-09  Richard Guenther  <rguenther@suse.de>
14259
14260         PR tree-optimization/43000
14261         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
14262         arithmetic manually.
14263
14264 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
14265
14266         PR tree-optimization/42931
14267         * tree-loop-linear.c (try_interchange_loops): Don't call
14268         double_int_mul if estimated_loop_iterations failed.
14269
14270 2010-02-08  Martin Jambor  <mjambor@suse.cz>
14271
14272         PR middle-end/42898
14273         * tree-sra.c (build_accesses_from_assign): Do not mark in
14274         should_scalarize_away_bitmap if stmt has volatile ops.
14275         (sra_modify_assign): Do not process assigns piecemeal if if stmt
14276         has volatile ops.
14277
14278 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
14279
14280         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
14281
14282 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
14283
14284         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
14285         before the pattern.
14286
14287 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
14288
14289         PR middle-end/42946
14290         * df-core.c (df_finish_pass): Change type of saved_flags to int.
14291
14292 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
14293
14294         PR middle-end/42988
14295         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
14296         to unknown_dependence.
14297         (graphite_legal_transform_dr): Handle the unknown_dependence.
14298         (graphite_carried_dependence_level_k): Same.
14299
14300 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
14301
14302         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
14303
14304 2010-02-07  Richard Guenther  <rguenther@suse.de>
14305
14306         PR middle-end/42991
14307         * expr.c (get_inner_reference): Always initialize *pbitsize.
14308
14309 2010-02-07  Richard Guenther  <rguenther@suse.de>
14310
14311         PR middle-end/42956
14312         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
14313         new ARRAY_REFs on variable size element or minimal index arrays.
14314         Complete.
14315         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
14316         gimple_fold_indirect_ref.
14317
14318 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
14319
14320         PR target/42957
14321         * arm.c (arm_override_options): Just return if the user has specified
14322         an invalid fpu name.
14323
14324 2010-02-03  Jason Merrill  <jason@redhat.com>
14325
14326         PR c++/42870
14327         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
14328         i386_pe_maybe_record_exported_symbol.
14329
14330 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
14331
14332         PR target/42924
14333         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
14334         (pa_delegitimize_address): New function.
14335
14336 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
14337
14338         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
14339         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
14340
14341 2010-02-05  Richard Guenther  <rguenther@suse.de>
14342
14343         PR lto/42762
14344         * lto-streamer-in.c (get_resolution): Deal with references
14345         to undefined functions.
14346
14347 2010-02-05  Richard Guenther  <rguenther@suse.de>
14348
14349         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
14350         (fold_const_aggregate_ref): Likewise.
14351         (ccp_fold_stmt): Substitute loads.
14352         (maybe_fold_reference): Verify types before substituting.
14353         Unshare properly.
14354         (fold_gimple_assign): Unshare properly.
14355         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
14356
14357 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
14358
14359         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
14360         for rs6000_gen_cell_microcode.
14361
14362 2010-02-04  Richard Guenther  <rguenther@suse.de>
14363
14364         PR rtl-optimization/42952
14365         * dse.c (const_or_frame_p): Remove MEM handling.
14366
14367 2010-02-04  Nick Clifton  <nickc@redhat.com>
14368
14369         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14370         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14371         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
14372         (mn10300_asm_output_mi_thunk): New function.
14373         (mn10300_can_output_mu_thunk): New function.
14374         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
14375         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
14376         (FUNCTION_ARG): Delete incorrect comment.
14377
14378 2010-02-03  Jason Merrill  <jason@redhat.com>
14379
14380         PR c++/40138
14381         * fold-const.c (operand_equal_p): Handle erroneous types.
14382
14383 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
14384
14385         * config/h8300/h8300.md (can_delay): Fix attibute condition.
14386
14387 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14388
14389         PR rtl-optimization/42941
14390         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
14391         of xmalloc.
14392
14393 2010-02-03  Jason Merrill  <jason@redhat.com>
14394
14395         PR c++/35652
14396         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
14397
14398 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
14399
14400         PR debug/42896
14401         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
14402         (cselib_reset_table): Renamed from...
14403         (cselib_reset_table_with_next_value): ... this.
14404         (cselib_get_next_uid): Renamed from...
14405         (cselib_get_next_unknown_value): ... this.
14406         * cselib.c (next_uid): Renamed from...
14407         (next_unknown_value): ... this.
14408         (cselib_clear_table): Adjust.
14409         (cselib_reset_table): Adjust.  Renamed from...
14410         (cselib_reset_table_with_next_value): ... this.
14411         (cselib_get_next_uid): Adjust.  Renamed from...
14412         (cselib_get_next_unknown_value): ... this.
14413         (get_value_hash): Use hash.
14414         (cselib_hash_rtx): Likewise.
14415         (new_cselib_val): Adjust.  Set and dump uid.
14416         (cselib_lookup_mem): Pass next_uid as hash.
14417         (cselib_subst_to_values): Likewise.
14418         (cselib_log_lookup): Dump uid.
14419         (cselib_lookup): Pass next_uid as hash.  Adjust.
14420         (cselib_process_insn): Adjust.
14421         (cselib_init): Initialize next_uid.
14422         (cselib_finish): Adjust.
14423         (dump_cselib_table): Likewise.
14424         * dse.c (canon_address): Dump value uid.
14425         * print-rtl.c (print_rtx): Print value uid.
14426         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
14427         (dvuid): New type.
14428         (dv_uid): New function, sort of renamed from...
14429         (dv_htab_hash): ... this, reimplemented in terms of it and...
14430         (dv_uid2hash): ... this.  New.
14431         (variable_htab_eq): Drop excess assertions.
14432         (tie_break_pointers): Removed.
14433         (canon_value_cmp): Compare uids.
14434         (variable_post_merge_New_vals): Print uids.
14435         (vt_add_function_parameters): Adjust.
14436         (vt_initialize): Reset table.  Adjust.
14437
14438 2010-02-03  Richard Guenther  <rguenther@suse.de>
14439
14440         PR tree-optimization/42944
14441         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
14442         (call_may_clobber_ref_p_1): Likewise.  Properly handle
14443         malloc and calloc clobbering errno.
14444
14445 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
14446
14447         * doc/invoke.texi: Fix name of sched1 dump.
14448
14449         * opts.c (decode_options): Set flag_tree_switch_conversion
14450         only conditionally on optimize >= 2.
14451
14452         * gcse.c: Assorted comment fixes in pass description.
14453
14454 2010-02-03  Anthony Green  <green@moxielogic.com>
14455
14456         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
14457         nop padding in order to maintain alignment of storage location of
14458         target function address.
14459         (moxie_trampoline_init): Store target function address at newly
14460         aligned location.
14461         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
14462         to 32.
14463         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
14464
14465 2010-02-03  Richard Guenther  <rguenther@suse.de>
14466
14467         PR middle-end/42927
14468         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
14469
14470 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14471
14472         * config.gcc: Reenable check for obsolete targets.
14473         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
14474         mips-sgi-irix6.[0-4]*.
14475
14476 2010-02-02  Nick Clifton  <nickc@redhat.com>
14477
14478         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
14479         constant size of 4 as being the same as 0.
14480         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
14481         can take values in the range 0..4.
14482
14483 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
14484
14485         PR java/41991
14486         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
14487         as _darwin10_Unwind_FindEnclosingFunction().
14488         * libgcc-libsystem.ver: New.
14489
14490 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
14491
14492         PR target/41399
14493         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
14494         implicitly set registers.
14495
14496 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
14497
14498         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
14499         (arm_override_options): Allow automatic selection of the thread
14500         pointer register if thumb2.
14501         (legitimize_pic_address): Improve code sequences for Thumb2.
14502         (arm_call_tls_get_addr): Likewise.
14503         (legitimize_tls_address): Likewise.
14504         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
14505         (pic_load_addr_32bit): ... this.  New named pattern.
14506         * thumb2.md (pic_load_addr_thumb2): Delete.
14507         (pic_load_dot_plus_four): Delete.
14508         (tls_load_dot_plus_four): New named pattern.
14509
14510 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14511
14512         PR libgomp/29986
14513         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
14514         Document fix for TLS bug.
14515
14516 2010-01-31  Richard Guenther  <rguenther@suse.de>
14517
14518         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
14519         conservatively correct.
14520
14521 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14522
14523         PR target/42850
14524         Revert:
14525         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14526
14527         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14528
14529 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14530
14531         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
14532
14533 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
14534
14535         * config.gcc: Adjust order of makefile fragments for mingw targets.
14536
14537 2010-01-31  Richard Guenther  <rguenther@suse.de>
14538
14539         PR middle-end/42898
14540         * gimplify.c (gimplify_init_constructor): For volatile LHS
14541         initialize a temporary.
14542
14543 2010-01-31  Matthias Klose  <doko@ubuntu.com>
14544
14545         * configure.ac: Fix __stack_chk_fail check for cross builds configured
14546         --with-headers
14547         * configure: Regenerate.
14548
14549 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
14550
14551         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
14552         the same alias set and their sizes different constantness.
14553         (aliasing_component_refs_p): Revert 2009-10-24 change.
14554
14555 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14556
14557         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
14558         unused.
14559
14560 2010-01-29  Richard Guenther  <rguenther@suse.de>
14561
14562         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
14563         Assert we successfully updated the call.
14564
14565 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
14566
14567         PR rtl-optimization/42889
14568         * df.h (df_set_bb_dirty_nonlr): New prototype.
14569         * df-core.c (df_set_bb_dirty_nonlr): New function.
14570         * df-scan.c (df_insn_rescan): Call it instead of
14571         df_set_bb_dirty for DEBUG_INSNs.
14572
14573 2010-01-29  Richard Guenther  <rguenther@suse.de>
14574
14575         PR middle-end/37448
14576         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
14577         quadratic behavior in most cases.
14578
14579 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
14580
14581         PR target/42891
14582         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
14583         in the call to gen_x86_movsicc_0_m1.
14584
14585 2010-01-28  Richard Guenther  <rguenther@suse.de>
14586
14587         PR tree-optimization/42871
14588         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
14589
14590 2010-01-28  Richard Guenther  <rguenther@suse.de>
14591
14592         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
14593         into call arguments.
14594
14595 2010-01-28  Richard Guenther  <rguenther@suse.de>
14596
14597         PR middle-end/42883
14598         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
14599         the forwarder if the destination is an EH landing pad.
14600
14601 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
14602
14603         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
14604         block list passed to gimple_duplicate_sese_tail.
14605         (parallelize_loops): Avoid parallelization when the function
14606         has_nonlocal_label.
14607         Avoid parallelization when the preheader is IRREDUCIBLE.
14608         Try to optimize when estimated_loop_iterations_int is unresolved.
14609         Add the loop's location to the dump file.
14610         * tree-cfg.c (add_phi_args_after_redirect): Remove.
14611         (gimple_duplicate_sese_tail): Remove the check for the latch.
14612         Redirect nexits to the exit block.
14613         Remove handling of the incoming edges to the latch.
14614         Redirect the backedge from the copied latch to the exit bb.
14615
14616 2010-01-28  Michael Matz  <matz@suse.de>
14617
14618         PR target/42881
14619         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
14620         Wrap force_reg into a sequence, emit it before user.
14621
14622 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
14623
14624         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
14625         (arm_rev): New.
14626         (arm_legacy_rev): Likewise.
14627         (thumb_legacy_rev): Likewise.
14628
14629 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
14630
14631         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
14632         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
14633         on MEM's address failed, try avoid_constant_pool_reference and
14634         recurse if it returned something different.
14635         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
14636         address, try avoid_constant_pool_reference and recurse if it
14637         returned something different.
14638         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
14639         address and avoid_constant_pool_reference returned something
14640         different, don't set have_address.
14641
14642 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
14643
14644         PR debug/42861
14645         * var-tracking.c (val_store): Add modified argument, obey it.
14646         Adjust callers.
14647         (count_uses): Move down logging of main.
14648         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
14649         don't need resolution.
14650         (emit_notes_in_bb): Likewise.
14651
14652 2010-01-27  Richard Guenther  <rguenther@suse.de>
14653
14654         PR middle-end/42878
14655         * tree-inline.c (remap_decl): Delay remapping of SSA name
14656         default definitions until we need them.
14657
14658 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
14659
14660         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
14661         (rs6000_delegitimize_address): New function.
14662
14663         * config/s390/s390.c (s390_delegitimize_address): Call
14664         delegitimize_mem_from_attrs.
14665
14666         PR middle-end/42874
14667         * tree-inline.c (cannot_copy_type_1): Removed.
14668         (copy_forbidden): Don't forbid copying of functions containing
14669         records/unions with variable length fields.
14670
14671 2010-01-27  Christian Bruel  <christian.bruel@st.com>
14672
14673         Revert:
14674         PR target/42841
14675         * config/sh/sh.c (find_barrier): Increase length for non delayed
14676         conditional branches.
14677
14678 2010-01-27  Matthias Klose  <doko@ubuntu.com>
14679
14680         * configure.ac (gnu-unique-object): Fix ldd version check.
14681         * configure: Regenerate.
14682
14683 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14684
14685         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
14686         HAVE_GNU_AS value.
14687         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
14688         Test for HAVE_GNU_AS value.
14689
14690 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14691
14692         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
14693         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
14694         INT64_TYPE): Define.
14695         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
14696         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14697         INT_LEAST64_TYPE): Define.
14698         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
14699         UINT_LEAST64_TYPE): Define.
14700         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
14701         INT_FAST64_TYPE): Define.
14702         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14703         UINT_FAST64_TYPE): Define.
14704         (INTMAX_TYPE, UINTMAX_TYPE): Define.
14705         (INTPTR_TYPE, UINTPTR_TYPE): Define.
14706         (SIG_ATOMIC_TYPE): Define.
14707
14708 2010-01-26  Richard Guenther  <rguenther@suse.de>
14709
14710         * df-scan.c (df_scan_set_bb_info): Remove assert.
14711         (df_insn_rescan_debug_internal): Merge asserts.
14712         (df_install_ref): Likewise.
14713         (df_mark_reg): Use bitmap_set_range.
14714         (df_hard_reg_used_p): Remove assert.
14715         (df_hard_reg_used_count): Likewise.
14716
14717 2010-01-26  Richard Guenther  <rguenther@suse.de>
14718
14719         PR rtl-optimization/42685
14720         * web.c (web_main): Ignore DEBUG_INSNs.
14721
14722 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
14723
14724         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
14725
14726         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
14727         Fix types of fndecl and arglist parameters.
14728
14729 2010-01-26  Richard Guenther  <rguenther@suse.de>
14730
14731         PR middle-end/42806
14732         * tree-eh.c (unsplit_eh): Skip debug insns.
14733
14734 2010-01-26  Richard Guenther  <rguenther@suse.de>
14735
14736         PR tree-optimization/42250
14737         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
14738
14739 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
14740
14741         PR fortran/42866
14742         * omp-low.c (expand_omp_sections): Only use single_pred if
14743         l2_bb is single_pred_p.
14744
14745 2010-01-25  Christian Bruel  <christian.bruel@st.com>
14746
14747         PR target/42841
14748         * config/sh/sh.c (find_barrier): Increase length for non delayed
14749         conditional branches.
14750         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
14751
14752 2010-01-24  David S. Miller  <davem@davemloft.net>
14753
14754         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
14755         define if not using GAS.
14756         * config/sparc/sparc.c (sparc_elf_asm_named_section):
14757         Likewise.  Delete SECTION_MERGE code, which is only applicable
14758         when using GAS.
14759
14760 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
14761
14762         PR c++/42748
14763         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
14764         mangling of va_list in system headers.
14765
14766 2010-01-23  Toon Moene  <toon@moene.org>
14767
14768         * tree-predcom.c (combine_chains): Return NULL, not false.
14769
14770 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
14771
14772         * tree-loop-distribution.c (distribute_loop): Fix declaration and
14773         initialization of variable res to agree with return type.
14774
14775 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
14776
14777         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
14778         * tree-sra.c: Add include of expr.h.
14779
14780 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
14781
14782         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
14783         insert the debug stmt on the single non-EH edge from the stmt.
14784
14785 2010-01-22  Richard Henderson  <rth@redhat.com>
14786
14787         PR tree-opt/42833
14788         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
14789         the RHS until after generate_subtree_copies has insertted its
14790         code before the current statement.
14791
14792 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
14793
14794         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
14795
14796         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
14797
14798 2010-01-21  Martin Jambor  <mjambor@suse.cz>
14799
14800         PR tree-optimization/42585
14801         * tree-sra.c (struct access): New field grp_total_scalarization.
14802         (dump_access): Dump the new field.
14803         (should_scalarize_away_bitmap): New variable.
14804         (cannot_scalarize_away_bitmap): Likewise.
14805         (sra_initialize): Allocate new bitmaps.
14806         (sra_deinitialize): Free new bitmaps.
14807         (create_access_1): New function.
14808         (create_access): Parts moved to create_access_1.
14809         (type_consists_of_records_p): New function.
14810         (completely_scalarize_record): Likewise.
14811         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
14812         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
14813         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
14814         access.
14815         (analyze_all_variable_accesses): Completely scalarize small eligible
14816         records.
14817
14818 2010-01-21  Martin Jambor  <mjambor@suse.cz>
14819
14820         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
14821
14822 2010-01-21  Andrew Haley  <aph@redhat.com>
14823
14824         * gcc.c (process_command): Move lang_specific_driver before
14825         setting cc_libexec_prefix.
14826
14827 2010-01-21  Richard Guenther  <rguenther@suse.de>
14828
14829         PR middle-end/19988
14830         * fold-const.c (negate_expr_p): Pretend only negative
14831         real constants are easily negatable.
14832
14833 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
14834             Jason Merrill  <jason@redhat.com>
14835
14836         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
14837         (TYPE_TRANSPARENT_AGGR): this, for union and record.
14838         * calls.c (initialize argument_information): Handle it.
14839         * c-common.c (handle_transparent_union_attribute): Use new name.
14840         * c-decl.c (finish_struct): Ditto.
14841         * c-typeck.c (type_lists_compatible_p): Ditto.
14842         (convert_for_assignment): Use new name and also handle record.
14843         * function.c (aggregate_value_p): Handle it.
14844         (pass_by_reference): Ditto.
14845         (assign_parm_data_types): Ditto.
14846         * print-tree.c (print_node): Ditto.
14847         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
14848         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
14849         * tree.c (first_field): New fn.
14850
14851 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
14852
14853         PR target/42818
14854         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
14855         even when linking statically, for now.
14856
14857 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
14858
14859         PR debug/42715
14860         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
14861         without a cselib val.
14862         (count_uses): Accept MO_VAL_SET with no val on stores.
14863         (add_stores): Likewise.
14864
14865 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14866
14867         * var-tracking.c (check_value_val): Add a compile time assertion.
14868         (dv_is_decl_p): Simplify.
14869         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
14870         gcc_assert if ENABLE_CHECKING.
14871
14872 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
14873
14874         PR debug/42782
14875         * var-tracking.c: Include tree-flow.h.
14876         (mem_dies_at_call): New.
14877         (dataflow_set_preserve_mem_locs): Use it.
14878         (dataflow_set_remove_mem_locs): Likewise.
14879         (dump_var): Renamed from dump_variable.  Adjust all callers.
14880         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
14881         * Makefile.in (var-tracking.o): Adjust deps.
14882
14883 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
14884
14885         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
14886
14887 2010-01-20  Richard Guenther  <rguenther@suse.de>
14888
14889         PR tree-optimization/42717
14890         * tree-ssa-dce.c (get_live_post_dom): Remove.
14891         (forward_edge_to_pdom): Take an arbitrary edge to copy
14892         degenerate PHI args from.
14893         (remove_dead_stmt): Use the first post-dominator even if it
14894         does not contain live statements as redirection destination.
14895
14896 2010-01-20  Richard Guenther  <rguenther@suse.de>
14897
14898         * tree-inline.c (estimate_num_insns): Handle EH builtins.
14899
14900 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14901
14902         * sel-sched.c (create_speculation_check): Remove set but not used
14903         variable twin.
14904         (try_transformation_cache): Remove set but not used variable ds.
14905         (calculate_privileged_insns): Remove set but not used variables
14906         cur_insn and min_spec_insn.
14907         (find_best_expr): Remove set but not used variable avail_n.
14908         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
14909         variable e.
14910         * cgraphunit.c (assemble_thunk): Remove set but not used variable
14911         false_label.
14912         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
14913         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
14914         new_scop_exit_edge.
14915
14916 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
14917
14918         PR bootstrap/42786
14919         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
14920         cpu types.  Add support for *-sse3 cpu types.
14921         (x86_64-*-*): Ditto.
14922
14923 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14924
14925         PR middle-end/42803
14926         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
14927         argument, call initializer_constant_valid_p_1 instead of
14928         initializer_constant_valid_p, pass CACHE to it, return NULL
14929         immediately if first call returns NULL.
14930         (initializer_constant_valid_p_1): New function.
14931         (initializer_constant_valid_p): Use it.
14932
14933 2010-01-20  Thomas Quinot  <quinot@adacore.com>
14934
14935         * tree.def (PLACEHOLDER_EXPR): Fix comment.
14936
14937 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14938
14939         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
14940         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
14941         (loc_list_from_tree): Don't handle unsigned division.  Handle
14942         signed modulo using DW_OP_{over,over,div,mul,minus}.
14943         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
14944         modulo instead of signed.
14945
14946 2010-01-20  DJ Delorie  <dj@redhat.com>
14947
14948         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
14949         (Fpa): Pass it
14950         (h8300_emit_stack_adjustment): Propogate it.
14951         (push): Pass it.
14952         (h8300_expand_prologue): Likewise.
14953         (h8300_expand_epilogue): Likewise.
14954
14955 2010-01-19  Michael Matz  <matz@suse.de>
14956
14957         PR tree-optimization/41783
14958         * tree-data-ref.c (toplevel): Include flags.h.
14959         (dump_data_dependence_relation):  Also dump the inputs if the
14960         result will be unknown.
14961         (split_constant_offset_1): Look through some conversions.
14962         * tree-predcom.c (determine_roots_comp): Restart a new chain if
14963         the offset from last element is too large.
14964         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
14965         (reassociate_to_the_same_stmt): Handle vector registers.
14966         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
14967         (e.g. conversions).
14968         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
14969         wide_prolog_niters argument, emit widening instructions.
14970         (vect_do_peeling_for_alignment): Adjust caller, use widened
14971         variant of the iteration cound.
14972         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
14973
14974 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14975
14976         PR target/38697
14977         * config/arm/neon-testgen.m (emit_automatics): New parameter
14978         features. Adjust for Fixed_return_reg feature.
14979         (test_intrinsic): Call emit_automatics with new feature.
14980         * config/arm/neon.ml: Update copyright years.
14981         (features): New Fixed_return_reg feature.
14982         (ops): Update feature for Vget_low.
14983
14984 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
14985
14986         PR tree-optimization/42719
14987         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
14988         stmt uses.
14989
14990         PR debug/42728
14991         * fwprop.c (all_uses_available_at): Return false if def_set dest
14992         is a REG that is used in def_insn.
14993
14994 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
14995
14996         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
14997
14998         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
14999         Add argument names.
15000
15001         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
15002
15003         * target.h (struct gcc_target) <secondary_reload>: Change type
15004         of last argument to secondary_reload_info *.
15005
15006 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
15007
15008         PR target/42774
15009         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
15010         memory references with unaligned offsets.  Remove CQImode handling.
15011         (unaligned_memory_operand): Return 1 for memory references with
15012         unaligned offsets.  Remove CQImode handling.
15013
15014 2010-01-18  Richard Guenther  <rguenther@suse.de>
15015
15016         PR middle-end/39954
15017         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
15018         builtin calls.
15019
15020 2010-01-18  Richard Guenther  <rguenther@suse.de>
15021
15022         PR tree-optimization/42781
15023         * tree-ssa-structalias.c (find_what_var_points_to): Skip
15024         restrict processing only if the original variable was artificial.
15025
15026 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
15027
15028         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
15029         find number of popped argument bytes.
15030
15031         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
15032         Fix the text that describes the return value for invalid insns.
15033
15034         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
15035
15036         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
15037         Clarify what 'cost of the -dependence' is.  Fix quoting.
15038
15039         * toplev.c (default_get_pch_validity): Rename argument to "sz".
15040         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
15041
15042 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
15043
15044         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
15045         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
15046
15047 2010-01-17  Richard Guenther  <rguenther@suse.de>
15048
15049         PR middle-end/42248
15050         * function.c (split_complex_args): Take a VEC to modify.
15051         (assign_parms_augmented_arg_list): Build a VEC instead of
15052         a chain of PARM_DECLs.
15053         (assign_parms_unsplit_complex): Take a VEC of arguments.
15054         Do not fixup unmodified parms.
15055         (assign_parms): Deal with the VEC.
15056         (gimplify_parameters): Likewise.
15057
15058 2010-01-17  Richard Guenther  <rguenther@suse.de>
15059
15060         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
15061         node existence check.
15062         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
15063         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
15064         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
15065         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
15066         (gimple_execute_on_growing_pred): Likewise.
15067
15068 2010-01-17  Richard Guenther  <rguenther@suse.de>
15069
15070         PR tree-optimization/42773
15071         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
15072         (compute_antic_aux): Likewise.
15073         (compute_partial_antic_aux): Likewise.
15074
15075 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
15076
15077         PR debug/42767
15078         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
15079         and US_TRUNCATE.
15080
15081 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
15082
15083         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
15084         appearance.
15085
15086         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
15087         Fix markup for strict argument.
15088
15089         (TARGET_SCHED_REORDER2): Fix argument types.
15090
15091         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
15092         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
15093
15094         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
15095         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
15096
15097         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
15098         Add argument name.
15099
15100         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
15101         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
15102         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
15103         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
15104         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
15105
15106         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
15107
15108         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
15109
15110         (TARGET_ASM_RELOC_RW_MASK): Add return type.
15111         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
15112
15113         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
15114
15115         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
15116         Use prototype.
15117
15118         (TARGET_ASM_NAMED_SECTION): Fix argument list.
15119
15120         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
15121         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
15122
15123         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
15124
15125         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
15126
15127         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
15128         referring to it.  Fix language.
15129
15130         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
15131
15132         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
15133
15134         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
15135
15136         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
15137
15138         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
15139         '@var{stream}.  Remove stray 'and'.
15140
15141         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
15142
15143         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
15144
15145         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
15146
15147         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
15148         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
15149
15150         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
15151         Fix description of return value.
15152         Rename argument "sz" to "len."
15153
15154         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
15155         Clarify meaning of 'true' return value.
15156
15157         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
15158
15159         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
15160         rep_mode versus mode_rep.
15161
15162         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
15163
15164         (TARGET_BUILTIN_DECL): Fix name.
15165
15166         (TARGET_COMMUTATIVE_P): Fix type of first argument.
15167
15168         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
15169
15170         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
15171
15172         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
15173
15174         (TARGET_RELAXED_ORDERING): Use @deftypevr.
15175
15176         (TARGET_GET_DRAP_RTX): Note that this is a hook.
15177         Clarify language.
15178
15179         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
15180         Rename argument tm_fn to md_fn.
15181
15182         (TARGET_OPTION_PRINT): Fix argument list.
15183
15184 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
15185
15186         PR target/42664
15187         * config/i386/i386.c (ix86_fixup_binary_operands):
15188         Revert FMA4 fixup of operands.
15189
15190 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15191
15192         PR gcc/42525
15193         * Makefile.in (write_entries_to_file, install-plugin):
15194         Use \012 instead of \n with tr.
15195
15196 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
15197
15198         * configure.ac (HAVE_AS_REF): New C macro.
15199         * configure: Regenerate.
15200         * config.in: Likewise.
15201         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
15202         if HAVE_AS_REF.
15203         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
15204         if HAVE_AS_REF.
15205
15206 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
15207
15208         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
15209
15210         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
15211
15212         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
15213
15214         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
15215
15216         (TARGET_IN_SMALL_DATA_P): Fix argument type.
15217
15218         (TARGET_BINDS_LOCAL_P): Fix argument type.
15219
15220         (TARGET_ASM_FILE_END): Use prototype.
15221
15222         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
15223
15224         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
15225
15226         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
15227
15228         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
15229
15230         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
15231         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
15232
15233         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
15234         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
15235
15236         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
15237         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
15238         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
15239         (TARGET_ADDR_SPACE_CONVERT): Likewise.
15240
15241         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
15242
15243         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
15244
15245         (TARGET_INIT_BUILTINS): Use prototype.
15246
15247         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
15248         Put 'const char *' in braces.  Fix parameter types.
15249         (TARGET_INVALID_CONVERSION): Fix parameter types.
15250         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
15251         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
15252
15253         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
15254         Fix argument type.
15255
15256         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
15257
15258         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
15259
15260 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
15261
15262         * doc/tm.texi (TARGET_HELP): Fix return type.
15263
15264         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
15265         in braces.  Fix argument types.
15266
15267         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
15268
15269         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
15270
15271         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
15272
15273         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
15274         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
15275
15276         (TARGET_MANGLE_TYPE): Fix argument types.
15277
15278         (TARGET_IRA_COVER_CLASSES): Use prototype.
15279
15280         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
15281
15282         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
15283
15284         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
15285
15286         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
15287
15288         (TARGET_CALLEE_COPIES): Fix argument types.
15289
15290         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
15291
15292         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
15293
15294         (TARGET_FUNCTION_VALUE): Fix argument types.
15295
15296         (TARGET_RETURN_IN_MSB): Fix argument type.
15297
15298         (TARGET_RETURN_IN_MEMORY): Fix argument types.
15299
15300         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
15301
15302         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
15303
15304         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
15305         agree with return type.
15306
15307         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
15308
15309 2010-01-15  Jing Yu  <jingyu@google.com>
15310
15311         PR rtl-optimization/42691
15312         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
15313         a pseudo to a constant and are merged, and adjust comments.
15314
15315 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15316
15317         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
15318
15319 2010-01-15  Richard Guenther  <rguenther@suse.de>
15320
15321         PR middle-end/42739
15322         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
15323         labels of computed or non-local gotos to the destination.
15324         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
15325         landing pad label is the first label.
15326
15327 2010-01-15  Richard Guenther  <rguenther@suse.de>
15328
15329         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
15330
15331 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15332
15333         PR target/42747
15334         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
15335         to allow generation of the xssqrtdp instruction on power7.
15336         (sqrtdf2_fpr): Ditto.
15337
15338 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15339
15340         PR middle-end/42674
15341         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
15342         functions with noreturn attribute.
15343
15344         PR c++/42608
15345         * varasm.c (declare_weak): Add weak attribute to decl if it
15346         doesn't have one already.
15347         (assemble_external): Only add decls to weak_decls if they also
15348         have weak attribute.
15349
15350 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
15351
15352         * var-tracking.c (var_reg_delete): Don't delete the association
15353         between REGs and values or one-part variables if the register
15354         isn't clobbered.
15355
15356 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15357
15358         PR debug/42657
15359         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
15360         because its first operand is a non-localized variable.
15361
15362 2010-01-14  Martin Jambor  <mjambor@suse.cz>
15363
15364         PR tree-optimization/42706
15365         * tree-sra.c (encountered_recursive_call): New variable.
15366         (encountered_unchangable_recursive_call): Likewise.
15367         (sra_initialize): Initialize both new variables.
15368         (callsite_has_enough_arguments_p): New function.
15369         (scan_function): Call decl and flags check only for IPA-SRA, check
15370         whether there is a recursive call and whether it has enough arguments.
15371         (all_callers_have_enough_arguments_p): New function.
15372         (convert_callers): Look for recursive calls only when
15373         encountered_recursive_call is set.
15374         (ipa_early_sra): Bail out either if
15375         !all_callers_have_enough_arguments_p or
15376         encountered_unchangable_recursive_call.
15377
15378 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15379
15380         * sel-sched.c: Add 2010 to copyright years.
15381         * sel-sched-ir.c: Likewise.
15382         * sel-sched-ir.h: Likewise.
15383
15384 2010-01-14  Martin Jambor  <mjambor@suse.cz>
15385
15386         PR tree-optimization/42714
15387         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
15388         constructors specially.
15389
15390 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15391
15392         * config/i386/drivers-i386.c (detect_caches_intel):
15393         Add l2sizekb parameter and fill in.
15394         (host_detect_local_cpu): Add l2sizekb, fill in.
15395         Add Atom small cache heuristic.
15396
15397 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15398
15399         * config/i386/drivers-i386.c (detect_caches_cpuid4):
15400         Add level3 parameter and fill in.
15401         (detect_caches_intel): Handle level3 cache.
15402
15403 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15404
15405         * config/i386/drivers-i386.c (host_detect_local_cpu):
15406         Fix core duo detection.
15407
15408 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15409
15410         * config/i386/drivers-i386.c (host_detect_local_cpu):
15411         Fix Atom detection.
15412
15413 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15414
15415         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
15416         (rs6000_variable_issue_1): this.  Use...
15417         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
15418
15419 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15420
15421         * sel-sched-ir.c (sel_restore_other_notes): Rename to
15422         sel_restore_notes.  Update all callers.  Call reemit_notes
15423         for all insns.
15424
15425 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15426
15427         PR rtl-optimization/42246
15428         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
15429         loops.
15430
15431 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15432
15433         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
15434         all successors is the same as number of successors in current region.
15435
15436 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15437
15438         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
15439         to rename is not separable.  Otherwise check that its LHS is not NULL.
15440
15441 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15442
15443         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
15444
15445 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15446
15447         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
15448         available registers when failed to discover LHS register class.
15449         Fix indentation.  Update comment.
15450
15451 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15452             Alexander Monakov  <amonakov@ispras.ru>
15453
15454         PR rtl-optimization/42389
15455         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
15456         to can_issue_more.
15457         (advance_state_on_fence): Likewise.
15458         (sel_target_adjust_priority): Print debug output only when
15459         sched_verbose >= 4, not 2.
15460         (get_expr_cost): Do not issue all unique insns on the next cycle.
15461         (fill_insns): Initialize can_issue_more from the value saved
15462         with the fence.
15463         * sel-sched-ir.c (flist_add): New parameter issue_more.
15464         Init FENCE_ISSUE_MORE with it.
15465         (merge_fences): Likewise.
15466         (init_fences): Update call to flist_add.
15467         (add_to_fences, add_clean_fence_to_fences)
15468         (add_dirty_fence_to_fences): Likewise.
15469         (move_fence_to_fences): Update call to merge_fences.
15470         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
15471         sched groups.
15472         * sel-sched-ir.h (struct _fence): New field issue_more.
15473         (FENCE_ISSUE_MORE): New accessor macro.
15474
15475 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15476
15477         PR rtl-optimization/42388
15478         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
15479         that have no predecessors nor successors.  Do not call move_bb_info
15480         for empty blocks outside of current region.
15481
15482 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15483
15484         PR rtl-optimization/42294
15485         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
15486         * sel-sched.c (move_exprs_to_boundary): Transitively add all
15487         originators' originators.
15488
15489 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15490
15491         PR rtl-optimization/39453
15492         PR rtl-optimization/42246
15493         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
15494         for pipelining_p.
15495         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
15496
15497 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15498             Alexander Monakov  <amonakov@ispras.ru>
15499
15500         PR middle-end/42245
15501         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
15502         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
15503         argument.  Update all callers.
15504         (tidy_control_flow): ... and here.  Recompute topological order
15505         of basic blocks in region if necessary.
15506         (sel_redirect_edge_and_branch): Change return type.  Return true
15507         if topological order might have been invalidated.
15508         (purge_empty_blocks): Export and move from...
15509         * sel-sched.c (purge_empty_blocks): ... here.
15510         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
15511         (maybe_tidy_empty_bb): Delete prototype.
15512         (purge_empty_blocks): Declare.
15513
15514 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
15515
15516         PR rtl-optimization/42249
15517         * sel-sched.c (try_replace_dest_reg): When chosen register
15518         and original register is the same, do not bail out early, but
15519         still check all original insns for validity of replacing destination
15520         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
15521         in this case.
15522
15523 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15524
15525         PR c/42721
15526         Port from no-undefined-overflow branch:
15527         2009-03-09  Richard Guenther  <rguenther@suse.de>
15528
15529         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
15530
15531 2010-01-14  Richard Guenther  <rguenther@suse.de>
15532
15533         PR lto/42665
15534         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
15535
15536 2010-01-14  Ira Rosen  <irar@il.ibm.com>
15537
15538         PR tree-optimization/42709
15539         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
15540         as scalar type in creation of constant vector operand.
15541
15542 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15543
15544         PR testsuite/42414
15545         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
15546         (check-parallel-%): Match `testsuite' directory component only
15547         at the end.
15548
15549 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
15550
15551         PR translation/39521
15552         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
15553         strings with _().
15554
15555 2010-01-13  Richard Guenther  <rguenther@suse.de>
15556
15557         PR tree-optimization/42730
15558         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
15559         offset zero.
15560
15561 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
15562
15563         PR target/pr42542
15564         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
15565         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
15566         them signed.
15567
15568 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
15569
15570         * config/bfin/libgcc-bfin.ver: Regenerate based on current
15571         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
15572         ___umulsi3_highpart.
15573
15574         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
15575         rather than schedule_insns if the pass is enabled.
15576
15577 2010-01-13  Martin Jambor  <mjambor@suse.cz>
15578
15579         PR tree-optimization/42704
15580         * tree-sra.c (sra_modify_assign): Do not delete assignments to
15581         SSA_NAMEs.
15582
15583 2010-01-13  Martin Jambor  <mjambor@suse.cz>
15584
15585         PR tree-optimization/42703
15586         * tree-sra.c (analyze_access_subtree): Check that we can build a
15587         reference to the original data within the aggregate.
15588
15589 2010-01-13  Richard Guenther  <rguenther@suse.de>
15590
15591         PR tree-optimization/42705
15592         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
15593
15594 2010-01-13  Richard Guenther  <rguenther@suse.de>
15595
15596         PR middle-end/42716
15597         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
15598
15599 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
15600
15601         PR debug/41371
15602         * var-tracking.c (values_to_unmark): New variable.
15603         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
15604         values_to_unmark vector.  Moved body to...
15605         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
15606         instead queue it into values_to_unmark vector.
15607         (vt_find_locations): Free values_to_unmark vector.
15608
15609 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
15610
15611         * config/s390/s390.c (override_options): Set
15612         default of max-pending-list-length to 256
15613
15614 2010-01-13  Richard Guenther  <rguenther@suse.de>
15615
15616         PR lto/42678
15617         * tree-pass.h (PROP_gimple_lcx): New.
15618         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
15619         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
15620         before the final cleanup_eh.
15621         (dump_properties): Dump PROP_gimple_lcx.
15622         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
15623         (tree_lower_complex_O0): Remove.
15624         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
15625         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
15626         tree_lower_complex, schedule TODO_update_ssa.
15627         * lto-streamer-out.c (output_function): Stream the functions
15628         properties.
15629         * lto-streamer-in.c (input_function): Likewise.
15630         (lto_read_body): Do not override them here.
15631
15632 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
15633
15634         PR c/42708
15635         * c-typeck.c (build_c_cast): Fold value cast to union type before
15636         wrapping it in a CONSTRUCTOR.
15637
15638 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
15639
15640         PR rtl-optimization/42699
15641         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
15642         involved.
15643
15644 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15645
15646         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
15647         SUBTARGET_WARN_UNUSED_SPEC): Move ...
15648         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
15649         SUBTARGET_WARN_UNUSED_SPEC): ... here
15650         * config/mips/iris5.h (LIBGCC_SPEC): Define.
15651
15652 2010-01-12  Julian Brown  <julian@codesourcery.com>
15653
15654         * config/arm/neon-schedgen.ml (Utils): Don't try to
15655         open missing module.
15656         (find_with_result): New.
15657
15658 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
15659
15660         PR debug/42662
15661         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
15662         sharing when canonicalizing ({lt,ge}u (plus a b) b).
15663
15664         PR tree-optimization/42645
15665         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
15666         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
15667         decl_map, set processing_debug_stmt to -1 and return name without
15668         any remapping.
15669
15670 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
15671
15672         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
15673         binutils version, and reword target configuration description.
15674
15675 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
15676
15677         * config/avr/avr.h (LINKER_NAME): Remove.
15678
15679 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
15680
15681         PR target/42416
15682         * config/rs6000/rs6000.c (rs6000_override_options): On targets
15683         that support VSX, warn for -mno-altivec if vsx is not disabled,
15684         and disable vsx.
15685
15686 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
15687             Shujing Zhao  <pearly.zhao@oracle.com>
15688
15689         PR translation/42469
15690         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
15691         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
15692         character between option name and help text.
15693         * c.opt (imultilib): Likewise.
15694
15695 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
15696
15697         * lto-streamer-out.c (output_unreferenced_globals): Output static
15698         variables.
15699
15700 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
15701
15702         PR rtl-optimization/42621
15703         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
15704         optimizing for size.
15705         (duplicate_computed_gotos): Remove now-redundant check.
15706
15707 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
15708
15709         PR target/37454
15710         * configure.ac: Save and restore LDFLAGS and LIBS
15711         * configure: Regenerate.
15712
15713 2010-01-10  Richard Guenther  <rguenther@suse.de>
15714
15715         PR middle-end/42667
15716         * builtins.c (fold_builtin_strlen): Add type argument and
15717         convert the resulting length to it.
15718         (fold_builtin_1): Adjust.
15719
15720 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
15721
15722         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
15723         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
15724         1 insn.
15725         (num_insns_constant_wide): Adjust for that change.
15726
15727 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15728
15729         PR debug/42631
15730         * web.c (union_defs): Add used argument, to combine uses of
15731         uninitialized regs.
15732         (entry_register): Adjust type and tests of used argument.
15733         (web_main): Widen used for new use.  Pass it to union_defs.
15734         * df.h (union_defs): Adjust prototype.
15735
15736 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15737
15738         PR debug/42630
15739         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
15740         uses in new incoming argument.  Free body.
15741         (reset_debug_uses_in_loop): New.
15742         (analyze_insn_to_expand_var): Call the latter if the former found
15743         anything.  Fix whitespace.  Reject invalid dest overlaps before
15744         going through all insns in the loop.
15745
15746 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15747
15748         PR debug/42629
15749         * haifa-sched.c (dying_use_p): Debug insns don't count.
15750
15751 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15752
15753         PR middle-end/42363
15754         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
15755         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
15756         (verify_gimple_call): Reject LHS in noreturn calls.
15757
15758 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15759
15760         PR debug/42604
15761         PR debug/42395
15762         * tree-vect-loop-manip.c (adjust_info): New type.
15763         (adjust_vec): New pointer to vector.
15764         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
15765         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
15766         (slpeel_update_phis_for_duplicate_loop): Use them.
15767         (slpeel_update_phi_nodes_for_guard1): Likewise.
15768         (slpeel_update_phi_nodes_for_guard2): Likewise.
15769         (slpeel_tree_peel_loop_to_edge): Likewise.
15770         (vect_update_ivs_after_vectorizer): Likewise.
15771
15772 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15773
15774         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
15775         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
15776
15777 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15778
15779         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
15780         bogus uninitialized warning.
15781
15782 2010-01-09  Richard Guenther  <rguenther@suse.de>
15783
15784         PR middle-end/42512
15785         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
15786         the evolution is compatible with the initial condition.
15787
15788 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
15789
15790         * gcc.c (process_command): Update copyright notice dates.
15791         * gcov.c (print_version): Likewise.
15792         * gcov-dump.c (print_version): Likewise.
15793         * mips-tfile.c (main): Likewise.
15794         * mips-tdump.c (main): Likewise.
15795
15796 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
15797
15798         PR target/41885
15799         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
15800         (rotlhi3): Delete.
15801         (rotlhi3_8): Delete.
15802         (rotlsi3): Delete.
15803         (rotlsi3_8): Delete.
15804         (rotlsi3_16): Delete.
15805         (rotlsi3_24): Delete.
15806         (rotl<mode>3): New.
15807         (*rotw<mode>3): New.
15808         (*rotb<mode>3): New.
15809         * config/avr/avr.c (avr_rotate_bytes): New function.
15810         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
15811
15812 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
15813
15814         PR target/37454
15815         * configure.ac: Modify -rdynamic check.
15816         * configure: Regenerate.
15817
15818 2010-01-08  DJ Delorie  <dj@redhat.com>
15819
15820         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
15821         register popping order.
15822
15823 2010-01-08  Richard Guenther  <rguenther@suse.de>
15824
15825         PR lto/42528
15826         * c.opt (fsigned-char): Also let LTO handle this option.
15827         (funsigned-char): Likewise.
15828
15829 2010-01-07  Richard Guenther  <rguenther@suse.de>
15830
15831         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
15832         (gimple_op): Likewise.
15833         (gimple_op_ptr): Likewise.
15834         (gimple_assign_set_lhs): Remove gcc_assert.
15835         (gimple_assign_set_rhs1): Likewise.
15836         (gimple_assign_set_rhs2): Likewise.
15837         (gimple_call_set_lhs): Likewise.
15838         (gimple_call_set_fn): Likewise.
15839         (gimple_call_set_fndecl): Likewise.
15840         (gimple_call_fndecl): Likewise.
15841         (gimple_call_return_type): Likewise.
15842         (gimple_call_set_chain): Likewise.
15843         (gimple_call_num_args): Likewise.
15844         (gimple_call_set_arg): Likewise.
15845         (gimple_cond_set_code): Likewise.
15846         (gimple_cond_set_lhs): Likewise.
15847         (gimple_cond_set_rhs): Likewise.
15848         (gimple_cond_set_true_label): Likewise.
15849         (gimple_cond_set_false_label): Likewise.
15850         (gimple_label_set_label): Likewise.
15851         (gimple_goto_set_dest): Likewise.
15852         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
15853         (gimple_debug_bind_get_value): Likewise.
15854         (gimple_debug_bind_get_value_ptr): Likewise.
15855         (gimple_debug_bind_set_var): Likewise.
15856         (gimple_debug_bind_set_value): Likewise.
15857         (gimple_debug_bind_reset_value): Likewise.
15858         (gimple_debug_bind_has_value_p): Likewise.
15859         (gimple_return_retval_ptr): Remove gcc_assert.
15860         (gimple_return_retval): Likewise.
15861         (gimple_return_set_retval): Likewise.
15862         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
15863         (safe_referenced_var_iterator): Remove.
15864         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
15865         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
15866         (fill_referenced_var_vec): Remove.
15867         (first_readonly_imm_use): Remove redundant gcc_assert.
15868         (phi_arg_index_from_use): Combine gcc_asserts.
15869         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
15870         (first_imm_use_stmt): Remove redundant gcc_assert.
15871         * tree-cfg.c (verify_gimple_call): Verify function and chain
15872         operands.  Verify arguments.
15873         (verify_types_in_gimple_stmt): Verify condition code and labels.
15874
15875 2010-01-07  Richard Guenther  <rguenther@suse.de>
15876
15877         PR tree-optimization/42641
15878         * sese.c (rename_map_elt_info): Use the SSA name version, do
15879         not hash pointers.
15880
15881 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
15882
15883         PR tree-optimization/42625
15884         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
15885         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
15886
15887 2010-01-07  Duncan Sands  <baldrick@free.fr>
15888
15889         * Makefile.in (PLUGIN_HEADERS): Add version.h.
15890
15891 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
15892
15893         PR target/42511
15894         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
15895         note itself is not function_invariant_p.
15896
15897 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
15898
15899         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
15900         Do not add the DF_NOTE problem.
15901         * store-motion.c (execute_rtl_store_motion): Likewise.
15902
15903 2010-01-07  Martin Jambor  <mjambor@suse.cz>
15904
15905         PR tree-optimization/42157
15906         * tree-sra.c (compare_access_positions): Stabilize sort if both
15907         accesses have integer types, return zero immediately if they are the
15908         same.
15909
15910 2010-01-06  Richard Henderson  <rth@redhat.com>
15911
15912         PR middle-end/41883
15913         * haifa-sched.c (add_to_note_list): Merge into ...
15914         (concat_note_lists): ... here, and ...
15915         (unlink_other_notes, rm_other_notes): Merge into...
15916         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
15917         NOTE_INSN_EPILOGUE_BEG.
15918
15919 2010-01-06  Richard Guenther  <rguenther@suse.de>
15920
15921         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
15922         not inline regular functions into always-inline functions.
15923
15924 2010-01-06  Nick Clifton  <nickc@redhat.com>
15925
15926         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
15927         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
15928         used together.
15929         (OVERRIDE_OPTIONS): Delete.
15930         (OPTIMIZATION_OPTIONS): Define.
15931         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
15932         * config/rx/rx.c (rx_handle_option): Issue an error message if
15933         -mcpu=rx200 and -fpu are used together.
15934         (rx_set_optimization_options): New function.  Issue an error
15935         message if an optimization attribute attempts to reset the FPU/
15936         math optimization pairing.
15937         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
15938         * config/rx/rx.opt: Set the default to 32-bit doubles.
15939         * config/rx/t-rx: Add multilibs for -nofpu option.
15940         * doc/invoke.texi: Update documentation of RX options.
15941
15942 2010-01-06  Richard Guenther  <rguenther@suse.de>
15943
15944         * tree-ssa-pre.c (name_to_id): New global.
15945         (alloc_expression_id): Simplify SSA name handling.
15946         (lookup_expression_id): Likewise.
15947         (init_pre): Zero name_to_id.
15948         (fini_pre): Free it.
15949
15950 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
15951
15952         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
15953
15954 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
15955
15956         PR target/42542
15957         * config/i386/sse.md (smaxv2di3): New.
15958         (umaxv2di3): Likewise.
15959         (sminv2di3): Likewise.
15960         (uminv2di3): Likewise.
15961
15962 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
15963
15964         PR target/42564
15965         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
15966         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
15967         (legitimize_tls_address): Likewise.
15968         (sparc_tls_referenced_p): Likewise.
15969         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
15970         and adjust calls to legitimize_pic_address.
15971         (legitimate_constant_p) Use sparc_tls_referenced_p.
15972         (legitimate_pic_operand_p): Likewise.
15973         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
15974         (sparc_tls_symbol_ref_1): Delete.
15975         (sparc_tls_referenced_p): Make static, recognize specific patterns.
15976         (legitimize_tls_address): Make static, handle CONST patterns.
15977         (legitimize_pic_address): Make static, remove unused parameter and
15978         adjust recursive calls.
15979         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
15980         and adjust call to legitimize_pic_address.
15981         (sparc_output_mi_thunk): Likewise.
15982
15983 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
15984             H.J. Lu  <hongjiu.lu@intel.com>
15985
15986         PR target/42542
15987         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
15988         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
15989         operands to make them signed.
15990
15991         Revert:
15992         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
15993
15994         PR target/42542
15995         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
15996         GTU to GT for V4SI and V2DI.
15997
15998         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
15999         (umin<mode>3): Removed.
16000         (uminv8hi3): New.
16001         (uminv4si3): Likewise.
16002
16003 2010-01-05  Martin Jambor  <mjambor@suse.cz>
16004
16005         PR tree-optimization/42462
16006         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
16007         current_function_decl to helper functions and macros.
16008
16009 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16010
16011         PR bootstrap/41771
16012         * flags.h: Don't include real.h.
16013         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
16014         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
16015         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
16016         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
16017         * dominance.c: Update copyright.
16018         * gimple.c (walk_gimple_op): Remove inline.
16019         * tree-ssa-reassoc.c: Include real.h.
16020         * Makefile.in (FLAGS_H): Remove $(REAL_H).
16021         (tree-ssa-reassoc.o): Depend on $(REAL_H).
16022
16023 2010-01-05  Nick Clifton  <nickc@redhat.com>
16024
16025         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
16026         register to push into the stack frame when the accumulator has to
16027         be saved during interrupts.
16028
16029 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
16030
16031         * doc/invoke.texi: Remove the documentation about option
16032         -Wunreachable-code.
16033         * common.opt (Wunreachable-code):  Preserved for backward
16034         compatibility.
16035         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
16036         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
16037         the backward compatibility flag section.
16038
16039 2010-01-05  Richard Guenther  <rguenther@suse.de>
16040
16041         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
16042
16043 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
16044
16045         PR other/42611
16046         * cfgexpand.c (expand_one_var): Diagnose too large variables.
16047
16048         PR tree-optimization/42508
16049         * tree-sra.c (convert_callers): Check for recursive call
16050         by comparing cgraph nodes instead of decls.
16051         (modify_function): Call ipa_modify_formal_parameters also
16052         on all same_body aliases.
16053
16054         * cgraphunit.c (cgraph_materialize_all_clones): Compare
16055         cgraph nodes when checking for same_body aliases.
16056
16057 2010-01-05  Richard Guenther  <rguenther@suse.de>
16058
16059         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
16060         allocation and lookup.
16061         (get_or_alloc_expr_for_constant): Likewise.
16062         (phi_translate): Sink allocation.
16063
16064 2010-01-04  Richard Guenther  <rguenther@suse.de>
16065
16066         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
16067         a new entry only if needed.
16068         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
16069         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
16070         hashtable lookup.
16071         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
16072         the result array.
16073         (phi_translate): Handle CONSTANTs early.
16074
16075 2010-01-04  Martin Jambor  <mjambor@suse.cz>
16076
16077         PR tree-optimization/42398
16078         * tree-sra.c (struct access): Removed flag grp_different_types.
16079         (dump_access): Do not dump the removed flag.
16080         (sort_and_splice_var_accesses): Do not set the removed flag.
16081         (sra_modify_expr): Check for type compatibility directly.
16082
16083 2010-01-04  Martin Jambor  <mjambor@suse.cz>
16084
16085         PR tree-optimization/42366
16086         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
16087         edges with variable number of parameters.
16088         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
16089         flag instead of asserting it.
16090         (ipa_read_node_info): Read uses_analysis_done flag.
16091
16092 2010-01-04  Richard Guenther  <rguenther@suse.de>
16093
16094         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
16095         iterative_hash_* as intended.
16096         (vn_reference_compute_hash): Likewise.  Simplify hashing
16097         SSA names.
16098         (vn_reference_lookup_2): Likewise.
16099         (vn_nary_op_compute_hash): Likewise.
16100         (vn_phi_compute_hash): Likewise.
16101         (expressions_equal_p): Remove strange code.
16102         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
16103         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
16104         (bitmap_insert_into_set_1): Take value-id as parameter.
16105         (add_to_value): Pass it.
16106         (bitmap_insert_into_set): Likewise.
16107         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
16108
16109 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
16110
16111         PR driver/42442
16112         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
16113         (do_self_spec): For switches with SWITCH_IGNORE set set also
16114         SWITCH_IGNORE_PERMANENTLY.
16115         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
16116         of SWITCH_IGNORE.
16117
16118 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
16119
16120         * lto-streamer-out.c (output_unreferenced_globals): Output the full
16121         tree of an unreferenced global var.
16122
16123 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16124
16125         PR target/42542
16126         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
16127         GTU to GT for V4SI and V2DI.
16128
16129         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
16130         (umin<mode>3): Removed.
16131         (uminv8hi3): New.
16132         (uminv4si3): Likewise.
16133
16134 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16135
16136         PR lto/42581
16137         * collect2.c (main): Turn on trace in collect2 if -v is passed
16138         to gcc with LTO.
16139
16140 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
16141
16142         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
16143         description of expression operand.
16144
16145 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
16146
16147         * configure.ac: Add install-html to target_list for Make-hooks.
16148         * configure: Regenerate.
16149         * fortran/Make-lang.in (F95_HTMLFILES): New.
16150         (fortran.html): Use it.
16151         (fortran.install-html): New.
16152         * Makefile.in (install-html): Add lang.install-html.
16153         * java/Make-lang.in (JAVA_HTMLFILES): New.
16154         (java.html): Use it.
16155         (java.install-html): New.
16156         * objc/Make-lang.in (objc.install-html): New.
16157         * objcp/Make-lang.in (obj-c++.install-html): New.
16158         * cp/Make-lang.in (c++.install-html): New.
16159         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
16160         * lto/Make-lang.in (lto.install-html): New.
16161
16162 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16163
16164         PR lto/42520
16165         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
16166
16167 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
16168
16169         PR rtl-optimization/41862
16170         * store-motion.c (store_killed_in_insn, compute_store_table,
16171         remove_reachable_equiv_notes, replace_store_insn,
16172         build_store_vectors): Ignore all DEBUG_INSNs.
16173
16174 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16175
16176         PR lto/41564
16177         * common.opt: Add dumpdir.
16178
16179         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
16180         isn't specified.
16181         (option_map): Add --dumpdir.
16182
16183         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
16184
16185         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
16186
16187         * opts.c (decode_options): Try dump_dir_name first if
16188         dump_base_name isn't an absolute path.
16189         (common_handle_option): Handle OPT_dumpdir.
16190
16191         * toplev.c (dump_dir_name): New.
16192         (print_switch_values): Also ignore -dumpdir.
16193
16194         * toplev.h (dump_dir_name): New.
16195
16196 2010-01-03  Richard Guenther  <rguenther@suse.de>
16197
16198         PR tree-optimization/42589
16199         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
16200         double-word expansion of bswap32.
16201
16202 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
16203
16204         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
16205         with BLOCK_FOR_INSN.
16206         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
16207         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
16208         noce_process_if_block): Likewise.
16209         * gcse.c (compute_local_properties, insert_expr_in_table,
16210         insert_set_in_table, canon_list_insert, find_avail_set,
16211         pre_insert_copy_insn): Likewise.
16212
16213         * basic-block.h (BLOCK_NUM): Move from here...
16214         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
16215
16216 2010-01-03  Richard Guenther  <rguenther@suse.de>
16217
16218         PR tree-optimization/42438
16219         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
16220         contains_may_not_return_call flag.
16221         (BB_MAY_NOTRETURN): New.
16222         (valid_in_sets): Trapping nary operations are not valid
16223         in blocks that may not return.
16224         (insert_into_preds_of_block): Remove check for trapping expressions.
16225         (compute_avail): Compute also BB_MAY_NOTRETURN.
16226
16227 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
16228
16229         * doc/invoke.texi: Add 2010 to copyright years.
16230
16231 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16232
16233         * config/sparc/sparc.c: Fix formatting nits.
16234
16235 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
16236             Alexander Monakov  <amonakov@ispras.ru>
16237
16238         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
16239
16240 2010-01-02  Richard Guenther  <rguenther@suse.de>
16241
16242         PR middle-end/42577
16243         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
16244         (simplify_switch_using_ranges): Mark to be removed edges
16245         as non-executable.
16246
16247 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16248
16249         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
16250
16251         * collect2.c (scan_libraries): Add missing argument in call to
16252         scan_prog_file.
16253
16254 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
16255
16256         PR target/42448
16257         * config/alpha/predicates.md (aligned_memory_operand): Return false
16258         for CQImode.
16259         (unaligned_memory_operand): Return true for CQImode.
16260         * config/alpha/alpha.c (get_aligned_mem): Assert that location
16261         doesn not cross aligned SImode word boundary.
16262
16263 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
16264
16265         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
16266         Remove.
16267         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
16268         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
16269
16270 2010-01-02  Richard Guenther  <rguenther@suse.de>
16271
16272         PR lto/41597
16273         * toplev.c (compile_file): Emit LTO marker properly.  Change
16274         it to __gnu_lto_v1.
16275         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
16276
16277 2010-01-01  Richard Guenther  <rguenther@suse.de>
16278
16279         PR debug/42455
16280         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
16281
16282 2010-01-01  Richard Guenther  <rguenther@suse.de>
16283
16284         PR c/42570
16285         * c-decl.c (grokdeclarator): For zero-size arrays force
16286         structural equality checks as layout_type does.
16287
16288 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
16289
16290         * builtins.c: Update copyright to 2010.
16291
16292 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
16293
16294         PR lto/42531
16295         * lto-streamer-out.c (produce_asm): Revert the last change.
16296         (copy_function): Likewise.
16297
16298         * lto-streamer.c (lto_get_section_name): Skip any leading
16299         asterisk in name.
16300
16301 2010-01-01  Richard Guenther  <rguenther@suse.de>
16302
16303         PR middle-end/42559
16304         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
16305         for LABEL_DECLs.
16306
16307 \f
16308 Copyright (C) 2010 Free Software Foundation, Inc.
16309
16310 Copying and distribution of this file, with or without modification,
16311 are permitted in any medium without royalty provided the copyright
16312 notice and this notice are preserved.