OSDN Git Service

* tree-if-conv.c (combine_blocks): Free the result of
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
2
3         * tree-if-conv.c (combine_blocks): Free the result of
4         get_loop_exit_edges.
5
6 2006-02-10  Jeff Law  <law@redhat.com>
7
8         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
9
10         PR tree-optimization/26213
11         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
12         loop trying to follow SSA_NAME_VALUE chains.
13
14 2006-02-10  Richard Guenther  <rguenther@suse.de>
15
16         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
17         deal with structures that end in implicitly variable sized arrays.
18
19 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
20
21         PR rtl-optimization/24762
22         * df-scan.c (df_bb_refs_record): Record correct registers defined on
23         eh edges.
24
25 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
26
27         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
28         (struct ivopts_data): Add regs_used field.
29         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
30         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
31         instead of loop_data->regs_used;
32         (free_loop_data): Do not free aux fields for loops.
33         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
34         and tree_ssa_iv_optimize_finalize.
35
36 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
37
38         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
39
40 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
41
42         PR target/26141
43         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
44         computing the effective result type.
45
46 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
47
48         PR inline-asm/16194
49         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
50         (tree_overlaps_hard_reg_set): Declare.
51         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
52         type and signature to match function type expected by walk_tree.
53         (tree_overlaps_hard_reg_set): New function.
54         (decl_conflicts_with_clobbers_p): Rename to:
55         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
56         Use tree_overlaps_hard_reg_set.  Changed caller.
57         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
58         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
59         * cris.c (cris_md_asm_clobbers): Likewise.
60
61 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
62
63         * reload1.c (emit_input_reload_insns): Delete code that tries to
64         inherit using find_equiv_reg.
65
66 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
67
68         * c-common.h (flag_const_strings): Don't declare.
69         * c-common.c (flag_const_strings): Remove.
70         * c.opt (fconst_strings): Remove.
71         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
72         <OPT_Wwrite_strings>: Don't set flag_const_strings.
73         (c_common_init_options): Don't set flag_const_strings.
74         * doc/invoke.texi (-fno-const-strings): Remove documentation.
75
76 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
77
78         * arm.md (tlobits_cbranch): New pattern.
79         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
80         testing a single bit.
81
82 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
83
84         PR tree-opt/26179
85         * tree-ssa-pre.c (create_component_ref_by_pieces):
86         Handle RETURN_DECL like VAR_DECL.
87
88 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
89
90         PR middle-end/26134
91         * fold-const.c (fold_indirect_ref_1): Fold 
92         "*(foo *)&complexfoo" to "__real__ complexfoo"
93         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
94
95 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
96
97         * tree-flow-inline.h (var_can_have_subvars): 
98         Volatile variables should not have subvariables.
99
100 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
101
102         PR 26180
103         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
104         multiplying unsigned values.
105         Tidy comments.
106
107 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
108
109         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
110
111 2006-02-08  Jason Merrill  <jason@redhat.com>
112
113         PR c++/25979
114         * tree.def: Elaborate on difference from MODIFY_EXPR.
115         * doc/c-tree.texi (INIT_EXPR): Likewise.
116         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
117         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
118         (gimplify_target_expr): Likewise.
119         (gimplify_cond_expr): Remove target handling.
120         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
121         (gimplify_expr): Clobber it here.
122         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
123         Do return slot optimization if we have an INIT_EXPR.
124
125         PR tree-opt/24365
126         * tree-inline.c (declare_return_variable): Also clear 
127         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
128
129         PR c++/16405
130         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
131
132         PR middle-end/22439
133         * gimplify.c (gimplify_one_sizepos): Fix typo.
134
135 2006-02-08  Jeff Law  <law@redhat.com>
136
137         PR tree-optimization/21417
138         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
139         across a backedge if the control statement at the end of the
140         block is data dependent on other statements in the same block.
141         (record_temporary_equivalences_from_stmts): Remove over-conservative
142         test for threading across backedges.
143
144         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
145         control statement, handle all three special cases in the same
146         manner as they all have the same desired solution.  No longer
147         special case edge flag updating when the post dominator is
148         the exit block.
149
150 2006-02-08  Roger Sayle  <roger@eyesopen.com>
151
152         * tree.def (CHAR_TYPE): Remove.
153         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
154         * dwarf2out.c (base_type_die, is_base_type): Likewise.
155         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
156         (gen_string_type_die): Delete unreachable function.
157
158         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
159         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
160         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
161         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
162         * builtins.c (type_to_class): Likewise.
163         * fold-const.c (fold_convert, build_range_check,
164         merge_ranges): Likewise.
165         * expr.c (count_type_elements): Likewise.
166         * c-pretty-print.c (pp_c_type_specifier): Likewise.
167         * stor-layout.c (layout_type): Likewise.
168         * ipa-type-escape.c (type_to_consider): Likewise.
169         * gimplify.c (omp_firstprivatize_type_sizes,
170         gimplify_type_sizes): Likewise.
171         * explow.c (promote_mode): Likewise.
172         * tree-sra.c (is_sra_scalar_type): Likewise.
173         * varasm.c (output_constant): Likewise.
174         * tree-inline.c (remap_type_1): Likewise.
175         * convert.c (convert_to_pointer, convert_to_real,
176         convert_to_integer, convert_to_complex): Likewise.
177
178 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
179
180         * df-scan.c (df_def_record_1): A set destination may
181         be a parallel regardless of mode.
182
183 2006-02-08  Roger Sayle  <roger@eyesopen.com>
184
185         PR target/22209
186         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
187         * config/mips/_tilib.c: Remove.
188         * config/fixtfdi.c: New libgcc source file.
189         * config/fixunstfdi.c: New source file.
190         * config/floatditf.c: New source file.
191         * config/floatunditf.c: New souce file.
192         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
193         files above instead of config/mips/_tilib.c.
194         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
195
196 2006-02-08  Jeff Law  <law@redhat.com>
197
198         PR tree-optimization/26169
199         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
200         threading jumps.
201
202 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
203
204         * df.h (DF_REG_SIZE): Return the length of the initialized
205         part of the array.
206
207 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
208
209         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
210         __muldf3): Return a correctly signed zero.
211
212 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
213
214         * passes.c (register_one_dump_file): Accept the current properties
215         instead of pass number.  Adjust call to dump_register.  Remove
216         duplicated code.
217         (register_dump_files): Now a wrapper around...
218         (register_dump_files_1): ... this one.  Do not modify the pass
219         structure.
220         (next_pass_1): Cosmetic fix.
221         (execute_todo): Keep second parameter only.  Use curr_properties
222         instead of fetching it from the pass structure.  Check and set
223         last_verified.
224         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
225         instead of fetching it from the pass structure.  Fix calls to
226         execute_todo.  Update curr_properties and initialize .vcg RTL dump
227         after running the pass.  Reset last_verified.
228         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
229         at the beginning.
230         (FIRST_AUTO_NUMBERED_DUMP): New.
231         (dump_register): Remove "num" parameter, assign it within the
232         function.
233         (get_dump_file_name): Modify template for dumps.
234         * tree-dump.h (dump_register): Adjust prototype.
235         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
236         (PROP_trees): Add PROP_gimple_lomp.
237         (TODO_set_props): New.
238         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
239         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
240         * cfgexpand.c (pass_expand): Destroy PROP_trees.
241
242 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
243
244         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
245         (sparc64-*-linux*): Likewise.
246         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
247         * config/sparc/t-linux: New file.
248         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
249         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
250         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
251         -m32 -mlong-double-128.
252
253         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
254         * config/alpha/t-linux: New file.
255         * config/alpha/libgcc-alpha-ldbl.ver: New file.
256
257         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
258         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
259         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
260         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
261         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
262         (CPP_ARCH32_SPEC): Remove.
263
264 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
265
266         PR tree-optimization/26145
267         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
268         bbs pointer.
269
270 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
271
272         PR target/26109
273         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
274         >= 240000 when generating code for SOM runtime.
275         (output_indirect_call): Don't use "b,l" instruction for indirect calls
276         to $$dyncall when generating code for SOM runtime..
277
278 2006-02-07  Dirk Mueller  <dmueller@suse.com>
279
280         PR c++/18150
281         * doc/invoke.texi (-Wsequence-point): Update documentation
282         that -Wsequence-point is implemented for C++ as well.
283
284 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
285
286         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
287         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
288         (LIB_SPEC): Likewise.
289         * doc/invoke.texi (SPARC options): Document -pthread.
290
291 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
292
293         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
294         PIC addresses.
295
296 2006-02-07  Roger Sayle  <roger@eyesopen.com>
297
298         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
299         Correct comment describing BOOLEAN_TYPE.
300
301 2006-02-07  Dirk Mueller  <dmueller@suse.com>
302
303         * c.opt: C++ frontend supports -Wdiv-by-zero.
304         * c-opts.c (c_common_handle_option): Remove dead case.
305
306 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
307
308         * configure.ac (TLS assembler check): Do not enable TLS by
309         default on SPARC/Solaris before version 10.
310         * configure: Regenerate.
311
312 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
313
314         * doc/invoke.texi (xl-compat): Document conversion and support
315         routine names.
316
317 2006-02-07  Jeff Law  <law@redhat.com>
318
319         * tree-vrp.c (find_conditional_asserts): Update comments.
320         (simplify_stmt_for_jump_threading): New.
321         (identify_jump_threads, finalize_jump_threads): New.
322         (vrp_finalize): Call identify_jump_threads.
323         (execute_vrp): Call finalize_jump_threads.
324         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
325         (vrp_element, vrp_data, vrp_element_p): Remove.
326         (vrp_hash_elt, vrp_variables_stack): Remove.
327         (vrp_hash, vrp_eq, record_range): Remove.
328         (simplify_cond_and_lookup_avail_expr): Remove.
329         (extract_range_from_cond): Remove.
330         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
331         (simplify_stmt_for_jump_threading): New.
332         (dom_thread_across_edge): New wrapper.
333         (tree_ssa_dominator_optimize): No longer initialize or
334         finalize any of the VRP datastructures.  Remove iteration
335         step and simplify as a result of removal of iteration step.
336         (pass_dominator): Perform a cfg cleanup after DOM.
337         (dom_opt_finalize_block): Use the new common routines
338         for threading jumps.  Simplify stack management slightly.
339         No longer need to unwind VRP state.
340         (record_equivalences_from_incoming_edge): No longer record
341         VRP information.
342         (eliminate_redundant_computations): No longer call
343         simplify_cond_and_lookup_avail_expr.
344         * tree-flow.h (potentially_threadable_block): Prototype.
345         (thread_across_edge): Likewise.
346         * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
347         (tree-ssa-threadedge.o): Add dependencies.
348         * tree-ssa-threadedge.c: New file.
349         * passes.c (init_optimization_passes): Merge PHIs before
350         calling VRP.  Run VRP again late in the SSA optimization pipeline.
351
352 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
353
354         * df-core.c (df_set_blocks): Do not dereference function pointers.
355         (df_finish1): Likewise.
356         (df_hybrid_search_forward): Likewise.
357         (df_hybrid_search_backward): Likewise.
358         (df_iterative_dataflow): Likewise.
359         (df_analyze_problem): Likewise.
360         (df_compact_blocks): Likewise.
361         (df_dump): Likewise.
362         * df-scan.c (df_rescan_blocks): Likewise.
363         (df_record_entry_block_defs): Likewise.
364
365         * genconditions.c (write_conditions): Guard the definition of
366         'insn_conditions' with the check on GCC version.
367         (write_writer): Guard the traversal 'insn_conditions' with
368         the check on GCC version.
369
370 2006-02-07  Richard Guenther  <rguenther@suse.de>
371
372         PR c++/26140
373         Revert
374         2006-01-30  Richard Guenther  <rguenther@suse.de>
375         PR c++/23372
376         * gimplify.c (gimplify_target_expr): Handle easy cases
377         without creating a temporary.
378
379 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
380
381         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
382         use of float in probability computations.  Use edge probabilities
383         in place of statically computed probabilities.
384         (min_spec_prob): New static variable.
385         (schedule_insns): Initialize it.
386         (GET_SRC_PROB): Removed.
387         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
388
389 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
390
391         PR debug/24444
392         * config/ia64/unwind-ia64.c: Revert last change.
393         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
394         (INCOMING_FRAME_SP_OFFSET): Define.
395
396 2006-02-06  Roger Sayle  <roger@eyesopen.com>
397
398         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
399
400 2006-02-07  Ben Elliston  <bje@au.ibm.com>
401
402         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
403         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
404         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
405         (ix86_return_in_memory): Handle TDmode.
406         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
407         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
408
409 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
410
411         * reorg.c (dbr_schedule): Use dump_file instead of file.
412
413 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
414
415         PR target/25917
416         * config/ia64/predicates.md (extr_len_operand): New predicate.
417         * config/ia64/ia64.md (extv): Tighten constraints.
418         (extzv): Ditto.
419         (*tbit_and_2): Ditto.
420         (*tbit_and_3): Ditto.
421         (*tbit_or_2): Ditto.
422         (*tbit_or_3): Ditto.
423         (*bit_zero): Ditto.
424         (*bit_one): Ditto.
425
426 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
427
428         PR target/23359
429         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
430
431 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
432
433         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
434         loop_optimizer_init and loop_optimizer_finalize
435         * tree-ssa-sink.c (execute_sink_code): Ditto.
436         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
437         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
438         tree_ssa_loop_done): Ditto.
439         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
440         * sched-ebb.c: Include output.h.
441         (schedule_ebbs): Do not use dump argument.
442         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
443         * loop.c (loop_dump_stream): Removed.
444         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
445         argument.
446         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
447         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
448         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
449         loop_iterations, strength_reduce, record_biv, record_giv,
450         final_giv_value, check_final_value, check_ext_dependent_givs,
451         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
452         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
453         dump_file instead of loop_dump_stream.
454         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
455         argument dump_file.
456         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
457         dump argument.
458         * flow.c (life_analysis, rest_of_handle_life): Ditto.
459         * haifa-sched.c: Include output.h
460         (schedule_insns, sched_init): Do not use dump argument.
461         * mode-switching.c (optimize_mode_switching): Ditto.
462         * modulo-sched.c (stats_file): Removed.
463         (print_node_sched_params): Do not call argument dump_file.
464         (sms_schedule_by_order, loop_canon_p, sms_schedule,
465         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
466         of stats_file.
467         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
468         use dump argument.
469         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
470         rtl_loop_init, rtl_loop_done): Ditto.
471         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
472         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
473         Ditto.
474         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
475         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
476         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
477         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
478         * emit-rtl.c (renumber_insns): Ditto.
479         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
480         expand_gimple_basic_block, tree_expand_cfg): Ditto.
481         * regclass.c (regclass): Ditto.
482         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
483         remove_ssa_form, rewrite_out_of_ssa): Ditto.
484         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
485         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
486         Ditto.
487         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
488         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
489         to regclass.
490         * gcse.c (gcse_file, debug_stderr): Removed.
491         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
492         rest_of_handle_gcse): Do not use dump argument.
493         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
494         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
495         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
496         compute_code_hoist_vbeinout, compute_code_hoist_data,
497         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
498         compute_store_table, build_store_vectors, insert_insn_start_bb,
499         insert_store, remove_reachable_equiv_notes, replace_store_insn,
500         store_motion): Use dump_file instead of gcse_file.
501         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
502         * profile.c (profile_dump_file): Removed.
503         (branch_prob): Use dump_file instead of profile_dump_file.
504         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
505         dump_file.
506         * tree-ssa-copy.c (dump_copy_of): Ditto.
507         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
508         dump file to life_analysis.
509         * bt-load.c (branch_target_load_optimize): Ditto.
510         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
511         renumber_insns.
512         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
513         regclass, dbr_schedule): Declaration changed.
514         * sched-int.h (sched_init): Declaration changed.
515         * tree-profile.c (tree_profile_dump_file): Removed.
516         (tree_profile_hooks): Removed profile_dump_file hook.
517         * rtl-profile (rtl_profile_dump_file): Removed.
518         (rtl_profile_hooks): emoved profile_dump_file hook.
519         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
520         changed.
521         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
522         * tree-cfg.c (build_tree_cfg): Ditto.
523         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
524         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
525         Declaration changed.
526         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
527         life_analysis and schedule_insns.
528         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
529         life_analysis.
530         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
531         dbr_schedule.
532         * config/mips/mips.c (mips_reorg): Ditto.
533         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
534         schedule_ebbs.
535
536 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
537
538         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
539         (s390_mangle_fundamental_type): New.
540         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
541         Define.
542
543         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
544         (alpha_mangle_fundamental_type): New.
545         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
546         Define.
547
548         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
549         Define.
550         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
551         Define.
552         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
553         (sparc_mangle_fundamental_type): New.
554
555 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
556
557         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
558         (s390x-*-linux*): Likewise.
559         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
560         * config/s390/t-linux: New file.
561
562 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
563
564         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
565         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
566
567 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
568
569         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
570         (ANTIC_SAFE_LOADS): New macro.
571         (find_or_generate_expression): Add prototype.
572         (set_contains_value): Allow null set for sake of not always having
573         to allocate ANTIC_SAFE_LOADS.
574         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
575         Allow COMPONENT_REF too.
576         (valid_in_set): Allow COMPONENT_REF.
577         Check ANTIC_SAFE_LOADS too.
578         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
579         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
580         rename.
581         (can_PRE_operation): Add COMPONENT_REF.
582         (create_component_ref_by_pieces): New function.
583         (create_expression_by_pieces): Use create_component_ref_by_pieces.
584         (insert_aux): Move AGGREGATE_TYPE_P check here.
585         (compute_avail): Set bb local stmt uids.
586         (pass_pre): Use TODO_update_ssa_only_virtuals.
587         
588 2006-02-06  Ben Elliston  <bje@au.ibm.com>
589
590         * configure.ac: Unconditionally disable decimal float by default.
591         * configure: Regenerate.
592
593 2006-02-06  Ben Elliston  <bje@au.ibm.com>
594
595         * read-rtl.c (read_name): Terminate reading on EOF.
596
597 2006-02-06  Ben Elliston  <bje@au.ibm.com>
598
599         * dfp.c (decimal_real_arithmetic): Change second argument type
600         from int to enum tree_code. Do not always return true, but now
601         return result of any call to decimal_do helper functions.
602         * dfp.h (decimal_real_arithmetic): Update prototype.
603
604 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
605
606         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
607
608 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
609
610         PR tree-opt/25251
611         * tree-cfg.c (cleanup_dead_labels): Also don't remove
612         forced labels.
613
614 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
615
616         * tree-vrp.c (cfg_loops): Removed.
617         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
618         Use current_loops instead of cfg_loops.  Pass flags to
619         loop_optimizer_init.
620         * cfgloopmanip.c (fix_loop_structure): Update only available
621         information.
622         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
623         loop_optimizer_init.
624         * modulo-sched.c (build_loops_structure): Removed.
625         (sms_schedule): Use loop_optimizer_init.
626         * loop-init.c (loop_optimizer_init): Use flags to determine
627         which properties of loops to prepare.
628         (rtl_loop_init): Pass flags to loop_optimizer_init.
629         * tree-ssa-sink.c (execute_sink_code): Ditto.
630         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
631         * tree-ssa-pre.c (init_pre): Ditto.
632         * cfgloop.h (LOOPS_NORMAL): New.
633         (loop_optimizer_init): Declaration changed.
634
635 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
636
637         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
638         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
639         pa/t-pa.
640         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
641         pa/t-pa.
642         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
643         pa/x-ada.
644         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
645         * pa/t-pa64: Delete quadlib.c rule.
646         * pa/x-ada: Revert last change.
647         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
648
649 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
650
651         PR rtl-optimization/26087
652         * rtlanal.c (canonicalize_condition): Do not cross basic block
653         boundaries.
654
655 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
656
657         PR debug/24444
658         * config/ia64/ia64.c: Include debug.h.
659         (MAX_ARTIFICIAL_LABEL_BYTES): New.
660         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
661         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
662         (process_epilogue, process_set, process_for_unwind_directive):
663         Output unwind info only if requested.  Add CFA info if requested.
664         Add new arguments as needed.  Adjust callers.
665         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
666         incorrect default.
667         (DWARF2_FRAME_INFO): Define to zero.
668         * config/ia64/unwind-ia64.c: Remove code that compensated for
669         the CFA offset error fixed above.
670         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
671         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
672         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
673         -funwind-tables and -fexceptions to enable frame info.
674         (dwarf2out_frame_init): Define initial CFA even if
675         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
676         DWARF2_UNWIND_INFO is nonzero, not just defined.
677         (dwarf2out_frame_finish): Output non-EH call frame info only
678         if DWARF2_FRAME_INFO is nonzero.
679         (convert_cfa_to_loc_list,
680         compute_frame_pointer_to_cfa_displacement): Define even if
681         unwind info is not supported.
682         (gen_subprogram_die): Use the above unconditionally.  Remove
683         legacy alternate code.
684         * toplev.c (compile_file): Compile in call to
685         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
686         (lang_dependent_init): Ditto for dwarf2out_frame_init.
687
688 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
689             Jakub Jelinek  <jakub@redhat.com>
690
691         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
692         IBM extended float format long double as "g" on powerpc*-linux.
693
694 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
695
696         PR target/25926
697         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
698         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
699
700 2006-02-03  Jason Merrill  <jason@redhat.com>
701
702         PR c++/25979
703         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
704
705         PR middle-end/25977
706         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
707         on the return slot if it's an NRV.
708
709 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
710
711         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
712         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
713         rewrite_use): Do not handle USE_OUTER.
714         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
715         add_iv_outer_candidates, may_replace_final_value,
716         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
717         (find_interesting_uses_op): Functionality of
718         find_interesting_uses_outer_or_nonlin moved here.
719         (find_interesting_uses_outside): Use find_interesting_uses_op.
720
721 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
722
723         PR target/25960
724         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
725
726 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
727             Ulrich Weigand  <uweigand@de.ibm.com>
728
729         PR target/25864
730         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
731         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
732         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
733         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr 
734         and dxr fields.
735         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
736         (s390_rtx_costs): Use the new fields to calculate rtx costs.
737         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
738         Define secondary reloads for TFmode moves.
739         (constant_modes): Add TFmode.
740         (NR_C_MODES): Set to 8.
741         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
742         builtin define.
743         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
744         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
745         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, 
746         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
747         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf, 
748         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
749         (FPR mode macro): Add TFmode.
750         (DSF mode macro): New.
751         (<de>, <dee> mode attributes): Removed.
752         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
753         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs", 
754         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee", 
755         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3", 
756         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm", 
757         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly", 
758         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
759         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc", 
760         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm", 
761         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
762         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly", 
763         "*negabs<mode>2", "sqrt<mode>2"):
764         Changed <de> to <xde>. R constraint replaced by <Rf>.
765         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by 
766         <Rf>.
767         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
768         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
769         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5 
770         splitters.
771         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2", 
772         "extenddftf2", "extendsftf2"): New expanders.
773         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", 
774         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
775         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
776         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
777         New options.
778         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
779         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2, 
780         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
781         __floatditf): Add a GCC_4.1.0 symbol version tag.
782         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
783         the new options.
784
785 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
786
787         PR target/25377
788         * config/i386/i386.c (ix86_function_ok_for_sibcall):
789         Use targetm.binds_local_p instead of TREE_PUBLIC.
790
791 2006-02-02  Roger Sayle  <roger@eyesopen.com>
792
793         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
794         on INTEGER_TYPEs to indicate that it denotes a character type.
795         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
796         signed_char_type_node, unsigned_char_type_node and char_type_node.
797         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
798         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
799         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
800
801 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
802             Daniel Berlin  <dberlin@dberlin.org>
803
804         * tree-tailcall.c (arg_needs_copy_p): New function.
805         (eliminate_tail_call): Use arg_needs_copy_p.
806         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
807         (add_virtual_phis): New function.
808
809 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
810
811         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
812         #ignore instead of #scratch for %g7 .register directive.
813
814 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
815
816         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
817         object files.
818
819 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
820
821         * flow.c (calculate_global_regs_live): Assert that there aren't any
822         EDGE_FAKE edges.
823
824 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
825
826         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
827         what its name says.
828         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
829         bsi_after_labels iterator.
830         * tree-if-conv.c (find_phi_replacement_condition,
831         replace_phi_with_cond_modify_expr): Likewise.
832         * tree-scalar-evolution.c (scev_const_prop): Likewise.
833         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
834
835 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
836
837         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
838
839 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
840
841         PR 25990
842         * tree-cfg.c (move_block_to_fn): Clear out the basic block
843         array after growing it.
844
845 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
846
847         PR middle-end/24901
848         * fold-const.c (fold_checksum_tree): Change type of buf.
849
850 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
851
852         * reload.c (push_secondary_reload): Initialize t_icode.
853
854 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
855
856         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
857         -msoft-float -mlong-double-128 only issue a warning, but don't
858         swich to DFmode long double.
859
860 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
861
862         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
863         has a constant equivalent, iterate over equivalents for arg0,
864         calling simplify_relational_operation and if there's a result
865         cheaper than X, apply fold_rtx and return the result.
866
867 2006-02-01  Jan Hubicka  <jh@suse.cz>
868
869         * opts.c (no_unit_at_a_time_default): New global variable.
870         (decode_options): Use it.
871         * opts.h (no_unit_at_a_time_default): Declare.
872
873 2006-02-01  Paul Brook  <paul@codesourcery.com>
874
875         * function.c (assign_parm_setup_reg): Use function argument promotion
876         rules.
877         * expr.c (expand_expr_real_1): Use function argument promotion rules
878         for PARM_DECLs.
879
880 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
881
882         * gcc.c (process_command): Change j to 'unsigned int'.
883
884 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
885
886         PR middle-end/26001
887         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
888         Use the corrected index for the character
889         out of the string constant.
890
891 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
892
893         * mode-switching.c (optimize_mode_switching): Fix size
894         allocated for bb_info[n_entities].
895
896 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
897
898         * gcc.c (main): Correct type that is allocated for
899         explicit_link_files.
900
901 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
902
903         * config/s390/s390.c (init_alignment_context): Set
904         ALIAS_SET_MEMORY_BARRIER on the MEM.
905         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
906
907 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
908
909         PR middle-end/25933
910         * loop-unroll.c (unroll_loop_runtime_iterations): Free
911         dom_bbs pointer.
912         * tree-ssa-live.c (type_var_init): Allocate bitmap after
913         call to tpa_init.
914
915 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
916
917         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
918         * regrename.c: Ditto.
919         * tree-ssa-loop-im.c: Ditto.
920         * tree-dump.c: Ditto.
921         * tree-complex.c: Ditto.
922         * genrecog.c: Ditto.
923         * tree-ssa-threadupdate.c: Ditto.
924         * tracer.c: Ditto.
925         * java/class.c: Ditto.
926         * java/jcf-parse.c: Ditto.
927         * java/resource.c: Ditto.
928         * java/except.c: Ditto.
929         * java/jvspec.c: Ditto.
930         * java/jcf-write.c: Ditto.
931         * java/jcf-path.c: Ditto.
932         * java/gjavah.c: Ditto.
933         * java/zextract.c: Ditto.
934         * java/jcf-io.c: Ditto.
935         * java/jcf.h: Ditto.
936         * java/buffer.c: Ditto.
937         * java/lang.c: Ditto.
938         * java/parse-scan.y: Ditto.
939         * java/lex.c: Ditto.
940         * java/lex.h: Ditto.
941         * cfgloopmanip.c: Ditto.
942         * postreload-gcse.c: Ditto.
943         * tree-ssa-loop-manip.c: Ditto.
944         * postreload.c: Ditto.
945         * tree-ssa-loop-ch.c: Ditto.
946         * loop.c: Ditto.
947         * ipa-cp.c: Ditto.
948         * cppspec.c: Ditto.
949         * diagnostic.c: Ditto.
950         * final.c: Ditto.
951         * genoutput.c: Ditto.
952         * gcc.c: Ditto.
953         * cfghooks.c: Ditto.
954         * cfgloopanal.c: Ditto.
955         * objc/objc-act.c: Ditto.
956         * gcov.c: Ditto.
957         * genextract.c: Ditto.
958         * genautomata.c: Ditto.
959         * pretty-print.c: Ditto.
960         * genemit.c: Ditto.
961         * cgraphunit.c: Ditto.
962         * flow.c: Ditto.
963         * df-scan.c: Ditto.
964         * haifa-sched.c: Ditto.
965         * dominance.c: Ditto.
966         * dbxout.c: Ditto.
967         * tree-ssa-loop-ivopts.c: Ditto.
968         * df-core.c: Ditto.
969         * mode-switching.c: Ditto.
970         * modulo-sched.c: Ditto.
971         * graph.c: Ditto.
972         * ipa-pure-const.c: Ditto.
973         * cse.c: Ditto.
974         * fix-header.c: Ditto.
975         * web.c: Ditto.
976         * tree-stdarg.c: Ditto.
977         * ipa-utils.c: Ditto.
978         * loop-init.c: Ditto.
979         * ipa-inline.c: Ditto.
980         * cfganal.c: Ditto.
981         * global.c: Ditto.
982         * alloc-pool.c: Ditto.
983         * dwarf2out.c: Ditto.
984         * opts.c: Ditto.
985         * genattrtab.c: Ditto.
986         * tree-ssa-loop-ivcanon.c: Ditto.
987         * predict.c: Ditto.
988         * timevar.c: Ditto.
989         * lcm.c: Ditto.
990         * fortran/gfortranspec.c: Ditto.
991         * regmove.c: Ditto.
992         * local-alloc.c: Ditto.
993         * langhooks.c: Ditto.
994         * function.c: Ditto.
995         * tree-vectorizer.c: Ditto.
996         * gcse.c: Ditto.
997         * ipa-type-escape.c: Ditto.
998         * alias.c: Ditto.
999         * tree-if-conv.c: Ditto.
1000         * profile.c: Ditto.
1001         * ipa.c: Ditto.
1002         * tree-data-ref.c: Ditto.
1003         * loop-unroll.c: Ditto.
1004         * treelang/treetree.c: Ditto.
1005         * calls.c: Ditto.
1006         * bt-load.c: Ditto.
1007         * ggc-common.c: Ditto.
1008         * except.c: Ditto.
1009         * coverage.c: Ditto.
1010         * cselib.c: Ditto.
1011         * tree-cfgcleanup.c: Ditto.
1012         * tree-ssa-pre.c: Ditto.
1013         * cfgcleanup.c: Ditto.
1014         * loop-invariant.c: Ditto.
1015         * loop-iv.c: Ditto.
1016         * ipa-prop.c: Ditto.
1017         * print-tree.c: Ditto.
1018         * conflict.c: Ditto.
1019         * ggc-page.c: Ditto.
1020         * sched-deps.c: Ditto.
1021         * regclass.c: Ditto.
1022         * tree-object-size.c: Ditto.
1023         * combine.c: Ditto.
1024         * bb-reorder.c: Ditto.
1025         * resource.c: Ditto.
1026         * var-tracking.c: Ditto.
1027         * cfgloop.c: Ditto.
1028         * df-problems.c: Ditto.
1029         * reg-stack.c: Ditto.
1030         * tlink.c: Ditto.
1031         * gccspec.c: Ditto.
1032         * sched-rgn.c: Ditto.
1033         * tree-ssa-structalias.c: Ditto.
1034         * tree-ssa-reassoc.c: Ditto.
1035         * config/darwin-c.c: Ditto.
1036         * config/darwin.c: Ditto.
1037         * config/arm/arm.c: Ditto.
1038         * cfgrtl.c: Ditto.
1039         * collect2.c: Ditto.
1040         * reload1.c: Ditto.
1041
1042 2006-01-31  Nicolas Pitre  <nico@cam.org>
1043
1044         * arm.md (smaxsi3): Make aware of smax_m1.
1045         (smax_m1): New.
1046
1047 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
1048
1049         * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
1050
1051 2006-01-31  Richard Guenther  <rguenther@suse.de>
1052
1053         * doc/invoke.texi (-msselibm): Document.
1054         * target.h (expand_library_builtin): New target hook.
1055         * builtins.c (expand_builtin): Use expand_library_builtin.
1056         (default_expand_library_builtin): New function.
1057         * gcc.c (LINK_GCC_MATH_SPEC): Define.
1058         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
1059         (link_gcc_math_spec): Declare.
1060         (static_specs): Add link_gcc_math_spec.
1061         * expr.h (default_expand_library_builtin): Declare.
1062         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1063         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
1064         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
1065         * config/i386/i386.opt (msselibm): New target option.
1066         * config/i386/i386.c (ix86_builtin_function_variants): New array.
1067         (ix86_init_sse_abi_builtins): New function.
1068         (ix86_expand_library_builtin): Likewise.
1069         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1070         (override_options): Handle error conditions wrt -msselibm.
1071         (ix86_builtins): Add function codes for SSE2 ABI builtins.
1072         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
1073         * doc/extend.texi (__builtin_sse2_*): Document new target specific
1074         builtins.
1075
1076 2006-01-31  Richard Guenther  <rguenther@suse.de>
1077         Paolo Bonzini  <bonzini@gnu.org>
1078
1079         * doc/install.texi (--disable-libgcc-math): Document.
1080
1081 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
1082
1083         * expr.h (expand_normal): new inline function.
1084         * builtins.c: use it, use EXPAND_NORMAL explicitely.
1085         * dojump.c: use it.
1086         * dwarf2out.c: use it.
1087         * expr.c: use it.
1088         * calls.c: use it.
1089         * expmed.c: use it.
1090         * except.c: use it.
1091         * config/sparc/sparc.c: use it.
1092         * config/i386/i386.c: use it.
1093         * config/rs6000/rs6000.c: use it.
1094         * config/arm/arm.c: use it.
1095         * config/mips/mips.c: use it.
1096         * stmt.c: use it, use EXPAND_NORMAL explicitely.
1097
1098 2006-01-30  Roger Sayle  <roger@eyesopen.com>
1099
1100         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
1101         argv to the appropriate type.
1102
1103 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
1104
1105         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
1106         unreachable code.
1107
1108 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
1109
1110         PR target/26018
1111         * config/s390/s390.c (struct machine_function): New flag
1112         decomposed_literal_pool_addresses_ok_p.
1113         (s390_reorg): Set it before final stage of literal pool transforms.
1114         (s390_decompose_address): Only accept displacements of the form
1115         (minus (label_ref ...) (label_ref ...)) if that flag is set.
1116
1117 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
1118
1119         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
1120         the comparison routine return.
1121
1122 2006-01-30  Michael Matz  <matz@suse.de>
1123
1124         * global.c (find_reg): Only evict for global regs.
1125         Take n_refs into account and dump more info.
1126
1127 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
1128
1129         PR target/14798:
1130         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
1131         (pragma_trap, pragma_nosave_low_regs): Likewise.
1132         (current_function_anonymous_args): Likewise.
1133         (sh_deferred_function_attributes): New variable.
1134         (sh_deferred_function_attributes_tail): Likewise.
1135         (print_operand): For '@', look up trap_exit attribute.
1136         (calc_live_regs): Look up trapa_handler attribute.  For trapa
1137         handlers, save/restore fpscr, but don't do any other
1138         interrupt-specific saves.
1139         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
1140         Fix check for partially saved registers to check for SHmedia.
1141         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
1142         (sh_output_function_epilogue): Don't clear any of the removed
1143         variables.
1144         (sh_insert_attributes): Don't check pragma_interrupt.
1145         Insert deferred attributes.  Check that interrupt attribute is
1146         present for other attributes that require its presence.
1147         (sh_attribute_table): Add new attributes trapa_handler and
1148         nosave_low_regs.
1149         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1150         Don't check for pragma_interrupt.  Don't store argument.
1151         * sh.h (pragma_interrupt, sp_switch): Don't declare.
1152         (sh_deferred_function_attributes): Declare.
1153         (sh_deferred_function_attributes_tail): Likewise.
1154         * sh.md (sp_switch_1): Add operand.  Change generator caller.
1155         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
1156         (*return_i): Don't use when trap_exit attribute is in effect.
1157         (*return_trapa): New insn pattern.
1158         * sh-c.c: New file.
1159         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
1160         setting c_target_objs and cxx_target_objs.
1161         * t-sh: Add rule for sh-c.o.
1162
1163 2006-01-30  Richard Guenther  <rguenther@suse.de>
1164
1165         PR c++/23372
1166         * gimplify.c (gimplify_target_expr): Handle easy cases
1167         without creating a temporary.
1168
1169 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
1170
1171         * vec.h (safe_grow): Remove duplicated line.
1172
1173 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
1174
1175         PR 25874
1176         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
1177         (expand_omp): ... here.
1178         (expand_omp_parallel): Only remove barriers for combined
1179         parallel+workshare constructs.
1180
1181 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
1182
1183         Revert
1184
1185         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1186         * tree.c (build_qualified_type): Chain the new type to the original
1187         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
1188         a POINTER_TYPE or a REFERENCE_TYPE respectively.
1189         (build_pointer_type_for_mode): Only return unqualified types.
1190         (build_reference_type_for_mode): Likewise.
1191
1192 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
1193
1194         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
1195         * Makefile.in (CXX_COMPAT_WARN): Define.
1196         * configure: Regenerate.
1197
1198 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
1199
1200         PR tree-opt/25911
1201         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
1202         to an if check.
1203
1204 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1205
1206         * toplev.c: Fix thinko.
1207
1208 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1209             Marcin Dalecki  <martin@dalecki.de>
1210
1211         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
1212         (push_srcloc): Use XNEW.
1213         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
1214
1215 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
1216
1217         * df-core.c (df_set_blocks): Deleted all variable.
1218
1219 2006-01-28  Ian Lance Taylor  <ian@airs.com>
1220
1221         * cgraphunit.c (cgraph_assemble_pending_functions): Call
1222         cgraph_output_pending_asms.
1223
1224 2006-01-28  Zack Weinberg  <zackw@panix.com>
1225
1226         * c.opt: Add -W(no-)overlength-strings.
1227         * doc/invoke.texi: Document it.
1228         * c-opts.c (c_common_handle_option): -pedantic implies
1229         -Woverlength-strings, if not explicitly disabled already.
1230         (c_common_post_options): -Woverlength-strings defaults to off, and
1231         is always off for C++.
1232         * c-common.c (fix_string_type): Issue warning about strings longer
1233         than is portable only if warn_overlength_strings.  Rearrange code
1234         a little for clarity.
1235         * configure.in: Check for -Wno-overlength-strings as well before
1236         enabling -pedantic in stage 1.
1237         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
1238         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
1239
1240         * genconditions.c (write_header, write_one_condition)
1241         (write_conditions, write_writer): Consolidate very long strings
1242         that were broken up to fit in C89 portable limit.  Don't use
1243         printf when fputs will do.
1244
1245 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
1246
1247         * combine.c (simplify_comparison <AND>): Check
1248         TRULY_NOOP_TRUNCATION before start using a subreg.
1249
1250         * config/mips/mips.md (*branch_zero<mode>,
1251         *branch_zero<mode>_inverted, *branch_equality<mode>,
1252         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
1253         Remove mode check from comparisons.
1254
1255 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
1256
1257         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
1258
1259 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
1260
1261         * expmed.c (const_mult_add_overflow_p): Remove.
1262         * expr.h: Remove the prototype for const_mult_add_overflow_p.
1263
1264         * recog.c (validate_replace_rtx_subexp): Remove.
1265         * recog.h: Remove the prototype for
1266         validate_replace_rtx_subexp.
1267
1268         * integrate.h: Remove the prototype for
1269         copy_decl_for_inlining.
1270         * rtl.h: Remove the prototype for mark_constant_function.
1271         * tree-vectorizer.h: Remove the prototype for
1272         vect_strip_conversion.
1273
1274         * modulo-sched.c (create_partial_schedule,
1275         free_partial_schedule, reset_partial_schedule): Make them
1276         static.
1277
1278         * hooks.c (hook_bool_rtx_int_false): Remove.
1279         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
1280
1281 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
1282
1283         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
1284         and -mlong-double-128 are incompatible.
1285         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1286         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
1287         (TARGET_LIBGCC2_CFLAGS): Define.
1288         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
1289         (TARGET_LIBGCC2_CFLAGS): Same.
1290         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
1291
1292 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
1293
1294         PR c/19606.
1295         * c-typeck.c (build_binary_op): Perform implicit casts of
1296         operands before shortening them.
1297
1298         * cfgloopmanip.c (split_loop_bb): Remove.
1299         * cfgloop.h: Remove the prototype for split_loop_bb.
1300
1301         * cfgloop.c (flow_loop_outside_edge_p): Remove.
1302         * cfgloop.h: Remove the prototype for
1303         flow_loop_outside_edge_p.
1304
1305         * emit-rtl.c (init_virtual_regs): Make it static.
1306         * function.h: Remove the prototype for init_virtual_regs.
1307
1308         * recog.c (peephole2_optimize): Make it static.
1309         * recog.h: Remove the prototype for peephole2_optimize.
1310
1311 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
1312
1313         * df-scan.c (df_record_entry_block_defs): Check if
1314         INCOMING_RETURN_ADDR_RTX is defined.
1315
1316 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
1317             Kenneth Zadeck <zadeck@naturalbridge.com>
1318
1319         PR rtl-optimization/24762
1320         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
1321         * targhooks.c (hook_void_bitmap): New hook prototype.
1322         * targhoohs.h (hook_void_bitmap): Ditto.
1323         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
1324         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
1325         * target.h (live_on_entry): New function pointer.
1326         * df-scan.c (df_all_hard_regs): Removed.
1327         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
1328         (df_scan_free_internal): Added df->entry_block_defs.
1329         (df_scan_alloc): Ditto.
1330         (df_scan_dump): Ditto.
1331         (df_uses_record): Plumbed flag field properly thru calls.
1332         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
1333         This part fixes PR24762.
1334         (df_bb_refs_record): Added code to make the frame and arg
1335         pointers live in EH blocks.
1336         (df_refs_record): Added call to df_record_entry_block_defs.
1337         (df_record_entry_block_defs): New function.
1338         * df-core.c: Added comments to describe new artifical defs.
1339         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
1340         (entry_block_defs): New field in struct df.
1341         (df_all_hard_regs): Deleted.
1342         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
1343         * df-problems.c (df_ru_bb_local_compute_process_def):
1344         Added code to handle artifical defs in the entry to a function.
1345         (df_ru_bb_local_compute): Ditto.
1346         (df_rd_bb_local_compute_process_def):  Ditto.
1347         (df_rd_bb_local_compute): Ditto.
1348         (df_lr_bb_local_compute): Ditto.
1349         (df_ur_bb_local_compute): Ditto.
1350         (df_urec_bb_local_compute):  Ditto.
1351         (df_chain_create_bb):  Ditto.
1352         (df_ur_local_finalize): Removed entry.
1353         (df_urec_init): Ditto.
1354         (df_urec_local_finalize): Ditto.
1355         (df_ri_bb_compute): Added detection of last use of pseudos.
1356         * Makefile.in (df-scan.o): Updated dependencies.
1357         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
1358         * config/mips/mips.c (mips_set_live_on_entry): Added.
1359         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
1360         for target hook.
1361         * dce.c (marked_insn_p): Added code to handle artifical defs.
1362
1363 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
1364
1365         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
1366         intrinsic.
1367         (_mm_cvtsi128_si64): Likewise.
1368         (_mm_cvtsd_si64): Likewise.
1369         (_mm_cvttsd_si64): Likewise.
1370         (_mm_cvtsi64_sd): Likewise.
1371         (_mm_cvtsi64_si128): Likewise.
1372         * config/i386/mmintrin.h (_m_from_int64): Likewise.
1373         (_mm_cvtsi64_m64): Likewise.
1374         (_m_to_int64): Likewise.
1375         (_mm_cvtm64_si64): Likewise.
1376         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
1377         (_mm_cvttss_si64): Likewise.
1378         (_mm_cvtsi64_ss): Likewise.
1379         (_mm_cvtss_f32): Likewise.
1380
1381 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
1382
1383         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
1384         for pragma redefine_extname.
1385
1386 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
1387
1388         PR target/25864
1389         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
1390         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
1391         -mno-minimal-toc to previous content.
1392         (bispecs): Remove goal.
1393         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
1394         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
1395         compatibility aliases on powerpc-*-*gnu*.
1396         * config/rs6000/libgcc-ppc-glibc.ver: New file.
1397         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
1398         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
1399         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
1400         (ldblspecs): New goal.
1401         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
1402         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
1403         _df_to_tf.
1404         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
1405         L_sf_to_tf or L_df_to_tf is defined.
1406
1407 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
1408             Alan Modra  <amodra@bigpond.net.au>
1409
1410         PR target/25864
1411         * config/rs6000/linux.h (POWERPC_LINUX): Define.
1412         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
1413         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
1414         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
1415         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
1416         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
1417         (rs6000_override_options): Initialize rs6000_ieeequad.
1418         Initialize TFmode format to ibm_extended_format if not
1419         TARGET_IEEEQUAD.
1420         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
1421         ieeelongdouble.
1422         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
1423         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
1424         (function_arg_advance): IBM long double passed in two FPRs, not
1425         split.
1426         (function_arg): IBM long double passed in FPRs.
1427         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
1428         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
1429         Only multireg GPR aligned.
1430         (rs6000_init_libfuncs): Enable IBM long double functions if not
1431         IEEEQUAD.
1432         (rs6000_generate_compare): Use IBM long double compare if not
1433         TARGET_IEEEQUAD.
1434         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
1435         (TARGET_IEEEQUAD): Define.
1436         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
1437         not TARGET_IEEEQUAD.
1438         * config/rs6000/rs6000.md: Enable TFmode patterns if
1439         !TARGET_IEEEQUAD.
1440         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
1441         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
1442         and -mlong-double-128 are incompatible.
1443         * doc/invoke.texi (-mabi): Collect options together.  Add
1444         ibmlongdouble and ieeelongdouble.
1445
1446 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
1447
1448         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
1449         opaque type.
1450         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
1451         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
1452         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
1453         * rtl.h (rtunion_def): Remove rt_ptr.
1454         (X0PTR): Delete.
1455         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
1456         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
1457         * config/i386/winnt.c (i386_pe_mark_dllexport)
1458         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
1459
1460 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
1461
1462         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
1463
1464 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
1465
1466         PR other/24829
1467         PR target/24831
1468         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
1469         pthread_key_delete.  From John David Anglin.  gthrw-ify
1470         pthread_getunique_np only if it it's not a macro.  Delete
1471         UNUSED macro.
1472         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
1473         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
1474         __gthread_objc_condition_signal, __gthread_key_delete): Add
1475         "__attribute__ ((__unused__))" to unused arguments.
1476         (__gthread_recursive_mutex_init_function): Add missing return.
1477         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
1478         gthr-posix95.h: Use macro-based approach for name redirection
1479         on targets missing weakref.
1480
1481 2006-01-26  Zack Weinberg  <zackw@panix.com>
1482
1483         * genconditions.c (write_header): In generated code, #ifdef out
1484         all includes and fake declarations, except includes of bconfig.h
1485         and system.h, unless GCC_VERSION >= 3001.  Do not include
1486         gensupport.h in any case.
1487         (write_conditions): Generate a definition of struct c_test.  Add
1488         a comment to the generated #endif.
1489         (write_one_condition): Escape backslashes in string too.
1490         (write_writer): Generated code must escape backslashes and quote
1491         marks (but not newlines) in the strings it writes.
1492         * Makefile.in (build/gencondmd.o): Update dependencies.
1493
1494 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
1495
1496         PR target/25961
1497         * Makefile.in (insn-automata.o): Add header file dependencies.
1498         * genautomata.c: Add includes.
1499
1500 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
1501
1502         PR target/25961
1503         * Makefile.in (insn-automata.o): Add -Wno-error flag.
1504
1505 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
1506
1507         * configure.ac: Expect target tools paths to be passed from the toplevel
1508         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
1509         AS_SET_VAR_IF.
1510         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
1511
1512 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
1513
1514         PR c/25892
1515         * c.opt (Wpointer-sign): Init to -1.
1516         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
1517         OPT_pedantic, to 0 otherwise.
1518         * doc/invoke.texi: Update.
1519
1520 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
1521
1522         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
1523         constants provided by 80387 instructions in the destination mode.
1524
1525 2006-01-26  Richard Guenther  <rguenther@suse.de>
1526             Andrew Pinski  <pinskia@physics.uc.edu>
1527
1528         PR tree-opt/21470
1529         partial PR tree-opt/17064
1530         * tree-ssa-structalias.c (intra_create_variable_infos):
1531         Create heap variables for incoming parameters if
1532         flag_argument_noalias > 1.
1533         (find_what_p_points_to): Look through default defs of
1534         parameter decls.
1535
1536 2006-01-26  Jeff Law  <law@redhat.com>
1537
1538         PR ada/25900
1539         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
1540         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
1541         within the VR_RANGE, use the VR_RANGE as the result, not the
1542         VR_ANTI_RANGE.
1543         (adjust_range_with_scev): Reject ranges from SCEV which are out of
1544         bounds for the type.
1545
1546 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
1547
1548         * tree-ssa-alias.c (maybe_create_global_var): Change
1549         subvar walking to an assertion that we don't have subvar'd variables.
1550
1551 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
1552
1553         PR C/25861
1554         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
1555         Use a new variable, inner.  PARM_DECLs are always non-weak.
1556
1557 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
1558
1559         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
1560         --disable-checking.
1561
1562 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
1563
1564         * config/mips/mips.md (*clear_upper32): New combiner pattern.
1565
1566 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
1567
1568         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
1569         (smax_insn, smin_insn, smax_0, smin_0): New.
1570
1571 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
1572
1573         PR target/25947
1574         * config/cris/cris.c (cris_order_for_addsi3): New function.
1575         * config/cris/cris-protos.h: Prototype it.
1576         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
1577         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
1578         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
1579         (split for "op.S1 [rx=rx+i],ry (swapped)")
1580         (split for "op(s|u).S1 [rx=rx+i],ry")
1581         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
1582         Apply cris_order_for_addsi3 when generating addsi3 insns.
1583
1584 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
1585
1586         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
1587         (TREE_BLOCK): Add call to EXPR_CHECK.
1588
1589 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
1590
1591         PR 25886
1592         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
1593         * tree-pretty-print.c (dump_omp_clause): Extract from ...
1594         (dump_omp_clauses): ... here.
1595         (dump_generic_node): Handle OMP_CLAUSE.
1596         * tree.c (omp_clause_num_ops): New.
1597         (omp_clause_code_name): New.
1598         (tree_code_size): Handle OMP_CLAUSE.
1599         (tree_size): Likewise.
1600         (make_node): Document handling of OMP_CLAUSE.
1601         (tree_node_structure): Handle OMP_CLAUSE.
1602         (omp_clause_check_failed): New.
1603         (omp_clause_range_check_failed): New.
1604         (omp_clause_operand_check_failed): New.
1605         (build_omp_clause): New.
1606         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
1607         * tree.h (enum omp_clause_code): Declare.
1608         (OMP_CLAUSE_SUBCODE_CHECK): Define.
1609         (OMP_CLAUSE_RANGE_CHECK): Define.
1610         (OMP_CLAUSE_ELT_CHECK): Define.
1611         (omp_clause_check_failed): Declare.
1612         (omp_clause_operand_check_failed): Declare.
1613         (omp_clause_range_check_failed): Declare.
1614         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
1615         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
1616         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
1617         (OMP_CLAUSE_LASTPRIVATE): Likewise.
1618         (OMP_CLAUSE_IF_EXPR): Likewise.
1619         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
1620         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
1621         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
1622         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
1623         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
1624         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
1625         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
1626         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
1627         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
1628         (OMP_CLAUSE_CODE): Define.
1629         (OMP_CLAUSE_SET_CODE): Define.
1630         (OMP_CLAUSE_CODE): Define.
1631         (OMP_CLAUSE_OPERAND): Define.
1632         (struct tree_omp_clause): Declare.
1633         (union tree_node): Add field 'omp_clause'.
1634         * treestruct.def (TS_OMP_CLAUSE): Define.
1635         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
1636         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
1637         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
1638         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
1639         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
1640         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
1641         (OMP_CLAUSE): Define.
1642         * print-tree.c (print_node): Handle OMP_CLAUSE.
1643         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
1644         * c-typeck.c: Likewise.
1645         * gimplify.c: Likewise.
1646         * c-omp.c: Likewise.
1647         * tree-nested.c: Likewise.
1648         * tree-inline.c: Likewise.
1649         * c-parser.c: Likewise.
1650         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
1651         clauses.
1652
1653 2006-01-25  Roger Sayle  <roger@eyesopen.com>
1654
1655         PR rtl-optimization/25703
1656         * combine.c (try_combine): Handle zero_extract and strict_low_part
1657         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
1658
1659 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
1660
1661         * global.c: Fix comment typos.
1662
1663 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
1664
1665         PR target/25758
1666         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
1667         Use output_addr_const instead of assemble_name.
1668
1669 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
1670
1671         * Makefile.in (sched-vis.o): Update dependencies.
1672         * haifa-sched.c (sched_finish): Clear current_sched_info.
1673         * cfg.c (dump_bb_info): New, split from dump_flow_info.
1674         (dump_flow_info): Call it.
1675         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
1676         a slim RTL dump.
1677         * basic-block.h (dump_bb_info): Declare.
1678         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
1679         option, and apply options only for dump files whose TDF_RTL,
1680         TDF_TREE, or TDF_IPA bits match.
1681         * rtl.h: Declare new functions exported from sched-vis.c.
1682         * sched-vis.c: Enable also if scheduling is not used.
1683         (print_value): Print the mode of registers if not inside scheduling.
1684         (print_insn): Make it work outside the scheduler.  Beautify the output
1685         a bit.
1686         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
1687
1688 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
1689
1690         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
1691         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
1692         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
1693         depending on the value of CONSTANT_POOL_ADDRESS_P.
1694         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
1695         SYMBOL_REF_DECL.
1696         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
1697         rather than SYMBOL_REF_DECL.
1698         (rtx_constant_pool): Remove const_rtx_sym_htab.
1699         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
1700         (init_varasm_status): Don't initialize const_rtx_sym_htab.
1701         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
1702         Remove handling of const_rtx_sym_htab.
1703         (find_pool_constant): Delete.
1704         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
1705         rather than find_pool_constant.
1706         (get_pool_constant_for_function): Delete.
1707         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
1708         find_pool_constant.
1709         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
1710         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
1711         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
1712         (SYMBOL_REF_CONSTANT): New macro.
1713         (get_pool_constant_for_function): Delete.
1714         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
1715         rather than SYMBOL_REF_DECL.
1716         (i386_pe_mark_dllimport): Likewise.
1717         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
1718         rather than SYMBOL_REF_DECL.
1719         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1720         (machopic_indirect_call_target): Likewise.
1721
1722 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
1723
1724         * flow.c (delete_noop_moves): Add missing EOL to dump message.
1725
1726 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
1727
1728         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
1729
1730 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1731
1732         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
1733
1734 2006-01-24  David Daney  <ddaney@avtrex.com>
1735
1736         PR java/25816
1737         * configure.ac (enable_tls): New enable option.
1738         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
1739         * configure: Regenerate.
1740         * doc/install.texi (--enable-tls): Document new option.
1741         (--disable-tls): Ditto.
1742
1743 2006-01-24  Richard Henderson  <rth@redehat.com>
1744
1745         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
1746         * alias.c (true_dependence): Respect it.
1747         (canon_true_dependence, write_dependence_p): Likewise.
1748         * builtins.c (get_builtin_sync_mem): Set it.
1749
1750 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
1751
1752         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
1753         efficient way.
1754
1755 2006-01-24  DJ Delorie  <dj@redhat.com>
1756
1757         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
1758         for storing constants in single-bit bitfields.
1759
1760 2006-01-25  Ben Elliston  <bje@au.ibm.com>
1761
1762         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
1763
1764 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
1765
1766         PR tree-opt/25860
1767         * tree-ssa-pre.c (phi_translate): Return NULL
1768         for AGGREGATE_TYPE's.
1769
1770 2006-01-24  Zack Weinberg  <zackw@panix.com>
1771
1772         * genautomata.c (process_state_for_insn_equiv_partition):
1773         Use xcalloc for insn_arcs_array.
1774         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
1775         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
1776
1777 2006-01-24  Richard Henderson  <rth@redhat.com>
1778
1779         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
1780         update all callers.
1781
1782 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
1783
1784         PR rtl-optimization/25890
1785         PR rtl-optimization/25905
1786         * combine.c (expand_compound_operation, expand_field_assignment):
1787         Fail if the bitfield's final position is out of bounds.
1788
1789 2006-01-24  Ian Lance Taylor  <ian@airs.com>
1790
1791         PR middle-end/25930
1792         * cgraphunit.c (cgraph_output_in_order): Don't clear
1793         cgraph_asm_nodes until after asm strings have been output.
1794
1795 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
1796
1797         * fix-header.c (read_scan_file): Add new parameter imultilib when
1798         calling register_include_chains.
1799
1800 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
1801
1802         * omp-low.c: Update documentation.
1803
1804 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
1805             Daniel Berlin  <dberlin@dberlin.org>
1806
1807         PR tree-opt/25315
1808         PR tree-opt/25857
1809         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
1810         return from the function.
1811
1812 2006-01-22  Zack Weinberg  <zackw@panix.com>
1813
1814         * rtl.def (match_code): Add second argument.
1815         * genpreds.c (write_extract_subexp): New function.
1816         (write_match_code): Add path argument.  Use write_extract_subexp.
1817         (write_predicate_expr): Pass path to write_match_code.
1818         (mark_mode_tests): MATCH_CODE applied to a subexpression does
1819         not perform a mode test.
1820         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
1821         a subexpression does not constrain the top-level code set.
1822         * read-rtl.c (read_rtx_variadic): New function.
1823         (read_rtx_1): Use it; allow AND and IOR to be variadic.
1824         * doc/md.texi: Document new notation.
1825         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
1826         (cmpsi_operand): ... here, using new notation.
1827
1828 2006-01-22  Zack Weinberg  <zackw@panix.com>
1829
1830         * varray.c: Remove GENERATOR_FILE #ifdefs.
1831
1832 2006-01-22  Zack Weinberg  <zackw@panix.com>
1833
1834         * genautomata.c (output_reserved_units_table): Emit nothing if
1835         description->query_units_num is zero.  Remove extra blank line.
1836         (output_cpu_unit_reservation_p): Short circuit
1837         if description->query_units_num is zero.
1838
1839 2006-01-22  Zack Weinberg  <zackw@panix.com>
1840
1841         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
1842         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
1843         nor any of the random handful of variables that used to be necessary
1844         when this program was linked with rtlanal.o.  Prune set of forward
1845         function declarations.
1846         (struct attr_desc): Remove static_p field.
1847         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
1848         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
1849         (attr_string): Do not read the character one past the length of
1850         the string.
1851         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
1852         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
1853         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
1854         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
1855         (make_automaton_attrs): New.
1856         (main): Do not call into genautomata.  Call local gen_bypass
1857         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
1858         Remove special case for insn_alts.
1859         * genautomata.c: Include gensupport.h; not genattrtab.h nor
1860         varray.h (leftover from previous change).  Prune set of forward
1861         function declarations.  Remove state_alts fields from all
1862         structures.  Remove state_alts_table from struct automaton.
1863         Make everything except main static.  Do not maintain num_dfa_decls.
1864         Do not maintain state_alts fields of various structures.
1865         (process_decls): Don't validate condexp for dm_insn_reserv decls.
1866         (add_arc): Remove state_alts argument.  All callers updated.
1867         (output_reserved_units_table): Emit #ifdef here...
1868         (output_tables): ...not here.  Don't generate state_alts tables.
1869         (expand_automata): Don't generate attributes.
1870         (write_automata): Don't generate state_alts functions.
1871         (main): New function.
1872         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
1873         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
1874         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
1875         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
1876         (BYPASS_P_FUNC_NAME, output_state_alts_table)
1877         (output_automata_list_state_alts_code, output_internal_state_alts_func)
1878         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
1879         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
1880         Delete.
1881         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
1882         * genattrtab.h: Delete file.
1883         * Makefile.in (OBJS-common): Add insn-automata.o.
1884         (insn-automata.o): New rule.
1885         (simple_generated_c): Add insn-automata.c.
1886         (build/genattrtab.o, build/genautomata.o): Update dependencies.
1887         (genprogmd): Add automata.
1888         (build/genattrtab): Needs no extra objects nor libraries.
1889         (build/genautomata): Needs build/vec.o and -lm.
1890
1891 2006-01-22  Zack Weinberg  <zackw@panix.com>
1892
1893         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
1894         (output_dfa_max_issue_rate, locked_states_num): Delete.
1895         (struct automaton): Add locked_states field.
1896         (output_dead_lock_vect): Save number of locked states in
1897         automaton->locked_states.  If it is zero, don't print anything.
1898         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
1899         (output_internal_dead_lock_func): Only test the dead_lock_vect
1900         for automata that have locked states.
1901         (output_statistics): Always print the number of locked states for
1902         each automaton.  Calculate total number of locked states here.
1903         (write_automata): Don't call output_dfa_max_issue_rate.
1904         * genattrtab.c: Define length_unit_log as a const variable.
1905         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
1906         max_insn_queue_index const.
1907         * final.c (length_unit_log): Declare const.
1908         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
1909
1910 2006-01-22  Zack Weinberg  <zackw@panix.com>
1911
1912         * genautomata.c:  Include vec.h, not varray.h.
1913         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
1914         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
1915         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
1916         VEC_* macros operating on appropriately typed vectors, or to
1917         malloced arrays when the size is known in advance.  Const-ify
1918         many char* variables and function arguments.  No functional changes.
1919         * Makefile.in (build/varray.o): Delete rule.
1920         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
1921         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
1922
1923 2006-01-22  Zack Weinberg  <zackw@panix.com>
1924
1925         * gensupport.c: Define get_insn_name and record_insn_name here.
1926         (read_md_rtx): Call record_insn_name as appropriate.
1927         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
1928         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
1929         * genpreds.c, genrecog.c: Don't define get_insn_name nor
1930         record_insn_name.
1931         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
1932         (BUILD_VARRAY): Delete.
1933         (genprognormal): Rename genprogmd.  Fold in all programs from
1934         genprognoprint; also attrtab.
1935         (build/genattrtab): Just mention genautomata.o and varray.o.
1936         Reorganize a bit, add comments to make the categories clearer.
1937
1938 2006-01-22  Zack Weinberg  <zackw@panix.com>
1939
1940         * genconditions.c (condition_table, add_condition): Delete.
1941         (write_conditions): Don't emit n_insn_conditions nor
1942         insn_elision_unavailable.  Issue the gcc version #ifdef here,
1943         inside the table, with no #else clause ...
1944         (write_header): ...not here.
1945         (write_writer): New function.
1946         (main): Don't initialize condition_table.  Use add_c_test.
1947         Call write_writer.
1948         * gensupport.c (init_md_reader_args_cb): Handle multiple input
1949         files on the command line.
1950         (maybe_eval_c_test): Don't check insn_elision_unavailable.
1951         Return -1 if there is no entry in the table, don't abort.
1952         (add_c_test, traverse_c_tests): New functions.
1953         * gensupport.h (insn_elision_unavailable, insn_conditions)
1954         (n_insn_conditions): Delete declarations.
1955         (add_c_test, traverse_c_tests): Declare.
1956         * read-rtl.c: Include gensupport.h.
1957         (read_conditions): New function.
1958         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
1959         (read_rtx_1): If we get EOF when we were looking for an initial
1960         open paren, return 0.  Call read_conditions when appropriate.
1961         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
1962         dummy-conditions.o.  Eliminate references to insn-conditions.o,
1963         or change them to build/gencondmd.o, as appropriate.  Remove
1964         insn-constants.h from $(simple_generated_h) and insn-conditions.c
1965         from $(simple_generated_c).  For all files remaining in those
1966         two lists, add insn-conditions.md to the generator command line.
1967         Give insn-constants.h/s-constants their own rules.  Add rules
1968         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
1969         (build/read-rtl.o): Depend on gensupport.h.
1970         (genprognormal): Include preds.
1971         (genprogearly): Rename genprognoprint; only difference is now that
1972         they don't link with $(BUILD_PRINT).
1973         * dummy-conditions.c: Delete.
1974
1975 2006-01-22  Zack Weinberg  <zackw@panix.com>
1976
1977         * genextract.c: Don't include insn-config.h.  Do include vec.h.
1978         Declare vectors of int, char, and locstr.
1979         (locstr): New typedef.
1980         (struct extraction): Make all array fields into bare pointers.
1981         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
1982         (insn_code_number): Delete.
1983         (accum_extract): New struct.
1984         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
1985         (gen_insn): Take insn_code_number as an argument.  Use an
1986         accum_extract structure instead of loading data directly into
1987         a struct extraction, and having to know how big it might get.
1988         (walk_rtx): Operate entirely on an accum_extract structure.
1989         (print_path): Avoid unnecessary use of printf.
1990         (print_header): New function, split out of main.  Distinguish
1991         more carefully between an unrecognizable insn and an insn that
1992         has the code number of a define_expand.
1993         (main): Pass insn_code_number to gen_insn.  Call print_header
1994         only after parsing.  Avoid unnecessary use of printf.
1995         * Makefile.in (build/vec.o): New rule.
1996         (build/genextract): Depend on build/vec.o.
1997         (build/genextract.o): Don't depend on insn-config.h.
1998
1999 2006-01-22  Zack Weinberg  <zackw@panix.com>
2000
2001         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
2002         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
2003         practical.  Eliminate per-generator-program link rules.
2004
2005 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
2006
2007         PR middle-end/24437
2008         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
2009         with a call expr to ...
2010         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
2011
2012 2006-01-23  Richard Guenther  <rguenther@suse.de>
2013
2014         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
2015         before make_edge with conditional EDGE_TRUE_VALUE.
2016
2017 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
2018         Jan Hubicka  <jh@suse.cz>
2019         Richard Guenther  <rguenther@suse.de>
2020
2021         PR rtl-optimization/25654
2022         * cfgexpand.c (aggregate_contains_union_type): New function.
2023         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
2024         for structure variables that contain a union type.
2025
2026 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
2027
2028         * gengtype.c (new_structure): Return the structure.
2029         (create_option): Add an extra "next" argument.
2030         (create_field): New function.
2031         (adjust_field_rtx_def): Use create_option and create_field.
2032         Remove a now-unnecessary call to find_structure.
2033         (adjust_field_tree_def): Likewise.
2034         (note_yacc_type): Remove an unnecessary call to find_structure.
2035         * gengtype.h (new_structure): Return the structure.
2036         (create_option): Add an extra argument.
2037         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
2038         (option): Adjust calls to create_option.
2039
2040 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
2041
2042         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
2043
2044 2006-01-22  Paul Brook  <paul@codesourcery.com>
2045         Peter Barada  <peter@the-baradas.com>
2046
2047         * config/m68k/m68k.md: Add Coldfire FPU support.
2048         Define FP mode macro and associated attributes.
2049         Use it for float mode patterns.
2050         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
2051         (LIBCALL_VALUE): Use m68k_libcall_value.
2052         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
2053         (m68k_function_value): Ditto.
2054         (emit_move_sequence): Ditto.
2055         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
2056         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
2057         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
2058         (MULTILIB_EXCEPTIONS): Ditto.
2059         * config/m68k/m68k.opt: Add mcfv4e.
2060         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
2061         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
2062         (m68k_output_function_prologue): Save ColdFire FPU registers.
2063         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
2064         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
2065         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
2066         ColdFire FPU registers.
2067         (m68k_libcall_value, m68k_function_value): New functions.
2068         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
2069         (LIBCALL_VALUE): Use m68k_libcall_value.
2070         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
2071         (MASK_COLDFIRE): Add MASK_CFV4E.
2072         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
2073         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
2074         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
2075         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
2076         (GO_IF_LEGITIMATE_ADDRESS): Use it.
2077         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
2078         * doc/invoke.tex: Document -mcfv4e on m68k.
2079
2080 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
2081
2082         * doc/contribute.texi: Change CVS to SVN and update the corresponding
2083         URL.
2084
2085 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2086
2087         PR c++/16190
2088         * c-opts.c (c_common_handle_option): Don't include
2089         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
2090         * doc/invoke.texi (C++ Dialect Options): Document that
2091         -Wnon-virtual-dtor is no longer included in -Wall.
2092
2093 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
2094
2095         * gcov.c (print_version), gcov-dump.c (print_version),
2096         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
2097         dates.
2098
2099 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
2100
2101         * df-scan.c (problem_SCAN): Added NULL reset function.
2102         (df_scan_reset_blocks): Added code to call reset block function
2103         (df_bb_refs_delete) Fixed comment.
2104         (df_insn_refs_delete): Made tolerant of deleting non existent info
2105         for dataflow problems that need to be reset.
2106         * df-core.c (df_set_blocks): Ditto.
2107         * df.h (struct df_problem): Added reset_fun.
2108         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
2109         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
2110         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
2111         functions to clear out all references to def-use or use-def chains.
2112
2113 2006-01-21  Ben Elliston  <bje@au.ibm.com>
2114
2115         * varasm.c (assemble_real): Initialise data array.
2116
2117 2006-01-20  Paul Brook  <paul@codesourcery.com>
2118
2119         Merge from csl-arm-branch.
2120         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
2121         * config/arm/arm.md (movdi): Force operands[1] to a register
2122         if we have a non-register source.
2123         (*arm_movdi, *movdf_soft_insn): Require that one of the
2124         operands be a register.
2125         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
2126         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2127
2128 2006-01-20  DJ Delorie  <dj@redhat.com>
2129
2130         * varasm.c (initialize_constant_valid_p): Allow pointers
2131         initialized from integer constants of lesser precision.
2132         (output_constant): Allow non-int-sized pointer modes to be
2133         initialized from integer constants.
2134
2135 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
2136
2137         PR libstdc++/25524
2138         * cppdefault.h (struct default_include): Add multilib flag.
2139         * cppdefault.c (cpp_include_defaults): Set it.
2140         * c.opt (-imultilib): New option.
2141         * c-opts.c (imultilib): New.
2142         (c_common_handle_option): Handle -imultilib.
2143         (c_common_post_options): Likewise.
2144         * c-incpath.c (add_standard_paths, register_include_chains):
2145         Likewise.
2146         * c-incpath.h (register_include_chains): Add extra parameter.
2147         * gcc.c (do_spec_1): Generate -imultilib option.
2148         (The Specs Language): Update %I description.
2149         (process_command): Update copyright notice.
2150         * doc/cppopts.texi (-imultilib): Document.
2151         * doc/invoke.texi (-imultilib): Include in option summary.
2152         (%I): Update specs documentation.
2153
2154 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
2155
2156         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
2157
2158 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
2159
2160         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
2161         label numbers.
2162
2163 2006-01-20  Richard Guenther  <rguenther@suse.de>
2164         Steven Bosscher <stevenb.gcc@gmail.com>
2165
2166         PR rtl-optimization/24626
2167         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
2168         EDGE_TRUE_VALUE if in RTL mode.
2169
2170         Revert
2171         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
2172         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
2173
2174 2006-01-20  Dirk Mueller  <dmueller@suse.com>
2175
2176         PR c++/5520
2177         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
2178         instead of a special NOP marker.
2179         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
2180         NOP marker handling.
2181         * c-common.h (empty_body_warning): Add forward declaration.
2182         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
2183         Now uses IS_EMPTY_STMT() instead of special NOP markers.
2184
2185 2006-01-20  Paul Brook  <paul@codesourcery.com>
2186
2187         * Makefile.in (lang_checks): Keep going if mkdir fails.
2188
2189 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2190
2191         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
2192         be able to clean out basic block when not necessary.
2193         (df_scan_free): Fixed to properly delete information if df is
2194         unused before calling df_finish.
2195         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
2196         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
2197         or comment typos.
2198         (df_bb_refs_delete): New function.
2199         (df_refs_delete): Moved per block code to df_bb_refs_delete.
2200         * df-core.c (df_set_blocks): Added code to properly clean out
2201         unused blocks if they are not part of the blocks to consider.
2202         Added additional null check.
2203         (df_compact_blocks): Added basic block parameter to free_bb_fun to
2204         be able to clean out basic block when not necessary
2205         * df.h (df_free_bb_function): Ditto.
2206         (df_bb_refs_delete): New function.
2207         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
2208         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
2209         basic block parameter to be able to clean out basic block when not
2210         necessary.
2211         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
2212         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
2213         Fixed to properly delete information if df is unused before
2214         calling df_finish.
2215
2216 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2217
2218         PR rtl-optimization/25799
2219         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
2220         Corrected confluence operator to remove bits from op2 before oring
2221         with op1 rather than removing bits from op1.
2222         (df_ru_transfer_function): Corrected test on wrong bitmap which
2223         caused infinite loop.  Both of these problems were introduced in
2224         the dataflow rewrite.
2225
2226 2006-01-19  DJ Delorie  <dj@redhat.com>
2227
2228         * reload1.c (find_reload_regs): Note the details of reload
2229         failures in the dump file.
2230         (spill_failure): Likewise.
2231
2232 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
2233
2234         * loop-iv.c: Include df.h and hashtab.h.
2235         (enum iv_grd_result): New enum.
2236         (DF_REF_IV, DF_REF_IV_SET): New macros.
2237         (struct biv_entry): New.
2238         (df, bivs): New global variables.
2239         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
2240         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
2241         Removed.
2242         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
2243         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
2244         analyzed_for_bivness_p, record_biv): New functions.
2245         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
2246         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
2247         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
2248         UD chains.
2249         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
2250         analysed.
2251         (iv_number_of_iterations): Use new interface to iv analysis.
2252         * loop-unroll.c: Do not include varray.h.
2253         (analyze_iv_to_split_insn): Use new interface to iv
2254         analysis.
2255         * loop-unswitch.c (may_unswitch_on): Ditto.
2256         * df.c (df_bitmaps_free): Only work for bbs for that structures are
2257         allocated.
2258         (df_bb_modify): Realloc tables to the new index.
2259         (df_find_use): New function.
2260         * df.h (df_find_use): Declare.
2261         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
2262         outmode.
2263         * cfgloop.h (struct rtx_iv): Remove analysed field.
2264         (iv_get_reaching_def): Removed.
2265         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
2266         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
2267         (loop-iv.o): Add df.h and hashtab.h dependency.
2268         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
2269
2270 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
2271
2272         PR target/25668
2273         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
2274         Double TFmode.
2275         (__floatundisf, __floatundidf): Likewise.
2276         * libgcc2.h (IS_IBM_EXTENDED): Define.
2277
2278 2006-01-19  DJ Delorie  <dj@redhat.com>
2279
2280         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
2281
2282 2006-01-19  Paul Brook  <paul@codesourcery.com>
2283
2284         * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
2285         as nothrow when unwinding tables are disabled.
2286
2287 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2288
2289         PR testsuite/25171
2290         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
2291         of bit-field" when in system header.
2292
2293 2006-01-19  DJ Delorie  <dj@redhat.com>
2294
2295         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
2296         the 16 bit shift limit of the m16c.
2297
2298 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
2299
2300         PR target/22099
2301         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
2302         * config/i386/i386.c (output_set_got): Output the label if we have one
2303         for the TARGET_DEEP_BRANCH_PREDICTION case.
2304
2305 2006-01-19  Jan Hubicka  <jh@suse.cz>
2306             H.J. Lu  <hongjiu.lu@intel.com>
2307             Evandro Menezes <evandro.menezes@amd.com>
2308
2309         * invoke.texi (generic): Document
2310         (i686) Update.
2311         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
2312         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
2313         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
2314         (x86_use_incdec, x86_pad_returns): New variables
2315         (TARGET_CPU_DEFAULT_generic): New constant
2316         (TARGET_CPU_DEFAULT_NAMES): Add generic.
2317         (enum processor_type): Add generic32 and generic64.
2318         * i386.md (cpu attribute): Add generic32/generic64
2319         (movhi splitter): Behave sanely when both partial_reg_dependency and
2320         partial_reg_stall are set.
2321         (K8 splitters): Enable for generic as well.
2322         * predicates.md (incdec_operand): Use TARGET_INCDEC
2323         (aligned_operand): Avoid memory mismatch stalls.
2324         * athlon.md: Enable for generic64, new patterns for 128bit moves.
2325         * ppro.md: Enable for generic32
2326         * i386.c (generic64_cost, generic32_cost): New.
2327         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
2328         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
2329         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
2330         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
2331         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
2332         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
2333         x86_partial_reg_dependency, x86_memory_mismatch_stall,
2334         x86_accumulate_outgoing_args, x86_prologue_using_move,
2335         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
2336         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
2337         Enable for generic.
2338         (x86_use_incdec, x86_pad_returns): New.
2339         (override_options): Add generic32 and generic64, translate "generic"
2340         to generic32/generic64 and "i686" to "generic32", refuse
2341         "generic32"/"generic64" as arch target.
2342         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
2343         (ix86_reorg): Honor PAD_RETURNS.
2344
2345 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
2346
2347         * tree-pretty-print.c (dump_generic_node): Handle
2348         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
2349         * cgraph.c (cgraph_expand_queue): Rename from
2350         cgraph_analyze_queue.  Update all users.
2351         * cgraphunit.c (cgraph_assemble_pending_functions): Process
2352         cgraph_expand_queue.
2353         (cgraph_expand_all_functions): Likewise.
2354         (cgraph_finalize_pending_functions): Remove.  Update callers.
2355
2356         * tree.h (OMP_DIRECTIVE_P): Define.
2357         (OMP_PARALLEL_FN): Define.
2358         (OMP_PARALLEL_DATA_ARG): Define.
2359         (OMP_SECTIONS_SECTIONS): Define.
2360         * tree-pass.h (pass_expand_omp): Declare.
2361         * omp-low.c (struct omp_region): Declare.
2362         (struct omp_context): Remove fields 'parallel_type',
2363         'parallel_start_ix' and 'parallel_start_additional_args'.
2364         Update all users.
2365         (struct omp_for_data): Rename from struct expand_omp_for_data.
2366         (omp_regions): New static variable.
2367         (root_omp_region): New static variable.
2368         (find_omp_clause): Make static.
2369         (is_in_combined_parallel_ctx): Remove.
2370         (is_combined_parallel): New.
2371         (extract_omp_for_data): Move earlier in the file.
2372         (workshare_safe_to_combine_p): New.
2373         (get_ws_args_for): New.
2374         (determine_parallel_type): Move earlier in the file.
2375         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
2376         child function.
2377         (omp_copy_decl): Likewise.
2378         (create_omp_child_function): Likewise.
2379         (lookup_omp_region): New.
2380         (dump_omp_region): New.
2381         (debug_omp_region): New.
2382         (debug_all_omp_regions): New.
2383         (new_omp_region): New.
2384         (scan_omp_parallel): If parallel_nesting_level > 1, the
2385         directive is nested within another parallel directive.
2386         Set OMP_PARALLEL_FN.
2387         (scan_omp_for): Do not try to handle combined parallel+for
2388         cases.
2389         Remove FIXME comment.
2390         (scan_omp_nested): Remove.
2391         (scan_omp_1): Do not call scan_omp_nested when
2392         parallel_nesting_level is > 1.
2393         Do not change the DECL_CONTEXT of local variables found.
2394         (lookup_decl_in_outer_ctx): New.
2395         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
2396         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
2397         (lower_reduction_clauses): Rename from expand_reduction_clauses.
2398         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
2399         If CTX is nested, lookup VAR in the outer context when
2400         building copy assignment.
2401         (lower_send_clauses): Rename from expand_send_clauses.
2402         If CTX is nested, lookup VAR in the outer context when
2403         building copy assignments.
2404         (lower_send_shared_vars): Rename from expand_send_shared_vars.
2405         If CTX is nested, lookup VAR in the outer context when
2406         building copy assignments.
2407         (expand_parallel_call): Rename from build_parallel_call.
2408         Handle combined parallel+workshare cases.
2409         Re-implement to emit code into the CFG.
2410         (list2chain): New.
2411         (expand_omp_parallel): Re-implement to emit code into the CFG.
2412         Call move_sese_region_to_fn to outline the sub-graph
2413         containing the parallel region.
2414         (expand_omp_for_1): Remove.
2415         (expand_omp_for_generic): Re-implement to emit code into the
2416         CFG.
2417         (expand_omp_for_static_nochunk): Likewise.
2418         (expand_omp_for_static_chunk): Likewise.
2419         (expand_omp_for): Likewise.
2420         (expand_omp_sections): Likewise.
2421         (remove_exit_barriers): New.
2422         (expand_omp_synch): New.
2423         (expand_omp): New.
2424         (build_omp_regions_1): New.
2425         (build_omp_regions): New.
2426         (execute_expand_omp): New.
2427         (gate_expand_omp): New.
2428         (pass_expand_omp): Define.
2429         (lower_omp_sections): Rename from expand_omp_sections.
2430         Set OMP_SECTIONS_SECTIONS.
2431         (lower_omp_single_simple): Rename from expand_omp_single_simple.
2432         (lower_omp_single_copy): Rename from expand_omp_single_copy.
2433         (lower_omp_single): Rename from expand_omp_simple.
2434         (lower_omp_master): Rename from expand_omp_master.
2435         (lower_omp_ordered): Rename from expand_omp_ordered.
2436         (lower_omp_critical): Rename from expand_omp_critical.
2437         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
2438         (lower_omp_for): Re-implement.
2439         (lower_omp_parallel): Re-implement.
2440         (lower_regimplify): Rename from expand_regimplify.
2441         (lower_omp_1): Rename from expand_omp_1.
2442         If there are syntax errors in the program, replace every
2443         OpenMP directive with NOP.
2444         Call lower_omp_* instead of expand_omp_*.
2445         (lower_omp): Rename from expand_omp.
2446
2447         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
2448         * tree-gimple.h (enum omp_parallel_type): Remove.
2449         (gimple_boolify): Declare extern.
2450         (find_omp_clause, determine_parallel_type): Remove.
2451
2452         * gimple-low.c (lower_omp_directive): New.
2453         (lower_stmt): Call it.
2454         (record_vars_into): Move from ...
2455         (record_vars): ... here.
2456         Call record_vars_into with current_function_decl.
2457
2458         * gimplify.c (struct gimplify_ctx): Remove fields
2459         combined_pre_p and combined_ctxp.  Update users.
2460         (get_formal_tmp_var): Add documentation.
2461         (gimple_boolify): Make extern.
2462         (gimplify_expr_in_ctx): Remove.  Update callers.
2463         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
2464         will always be a BIND_EXPR.
2465         (gimplify_expr): Handle OMP_RETURN_EXPR.
2466         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
2467         (OMP_PARALLEL): Add 3 operands.
2468         (OMP_SECTIONS): Add 1 operand.
2469         (OMP_RETURN_EXPR): Define.
2470
2471         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
2472         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
2473         * tree-iterator.c (alloc_stmt_list): Assert that we are not
2474         creating a circular free list.
2475         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
2476
2477         * tree-flow.h (move_sese_region_to_fn): Declare.
2478         (record_vars_into): Declare.
2479         * tree-cfg.c (make_omp_sections_edges): New.
2480         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
2481         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
2482         OMP_SECTIONS and OMP_SECTION.
2483         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
2484         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
2485         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
2486         (gather_blocks_in_sese_region): New.
2487         (struct move_stmt_d): Declare.
2488         (move_stmt_r): New.
2489         (move_block_to_fn): New.
2490         (move_sese_region_to_fn): New.
2491
2492         * passes.c (init_optimization_passes): Schedule
2493         pass_expand_omp after pass_init_datastructures.
2494
2495         * tree-ssa-operands.c (get_expr_operands): Handle
2496         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
2497         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
2498
2499 2006-01-19  Jeff Law  <law@redhat.com>
2500
2501         * tree-vrp.c (extract_range_from_assert): Refine the result range
2502         if the variable referenced by the ASSERT_EXPR has a range and
2503         either the tentative result range or the previous range is a
2504         VR_ANTI_RANGE.
2505
2506 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
2507
2508         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
2509
2510 2006-01-19  Jan Hubicka  <jh@suse.cz>
2511
2512         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
2513
2514 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
2515
2516         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
2517         (expand_compound_operation, expand_field_assignment): Fail if the
2518         bit lengths of an extract operation are out of range.
2519         (make_extraction): Compute wanted_inner_mode based on the position
2520         and length of the extraction.  Make it extraction_mode for non-constant
2521         positions, and do not modify offset in that case.  When generating a
2522         new MEM, use a mode that can hold the extraction while keeping correct
2523         alignment.  Remove code that supported MEMs wrapped by USEs.
2524         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
2525
2526 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2527
2528         * config/s390/s390.md ("Y", "y"): New mode attribute.
2529         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
2530         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
2531         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
2532         "*addsi3_imm_cc", "*addsi3_carry1_cc",
2533         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
2534         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
2535         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
2536         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
2537         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
2538         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
2539         "addsi3", "subsi3"): Insn patterns removed.
2540         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
2541         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
2542         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
2543         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
2544         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
2545         "*sub<mode>3_cconly2"): New insn patterns.
2546         ("addsi3", "subsi3"): New expanders.
2547
2548 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
2549
2550         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
2551         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
2552         existing STMT_VINFO_VECTYPE if available.
2553         (vect_mark_relevant): Add special handling for stmts that are
2554         marked as STMT_VINFO_IN_PATTERN_P.
2555         (vect_analyze_loop): Call vect_pattern_recog.
2556         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
2557         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
2558         stmt_info.
2559         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
2560         (vect_recog_func_ptr): New function-pointer type.
2561         * tree-vect-patterns.c: New file.
2562         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
2563         (vect_recog_dot_prod_pattern, vect_pattern_recog):
2564         (vect_pattern_recog_1): New functions.
2565         (vect_pattern_recog_funcs): New array of function pointers.
2566
2567         * tree-vectorizer.h (ternary_op): New enum value.
2568         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
2569         declaration. Revised documentation. Removed redundant dump prints.
2570         Removed redundant argument. Added support for reduction patterns.
2571         (vectorizable_reduction): Added support for reduction patterns.
2572         (vect_transform_stmt): Added support for patterns.
2573
2574         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
2575         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
2576         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
2577         (expand_widen_pattern_expr): New function.
2578         (init_optabs): Initialize new optabs udot_prod_optab,
2579         sdot_prod_optab.
2580         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
2581         (sdot_prod_optab, udot_prod_optab): Define new optabs.
2582         (expand_widen_pattern_expr): New function declaration.
2583         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
2584         tree-codes.
2585         * tree-inline.c (estimate_num_insns_1): Added cases for new
2586         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
2587         * tree-pretty-print.c (dump_generic_node): Likewise.
2588         (op_prio): Likewise.
2589         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
2590         * tree-ssa-operands.c (get_expr_operands): Added case for
2591         DOT_PROD_EXPR.
2592         * tree-vect-patterns.c (widened_name_p): New function.
2593         (vect_recog_dot_prod_pattern): Added function implementation.
2594         * tree-vect-transform.c (get_initial_def_for_reduction): Added
2595         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
2596         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
2597         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
2598
2599         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
2600         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
2601         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
2602         (init_optabs): Initialize new optabs widen_ssum_optab,
2603         widen_usum_optab.
2604         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
2605         (widen_ssum_optab, widen_usum_optab): Define new optabs.
2606         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
2607         use instead of type of def.
2608         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
2609         function implementation.
2610         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
2611         widen_ssumv8hi): New.
2612
2613         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
2614         patterns.
2615
2616 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
2617
2618         PR c/25805
2619         * c-decl.c (add_flexible_array_elts_to_size): New function.
2620         (finish_decl): Use it.
2621
2622 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
2623
2624         * diagnostic.h: Include options.h.
2625         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
2626         dependancies for diagnostic.h.
2627         * Makefile.in (DIAGNOSTIC_H): Add options.h.
2628
2629 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
2630
2631         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
2632         (ssa_ro_call_cache_valid): Ditto.
2633         * tree-ssa-alias.c (sort_tags_by_id): New function.
2634         (init_transitive_clobber_worklist): Ditto.
2635         (add_to_worklist): Ditto.
2636         (mark_aliases_call_clobbered): Ditto.
2637         (compute_tag_properties): Ditto.
2638         (set_initial_properties): Ditto.
2639         (compute_call_clobbered): Ditto.
2640         (compute_may_aliases):  Call compute_call_clobbered and grouping.
2641         (compute_flow_sensitive_aliasing): Remove clobbering related code.
2642         (compute_flow_insensitive_aliasing): Grouping now happens in our
2643         caller.
2644         (setup_pointers_and_addressables): Remove clobbering related code.
2645         (add_may_alias): Ditto.
2646         (replace_may_alias): Ditto.
2647         (get_nmt_for): Ditto.
2648         (create_global_var):
2649         (is_escape_site): Return an escape_type enumeration.
2650         * tree-flow-inline.h (is_call_clobbered):  Global var does not
2651         imply call clobbered.
2652         (mark_call_clobbered): Take a reason for marking this. Remove
2653         marking of globalness, and cache invalidation.
2654         (clear_call_clobbered): Remove cache invalidation code.
2655         * tree-dfa.c (dump_variable): If details is on, dump the reason
2656         for escaping.
2657         * tree-outof-ssa.c (create_temp): Copy escape mask from original
2658         variable.
2659         * tree-flow.h (struct ptr_info_def): Add escape mask member.
2660         (struct var_ann_d): Ditto.
2661         (enum escape_type): New.
2662         (mark_call_clobbered): Adjust prototype.
2663         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
2664         are never call clobbered.
2665         Record reasons for escaping.
2666         * tree-ssa-structalias.h (is_escape_site): Update prototype.
2667         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
2668         (ssa_ro_call_cache_valid): Ditto.
2669         (clobbered_v_may_defs): Ditto.
2670         (clobbered_vuses): Ditto.
2671         (ro_call_vuses): Ditto.
2672         (clobber_stats): New.
2673         (init_ssa_operands): Zero out clobber stats.
2674         (fini_ssa_operands): Print out clobber stats.
2675         (get_call_expr_operands): Pass callee fndecl to
2676         add_call_read_ops).
2677         (add_call_clobber_ops): Remove use of cache.
2678         Add use of PURE_CONST information.
2679         (add_call_read_ops): Remove use of cache.
2680         Add use of static not_read information.
2681
2682 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
2683
2684         Introduce TLS descriptors for i386 and x86_64.
2685         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
2686         (TARGET_ANY_GNU_TLS): New macro.
2687         (enum tls_dialect): Added TLS_DIALECT_GNU2.
2688         (struct machine_function): Add tls_descriptor_call_expanded_p.
2689         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
2690         (ix86_current_function_calls_tls_descriptor): Likewise.
2691         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
2692         (override_options): Introduce gnu2 tls dialect.
2693         (ix86_frame_pointer_required): Functions containing TLSCALLs are
2694         not leaves.
2695         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
2696         Likewise.
2697         (legitimize_tls_address): Adjust logic for GNU2 TLS.
2698         (ix86_init_machine_status): Initialize new field.
2699         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
2700         (ix86_tls_module_base): New.
2701         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
2702         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
2703         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
2704         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
2705         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
2706         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
2707         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
2708         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
2709         * config/i386/predicates.md (tls_modbase_operand): New.
2710         (tp_or_register_operand): New.
2711
2712 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
2713
2714         * ipa-reference.c (check_operand):  Allow FUNCTION_DECL.
2715         (look_for_address_of): Ditto.
2716         (ipa_init): Walk the function decls.
2717         (static_execute): Don't set readonly on FUNCTION_DECL's.
2718
2719 2006-01-18  Roger Sayle  <roger@eyesopen.com>
2720
2721         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
2722         for shifts where the source and destination registers are different.
2723
2724 2006-01-18  Paul Brook  <paul@codesourcery.com>
2725
2726         Merge from csl-arm-branch.
2727         2005-03-14  Julian Brown  <julian@codesourcery.com>
2728         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
2729         (aeabi_llsl): Likewise.
2730         (ashrdi3): Likewise.
2731         (aeabi_lasr): Likewise.
2732         (lshrdi3): Likewise.
2733         (aeabi_llsr): Likewise.
2734         2005-03-10  Julian Brown  <julian@codesourcery.com>
2735         * config.gcc: Disable shared libgcc for SymbianOS.
2736         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
2737
2738 2006-01-18  DJ Delorie  <dj@redhat.com>
2739
2740         * c-pragma.c (handle_pragma_diagnostic): New.
2741         (init_pragma): Register it.
2742         * doc/extend.texi: Document it.
2743
2744         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
2745         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
2746         (diagnostic_context): Add classify_diagnostic[].
2747         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
2748         as errors if they're overridden to DK_WARNING.
2749         (diagnostic_initialize): Initialize classify_diagnostic[].
2750         (diagnostic_set_kind_override): New.
2751         (diagnostic_report_diagnostic): Check for kind changes.
2752         * opts.c (common_handle_option): Take lang_mask.  Update callers.
2753         Handle OPT_Werror_.
2754         * common.opt (Werror=): New.
2755         * doc/invoke.texi: Document -Werror=*
2756
2757 2006-01-18  Jeff Law  <law@redhat.com>
2758
2759         * tree-vrp.c (test_for_singularity): Correct test for new
2760         min limit.  Use operand_equal_p rather than pointer equality
2761         for testing if new min/max values are equal.
2762
2763         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
2764         using range information until after propagation and folding.
2765
2766 2006-01-18  Richard Henderson  <rth@redhat.com>
2767             Aldy Hernandez  <aldyh@redhat.com>
2768             Jakub Jelinek  <jakub@redhat.com>
2769             Diego Novillo  <dnovillo@redhat.com>
2770
2771         * omp-low.c: New file.
2772         * c-omp.c: New file.
2773
2774 2006-01-18  Richard Henderson  <rth@redhat.com>
2775             Jakub Jelinek  <jakub@redhat.com>
2776             Diego Novillo  <dnovillo@redhat.com>
2777
2778         * doc/invoke.texi: Document -fopenmp.
2779         * tree-dump.h (debug_function): Declare.
2780         * hooks.c (hook_bool_tree_bool_false): New function.
2781         (hook_tree_tree_null): Remove.
2782         (hook_tree_tree_tree_null): New.
2783         * hooks.h: Update to match.
2784         * tree-pretty-print.c (debug_tree_chain): New.
2785         (print_generic_expr): Handle TDF_CHAIN.
2786         (dump_generic_node): Handle BLOCK.
2787         Do not abort with incomplete SWITCH_EXPRs.
2788         Do not dump body of an OpenMP directive if TDF_SLIM is given.
2789         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
2790         print space after directive name.
2791         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
2792         Handle OMP_MASTER and OMP_ORDERED.
2793         Handle printing of OMP_BODY just in one place, goto
2794         dump_omp_body in the rest of OMP_* nodes that have
2795         OMP_BODY.
2796         Don't handle clause nodes here.  Update omp statements to
2797         use dump_omp_clauses.
2798         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
2799         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
2800         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
2801         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
2802         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
2803         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
2804         Adjust output for GOMP_PARALLEL.
2805         (dump_omp_clauses): New.
2806         (print_declaration): Dump DECL_VALUE_EXPR.
2807         (op_symbol_1): Split out of op_symbol.
2808         (dumping_stmts): Remove.  Update all users.
2809         * cgraph.c (cgraph_analyze_queue): New.
2810         (cgraph_add_new_function): New.
2811         * cgraph.h (cgraph_analyze_queue): Declare.
2812         (cgraph_add_new_function): Declare.
2813         (cgraph_lower_function): Remove.
2814         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
2815         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
2816         and TYPE_P nodes in its default clause.
2817         (empty_body_p): New.
2818         (tree_range_check_failed): New.
2819         (build5_stat): New.
2820         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
2821         OMP_CLAUSE_REDUCTION_MERGE,
2822         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
2823         OMP_CLAUSE_PRIVATE_DEBUG,
2824         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
2825         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
2826         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
2827         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
2828         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
2829         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
2830         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
2831         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
2832         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
2833         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
2834         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
2835         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
2836         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
2837         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
2838         (TREE_RANGE_CHECK): New.
2839         (empty_body_p): Declare.
2840         (enum omp_clause_default_kind): New.
2841         (build_string_literal): Declare.
2842         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
2843         (build5_stat, build5): Declare.
2844         * tree-pass.h (TDF_CHAIN): Define.
2845         * tree-pass.h (PROP_gimple_lomp): Define.
2846         (pass_lower_omp): Declare.
2847         * diagnostic.h (debug_tree_chain): Declare.
2848         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
2849         mode_for_size.
2850         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
2851         * builtins.c (build_string_literal): Make extern.
2852         * gcc.c (include_spec_function): New.
2853         (static_spec_functions): Add it.
2854         (main): Move load of libgomp.spec ...
2855         (LINK_COMMAND_SPEC): ... here.
2856         (link_gomp_spec): New.
2857         (static_specs): Include it.
2858         (LINK_COMMAND_SPEC): Add link_gomp.
2859         (GOMP_SELF_SPECS): New.
2860         (driver_self_specs): Include it.
2861         (switch_matches): Don't mark inline.
2862         (main): Load libgomp.spec.
2863         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
2864         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
2865         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
2866         * tree-gimple.h (enum omp_parallel): Declare.
2867         (determine_parallel_type): Declare.
2868         (omp_firstprivatize_variable): Declare.
2869         (omp_reduction_init): Declare.
2870         (diagnose_omp_structured_block_errors): Declare.
2871         (struct walk_stmt_info): Add want_return_expr.
2872         (struct walk_stmt_info): Add want_bind_expr, want_locations.
2873         (find_omp_clause): Declare.
2874         (insert_field_into_struct): Declare.
2875         (struct walk_stmt_info): Move from tree-nested.c
2876         (walk_stmts): Declare.
2877         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
2878         to 200505.
2879         * cgraphunit.c (cgraph_lower_function): Make static.
2880         (cgraph_finalize_pending_functions): New.
2881         (cgraph_finalize_function): Call it.
2882         (cgraph_finalize_compilation_unit): Likewise.
2883         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
2884         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
2885         (BT_FN_UINT_UINT): New.
2886         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
2887         DEF_FUNCTION_TYPE_VAR_4): Document.
2888         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
2889         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
2890         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
2891         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
2892         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
2893         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
2894         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
2895         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
2896         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
2897         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
2898         into separate files.
2899         (DEF_GOMP_BUILTIN): New.
2900         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
2901         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
2902         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
2903         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
2904         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
2905         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
2906         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
2907         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
2908         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
2909         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
2910         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
2911         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
2912         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
2913         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
2914         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
2915         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2916         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2917         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2918         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2919         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
2920         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
2921         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2922         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
2923         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
2924         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
2925         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
2926         * sync-builtins.def: New file, moved from builtins.def.
2927         * omp-builtins.def: New file, moved from builtins.def.
2928         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2929         * gimple-low.c (lower_function_body): Clear data.
2930         (lower_stmt): Do not handle COMPOUND_EXPR.
2931         Remove call to print_node_brief.
2932         * c-tree.h (c_finish_omp_clauses): New prototype.
2933         (C_DECL_THREADPRIVATE_P): Define.
2934         (lookup_name_no_remap, c_omp_remap_private): Remove
2935         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
2936         (check_for_loop_decls): Update decl.
2937         (lookup_name_no_remap, c_omp_remap_private): Declare.
2938         (build_indirect_ref, build_modify_expr, pushdecl,
2939         pushdecl_top_level): Move to c-common.h.
2940         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
2941         before the switch, but just in the 2 places that need it.
2942         * c-decl.c (diagnose_mismatched_decls): Do not check for
2943         mismatched thread-local attributes when OLDDECL is marked
2944         threadprivate and NEWDECL has no thread-local attributes.
2945         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
2946         (c_gimple_diagnostics_recursively): Rename from
2947         c_warn_unused_result_recursively.  Invoke
2948         diagnose_omp_structured_block_errors.
2949         (check_for_loop_decls): Return a singular decl found.
2950         * langhooks.c (lhd_omp_predetermined_sharing): Return
2951         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
2952         (lhd_omp_firstprivatize_type_sizes): New.
2953         (lhd_omp_assignment): New.
2954         (lhd_omp_predetermined_sharing): New.
2955         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
2956         (struct lang_hooks_for_types): Add
2957         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
2958         omp_predetermined_sharing, omp_disregard_value_expr,
2959         omp_private_debug_clause, omp_clause_default_ctor,
2960         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
2961         (c_finish_omp_clauses): New.
2962         (c_finish_bc_stmt): Diagnose break within omp for.
2963         (c_begin_omp_parallel, c_finish_omp_parallel): New.
2964         (build_unary_op): Return error_mark after reporting
2965         a readonly_error.
2966         (build_modify_expr): Likewise.
2967         * gimplify.c: Include optabs.h and pointer-set.h.
2968         (enum gimplify_omp_var_data): Declare.
2969         (struct gimplify_omp_ctx): Declare.
2970         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
2971         and combined_ctxp.
2972         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
2973         (push_gimplify_context, pop_gimplify_context): Allow nesting.
2974         (splay_tree_compare_decl_uid): New.
2975         (new_omp_context): New.
2976         (delete_omp_context): New.
2977         (gimple_add_tmp_var): Call omp_add_variable.
2978         (gimplify_bind_expr): Likewise.
2979         (gimplify_var_or_parm_decl): If omp_notice_variable returned
2980         true, disregard DECL_VALUE_EXPR on the decl if any.
2981         (gimplify_expr_in_ctx): New.
2982         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
2983         omp_add_variable, omp_notice_variable, omp_is_private
2984         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
2985         gimplify_adjust_omp_clauses, gimplify_omp_parallel
2986         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
2987         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
2988         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
2989         gimplify_omp_atomic): New.
2990         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2991         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
2992         OMP_CRITICAL and OMP_ATOMIC.
2993         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
2994         * c-pragma.h (enum pragma_kind): Add
2995         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
2996         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
2997         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
2998         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
2999         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
3000         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
3001         PRAGMA_OMP_THREADPRIVATE.
3002         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
3003         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
3004         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
3005         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
3006         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
3007         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
3008         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
3009         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
3010         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
3011         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
3012         * tree-ssa-dce.c (find_control_dependence): Do not assume that
3013         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
3014         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
3015         OpenMP directives.
3016         (struct nesting_info): Add field_map,
3017         suppress_expansion, debug_var_chain.
3018         (create_nesting_tree): Initialize them.
3019         (lookup_field_for_decl): Use field_map.
3020         (get_nonlocal_debug_decl, get_local_debug_decl): New.
3021         (convert_local_omp_clauses): New.
3022         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
3023         (walk_body): Split out of walk_function.
3024         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
3025         (convert_nonlocal_reference): Handle omp statements.
3026         (convert_local_reference): Likewise.
3027         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
3028         (unnest_nesting_tree): New.
3029         (lower_nested_functions): Call it.
3030         (insert_field_into_struct): Make extern.
3031         (struct walk_stmt_info): Move to tree-gimple.h.
3032         (walk_stmts): Make extern.
3033         * omp-builtins.def: New file.
3034         * tree-iterator.c (expr_only): Clarify comment.
3035         * c-common.h (pushdecl_top_level, pushdecl,
3036         build_modify_expr, build_indirect_ref,
3037         c_finish_omp_master, c_finish_omp_critical,
3038         c_finish_omp_ordered, c_finish_omp_barrier,
3039         c_finish_omp_atomic, c_finish_omp_flush,
3040         c_finish_omp_for, c_split_parallel_clauses,
3041         omp_clause_default_kind, c_omp_sharing_predetermined,
3042         c_omp_remap_decl): Declare.
3043         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
3044         (OBJS-common): Add omp-low.o.
3045         (c-omp.o, omp-low.o): Add.
3046         (gimplify.o): Add dependency on $(OPTABS_H).
3047         (GTFILES): Add omp-low.c.
3048         (gt-stringpool.h): Add.
3049         * tree-cfg.c (set_bb_for_stmt): Do not update the
3050         block-to-labels map if we are currently expanding to RTL.
3051         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
3052         checks.
3053         Handle IDENTIFIER_NODE.
3054         (tree_verify_flow_info): Do not ICE when emitting error
3055         messages about invalid labels.
3056         (dump_function_to_file): Reset CFUN before emitting the body
3057         of the function.
3058         (debug_function): New.
3059         * passes.c (init_optimization_passes): Schedule
3060         pass_lower_omp.
3061         * langhooks-def.h (lhd_omp_predetermined_sharing,
3062         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
3063         Declare.
3064         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
3065         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
3066         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
3067         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
3068         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
3069         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
3070         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
3071         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
3072         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
3073         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
3074         (LANG_HOOK_DECLS): Use them.
3075
3076 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
3077             Richard Henderson  <rth@redhat.com>
3078             Jakub Jelinek  <jakub@redhat.com>
3079             Diego Novillo  <dnovillo@redhat.com>
3080
3081         * c-parser.c (pragma_omp_clause): Define.
3082         (c_parser_declaration_or_fndef): Document OpenMP syntax.
3083         (c_parser_compound_statement): Likewise.
3084         (c_parser_statement): Likewise.
3085         (c_parser_pragma): Handle omp pragmas.
3086         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
3087         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
3088         (c_parser_omp_clause_name, check_no_duplicate_clause,
3089         c_parser_omp_variable_list,
3090         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
3091         c_parser_omp_clause_copyprivate,
3092         c_parser_omp_clause_default,
3093         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
3094         c_parser_omp_clause_lastprivate,
3095         c_parser_omp_clause_nowait,
3096         c_parser_omp_clause_num_threads,
3097         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
3098         c_parser_omp_clause_reduction,
3099         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
3100         c_parser_omp_all_clauses, c_parser_omp_structured_block,
3101         c_parser_omp_atomic, c_parser_omp_barrier,
3102         c_parser_omp_critical, c_parser_omp_flush,
3103         c_parser_omp_for_loop, c_parser_omp_for,
3104         c_parser_omp_master, c_parser_omp_ordered,
3105         c_parser_omp_sections_scope, c_parser_omp_sections,
3106         c_parser_omp_parallel, c_parser_omp_single,
3107         c_parser_omp_construct, c_parser_omp_threadprivate): New.
3108         * c-pragma.c (init_pragma): Do omp pragma registration here.
3109         * c.opt (fopenmp): New flag.
3110
3111 2006-01-18  Eric Christopher  <echristo@apple.com>
3112
3113         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
3114         * config/darwin.h (GOMP_SELF_SPECS): Define.
3115
3116 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
3117
3118         * rtl.h: Remove the prototype for reg_alloc.
3119
3120 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3121
3122         PR target/25731
3123         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
3124         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
3125         sjlj and dwarf2 exception handling.
3126         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
3127         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
3128         * pa/pa.c (function_value): Treat complex and vector types as
3129         aggregates.
3130         (function_arg): Likewise.  Only pass scalar floats in the floating
3131         point argument registers.
3132         * pa/t-slibgcc-dwarf-ver: New file.
3133         * pa/t-slibgcc-sjlj-ver: New file.
3134         * pa/t-slibgcc-elf-ver: Delete file.
3135
3136 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
3137
3138         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
3139         unlikely_test_section_p test.
3140
3141 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
3142
3143         * mode-switching.c (optimize_mode_switching): Make it static.
3144         * basic-block.h: Remove the prototype for
3145         optimize_mode_switching.
3146
3147         * modulo-sched.c (sms_schedule): Make it static.
3148         * rtl.h: Remove the prototype for sms_schedule.
3149
3150         * postreload-gcse.c (gcse_after_reload_main): Make it static.
3151         * rtl.h: Remove the prototype for gcse_after_reload_main.
3152
3153         * reg-stack.c (reg_to_stack): Make it static.
3154         * rtl.h: Remove the prototype for reg_to_stack.
3155
3156         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
3157         Make them static.
3158         * rtl.h: Remove the prototypes for regrename_optimize and
3159         copyprop_hardreg_forward.
3160
3161 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
3162
3163         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
3164         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
3165         Test against the appropriate null constant for the mode.
3166         If 'fixup_overlap' is true, swap the operands if they overlap.
3167         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
3168         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
3169         alpha_split_tmode_pair and adjust for above change.
3170         * config/alpha/alpha.md (movtf_internal): Adjust call to
3171         alpha_split_tfmode_pair and rely on it to swap the operands.
3172         (movti_internal): New insn and post-reload splitter.
3173         (movti): New expander.
3174
3175 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
3176
3177         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
3178         operands.
3179
3180 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
3181
3182         * rtlanal.c (global_reg_mentioned_p_1,
3183         global_reg_mentioned_p): Remove.
3184         * rtl.h: Remove the prototype for global_reg_mentioned_p.
3185
3186         * flow.c (initialize_uninitialized_subregs): Make it static.
3187         * rtl.h: Remove the prototype for
3188         initialize_uninitialized_subregs.
3189
3190         * function.c (instantiate_virtual_regs): Make it static.
3191         * function.h: Remove the prototype for
3192         instantiate_virtual_regs.
3193
3194         * regmove.c (regmove_optimize, combine_stack_adjustments):
3195         Make them static.
3196         * rtl.h: Remove the prototypes for regmove_optimize and
3197         combine_stack_adjustments.
3198
3199 2006-01-17  Roger Sayle  <roger@eyesopen.com>
3200
3201         * config/i386/i386.c (COSTS_N_BYTES): New macro.
3202         (size_cost): Encode costs in bytes so that a reg-reg addition is
3203         equivalent to COSTS_N_INSNS(1).
3204         (override_options): Use the size_cost.branch_cost as the default
3205         ix86_branch_cost when optimizing for size.
3206
3207 2006-01-18  Ben Elliston  <bje@au.ibm.com>
3208
3209         * Makefile.in (D32PBIT_FUNCS): New.
3210         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
3211         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
3212         D64PBIT_FUNCS and D128PBIT_FUNCS.
3213         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
3214         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
3215         D128PBIT are set.
3216         (decnumber_dep): Define.
3217         * doc/libgcc.texi (Decimal float library routines): New node.
3218         * config/dfp-bit.h, config/dfp-bit.c: New files.
3219
3220 2006-01-18  Ben Elliston  <bje@au.ibm.com>
3221
3222         * expr.c (emit_move_change_mode): Always adjust addresses, not
3223         just during reload.  Copy replacements only during reload.
3224         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
3225         emit_move_via_integer.
3226
3227 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
3228
3229         * Makefile.in (check-%, check-consistency): Use $${srcdir}
3230         instead of $(srcdir) and ${srcdir}.
3231
3232 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
3233
3234         PR target/592
3235         PR middle-end/11135
3236         * arm.h (struct machine_function): Add pic_reg.
3237         * arm.c (arm_pic_register): Make unsigned.
3238         (arm_override_options): Only set arm_pic_register if
3239         TARGET_SINGLE_PIC_BASE.
3240         (use_return_insn): Only test for a pic register if it is fixed.
3241         (arm_compute_save_reg0_reg12_mask): Likewise.
3242         (thumb_compute_save_reg_mask): Likewise.
3243         (legitimate_pic_operand): Factor out some known invariants.
3244         (legitimize_pic_address): If we don't have a fixed pic register,
3245         then set up a pseudo in the function entry sequence.  Handle the
3246         pic base being in a pseudo.
3247         (arm_load_pic_register): Handle the pic register being in a pseudo.
3248         (arm_expand_prologue): Only set up the pic register if it is fixed.
3249         (thumb_expand_prologue): Likewise.
3250         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
3251         (pic_load_addr_based_insn): Likewise.
3252         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
3253         fixed.
3254
3255 2006-01-18  Ben Elliston  <bje@au.ibm.com>
3256
3257         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
3258         decimal float modes for all floating point registers.
3259
3260         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
3261         match_code "mem" with match_test "macho_lo_sum_memory_operand".
3262
3263 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
3264
3265         PR c/25682
3266         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
3267         even when the pointer is not NULL.
3268
3269 2006-01-16  Ian Lance Taylor  <ian@airs.com>
3270
3271         * common.opt (ftoplevel-reorder): New option.
3272         * cgraph.c (cgraph_asm_nodes): New global variable.
3273         (cgraph_asm_last_node): New static variable.
3274         (cgraph_order): New global variable.
3275         (cgraph_create_node): Set new order field.
3276         (cgraph_varpool_node): Likewise.
3277         (decide_is_variable_needed): Return true if not
3278         flag_toplevel_reorder.
3279         (cgraph_add_asm_node): New function.
3280         * cgraph.h (struct cgraph_node): Add order field.
3281         (struct cgraph_varpool_node): Add order field.
3282         (struct cgraph_asm_node): Define.
3283         (cgraph_asm_nodes, cgraph_order): Declare.
3284         (cgraph_add_asm_node): Declare.
3285         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
3286         function.
3287         (cgraph_varpool_assemble_pending_decls): Call it.
3288         (cgraph_output_pending_asms): New static function.
3289         (cgraph_finalize_compilation_unit): Call it.
3290         (struct cgraph_order_sort): Define.
3291         (cgraph_output_in_order): New static function.
3292         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
3293         !flag_toplevel_reorder case.
3294         * c-parser.c: Include "cgraph.h".
3295         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
3296         assemble_asm.
3297         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
3298         than -fno-unit-at-a-time.
3299         * doc/invoke.texi (Option Summary): Mention
3300         -fno-toplevel-reorder.
3301         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
3302         -funit-at-a-time documentation.
3303
3304 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
3305             Kazu Hirata  <kazu@codesourcery.com>
3306
3307         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
3308
3309 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
3310
3311         * Makefile.in (FUNCTION_H): New.  Use it instead of
3312         function.h throughout the file.
3313         * function.h: Include tree.h.
3314
3315 2006-01-17  Ben Elliston  <bje@au.ibm.com>
3316
3317         * recog.c: Separate some functions with whitespace.
3318
3319 2006-01-16  Richard Henderson  <rth@redhat.com>
3320
3321         Merge from gomp branch:
3322         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
3323         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
3324         and rename from struct inline_data.  Rename callee* to dst*;
3325         caller* to src*; add copy_decl hook, transform_call_graph_edges,
3326         transform_new_cfg, transform_return_to_modify, and
3327         transform_lang_insert_block flags; remove cloning_p, versioning_p,
3328         update_clones_p.
3329         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
3330         (copy_decl_for_dup): Remove.
3331         * tree-inline.c (struct inline_data): Move to header.
3332         (insert_decl_map): Export.
3333         (remap_decl): Update for member name changes.  Use copy_decl hook.
3334         Allow for replacement to be a non-decl.  Remove dead code.
3335         (remap_type_1): Check for existing mapping.
3336         (remap_type): Export.
3337         (remap_decls): Update for member name changes.
3338         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
3339         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
3340         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
3341         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
3342         (tree_function_versioning, build_duplicate_type): Likewise.
3343         (copy_body_r): Likewise.  Export.
3344         (copy_decl_for_dup): Split into ...
3345         (copy_decl_for_dup_finish, copy_decl_to_var,
3346         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
3347         (replace_ref_tree, inlining_p): Remove.
3348
3349 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
3350
3351         * ifcvt.c (if_convert): Make it static.
3352         * rtl.h: Remove the prototype for if_convert.
3353
3354         * local-alloc.c (local_alloc): Make it static.
3355         * rtl.h: Remove the prototype for local_alloc.
3356
3357         * loop.c (loop_optimize): Make it static.
3358         * cfgloop.h: Remove the prototype for loop_optimize.
3359         * rtl.h: Likewise.
3360
3361 2006-01-16  DJ Delorie  <dj@redhat.com>
3362
3363         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
3364         mems.
3365
3366 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3367
3368         * pa.md: Disparage copies between general and floating-point registers
3369         in 32-bit move patterns.
3370
3371 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
3372
3373         PR testsuite/25741
3374         * Makefile.in (check-%): Depend on site.exp instead of
3375         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
3376         directories.
3377
3378 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
3379
3380         * global.c (global_alloc): Make it static.
3381         * rtl.h: Remove the prototype for global_alloc.
3382
3383 2006-01-16  Richard Guenther  <rguenther@suse.de>
3384
3385         * tree-ssa-alias.c (struct used_part): Add write_only field.
3386         (get_or_create_used_part_for): Initialize it to true.
3387         (create_overlap_variables_for): Don't create structure variables
3388         for structures that only are written to.
3389         (find_used_portions): Handle MODIFY_EXPR to track whether a
3390         structure is only written to.
3391
3392 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
3393
3394         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
3395         static.
3396         * basic-block.h: Remove the prototype for
3397         partition_hot_cold_basic_blocks.
3398
3399 2006-01-16  Rafael Ãƒvila de Espíndola <rafael.espindola@gmail.com>
3400
3401         * cppspec.c (lang_specific_spec_functions): Remove.
3402         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
3403         * gcc.h (lang_specific_spec_functions): Remove.
3404         * gccspec.c (lang_specific_spec_functions): Remove.
3405
3406 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
3407
3408         * combine.c (record_value_for_reg): Invalidate registers
3409         if INSN is null.
3410         (record_dead_and_set_regs_1): Likewise, by passing them to
3411         record_value_for_reg.
3412         (record_dead_and_set_regs): Invalidate stores made by a
3413         call.  We do not combine across a call, but we still
3414         relied on equivalences.
3415
3416 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
3417
3418         * tree-vrp.c (extract_range_from_binary_expr): Cope with
3419         vrp_int_const_binop returning non-constant nodes.
3420
3421 2006-01-16  Paul Brook  <paul@codesourcery.com>
3422
3423         * config/m68k/m68k.c (output_move_const_into_data_reg):
3424         Output correct mnemonic for mvz and mvs.
3425
3426 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
3427
3428         * rtl-factoring.c: Add sequence abstraction algorithm.
3429         * cfgcleanup.c (outgoing_edges_match): Extra checks.
3430         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
3431         ABNORMAL edges.
3432         (block_has_preserve_label): New function.
3433         * common.opt: Register new pass.
3434         * Makefile.in: Ditto.
3435         * passes.c: Ditto.
3436         * timevar.def: Ditto.
3437         * tree-pass.h: Ditto.
3438         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
3439         * rtl.h (make_jump_insn_raw): Add forward decl.
3440         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
3441
3442 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
3443             Roger Sayle  <roger@eyesopen.com>
3444
3445         * fold-const.c (fold_minmax): New static function.
3446         (fold_binary) <MIN_EXPR>: Call it.
3447         <MAX_EXPR>: Likewise.
3448         * stor-layout.c (place_field): Use DECL_SIZE consistently
3449         in the computation of the new record size.
3450
3451 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
3452
3453         * cse.c (cse_condition_code_reg): Make it static.
3454         * rtl.h: Remove the prototype for cse_condition_code_reg.
3455
3456         * combine.c (combine_instructions): Make it static.
3457         * rtl.h: Remove the prototype for combine_instructions.
3458
3459 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3460
3461         PR target/25168
3462         * tree.c (get_file_function_name_long): Concatenate the first global
3463         object name with a string derived from the input filename of the object
3464         for type "F".
3465
3466 2006-01-16  Ben Elliston  <bje@au.ibm.com>
3467
3468         * config/i386/winnt-stubs.c: Update FSF address.
3469         * config/xtensa/ieee754-df.S: Ditto.
3470         * config/xtensa/ieee754-sf.S: Ditto.
3471
3472 2006-01-14  Ian Lance Taylor  <ian@airs.com>
3473
3474         * ifcvt.c (noce_init_if_info): New static function, broken out of
3475         noce_process_if_block.
3476         (noce_process_if_block): Call noce_init_if_info.
3477         (check_cond_move_block): New static function.
3478         (cond_move_process_if_block): New static function.
3479         (process_if_block): Call cond_move_process_if_block.
3480
3481 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
3482
3483         * cselib.c (hash_table): Rename to cselib_hash_table.
3484         (cselib_clear_table, discard_useless_values,
3485         remove_useless_values, cselib_lookup_mem, cselib_lookup,
3486         cselib_init, cselib_finish): Adjust uses of hash_table.
3487
3488 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
3489
3490         PR tree-optimization/25485
3491         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
3492         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
3493         is known to be false and true, respectively.
3494
3495 2006-01-14  Richard Guenther  <rguenther@suse.de>
3496
3497         PR tree-optimization/22548
3498         PR tree-optimization/22555
3499         PR tree-optimization/22501
3500         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
3501         * params.def (salias-max-array-elements): New parameter.
3502         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
3503         * doc/invoke.texi (salias-max-array-elements): Document.
3504         * tree-flow-inline.h (var_can_have_subvars): We also handle
3505         arrays now.
3506         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
3507         COMPONENT_REF.
3508         * tree-ssa-structalias.c (params.h): Include.
3509         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
3510         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
3511         (get_constraint_for): For ADDR_EXPR operating on something
3512         containing an ARRAY_REF, add all subvars to the solution.
3513         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
3514         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
3515         for creating MUST_DEFs.
3516         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
3517
3518 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
3519
3520         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
3521         functions.
3522         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
3523         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
3524         number_of_iterations_le): New functions.
3525         (number_of_iterations_special): Removed.
3526         (number_of_iterations_exit): Do not use number_of_iterations_special.
3527         * tree.c (unsigned_type_for): Always return integer type.
3528
3529 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
3530         Richard Guenther  <rguenther@suse.de>
3531
3532         PR rtl-optimization/24257
3533         * gcse.c (find_moveable_store): Only consider a store movable
3534         when the SET_SRC of the insn can be assigned to a register.
3535
3536 2006-01-14  Ian Lance Taylor  <ian@airs.com>
3537
3538         * tree.c (tree_not_class_check_failed): New function.
3539         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
3540         (tree_not_class_check_failed): Declare.
3541
3542 2006-01-13  Ian Lance Taylor  <ian@airs.com>
3543
3544         * reload1.c (do_output_reload): Add assertion rejecting a
3545         CALL_INSN.
3546
3547 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
3548
3549         * combine.c (struct reg_stat): Add new fields truncation_label and
3550         truncated_to_mode.
3551         (record_value_for_reg): Reset truncated_to_mode.
3552         (record_truncated_value): New function.
3553         (check_promoted_subreg): Call it.  Rename to check_conversions.
3554         (combine_instructions): Rename check_promoted_subreg to
3555         check_conversions.
3556         (reg_truncated_to_mode): New function.
3557         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
3558         (gen_lowpart_or_truncate): New function.
3559         (force_to_mode): Use it instead of gen_lowpart.
3560
3561 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
3562
3563         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
3564         VAR is a tag, not its type tag.
3565
3566 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
3567
3568         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
3569         alternatives to match style of other entries.
3570         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
3571
3572 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
3573
3574         PR tree-optimization/25771
3575         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
3576         SSA_NAMES.
3577
3578 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
3579
3580         PR tree-opt/24365
3581         * tree-inline.c (declare_return_variable): If the return variable
3582         was marked as a non gimple complex, set the return slot variable
3583         to be a non gimple comple variable.
3584
3585 2006-01-13  Richard Guenther  <rguenther@suse.de>
3586
3587         * builtins.c (expand_builtin_sincos): New function.
3588         (expand_builtin_mathfn_3): Remove dead code, sin and cos
3589         do not set errno.
3590         (expand_builtin): Expand sincos using expand_builtin_sincos.
3591
3592 2006-01-12  DJ Delorie  <dj@redhat.com>
3593
3594         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
3595         shift counts, separate SI shifts for m32c vs m16c, pass shift type
3596         so that constant shifts can be split.
3597         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
3598         (m32c_valid_pointer_mode): Make static.
3599         (shift_gen_func_for): New.
3600         (m32c_prepare_shift): Use it.  Split large const shifts into
3601         multiple shifts.
3602         * config/m32c/predicates.md (shiftcount_operand): Allow more
3603         general operands.
3604         (longshiftcount_operand): New.
3605         * doc/md.texi (Machine Constraints): Document In6.
3606
3607 2006-01-13  Ben Elliston  <bje@au.ibm.com>
3608
3609         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
3610         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
3611         documentation.
3612
3613 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
3614
3615         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
3616         to try to avoid clobbering pieces of structures when we know
3617         something about the whole structure.
3618         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
3619
3620 2006-01-13  Ben Elliston  <bje@au.ibm.com>
3621
3622         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
3623         return in memory, as this is no limitation is no longer present.
3624
3625 2006-01-12  DJ Delorie  <dj@redhat.com>
3626
3627         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
3628         mova with fb, and for fb+0 -> An.
3629
3630         * config/m32c/mov.md (peephole2): Fix enabling logic.
3631
3632         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
3633         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
3634         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
3635         FINI_ARRAY_SECTION_ASM_OP): Define.
3636
3637         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
3638         variable.
3639         (m32c_legitimize_reload_address): New logic to reload FB to An.
3640         (m32c_output_reg_push): Add newline.
3641         (m32c_output_reg_pop): Likewise.
3642
3643 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
3644
3645         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
3646
3647 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
3648
3649         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
3650
3651 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
3652
3653         * config/sh/predicates.md (sh_rep_vec): Add parallel to
3654         match_code.
3655
3656 2006-01-11  Ben Elliston  <bje@au.ibm.com>
3657
3658         * rtlanal.c (find_reg_note): Assert insn is not null.
3659
3660 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3661
3662         * df-scan.c (df_hard_reg_init): Move declaration of i outside
3663         ifdef.
3664
3665 2006-01-11  Jeff Law  <law@redhat.com>
3666
3667         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
3668         hold edge pairs.
3669         (mark_threaded_blocks, register_jump_thread): New functions.
3670         (thread_through_all_blocks): Remove unwanted argument.  No
3671         longer rely on e->aux to communicate thread target info.
3672         Call mark_threaded_blocks.  Release the threaded_blocks
3673         bitmap and threaded_edges vector when complete.
3674         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
3675         (threaded_blocks): Remove.
3676         (tree_ssa_dominator_optimize): Remove initialization and
3677         finalization of threaded_blocks.  Simplify call to
3678         thread_through_all_blocks.
3679         (thread_across_edge): Call register_jump_thread rather than
3680         storing thread information into e->aux.
3681         (free_all_edge_infos): Simplify now that e->aux is no longer
3682         used to communicate with thread_through_all_blocks.
3683         * tree-flow.h (thread_through_all_blocks): Update prototype.
3684         (register_jump_thread): Prototype.
3685
3686 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
3687
3688         * df-core.c (df_compact_blocks, df_bb_replace): Use
3689         SET_BASIC_BLOCK instead of BASIC_BLOCK.
3690
3691 2006-01-11  Richard Guenther  <rguenther@suse.de>
3692
3693         PR tree-optimization/25734
3694         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
3695         stop propagation after successful propagation to the LHS.
3696
3697 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
3698
3699         * basic-block.h (control_flow_graph): Change the type of
3700         x_basic_block_info to VEC(basic_block,gc) *.
3701         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
3702         basic_block_info.
3703         (SET_BASIC_BLOCK): New.
3704         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
3705         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
3706         * cfgbuild.c (find_basic_blocks): Likewise.
3707         * cfglayout.c (fixup_reorder_chain): Likewise.
3708         * cfgrtl.c (create_basic_block_structure,
3709         rtl_create_basic_block): Likewise.
3710         * ifcvt.c (find_if_case_1): Likewise.
3711         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
3712         Likewise.
3713
3714 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3715
3716         * Makefile.in: Removed rotted odf.c entry.
3717
3718 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
3719
3720         PR target/25706
3721         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
3722         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
3723         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
3724         output pattern modifier, not %e.
3725         * config/cris/cris.c (cris_op_str): Update comment about pattern
3726         modifier.
3727         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
3728         before falling through into...
3729         <case 'E'>: Redefined from old 'e' case.
3730
3731 2006-01-11  Jan Hubicka  <jh@suse.cz>
3732
3733         PR target/25042
3734         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
3735
3736 2006-01-11  Jan Hubicka  <jh@suse.cz>
3737
3738         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
3739         * i386.c (x86_decompose_lea): Kill.
3740         (ix86_rtx_costs): Kill.
3741
3742 2006-01-11  Jan Hubicka  <jh@suse.cz>
3743
3744         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
3745         * cgraph.h (cgraph_node): Add inline_decl.
3746         (cgraph_insert_node_to_hashtable): Declare.
3747         (save_inline_function_body): Declare.
3748         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
3749         clones.
3750         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
3751         (cgraph_function_versioning): Update call of tree_function_versioning.
3752         (save_inline_function_body): New function.
3753         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
3754         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
3755         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
3756         (cgraph_default_inline_p): Likewise.
3757         (cgraph_decide_inlining_incrementally): Likewise.
3758         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
3759         (copy_bb): Kill saving; do updating of clones.
3760         (copy_cfg_body): Kill saving.
3761         (initialize_inlined-parameters): Likewise.
3762         (expand_call_inline): Likewise.
3763         (save_body): Kill.
3764         (tree_function_versioning): New parameter "update_clones".
3765         (inlining_p): Kill saving.
3766         * tree-inline.h (tree_function_versioning): Update prototype.
3767         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
3768         saving.
3769
3770 2006-01-11  Ian Lance Taylor <ian@airs.com>
3771
3772         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
3773         Allow undoing set of machine mode.
3774         (do_SUBST): Use enums instead of is_int.
3775         (do_SUBST_MODE): New function.
3776         (SUBST_MODE): New macro.
3777         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
3778         reg and trying to replace reg_regno_rtx with a new register.
3779         (undo_all): Use new enums, handle undoing a PUT_MODE change.
3780         (simplify_set): Use SUBST_MODE.
3781         (distribute_notes): Remove code that tried to update reg notes
3782         for regno_reg_rtx changes.
3783
3784 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
3785
3786         PR tree-optimization/23109
3787         PR tree-optimization/23948
3788         PR tree-optimization/24123
3789
3790         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
3791         * tree-cfg.c (single_noncomplex_succ): New.
3792         * tree-flow.h (single_noncomplex_succ): Declare it.
3793         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
3794         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
3795         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
3796         insert_bb, register_division_in, insert_reciprocals,
3797         replace_reciprocal, free_bb): New.
3798         (execute_cse_reciprocals_1): Rewritten.
3799         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
3800         Do not commit any edge insertion.  Always compute dominators and
3801         create the allocation pool.
3802         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
3803         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
3804         * targhooks.c (default_min_divistions_for_recip_mul): New.
3805         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
3806         * passes.c (init_optimization_passes): Run recip after tree loop
3807         optimizations.
3808         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
3809
3810 2006-01-11  Danny Berlin <dberlin@dberlin.org>
3811             Kenneth Zadeck <zadeck@naturalbridge.com>
3812
3813         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
3814         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
3815         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
3816         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
3817         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
3818         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
3819         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
3820         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
3821         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
3822         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
3823         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
3824         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
3825         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
3826         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
3827         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
3828         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
3829         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
3830         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
3831         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
3832         DF_SCAN_POST_ALLOC): New macros.
3833         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
3834         df_free_bb_function, df_local_compute_function, df_init_function,
3835         df_dataflow_function, df_confluence_function_0,
3836         df_confluence_function_n, df_transfer_function,
3837         df_finalizer_function, df_free_function, df_dump_problem_function,
3838         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
3839         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
3840         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
3841         df_urec_bb_info, ) New types.
3842         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
3843         variables.
3844         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
3845         df_analyze_simple_change_some_blocks,
3846         df_analyze_simple_change_one_block, df_compact_blocks,
3847         df_bb_replace, df_bb_regno_last_use_find,
3848         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
3849         df_insn_regno_def_p, df_find_def, df_find_use,
3850         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
3851         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
3852         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
3853         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
3854         debug_df_chain, df_get_dependent_problem, df_chain_create,
3855         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
3856         df_grow_bb_info, df_chain_dump, df_print_bb_index,
3857         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
3858         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
3859         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
3860         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
3861         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
3862         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
3863         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
3864         df_ref_remove, df_insn_refs_delete, df_refs_delete,
3865         df_reorganize_refs, df_set_state, df_hard_reg_init,
3866         df_read_modify_subreg_p) New public functions.
3867         * df-core.c: The core dataflow solver and glue routines for rtl
3868         dataflow.
3869         (df_init, df_add_problem, df_set_blocks, df_finish,
3870         df_hybrid_search_forward, df_hybrid_search_backward,
3871         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
3872         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
3873         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3874         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
3875         df_reg_defined, df_find_use, df_reg_used, df_dump,
3876         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
3877         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
3878         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
3879         debug_df_useno, reset_df_after_reload): New functions.
3880         * df-scan.c: The scanning fuctions, once in df.c, completely
3881         rewritten so that they now fully model the functionality of
3882         register usage at the backend.
3883         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
3884         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
3885         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
3886         df_grow_insn_info, df_rescan_blocks, df_ref_create,
3887         df_get_artificial_defs, df_get_artificial_uses,
3888         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
3889         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
3890         df_refs_delete, df_reorganize_refs, df_set_state,
3891         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
3892         df_def_record_1, df_defs_record, df_uses_record,
3893         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
3894         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
3895         df_record_exit_block_uses, df_hard_reg_init): New functions.
3896
3897         * df-problems.c: Seven concrete dataflow problems that use the
3898         scanning in df-scan.c and are solved by the engine in df-core.c.
3899         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
3900         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
3901         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
3902         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
3903         df_ru_free_bb_info, df_ru_alloc,
3904         df_ru_bb_local_compute_process_def,
3905         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
3906         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
3907         df_ru_transfer_function, df_ru_free, df_ru_dump,
3908         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
3909         df_rd_free_bb_info, df_rd_alloc,
3910         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
3911         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
3912         df_rd_transfer_function, df_rd_free, df_rd_dump,
3913         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
3914         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
3915         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
3916         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
3917         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
3918         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
3919         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
3920         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
3921         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
3922         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
3923         df_urec_mark_reg_change, df_urec_check_earlyclobber,
3924         df_urec_mark_reg_use_for_earlyclobber,
3925         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
3926         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
3927         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
3928         df_urec_dump, df_urec_add_problem, df_chain_alloc,
3929         df_chain_create_bb_process_use, df_chain_create_bb,
3930         df_chain_finalize, df_chain_free, df_chains_dump,
3931         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
3932         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
3933         df_reg_lifetime): New functions.
3934         * df.c: Deleted file.
3935         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
3936         consistent with new df api.
3937         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
3938         rest_of_handle_sms): Ditto.
3939         * web.c (unionfind_union, union_defs, entry_register, web_main):
3940         Ditto.
3941         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
3942         invariant_expr_equal_p, find_defs, check_dependencies,
3943         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
3944         free_inv_motion_data, move_loop_invariants): Ditto.
3945         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
3946         Update dependencies.
3947         (odf.c): Added defective entry that was deleted later in day.
3948         * sched-deps.c (sched_analyze_1): Ditto.
3949
3950 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
3951
3952         * tree-ssa-operands.c (get_expr_operands): Record addressable
3953         variables directly.  Do not call add_stmt_operands for CONST_DECLs
3954         and ARRAY_DECLs.
3955         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
3956         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
3957
3958 2006-01-11  Ben Elliston  <bje@au.ibm.com>
3959
3960         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
3961         function returns true in the positive case.
3962
3963 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3964
3965         PR target/20754
3966         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
3967         for SI, DI, SF and DF modes.  Add alternatives to copy between
3968         general and floating point registers to the 32-bit patterns.
3969         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
3970         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
3971         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
3972         generating 64-bit code.
3973         * config/pa/pa.c (output_move_double): Handle copies between general
3974         and floating registers.
3975
3976 2006-01-10  Stuart Hastings  <stuart@apple.com>
3977
3978         * config/i386/i386.md (set_got): Update.
3979         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
3980         (builtin_setjmp_receiver): Mach-O support.
3981         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
3982         (GOT_SYMBOL_NAME): Define.
3983         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
3984         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3985         * config/i386/i386.c (override_options): Revise for Darwin.
3986         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
3987         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
3988         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
3989         * config/i386/i386-protos.h (output_set_got): Likewise.
3990         * config/darwin.c (machopic_legitimize_pic_address): Update
3991         regs_ever_live[].
3992
3993 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3994
3995         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
3996         when MODE isn't BLKmode.
3997
3998 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3999
4000         PR rtl-optimization/25367
4001         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
4002
4003 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
4004
4005         PR target/25718
4006         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
4007         for a negative bound.
4008
4009 2006-01-10  Richard Guenther  <rguenther@suse.de>
4010
4011         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4012         Never override with anything constraint.
4013
4014 2006-01-10  Jan Beulich  <jbeulich@novell.com>
4015
4016         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
4017         256 bits when optimize_size.
4018
4019 2006-01-10  Jan Beulich  <jbeulich@novell.com>
4020
4021         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
4022         MASK_ALIGN_DOUBLE.
4023         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
4024         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
4025         arguments.
4026
4027 2006-01-10  Ben Elliston  <bje@au.ibm.com>
4028
4029         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
4030         float modes.
4031         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
4032         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4033         (USE_FP_FOR_ARG): Reject decimal float modes.
4034         (function_arg_advance): Likewise.
4035         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
4036         (rs6000_handle_altivec_attribute): Do not permit decimal floating
4037         point types in AltiVec vectors.
4038         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
4039         (rs6000_libcall_value): Likewise.
4040
4041 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
4042
4043         * config/xtensa/ieee754-df.S: New file.
4044         * config/xtensa/ieee754-sf.S: New file.
4045         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
4046         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
4047         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
4048
4049 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
4050
4051         * config/sh/predicates.md (binary_float_operator,
4052         binary_logical_operator, commutative_float_operator,
4053         equality_comparison_operator, greater_comparison_operator,
4054         less_comparison_operator, logical_operator,
4055         noncommutative_float_operator, shift_operator,
4056         symbol_ref_operand, unary_float_operator): Remove redundant
4057         conditionals.
4058
4059 2006-01-09  Jeff Law  <law@redhat.com>
4060
4061         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
4062         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
4063         now unused arguments.  Callers updated.
4064         (eliminate_redundant_computations): Remove now unused arguments,
4065         callers updated.
4066         (local_fold): Remove, no longer used.
4067         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
4068         and moved to...
4069         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
4070         (simplify_cond): New function.
4071         (forward_propagate_into_cond): Call simplify_cond.
4072
4073 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
4074
4075         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
4076         (*vec_extractv2di_1_sse): New.
4077
4078 2006-01-09  Ben Elliston  <bje@au.ibm.com>
4079
4080         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
4081
4082 2006-01-08  Richard Guenther  <rguenther@suse.de>
4083
4084         * tree-ssa-structalias.c (get_constraint_for): Remove
4085         anyoffset argument.
4086         (get_constraint_for_component_ref): Likewise.
4087         (do_deref): Likewise.
4088         (get_constraint_for): Likewise.
4089         (do_structure_copy): Likewise.
4090         (handle_ptr_arith): Likewise.
4091         (find_func_aliases): Likewise.  Remove unused need_anyoffset
4092         variable.
4093
4094 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
4095             Kaz Kojima  <kkojima@gcc.gnu.org>
4096
4097         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
4098         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
4099         (EXTRA_CONSTRAINT_C16): Remove.
4100         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
4101         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
4102         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
4103         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
4104         constants of SHmedia.  Handle nested constant expressions of
4105         SHmedia correctly.
4106         (andcosts): Fix the costs for SHmedia constants.
4107         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
4108         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
4109         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
4110         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
4111         (movv4hi_i, movv2si_i): Likewise.
4112         (movsi_const): Adjust the second operand of ior so to match with
4113         the Csu constraint.
4114         (movdi_const, movdi_const_32bit): Likewise.
4115         (movdi_const_16bit+1): Don't sign-extend LOW.
4116         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
4117         step.
4118         (*double_shori): Fix the split condition.  Use GEN_INT instead
4119         of get_int_mode calls.  Mask lower 16-bit of the argument of
4120         the last GEN_INT.
4121         (sym2GOTPLT): Remove.
4122         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
4123         gen_rtx_UNSPEC.
4124         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
4125         instead of EXTRA_CONSTRAINT_C16.
4126
4127 2006-01-07  Ian Lance Taylor  <ian@airs.com>
4128             David Edelsohn  <edelsohn@gnu.org>
4129
4130         PR rtl-optimization/25662
4131         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
4132         for constant operands instead of simplify_gen_binary.
4133         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
4134         after trying simplify_binary_operation
4135
4136 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
4137
4138         * tree.c (iterative_hash_expr): Hash decls based on UID.
4139
4140 2006-01-06  Eric Christopher  <echristo@apple.com>
4141
4142         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
4143         (TARGET_UNWIND_EMIT): Fix spelling.
4144         * target.h (gcc_target): Add except_table_label.
4145         * except.c (output_function_exception_table): Use.
4146         * varasm.c (default_emit_except_table_label): New.
4147         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
4148         define.
4149         (asm_out): Add here.
4150         * output.h (default_emit_except_table_label): Prototype.
4151         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
4152         * config/darwin.c (darwin_emit_except_table_label): Define.
4153         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
4154
4155 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
4156
4157         PR tree-optimization/18527
4158         * tree-ssa-loop-niter.c (number_of_iterations_cond,
4159         number_of_iterations_special, number_of_iterations_exit):
4160         Move base and step of an iv to a single structure.  Add
4161         no_overflow flag, and use it in # of iterations analysis.
4162         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
4163         folded_casts argument.
4164         (simple_iv): Pass base and step in a structure.  Set no_overflow
4165         flag.
4166         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
4167         Evaluate expensiveness of computing # of iterations instead of
4168         the final expression.
4169         * tree-scalar-evolution.h (affine_iv): New structure.
4170         (simple_iv): Declaration changed.
4171         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
4172         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
4173         find_givs_in_stmt): Changed due to simple_iv change.
4174
4175 2006-01-06  Jeff Law  <law@redhat.com>
4176
4177         PR ada/24994
4178         * tree-cfg.c (bsi_replace): Rename final argument from
4179         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
4180         change (stmt -> orig_stmt).
4181         * tree-eh.c (verify_eh_throw_stmt_node): New function.
4182         (bsi_remove): Add new argument.  Remove EH information
4183         if requested.
4184         (verify_eh_throw_table_statements): New function.
4185         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
4186         updated.
4187         * tree-optimize.c (execute_free_cfg_annotations): Verify
4188         the EH throw statement table after removing annotations.
4189         * except.h (verify_eh_throw_table_statements): Prototype.
4190         * tree-flow.h (bsi_remove): Update prototype.
4191         * tree-vrp.c (remove_range_assertions): Add new argument to
4192         bsi_remove call.
4193         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
4194         * tree-complex.c (expand_complex_div_wide): Likewise.
4195         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
4196         * tree-tailcall.c (eliminate_tailcall): Likewise.
4197         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
4198         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
4199         * tree-nrv.c (tree_nrv): Likewise.
4200         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
4201         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
4202         (combine_blocks): Likewise.
4203         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
4204         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
4205         (cleanup_control_flow): Likewise.
4206         (remove_forwarder_block): Likewise.
4207         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
4208         * tree-sra.c (sra_replace): Likewise.
4209         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
4210         (forward_propagate_single_use_vars): Likewise.
4211         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
4212         * tree-inline.c (expand_call_inline): Likewise.
4213         * tree-vect-transform.c (vect_transform_loop): Likewise.
4214         * tree-outof-ssa.c (rewrite_trees): Likewise.
4215         * tree-cfg.c (make_goto_expr_edges): Likewise.
4216         (cleanup_dead_labels): Likewise.
4217         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
4218         (bsi_move_before, bsi_move_after): Likewise.
4219         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
4220         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
4221
4222 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
4223
4224         PR tree-opt/25528
4225         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
4226         and IMAGPART_EXPR.
4227         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
4228         on non gimple variables.  Also add checks at the top for decls and
4229         mtags.
4230         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
4231         complex types.
4232         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
4233         and IMAGPART_EXPR for creating MUST_DEFs.
4234         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
4235         and NAME_MEMORY_TAG separately from the DECLs.
4236
4237 2006-01-06  Richard Guenther  <rguenther@suse.de>
4238
4239         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
4240         annotation, if necessary.
4241         * tree-ssa-pre.c (create_expression_by_pieces): Remove
4242         redundant calls to update_stmt.
4243         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
4244         Likewise.
4245
4246 2006-01-05  Richard Henderson  <rth@redhat.com>
4247
4248         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
4249
4250 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
4251
4252         * c-typeck.c: Update copyright date.
4253
4254 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
4255
4256         * c-typeck.c (build_c_cast): Always warn when casting
4257         from a pointer to an integer of different size, even if
4258         the node was constant.
4259
4260 2006-01-05  Richard Guenther  <rguenther@suse.de>
4261
4262         PR tree-optimization/22555
4263         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
4264         if one structure field is an array.
4265         * tree-ssa-operands.c (get_expr_operands): Continue scanning
4266         operands even if we found a subvar, but ignore VOPs in this
4267         case.
4268         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
4269         for renaming.
4270         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
4271
4272 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
4273
4274         PR middle-end/24998
4275         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
4276
4277 2006-01-05  Richard Guenther  <rguenther@suse.de>
4278             Diego Novillo  <dnovillo@redhat.com>
4279
4280         * tree-pass.h (TODO_remove_unused_locals): Define.
4281         * gimple-low.c (expand_var_p, remove_useless_vars,
4282         pass_remove_useless_vars): Remove.  Update all users.
4283         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
4284         (remove_unused_locals): New function.
4285         * tree-flow.h (remove_unused_locals): Declare.
4286         * passes.c (execute_todo): Call remove_unused_locals if
4287         TODO_remove_unused_locals is set.
4288         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
4289         * tree-ssa-dce.c (pass_dce): Likewise.
4290         * tree-outof-ssa.c (pass_del_ssa): Likewise.
4291
4292 2006-01-05  Richard Guenther  <rguenther@suse.de>
4293
4294         * tree-flow.h (struct fieldoff): Decompose field to
4295         type, size and decl.
4296         * tree-ssa-alias.c (create_sft): Take type as parameter.
4297         (create_overlap_variables_for): Store type, size and decl
4298         in the fieldoff structure.
4299         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
4300         of struct fieldoff.
4301         (push_fields_onto_fieldstack): Likewise.
4302         (create_variable_info_for): Likewise.  Use offset for the
4303         SFT name if the decl is not available.
4304
4305 2006-01-04  Paul Brook  <paul@codesourcery.com>
4306
4307         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
4308
4309 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
4310
4311         * lambda-code.c (can_put_in_inner_loop): Relax
4312         restrictions.
4313         (can_put_after_inner_loop): New function.
4314         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
4315         (perfect_nestify): Change to make copies and modify uses.
4316
4317 2006-01-04  Richard Henderson  <rth@redhat.com>
4318
4319         Merge from gomp branch:
4320         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
4321         via integer constant.
4322         (pragma_lex): Remove.
4323         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
4324         rather than parsing it.
4325         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
4326         handle_pragma_extern_prefix): Add %< %> quotes.
4327         (registered_pragmas): New.
4328         (c_register_pragma_1): New.
4329         (c_register_pragma): Use it.
4330         (c_register_pragma_with_expansion): Likewise.
4331         (c_invoke_pragma_handler): New.
4332         (init_pragma): Use cpp_register_deferred_pragma directly for
4333         pch_preprocess.
4334         * c-pragma.h (enum pragma_kind): New.
4335         (pragma_handler): New.
4336         (c_invoke_pragma_handler): Declare.
4337         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
4338         CPP_PRAGMA_EOL.
4339         * c-common.h (c_common_pch_pragma): Update decl.
4340         * Makefile.in (c-parser.o): Update dependencies.
4341         (GTFILES): Add c-pragma.h.
4342         * c-parser.c (struct c_token): Add pragma_kind.
4343         (struct c_parser): Add in_pragma.
4344         (c_lex_one_token): Always initialize keyword and pragma_kind.
4345         Extract data for CPP_PRAGMA.
4346         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
4347         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
4348         Don't allow CPP_PRAGMA_EOL if in_pragma.
4349         (c_parser_consume_pragma): New.
4350         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
4351         (c_parser_skip_to_end_of_parameter): Likewise.
4352         (c_parser_skip_to_end_of_block_or_statement): Likewise.
4353         (c_parser_skip_to_pragma_eol): New.
4354         (c_parser_external_declaration): Handle CPP_PRAGMA.
4355         (c_parser_compound_statement_nostart): Likewise.
4356         (c_parser_statement_after_labels): Likewise.
4357         (c_parser_pragma): New.
4358         (pragma_lex): Likewise.
4359         (c_parser_pragma_pch_preprocess): New.
4360         (c_parser_new): Merge into ...
4361         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
4362
4363 2006-01-04  Jeff Law  <law@redhat.com>
4364
4365         PR ada/24994
4366         * tree-cfg.c (bsi_replace): Remove the original statement
4367         from the EH throw statement table.
4368
4369 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
4370
4371         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
4372         make the prototype extern "C" and add throw ().
4373
4374         PR target/25554
4375         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
4376         and pos non-negative and pos + len <= 32.
4377         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
4378         drop pos + len < HOST_BITS_PER_WIDE_INT test.
4379         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
4380
4381         PR c/25559
4382         * c-common.c (handle_vector_size_attribute): Reject zero vector size
4383         as well as sizes not multiple of component size.
4384
4385         PR debug/25562
4386         * function.c (instantiate_expr): New function.
4387         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
4388         walk its DECL_VALUE_EXPR with instantiate_expr.
4389
4390         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
4391         DW_OP_deref{,_size} if address isn't going to be added.
4392
4393 2006-01-04  Ben Elliston  <bje@au.ibm.com>
4394
4395         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
4396         * config/fp-bit.c: Likewise.
4397
4398 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
4399
4400         * dominance.c: Add comment about why we use DFS numbering
4401         of dominance tree.
4402
4403 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
4404             Richard Henderson  <rth@redhat.com>
4405
4406         Merge from gomp-branch:
4407         * varasm.c (assemble_variable): Handle thread-local COMMON data.
4408         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
4409
4410 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
4411
4412         PR rtl-optimization/25578
4413         * combine.c (combine_simplify_rtx, force_to_mode): Don't
4414         pass a parameter to simplify_shift_const if changing ASHIFTRT
4415         to LSHIFTRT.
4416
4417 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
4418
4419         * builtins.c (get_builtin_sync_mem): New function.
4420         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
4421         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
4422         Call get_builtin_sync_mem to generate mem rtx.
4423
4424 2006-01-03  Richard Guenther  <rguenther@suse.de>
4425
4426         PR c/25183
4427         * stmt.c (add_case_node): Make sure to clear overflow flags
4428         from ranges.
4429
4430 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
4431
4432         Merge from gomp-branch.
4433         * config/sparc/sync.md: New file.
4434         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
4435         UNSPECV_LDSTUB): New constants.
4436         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
4437         * config/sparc/predicates.md (memory_reg_operand): New predicate.
4438         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
4439         prototype.
4440
4441 2006-01-03  Roger Sayle  <roger@eyesopen.com>
4442
4443         * combine.c (reg_subword_p): New predicate to test whether the
4444         destination of a set refers to a subword/piece of a register.
4445         (try_combine): Generalize the code to merge the setting of a
4446         pseudo to a constant followed by a set of a subword of that
4447         register to a constant.
4448
4449 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
4450
4451         * basic-block.h (control_flow_graph): Change the type of
4452         x_label_to_block_map to VEC(basic_block,gc) *.
4453         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
4454         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
4455
4456         * tree-ssa-propagate.c (cfg_blocks): Change the type to
4457         VEC(basic_block,heap) *.
4458         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
4459         ssa_prop_fini): Adjust the uses of cfg_blocks.
4460
4461 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
4462
4463         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
4464         COMPONENT_REFs.
4465         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
4466         hashing trees instead of a pointer hash.
4467         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
4468         compare for MEM_EXPR.
4469
4470         PR rtl-optimization/25130
4471         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
4472         when comparing MEMs for GCSE
4473
4474 2006-01-03  Ben Elliston  <bje@au.ibm.com>
4475
4476         * targhooks.h (default_decimal_float_supported_p): Declare.
4477         * targhooks.c (default_decimal_float_supported_p): Define.
4478         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
4479         `default_decimal_float_supported_p'.
4480         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
4481
4482 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
4483
4484         * combine.c (apply_distributive_law <SUBREG>): Check
4485         TRULY_NOOP_TRUNCATION.
4486
4487 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
4488
4489         * dwarf2out.c (have_switched_text_section): Delete.
4490         (have_multiple_function_sections): New.
4491         (have_location_lists): Make 'bool'.
4492         (add_AT_loc_list): Use 'true' not '1'.
4493         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
4494         (output_loc_list): Use have_multiple_function_sections.
4495         (output_ranges): Likewise.
4496         (dwarf2out_begin_function): Set have_multiple_function_sections if
4497         necessary.
4498         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
4499         Check function_section rather than DECL_SECTION_NAME.
4500         (dwarf2out_finish): Use have_multiple_function_sections.
4501         Don't clear have_location_lists.
4502
4503 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
4504             Jan Hubicka  <jh@suse.cz>
4505
4506         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
4507         case of conditional jump jumping to the next instruction.
4508         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
4509         cases of conditional jump jumping to the next instruction.
4510
4511 2006-01-02  Jan Hubicka  <jh@suse.cz>
4512
4513         * i386.c (*_cost): Add COSTS_N_INSNS.
4514         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
4515
4516 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
4517
4518         PR target/25259
4519         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
4520
4521 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4522
4523         * config/arm/arm.c (all_fpus): Fix comment typo.
4524         * config/darwin.c: Likewise.
4525         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
4526         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
4527         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
4528
4529 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
4530
4531         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
4532         (rs6000_split_compare_and_swapqhi): New.
4533         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
4534         (sync_compare_and_swapqhi_internal): New.
4535         * config/rs6000/rs6000-protos.h: Declare.