OSDN Git Service

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