OSDN Git Service

4400f9a6160807842558e5eececfae4f9cda353c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
2
3         PR rtl-optimization/26316
4         * rtlanal.c (enum may_trap_p_flags): New.
5         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
6         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
7         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
8         (may_trap_after_code_motion_p): New function.
9         * loop-invariant.c (find_identical_invariants): Fix dump formating.
10         (find_invariant_insn): Use may_trap_after_code_motion_p.
11         * rtl.h (may_trap_after_code_motion_p): Declare.
12
13 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
14
15         * emit-rtl.c (immed_double_const): Cleanup.
16
17 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
18         
19         Fix PR tree-optimization/26376
20         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
21         remove assert.
22
23 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
24
25         PR middle-end/26412
26         * gimplify.c (omp_add_variable): Guard variable size decl test with
27         DECL_SIZE (decl) check.
28
29 2006-02-23  Richard Guenther  <rguenther@suse.de>
30
31         PR middle-end/26439
32         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
33         like aggregate types.
34
35 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
36
37         * configure.ac: Add --with{,out}-long-double-128 configure option.
38         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
39         * configure: Rebuilt.
40         * config.in: Rebuilt.
41         * doc/install.texi (Options specification): Document
42         --with-long-double-128.
43
44         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
45         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
46         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
47         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
48
49 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
50
51         * config/s390/s390.c (override_options): Handle
52         TARGET_DEFAULT_LONG_DOUBLE_128.
53
54         * config/alpha/alpha.c (override_options): Handle
55         TARGET_DEFAULT_LONG_DOUBLE_128.
56
57         * config/sparc/sparc.c (sparc_override_options): Handle
58         TARGET_DEFAULT_LONG_DOUBLE_128.
59
60 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
61
62         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
63         (real-install-headers-tar, real-install-headers-cpio)
64         (real-install-headers-cp): New targets.
65
66 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
67
68         * tree.h (variable_section): Delete.
69         * varasm.c (variable_section): Delete.
70
71 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
72
73         * install.texi: Add notes on install.texi2html.
74         (Building in parallel): Do not use footnotes.
75
76 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
77
78         PR libgomp/26234
79         * doc/install.texi (Configuration): Document --disable-libgomp.
80
81 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
82
83         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
84
85 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
86
87         * config/i386/sse.md (vec_extractv2df_1_sse): New.
88         (vec_extractv2df_0_sse): New.
89
90 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
91
92         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
93         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
94         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
95         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
96         to the result of the expression.
97         (def_cfa_1): Adjust.
98         (frame_pointer_cfa_offset): Rename to...
99         (frame_pointer_fb_offset): ... this.  Adjust all uses.
100         (convert_cfa_to_loc_list): Rename to...
101         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
102         Pass it on to build_cfa_loc.
103         (compute_frame_pointer_to_cfa_displacement): Rename to...
104         (compute_frame_pointer_to_fb_displacement): ... this.  New
105         offset parameter.  Use it in computation.
106         (gen_subprogram_die): Compute cfa_fb_offset with the new
107         macro, and use it to compute the fb loc list and the
108         displacement.
109
110 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
111
112         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
113         replaced with register_operand.
114         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
115         non-DREG is expensive.
116         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
117         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
118         involving memory.
119
120 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
121
122         * doc/install.texi2html: Use set -e.
123
124 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
125
126         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
127         (ASM_OUTPUT_SHARED_LOCAL): Delete.
128         * doc/invoke.texi (-fshared-data): Delete.
129         * common.opt (fshared-data): Delete.
130         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
131         (assemble_static_space): Remove #if 0 code.
132         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
133         (ASM_OUTPUT_SHARED_LOCAL): Poison.
134         * config/cris/cris.h: Remove FIXME.
135
136 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
137
138         * doc/sourcebuild.texi (Front End Directory): No more double-colon
139         hooks.
140
141 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
142
143         PR middle-end/26379
144         * combine.c (simplify_shift_const_1): Disable nested shifts
145         optimization for vector shifts.
146
147 2006-02-20  Roger Sayle  <roger@eyesopen.com>
148
149         PR tree-optimization/26361
150         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
151         of unsigned integer types.
152
153 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
154
155         * tree-chrec.c (eq_evolutions_p): New.
156         * tree-chrec.h (eq_evolutions_p): Declared.
157         * tree-data-ref.c: Fix formatting.
158         (datadep_stats, dependence_stats): New.
159         (gcd): Moved...
160         (print_direction_vector): New.
161         (dump_data_dependence_relation): Use print_direction_vector.
162         (object_analysis, create_data_ref): Handle COMPONENT_REF.
163         (compute_subscript_distance): Static.
164         (initialize_data_dependence_relation): Static.  Get the number
165         of loops surrounding the references from the callers, and initialize
166         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
167         base_object_differ_p analyzers.
168         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, 
169         compute_overlap_steps_for_affine_1_2,
170         analyze_subscript_affine_affine): Count the classified dependences.
171         Print a message when a test failed.
172         (can_use_analyze_subscript_affine_affine): New. 
173         (analyze_siv_subscript): Compute the data dependences on symbolic
174         scevs that verify can_use_analyze_subscript_affine_affine.
175         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
176         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
177         Handle symbolic scevs.
178         (analyze_overlapping_iterations): Let symbolic affine scevs to be
179         analyzed.
180         (subscript_dependence_tester): Moved...
181         (build_classic_dist_vector, build_classic_dir_vector): Don't use 
182         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
183         DDR_SIZE_VECT instead of getting it in parameter.
184         (subscript_dependence_tester): ... here.  Take as a parameter 
185         loop_nest_depth.  Call build_classic_dist_vector and
186         build_classic_dir_vector.
187         (compute_affine_dependence): Update subscript_dependence_tester 
188         parameters.  Update datadep_stats counters.  Call 
189         compute_subscript_distance.
190         (compute_self_dependence): Save the dist and dir vectors.  Call 
191         compute_subscript_distance.
192         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
193         (compute_all_dependences): Reorder parameters as they were before
194         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
195         compute_subscript_distance.  Update the use of 
196         compute_affine_dependence and initialize_data_dependence_relation.
197         (find_data_references_in_loop): Handle COMPONENT_REF.
198         (compute_data_dependences_for_loop): Initialize dependence_stats.
199         Don't call build_classic_dist_vector and build_classic_dir_vector.
200         Update the parameters of initialize_data_dependence_relation and 
201         compute_all_dependences.  Print the statistics from datadep_stats.
202         (analyze_all_data_dependences): Static.  Not used until the pass for
203         checking the data dependences is contributed.
204         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
205         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
206         (initialize_data_dependence_relation, compute_affine_dependence, 
207         analyze_all_data_dependences, compute_subscript_distance): Removed.
208         (print_direction_vector): New.
209         * lambda.h (gcd): ... here.
210         (lambda_vector_gcd): Moved here from gcd_vector.
211         * lambda-code.c (gcd, gcd_vector): Removed.
212         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
213         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
214
215 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
216
217         * ipa-type-escape.c: Tidy some comments and white space.
218         * tree-ssa-operands.c: Likewise.
219
220 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
221
222         PR tree-opt/25879
223         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
224         (dump_decl_name): Do not walk the decl tree chains.
225         * tree-pass.h (TDF_CHAIN): Remove.
226
227 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
228
229         * Makefile.in (C): Remove
230         (PROTO): Remove
231         (.PHONY): Remove C and PROTO
232
233 2006-02-20  Roger Sayle  <roger@eyesopen.com>
234
235         PR middle-end/26236
236         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
237         deprecated CHAR_TYPE tree code.
238
239 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
240
241         * configure.ac (target_list): Add install-info, dvi, html.
242         * configure: Regenerate.
243
244         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
245         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
246         treelang/Make-lang.in: Do not use double-colon rules.
247
248 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
249
250         * tree.h (struct tree_memory_tag): Add is_used_alone member.
251         (TMT_USED_ALONE): New macro.
252         * tree-pass.h (PROP_tmt_usage): New property.
253         (TODO_update_tmt_usage): New todo.
254         * tree-ssa-alias.c (updating_used_alone): New variable.
255         (recalculate_used_alone): New function.   
256         (compute_may_aliases): Set updating_used_alone, call
257         recalculate_used_alone. 
258         * tree-sra.c (pass_sra): Note that this pass destroys
259         PROP_tmt_usage, and add TODO_update_tmt_usage.
260         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
261         * tree-flow.h (updating_used_alone): Prototype.
262         (recalculate_used_alone): Ditto.
263         * passes.c (execute_todo): Add code to set updating_used_alone,
264         and call recalculate.
265         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
266         for clobber if used alone, and add assert to verify used_alone
267         status.
268         
269 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
270
271         * config/s390/s390.c (legitimize_pic_address): Assertions checking
272         for non tls symbols added.
273         (legitimize_address): Do nothing for PLUS expressions if one of the
274         addends is a tls symbol reference.
275
276 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
277
278         PR bootstrap/25476
279
280         * Makefile.in (LDFLAGS): Define from autoconf substitution.
281
282         * Makefile.in (BOOTSTRAPPING): New.
283         (quickstrap): New definition if BOOTSTRAPPING=yes.
284
285         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
286         * configure.ac: Substitute all_selected_languages with the languages
287         that were configured.  For all the other variables except
288         lang_specs_files, include all the languages in the tree.
289         * configure: Regenerate.
290         
291         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
292         if there is one.  Run the commands to run fixincludes in the same
293         subshell.
294
295         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
296         * doc/install.texi: Document exact conventions for searching target tools.
297         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
298         something more about building an Ada cross-compiler.  Don't list GNU Make
299         requirements which affect all platforms.
300
301 2006-02-19  Roger Sayle  <roger@eyesopen.com>
302
303         PR middle-end/19543
304         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
305         only equivalent if the have both the same mode and precision.
306
307 2006-02-20  Ben Elliston  <bje@au.ibm.com>
308
309         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
310
311 2006-02-19  Roger Sayle  <roger@eyesopen.com>
312             Steven Bosscher  <stevenb.gcc@gmail.com>
313
314         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
315         constant pool references to identify stack mode constants.
316         * rtlanal.c (constant_pool_constant_p): New predicate to check
317         whether operand is a floating point constant in the pool.
318         * rtl.h (constant_pool_constant_p): Prototype here.
319         * loop.c (scan_loop): Avoid hoisting constants from the constant
320         pool on STACK_REGS targets.
321         (load_mems): Likewise.
322         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
323         loads into x87 registers expensive in terms of register pressure.
324
325 2006-02-19  Roger Sayle  <roger@eyesopen.com>
326
327         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
328         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
329
330 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
331
332         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
333         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
334
335 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
336
337         * doc/invoke.texi: Document -fipa-pta.
338         * common.opt: Add ipa-pta option.
339         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
340         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
341         (do_ds_constraint): Ditto.
342         (get_constraint_for): Only add to referenced_vars if
343         referenced_vars exists.
344         (insert_into_field_list): Rewrite to do this unsorted.
345         (insert_into_field_list_sorted): Rename old insert_into_field_list
346         to this.
347         (create_function_info_for): Use insert_into_field_list_sorted.
348         (create_variable_info_for): Rewrite so it uses unsorted version,
349         since the field list is sorted.
350         (intra_create_variable_infos): Only add to referenced_vars if
351         referenced_vars exists.
352         (ipa_pta_execute): Init heapvars, and delete when done.
353         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
354
355 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
356
357         * doc/install.texi: Add missing `@samp'.
358
359 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
360
361         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
362         Use the arguments.
363
364 2006-02-18  Mark Wielaard  <mark@klomp.org>
365
366         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
367         who added new 4.1 features, bug fixes and integration support.
368
369 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
370
371         PR target/26350
372         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
373         MEM for ABI_V4 pic.
374
375 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
376
377         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
378         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
379         (copy_insn_1): Likewise.  Don't copy each field individually.
380         Reindent.
381         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
382         of RTX_SIZE.
383         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
384         * rtl.c (rtx_size): Rename variable to...
385         (rtx_code_size): ...this.
386         (rtx_size): New function.
387         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
388         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
389         Reindent.
390         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
391         * rtl.h (rtx_code_size): New variable.
392         (rtx_size): Change from a variable to a function.
393         (RTX_SIZE): Rename to...
394         (RTX_CODE_SIZE): ...this.
395
396         PR target/9703
397         PR tree-optimization/17106
398         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
399         (Anchored Addresses): New section.
400         * doc/invoke.texi (-fsection-anchors): Document.
401         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
402         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
403         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
404         * hooks.c (hook_bool_mode_rtx_false): New function.
405         * hooks.h (hook_bool_mode_rtx_false): Declare.
406         * gengtype.c (create_optional_field): New function.
407         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
408         SYMBOL_REF_IN_BLOCK_P is true.
409         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
410         (min_anchor_offset, max_anchor_offset): Likewise.
411         (use_anchors_for_symbol_p): New hook.
412         * toplev.c (compile_file): Call output_object_blocks.
413         (target_supports_section_anchors_p): New function.
414         (process_options): Check that -fsection-anchors is only used on
415         targets that support it and when -funit-at-a-time is in effect.
416         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
417         if the decl doesn't have one.
418         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
419         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
420         of force_const_mem through use_anchored_address.
421         (expand_expr_constant): New function.
422         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
423         calling expand_expr for INDIRECT_REF.
424         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
425         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
426         * expr.h (use_anchored_address): Declare.
427         * loop-unroll.c: Don't declare rtx vectors here.
428         * explow.c: Include output.h.
429         (validize_mem): Call use_anchored_address.
430         (use_anchored_address): New function.
431         * common.opt (-fsection-anchors): New switch.
432         * varasm.c (object_block_htab, anchor_labelno): New variables.
433         (hash_section, object_block_entry_eq, object_block_entry_hash)
434         (use_object_blocks_p, get_block_for_section, create_block_symbol)
435         (use_blocks_for_decl_p, change_symbol_section): New functions.
436         (get_variable_section): New function, split out from assemble_variable.
437         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
438         use_blocks_for_decl_p say so.  Use change_symbol_section if the
439         symbol has already been created.
440         (assemble_variable_contents): New function, split out from...
441         (assemble_variable): ...here.  Don't output any code for
442         block symbols; just pass them to place_block_symbol.
443         Use get_variable_section and assemble_variable_contents.
444         (get_constant_alignment, get_constant_section, get_constant_size): New
445         functions, split from output_constant_def_contents.
446         (build_constant_desc): Create a block symbol if use_object_blocks_p
447         says so.  Or into SYMBOL_REF_FLAGS.
448         (assemble_constant_contents): New function, split from...
449         (output_constant_def_contents): ...here.  Don't output any code
450         for block symbols; just pass them to place_section_symbol.
451         Use get_constant_section and get_constant_alignment.
452         (force_const_mem): Create a block symbol if use_object_blocks_p and
453         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
454         (output_constant_pool_1): Add an explicit alignment argument.
455         Don't switch sections here.
456         (output_constant_pool): Adjust call to output_constant_pool_1.
457         Switch sections here instead.  Don't output anything for block symbols;
458         just pass them to place_block_symbol.
459         (init_varasm_once): Initialize object_block_htab.
460         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
461         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
462         (place_block_symbol, get_section_anchor, output_object_block)
463         (output_object_block_htab, output_object_blocks): New functions.
464         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
465         (TARGET_ASM_OUT): Include it.
466         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
467         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
468         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
469         (TARGET_INITIALIZER): Include them.
470         * rtl.c (rtl_check_failed_block_symbol): New function.
471         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
472         (block_symbol, object_block): New structures.
473         (rtx_def): Add a block_symbol field to the union.
474         (BLOCK_SYMBOL_CHECK): New macro.
475         (rtl_check_failed_block_symbol): Declare.
476         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
477         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
478         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
479         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
480         * output.h (output_section_symbols): Declare.
481         (object_block): Name structure.
482         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
483         (default_use_anchors_for_symbol_p): Declare.
484         * Makefile.in (RTL_BASE_H): Add vec.h.
485         (explow.o): Depend on output.h.
486         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
487         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
488         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
489         (rs6000_use_blocks_for_constant_p): New function.
490
491 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
492
493         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
494
495 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
496
497         PR tree-opt/25680
498         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
499         IMAGPART_EXPR.
500
501 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
502
503         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
504         is_aliased.
505         Update all users.
506
507 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
508
509         PR middle-end/26334
510         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
511         instead of DECL_REGISTER.
512
513 2006-02-18  Olivier Hainque  <hainque@adacore.com>
514
515         PR ada/13408
516         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
517
518 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
519
520         PR target/24837
521         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
522         * opth-gen.awk: Handle Var and InverseMask together.
523         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
524         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
525         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
526         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
527         used together.
528         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
529         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
530         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
531         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
532         LINUX_DYNAMIC_LINKER): Define.
533         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
534         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
535         TARGET_GLIBC.
536         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
537         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
538         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
539         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
540         (TARGET_C99_FUNCTIONS): Don't define.
541         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
542         GLIBC_DYNAMIC_LINKER.
543         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
544         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
545         GLIBC_DYNAMIC_LINKER64): Define.
546         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
547         LINUX_DYNAMIC_LINKER64.
548         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
549         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
550         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
551         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
552         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
553         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
554         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
555         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
556         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
557         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
558         and LINUX_DYNAMIC_LINKER32.
559         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
560         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
561         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
562         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
563         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
564         TARGET_GLIBC.
565         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
566         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
567         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
568         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
569         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
570         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
571         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
572         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
573         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
574         LINUX_DYNAMIC_LINKER): Define.
575         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
576         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
577         GLIBC_DYNAMIC_LINKER64): Define.
578         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
579         LINUX_DYNAMIC_LINKER64.
580         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
581         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
582         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
583         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
584         LINUX_DYNAMIC_LINKER): Define.
585         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
586         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
587         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
588         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
589         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
590         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
591         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
592         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
593         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
594         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
595         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
596         * doc/invoke.texi (-muclibc): Remove caveat about supported
597         targets.
598
599 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
600
601         * doc/cpp.texi (__TIMESTAMP__): Document.
602
603 2006-02-17  Roger Sayle  <roger@eyesopen.com>
604
605         PR middle-end/25600
606         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
607         C is one less than the width of X (and related transformations).
608         * simplify_rtx.c (simplify_unary_operation_1): Transform 
609         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
610         depending on STORE_FLAG_VALUE, were C is one less then the
611         width of X.
612
613 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
614
615         Fix PR tree-optimization/26341
616         * tree-ssa-operands.c (add_virtual_operand): Remove assert 
617         about NAME_MEMORY_TAG's.
618
619 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
620
621         PR target/26255
622         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
623         with hardware float support, and software float support.  Add fcpy
624         alternative to hardware patterns.  Add alternatives to copy between
625         general and floating-point registers to the 32-bit pattern.
626         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
627         secondary reload to load a QI or HI mode constant into a floating
628         point register. 
629         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
630         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
631
632 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
633
634         PR target/26272
635         * config/rs6000/darwin.md (load_macho_picbase_si): Add
636         pc to the pattern.
637         (load_macho_picbase_di): Likewise.
638
639 2006-02-16  Jeff Law  <law@redhat.com>
640
641         * tree-vrp.c (set_value_range_to_nonnegative): New function.
642         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
643         (ssa_name_nonzero_p): Likewise.
644         (get_value_range): Return NULL if VRP is not running.
645         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
646         VRP routines do not discover a range.
647         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
648         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
649         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
650         (tree_expr_nonnegative_p): Similarly.
651         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
652         (restore_nonzero_vars_to_original_value): Remove.
653         (unsafe_associative_fp_binop): Remove.
654         (tree_ssa_dominator_optimize): Remove initialization and
655         finalization of nonzero_vars and nonzero_vars_stack.
656         (dom_opt_initialize_block): No longer push marker on
657         nonzero_vars_stack.
658         (dom_opt_finalize_block): No longer call
659         restore_nonzero_vars_to_original_value.
660         (record_equivalences_from_phis): No longer look for
661         nonzero PHI arguments.
662         (cprop_into_successor_phis): No longer propagate nonzero
663         property into PHI arguments.  Lose unused argument.  Caller
664         updated.
665         (record_equivalences_from_stmt): No longer record nonzero
666         values for SSA_NAMEs.
667         (lookup_avail_expr): No longer use nonzero_vars.
668
669         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
670         for sizetype when sizetype is unsigned.
671
672 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
673
674         PR rtl-optimization/25603
675         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
676         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
677         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p 
678         with new meaning of SETS.
679
680 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
681
682         PR target/20353
683         PR target/24578
684         PR target/24837
685         * config/linux.opt: New file.
686         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
687         LINUX_DYNAMIC_LINKER): Define.
688         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
689         * config.gcc (*-*-linux*): Define extra_options.
690         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
691         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
692         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
693         GLIBC_DYNAMIC_LINKER.
694         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
695         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
696         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
697         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
698         * doc/invoke.texi (GNU/Linux Options): New section.
699
700 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
701
702         * config/sparc/sparc.md (setjmp): Rewrite.
703         (setjmp_32): Delete.
704         (setjmp_64): Likewise.
705
706 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
707
708         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
709          previous change.
710
711 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
712
713         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
714         read-write uses.
715
716 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
717
718         PR rtl-optimization/26296
719         * Makefile.in (loop-invariant.c): Add except.h dependency.
720         * loop-invariant.c: Include except.h.
721         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
722
723 2005-02-16  Paul Brook  <paul@codesourcery.com>
724
725         * reload1.c (emit_reload_insns): Invalidate dead input registers used
726         for reloads.
727
728 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
729
730         PR rtl-optimization/25636
731         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
732         when deciding whether an insn is an initializing insn.
733
734 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
735
736         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
737         (tree_code_size): Ditto.
738         * tree.h (struct tree_memory_tag): Remove parent_var.
739         (struct tree_struct_field_tag): New.
740         (SFT_OFFSET): New.
741         (SFT_SIZE): New.
742         (union tree_node): Add sft member.
743         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
744         specially here.
745         (create_sft): Add size and offset argument, set SFT_OFFSET and
746         SFT_SIZE.
747         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
748         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
749         * tree-flow-inline.h (get_subvar_at): Update for
750         SFT_OFFSET/SFT_SIZE.
751         (var_can_have_subvars): Ditto.
752         (overlap_subvar): Ditto.
753         * print-tree.c (print_node): Print out interesting things for
754         SFT's.
755         * tree-flow.h (struct subvar): Remove offset and size members.
756         * tree-ssa-operands.c (get_expr_operands): Update for
757         get_indirect_ref_operands changes.
758         (get_indirect_ref_operands): Call add_virtual_operand instead of
759         add_stmt_operand.  Only recurse on base var if requested.
760         (access_can_touch_variable): New function.
761         (add_stmt_operand): Split virtual operand handling into ...
762         (add_virtual_operand): Here.  Add offset, size, and for_clobber
763         arguments.  Prune alias sets.
764         (add_call_clobber_ops): Call add_virtual_operand.
765         
766 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
767
768         PR middle-end/26300
769         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
770
771         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
772         than TREE_CODE as index into omp_clause_num_ops array.
773
774 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
775
776         PR rtl-optimization/26184
777         * modulo-sched.c (generate_reg_moves): Free bitmap vector
778         uses_of_defs.
779         * modulo-sched.c (sms_schedule): Free g_arr pointer.
780         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
781         must_precede, must_follow and tobe_scheduled.
782
783         PR other/26147
784         * opts.c (common_handle_option): Free new_option pointer.
785         * df-core.c (df_analyze): Free postorder pointer.
786
787 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
788
789         * Makefile.in: Fix the examples about the use of stamps
790
791 2006-02-15  Michael Matz  <matz@suse.de>
792
793         PR middle-end/22275
794
795         * stor-layout.c (layout_decl): Zero-width bitfields aren't
796         influenced by maximum_field_alignment or DECL_PACKED.
797         (update_alignment_for_field): Ditto.
798         (place_field): Ditto.
799         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
800         this behaviour.
801
802 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
803
804         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
805         (debug_flow_info): Pass it.
806         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
807         * bb-reorder.c (reorder_basic_blocks): Likewise.
808         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
809         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
810         * flow.c (life_analysis, recompute_reg_usage): Likewise.
811         * gcse.c (gcse_main, bypass_jumps): Likewise.
812         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
813         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
814         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
815         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
816         * rtl.h (dump_flow_info): Adjust prototype.
817         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
818         * var-tracking.c (variable_tracking_main): Likewise.
819         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
820         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
821         options.
822
823 2006-02-15  Marcin Dalecki <martin@dalecki.de>
824
825         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
826         construction.
827
828 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
829
830         PR tree-optimization/26209
831         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
832         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
833         eh edges.
834         * tree-cfg.c (replace_uses_by): Do not alter cfg.
835
836 2006-02-14  Roger Sayle  <roger@eyesopen.com>
837
838         PR middle-end/23670
839         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
840         (X,Y) and the corresponding symmetry related transformations.
841         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
842         (X,Y) and its symmetry related transformations.
843
844 2006-02-14  Roger Sayle  <roger@eyesopen.com>
845
846         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
847         and GEU.
848
849 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
850
851         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
852
853 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
854
855         PR bootstrap/26053
856         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
857         support COMDAT group.
858         * configure: Regenerate.
859
860 2006-02-14  Roger Sayle  <roger@eyesopen.com>
861
862         PR middle-end/26279
863         PR middle-end/26280
864         PR middle-end/26283
865         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
866
867 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
868
869         Fix PR tree-optimization/26260
870
871         * doc/invoke.texi (max-fields-for-field-sensitive): Document
872         param.
873         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
874         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
875         * tree-ssa-structalias.c (create_variable_info_for): Use
876         MAX_FIELDS_FOR_FIELD_SENSITIVE.
877         
878 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
879
880         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
881         Document.
882         * tree-ssa-loop-niter.c (number_of_iterations_ne,
883         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
884         of the ending condition.
885         * tree-ssa-loop-manip.c: Include params.h.
886         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
887         tree_unroll_loop): New functions.
888         * tree-pass.h (pass_loop_prefetch): Declare.
889         * loop.c (rest_of_handle_loop_optimize): Test for
890         -fprefetch-loop-arrays-rtl.
891         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
892         * timevar.def (TV_TREE_PREFETCH): New timevar.
893         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
894         pass_loop_prefetch): New.
895         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
896         (cleanup_tree_cfg_loop): Call scev_reset.
897         * common.opt (fprefetch-loop-arrays-rtl): Add.
898         * tree-ssa-loop-prefetch.c: New file.
899         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
900         (new_temp_expr_table): Initialize expr_vars.
901         (free_temp_expr_table): Cleanup expr_vars.
902         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
903         expressions from being merged into one.
904         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
905         (struct tree_niter_desc): Add control, bound and cmp fields.
906         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
907         Declare.
908         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
909         (tree-cfgcleanup.o): Add SCEV_H dependency.
910         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
911         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
912
913 2006-02-14  Richard Guenther  <rguenther@suse.de>
914
915         PR tree-optimization/26258
916         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
917         in PHI argument processing.
918
919 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
920
921         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
922         new expression in the requested machine mode.
923
924 2006-02-13  Roger Sayle  <roger@eyesopen.com>
925
926         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
927         directly, instead let do_compare_rtx_and_jump handle this for us.
928         * expr.c (expand_expr_real_1): Likewise.
929         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
930         before do_jump_by_parts_greater.
931         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
932         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
933
934 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
935
936         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
937
938 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
939
940         PR rtl-optimization/26235
941         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
942         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
943         format.
944
945 2006-02-13  Jeff Law  <law@redhat.com>
946
947         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
948         TRUTH_XOR_EPR.
949
950 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
951
952         PR middle-end/26092
953         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
954         twice if decl is a builtin.  When trying again, call get_callee_fndecl
955         first to verify it is still a builtin.
956
957 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
958
959         * dwarf2out.c (base_type_die): Don't add AT_name here.
960         (subrange_type_die): Don't add AT_name here.
961         (modified_type_die): Rearrange code flow.  Do add AT_name here.
962
963 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
964
965         PR rtl-optimization/26247
966         PR rtl-optimization/26248
967         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
968
969 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
970
971         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
972         * config/fixtfdi.c: Likewise.
973         * config/fixunstfdi.c: Likewise.
974         * config/floatditf.c: Likewise.
975
976 2006-02-13  Roger Sayle  <roger@eyesopen.com>
977
978         PR middle-end/24427
979         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
980         into (X,C2) if C1 is a subset of the bits of C2.  Transform
981         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
982         (X&(C1&~C2))|C2.
983         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
984
985 2006-02-13  Josh Conner  <jconner@apple.com>
986
987         PR target/25376
988         * varasm.c (function_section): Check for section name before
989         calling select_section on targets that define
990         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
991         unlikely_text_section instead of hot_function_section if
992         first_function_block_is_cold.
993
994 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
995
996         PR middle-end/25335
997         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
998
999 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
1000
1001         PR rtl-optimization/26222
1002         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
1003         after tree->rtl expansion.
1004         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
1005         before passing it to emit_move_insn.
1006
1007 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1008
1009         * doc/invoke.texi (-Write-strings): Document that it is enabled by
1010         default. 
1011         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
1012         Clarify documentation.
1013         * c-common.h (warn_write_strings): Remove.
1014         * c-common.c (warn_write_strings): Likewise.
1015         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
1016         default for C++.
1017
1018 2006-02-12  Roger Sayle  <roger@eyesopen.com>
1019
1020         PR middle-end/25724
1021         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
1022         (do_jump_parts_zero_rtx): New function renamed from
1023         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
1024         (do_jump_parts_equality_rtx): New function split out from
1025         do_jump_parts_equality.  Old implementation renamed as above.
1026         Call do_jump_parts_zero_rtx if either operand is zero.
1027         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
1028         do all of the heavy lifting.
1029         (do_compare_rtx_and_jump): Handle multi-word comparisons by
1030         calling either do_jump_by_parts_greater_rtx or
1031         do_jump_by_parts_equality_rtx.
1032         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
1033         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
1034         moved to do_compare_rtx_and_jump, call it directly.
1035         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
1036         mode argument.  Call do_compare_rtx_and_jump.
1037         (emit_case_nodes): Update calls to do_jump_if_equal.
1038
1039 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
1040
1041         PR rtl-optimization/26225
1042         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
1043
1044 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
1045
1046         PR rtl-optimization/26232
1047         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
1048
1049 2006-02-11  Jason Merrill  <jason@redhat.com>
1050
1051         PR tree-opt/24365
1052         * tree-inline.c (declare_return_variable): Just don't use the
1053         modify target if it's a gimple complex reg and the return slot
1054         isn't.
1055
1056 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1057
1058         * doc/contrib.texi: Update my entry.
1059
1060 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
1061
1062         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
1063
1064 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
1065
1066         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
1067         expensive.
1068
1069 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
1070
1071         * doc/invoke.texi (-floop-optimize2): Removed.
1072         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
1073         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
1074         Test flag_branch_on_count_reg only if HAVE_doloop_end.
1075         * common.opt (floop-optimize2): Removed.
1076         (fmove-loop-invariants): Enabled by default.
1077
1078 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
1079
1080         * tree-if-conv.c (combine_blocks): Free the result of
1081         get_loop_exit_edges.
1082
1083 2006-02-10  Jeff Law  <law@redhat.com>
1084
1085         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
1086
1087         PR tree-optimization/26213
1088         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
1089         loop trying to follow SSA_NAME_VALUE chains.
1090
1091 2006-02-10  Richard Guenther  <rguenther@suse.de>
1092
1093         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
1094         deal with structures that end in implicitly variable sized arrays.
1095
1096 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
1097
1098         PR rtl-optimization/24762
1099         * df-scan.c (df_bb_refs_record): Record correct registers defined on
1100         eh edges.
1101
1102 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
1103
1104         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
1105         (struct ivopts_data): Add regs_used field.
1106         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
1107         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
1108         instead of loop_data->regs_used;
1109         (free_loop_data): Do not free aux fields for loops.
1110         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
1111         and tree_ssa_iv_optimize_finalize.
1112
1113 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1114
1115         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
1116
1117 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
1118
1119         PR target/26141
1120         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
1121         computing the effective result type.
1122
1123 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
1124
1125         PR inline-asm/16194
1126         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
1127         (tree_overlaps_hard_reg_set): Declare.
1128         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
1129         type and signature to match function type expected by walk_tree.
1130         (tree_overlaps_hard_reg_set): New function.
1131         (decl_conflicts_with_clobbers_p): Rename to:
1132         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
1133         Use tree_overlaps_hard_reg_set.  Changed caller.
1134         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
1135         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
1136         * cris.c (cris_md_asm_clobbers): Likewise.
1137
1138 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1139
1140         * reload1.c (emit_input_reload_insns): Delete code that tries to
1141         inherit using find_equiv_reg.
1142
1143 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1144
1145         * c-common.h (flag_const_strings): Don't declare.
1146         * c-common.c (flag_const_strings): Remove.
1147         * c.opt (fconst_strings): Remove.
1148         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
1149         <OPT_Wwrite_strings>: Don't set flag_const_strings.
1150         (c_common_init_options): Don't set flag_const_strings.
1151         * doc/invoke.texi (-fno-const-strings): Remove documentation.
1152
1153 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1154
1155         * arm.md (tlobits_cbranch): New pattern.
1156         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
1157         testing a single bit.
1158
1159 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
1160
1161         PR tree-opt/26179
1162         * tree-ssa-pre.c (create_component_ref_by_pieces):
1163         Handle RETURN_DECL like VAR_DECL.
1164
1165 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
1166
1167         PR middle-end/26134
1168         * fold-const.c (fold_indirect_ref_1): Fold 
1169         "*(foo *)&complexfoo" to "__real__ complexfoo"
1170         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
1171
1172 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
1173
1174         * tree-flow-inline.h (var_can_have_subvars): 
1175         Volatile variables should not have subvariables.
1176
1177 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
1178
1179         PR 26180
1180         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
1181         multiplying unsigned values.
1182         Tidy comments.
1183
1184 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1185
1186         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
1187
1188 2006-02-08  Jason Merrill  <jason@redhat.com>
1189
1190         PR c++/25979
1191         * tree.def: Elaborate on difference from MODIFY_EXPR.
1192         * doc/c-tree.texi (INIT_EXPR): Likewise.
1193         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
1194         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
1195         (gimplify_target_expr): Likewise.
1196         (gimplify_cond_expr): Remove target handling.
1197         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
1198         (gimplify_expr): Clobber it here.
1199         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
1200         Do return slot optimization if we have an INIT_EXPR.
1201
1202         PR tree-opt/24365
1203         * tree-inline.c (declare_return_variable): Also clear 
1204         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
1205
1206         PR c++/16405
1207         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
1208
1209         PR middle-end/22439
1210         * gimplify.c (gimplify_one_sizepos): Fix typo.
1211
1212 2006-02-08  Jeff Law  <law@redhat.com>
1213
1214         PR tree-optimization/21417
1215         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
1216         across a backedge if the control statement at the end of the
1217         block is data dependent on other statements in the same block.
1218         (record_temporary_equivalences_from_stmts): Remove over-conservative
1219         test for threading across backedges.
1220
1221         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
1222         control statement, handle all three special cases in the same
1223         manner as they all have the same desired solution.  No longer
1224         special case edge flag updating when the post dominator is
1225         the exit block.
1226
1227 2006-02-08  Roger Sayle  <roger@eyesopen.com>
1228
1229         * tree.def (CHAR_TYPE): Remove.
1230         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
1231         * dwarf2out.c (base_type_die, is_base_type): Likewise.
1232         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
1233         (gen_string_type_die): Delete unreachable function.
1234
1235         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
1236         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
1237         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
1238         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
1239         * builtins.c (type_to_class): Likewise.
1240         * fold-const.c (fold_convert, build_range_check,
1241         merge_ranges): Likewise.
1242         * expr.c (count_type_elements): Likewise.
1243         * c-pretty-print.c (pp_c_type_specifier): Likewise.
1244         * stor-layout.c (layout_type): Likewise.
1245         * ipa-type-escape.c (type_to_consider): Likewise.
1246         * gimplify.c (omp_firstprivatize_type_sizes,
1247         gimplify_type_sizes): Likewise.
1248         * explow.c (promote_mode): Likewise.
1249         * tree-sra.c (is_sra_scalar_type): Likewise.
1250         * varasm.c (output_constant): Likewise.
1251         * tree-inline.c (remap_type_1): Likewise.
1252         * convert.c (convert_to_pointer, convert_to_real,
1253         convert_to_integer, convert_to_complex): Likewise.
1254
1255 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
1256
1257         * df-scan.c (df_def_record_1): A set destination may
1258         be a parallel regardless of mode.
1259
1260 2006-02-08  Roger Sayle  <roger@eyesopen.com>
1261
1262         PR target/22209
1263         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
1264         * config/mips/_tilib.c: Remove.
1265         * config/fixtfdi.c: New libgcc source file.
1266         * config/fixunstfdi.c: New source file.
1267         * config/floatditf.c: New source file.
1268         * config/floatunditf.c: New souce file.
1269         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
1270         files above instead of config/mips/_tilib.c.
1271         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
1272
1273 2006-02-08  Jeff Law  <law@redhat.com>
1274
1275         PR tree-optimization/26169
1276         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
1277         threading jumps.
1278
1279 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
1280
1281         * df.h (DF_REG_SIZE): Return the length of the initialized
1282         part of the array.
1283
1284 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
1285
1286         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
1287         __muldf3): Return a correctly signed zero.
1288
1289 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
1290
1291         * passes.c (register_one_dump_file): Accept the current properties
1292         instead of pass number.  Adjust call to dump_register.  Remove
1293         duplicated code.
1294         (register_dump_files): Now a wrapper around...
1295         (register_dump_files_1): ... this one.  Do not modify the pass
1296         structure.
1297         (next_pass_1): Cosmetic fix.
1298         (execute_todo): Keep second parameter only.  Use curr_properties
1299         instead of fetching it from the pass structure.  Check and set
1300         last_verified.
1301         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
1302         instead of fetching it from the pass structure.  Fix calls to
1303         execute_todo.  Update curr_properties and initialize .vcg RTL dump
1304         after running the pass.  Reset last_verified.
1305         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
1306         at the beginning.
1307         (FIRST_AUTO_NUMBERED_DUMP): New.
1308         (dump_register): Remove "num" parameter, assign it within the
1309         function.
1310         (get_dump_file_name): Modify template for dumps.
1311         * tree-dump.h (dump_register): Adjust prototype.
1312         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
1313         (PROP_trees): Add PROP_gimple_lomp.
1314         (TODO_set_props): New.
1315         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
1316         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
1317         * cfgexpand.c (pass_expand): Destroy PROP_trees.
1318
1319 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
1320
1321         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1322         (sparc64-*-linux*): Likewise.
1323         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
1324         * config/sparc/t-linux: New file.
1325         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
1326         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
1327         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
1328         -m32 -mlong-double-128.
1329
1330         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
1331         * config/alpha/t-linux: New file.
1332         * config/alpha/libgcc-alpha-ldbl.ver: New file.
1333
1334         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
1335         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
1336         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
1337         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
1338         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
1339         (CPP_ARCH32_SPEC): Remove.
1340
1341 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
1342
1343         PR tree-optimization/26145
1344         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
1345         bbs pointer.
1346
1347 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1348
1349         PR target/26109
1350         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
1351         >= 240000 when generating code for SOM runtime.
1352         (output_indirect_call): Don't use "b,l" instruction for indirect calls
1353         to $$dyncall when generating code for SOM runtime..
1354
1355 2006-02-07  Dirk Mueller  <dmueller@suse.com>
1356
1357         PR c++/18150
1358         * doc/invoke.texi (-Wsequence-point): Update documentation
1359         that -Wsequence-point is implemented for C++ as well.
1360
1361 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1362
1363         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
1364         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
1365         (LIB_SPEC): Likewise.
1366         * doc/invoke.texi (SPARC options): Document -pthread.
1367
1368 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
1369
1370         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
1371         PIC addresses.
1372
1373 2006-02-07  Roger Sayle  <roger@eyesopen.com>
1374
1375         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
1376         Correct comment describing BOOLEAN_TYPE.
1377
1378 2006-02-07  Dirk Mueller  <dmueller@suse.com>
1379
1380         * c.opt: C++ frontend supports -Wdiv-by-zero.
1381         * c-opts.c (c_common_handle_option): Remove dead case.
1382
1383 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1384
1385         * configure.ac (TLS assembler check): Do not enable TLS by
1386         default on SPARC/Solaris before version 10.
1387         * configure: Regenerate.
1388
1389 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
1390
1391         * doc/invoke.texi (xl-compat): Document conversion and support
1392         routine names.
1393
1394 2006-02-07  Jeff Law  <law@redhat.com>
1395
1396         * tree-vrp.c (find_conditional_asserts): Update comments.
1397         (simplify_stmt_for_jump_threading): New.
1398         (identify_jump_threads, finalize_jump_threads): New.
1399         (vrp_finalize): Call identify_jump_threads.
1400         (execute_vrp): Call finalize_jump_threads.
1401         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
1402         (vrp_element, vrp_data, vrp_element_p): Remove.
1403         (vrp_hash_elt, vrp_variables_stack): Remove.
1404         (vrp_hash, vrp_eq, record_range): Remove.
1405         (simplify_cond_and_lookup_avail_expr): Remove.
1406         (extract_range_from_cond): Remove.
1407         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
1408         (simplify_stmt_for_jump_threading): New.
1409         (dom_thread_across_edge): New wrapper.
1410         (tree_ssa_dominator_optimize): No longer initialize or
1411         finalize any of the VRP datastructures.  Remove iteration
1412         step and simplify as a result of removal of iteration step.
1413         (pass_dominator): Perform a cfg cleanup after DOM.
1414         (dom_opt_finalize_block): Use the new common routines
1415         for threading jumps.  Simplify stack management slightly.
1416         No longer need to unwind VRP state.
1417         (record_equivalences_from_incoming_edge): No longer record
1418         VRP information.
1419         (eliminate_redundant_computations): No longer call
1420         simplify_cond_and_lookup_avail_expr.
1421         * tree-flow.h (potentially_threadable_block): Prototype.
1422         (thread_across_edge): Likewise.
1423         * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
1424         (tree-ssa-threadedge.o): Add dependencies.
1425         * tree-ssa-threadedge.c: New file.
1426         * passes.c (init_optimization_passes): Merge PHIs before
1427         calling VRP.  Run VRP again late in the SSA optimization pipeline.
1428
1429 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1430
1431         * df-core.c (df_set_blocks): Do not dereference function pointers.
1432         (df_finish1): Likewise.
1433         (df_hybrid_search_forward): Likewise.
1434         (df_hybrid_search_backward): Likewise.
1435         (df_iterative_dataflow): Likewise.
1436         (df_analyze_problem): Likewise.
1437         (df_compact_blocks): Likewise.
1438         (df_dump): Likewise.
1439         * df-scan.c (df_rescan_blocks): Likewise.
1440         (df_record_entry_block_defs): Likewise.
1441
1442         * genconditions.c (write_conditions): Guard the definition of
1443         'insn_conditions' with the check on GCC version.
1444         (write_writer): Guard the traversal 'insn_conditions' with
1445         the check on GCC version.
1446
1447 2006-02-07  Richard Guenther  <rguenther@suse.de>
1448
1449         PR c++/26140
1450         Revert
1451         2006-01-30  Richard Guenther  <rguenther@suse.de>
1452         PR c++/23372
1453         * gimplify.c (gimplify_target_expr): Handle easy cases
1454         without creating a temporary.
1455
1456 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
1457
1458         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
1459         use of float in probability computations.  Use edge probabilities
1460         in place of statically computed probabilities.
1461         (min_spec_prob): New static variable.
1462         (schedule_insns): Initialize it.
1463         (GET_SRC_PROB): Removed.
1464         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
1465
1466 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
1467
1468         PR debug/24444
1469         * config/ia64/unwind-ia64.c: Revert last change.
1470         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
1471         (INCOMING_FRAME_SP_OFFSET): Define.
1472
1473 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1474
1475         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
1476
1477 2006-02-07  Ben Elliston  <bje@au.ibm.com>
1478
1479         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
1480         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
1481         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
1482         (ix86_return_in_memory): Handle TDmode.
1483         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
1484         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
1485
1486 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
1487
1488         * reorg.c (dbr_schedule): Use dump_file instead of file.
1489
1490 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
1491
1492         PR target/25917
1493         * config/ia64/predicates.md (extr_len_operand): New predicate.
1494         * config/ia64/ia64.md (extv): Tighten constraints.
1495         (extzv): Ditto.
1496         (*tbit_and_2): Ditto.
1497         (*tbit_and_3): Ditto.
1498         (*tbit_or_2): Ditto.
1499         (*tbit_or_3): Ditto.
1500         (*bit_zero): Ditto.
1501         (*bit_one): Ditto.
1502
1503 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
1504
1505         PR target/23359
1506         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
1507
1508 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
1509
1510         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
1511         loop_optimizer_init and loop_optimizer_finalize
1512         * tree-ssa-sink.c (execute_sink_code): Ditto.
1513         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1514         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
1515         tree_ssa_loop_done): Ditto.
1516         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
1517         * sched-ebb.c: Include output.h.
1518         (schedule_ebbs): Do not use dump argument.
1519         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
1520         * loop.c (loop_dump_stream): Removed.
1521         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
1522         argument.
1523         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
1524         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
1525         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
1526         loop_iterations, strength_reduce, record_biv, record_giv,
1527         final_giv_value, check_final_value, check_ext_dependent_givs,
1528         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
1529         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
1530         dump_file instead of loop_dump_stream.
1531         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
1532         argument dump_file.
1533         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
1534         dump argument.
1535         * flow.c (life_analysis, rest_of_handle_life): Ditto.
1536         * haifa-sched.c: Include output.h
1537         (schedule_insns, sched_init): Do not use dump argument.
1538         * mode-switching.c (optimize_mode_switching): Ditto.
1539         * modulo-sched.c (stats_file): Removed.
1540         (print_node_sched_params): Do not call argument dump_file.
1541         (sms_schedule_by_order, loop_canon_p, sms_schedule,
1542         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
1543         of stats_file.
1544         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
1545         use dump argument.
1546         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
1547         rtl_loop_init, rtl_loop_done): Ditto.
1548         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
1549         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
1550         Ditto.
1551         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
1552         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
1553         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
1554         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
1555         * emit-rtl.c (renumber_insns): Ditto.
1556         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
1557         expand_gimple_basic_block, tree_expand_cfg): Ditto.
1558         * regclass.c (regclass): Ditto.
1559         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
1560         remove_ssa_form, rewrite_out_of_ssa): Ditto.
1561         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
1562         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
1563         Ditto.
1564         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
1565         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
1566         to regclass.
1567         * gcse.c (gcse_file, debug_stderr): Removed.
1568         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
1569         rest_of_handle_gcse): Do not use dump argument.
1570         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
1571         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
1572         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
1573         compute_code_hoist_vbeinout, compute_code_hoist_data,
1574         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
1575         compute_store_table, build_store_vectors, insert_insn_start_bb,
1576         insert_store, remove_reachable_equiv_notes, replace_store_insn,
1577         store_motion): Use dump_file instead of gcse_file.
1578         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
1579         * profile.c (profile_dump_file): Removed.
1580         (branch_prob): Use dump_file instead of profile_dump_file.
1581         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
1582         dump_file.
1583         * tree-ssa-copy.c (dump_copy_of): Ditto.
1584         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
1585         dump file to life_analysis.
1586         * bt-load.c (branch_target_load_optimize): Ditto.
1587         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
1588         renumber_insns.
1589         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
1590         regclass, dbr_schedule): Declaration changed.
1591         * sched-int.h (sched_init): Declaration changed.
1592         * tree-profile.c (tree_profile_dump_file): Removed.
1593         (tree_profile_hooks): Removed profile_dump_file hook.
1594         * rtl-profile (rtl_profile_dump_file): Removed.
1595         (rtl_profile_hooks): emoved profile_dump_file hook.
1596         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
1597         changed.
1598         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
1599         * tree-cfg.c (build_tree_cfg): Ditto.
1600         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
1601         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
1602         Declaration changed.
1603         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
1604         life_analysis and schedule_insns.
1605         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
1606         life_analysis.
1607         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
1608         dbr_schedule.
1609         * config/mips/mips.c (mips_reorg): Ditto.
1610         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
1611         schedule_ebbs.
1612
1613 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
1614
1615         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1616         (s390_mangle_fundamental_type): New.
1617         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1618         Define.
1619
1620         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1621         (alpha_mangle_fundamental_type): New.
1622         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1623         Define.
1624
1625         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1626         Define.
1627         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1628         Define.
1629         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1630         (sparc_mangle_fundamental_type): New.
1631
1632 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
1633
1634         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
1635         (s390x-*-linux*): Likewise.
1636         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
1637         * config/s390/t-linux: New file.
1638
1639 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
1640
1641         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
1642         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
1643
1644 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
1645
1646         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
1647         (ANTIC_SAFE_LOADS): New macro.
1648         (find_or_generate_expression): Add prototype.
1649         (set_contains_value): Allow null set for sake of not always having
1650         to allocate ANTIC_SAFE_LOADS.
1651         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
1652         Allow COMPONENT_REF too.
1653         (valid_in_set): Allow COMPONENT_REF.
1654         Check ANTIC_SAFE_LOADS too.
1655         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
1656         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
1657         rename.
1658         (can_PRE_operation): Add COMPONENT_REF.
1659         (create_component_ref_by_pieces): New function.
1660         (create_expression_by_pieces): Use create_component_ref_by_pieces.
1661         (insert_aux): Move AGGREGATE_TYPE_P check here.
1662         (compute_avail): Set bb local stmt uids.
1663         (pass_pre): Use TODO_update_ssa_only_virtuals.
1664         
1665 2006-02-06  Ben Elliston  <bje@au.ibm.com>
1666
1667         * configure.ac: Unconditionally disable decimal float by default.
1668         * configure: Regenerate.
1669
1670 2006-02-06  Ben Elliston  <bje@au.ibm.com>
1671
1672         * read-rtl.c (read_name): Terminate reading on EOF.
1673
1674 2006-02-06  Ben Elliston  <bje@au.ibm.com>
1675
1676         * dfp.c (decimal_real_arithmetic): Change second argument type
1677         from int to enum tree_code. Do not always return true, but now
1678         return result of any call to decimal_do helper functions.
1679         * dfp.h (decimal_real_arithmetic): Update prototype.
1680
1681 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1682
1683         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
1684
1685 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
1686
1687         PR tree-opt/25251
1688         * tree-cfg.c (cleanup_dead_labels): Also don't remove
1689         forced labels.
1690
1691 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
1692
1693         * tree-vrp.c (cfg_loops): Removed.
1694         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
1695         Use current_loops instead of cfg_loops.  Pass flags to
1696         loop_optimizer_init.
1697         * cfgloopmanip.c (fix_loop_structure): Update only available
1698         information.
1699         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
1700         loop_optimizer_init.
1701         * modulo-sched.c (build_loops_structure): Removed.
1702         (sms_schedule): Use loop_optimizer_init.
1703         * loop-init.c (loop_optimizer_init): Use flags to determine
1704         which properties of loops to prepare.
1705         (rtl_loop_init): Pass flags to loop_optimizer_init.
1706         * tree-ssa-sink.c (execute_sink_code): Ditto.
1707         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
1708         * tree-ssa-pre.c (init_pre): Ditto.
1709         * cfgloop.h (LOOPS_NORMAL): New.
1710         (loop_optimizer_init): Declaration changed.
1711
1712 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1713
1714         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
1715         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
1716         pa/t-pa.
1717         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
1718         pa/t-pa.
1719         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
1720         pa/x-ada.
1721         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
1722         * pa/t-pa64: Delete quadlib.c rule.
1723         * pa/x-ada: Revert last change.
1724         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
1725
1726 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
1727
1728         PR rtl-optimization/26087
1729         * rtlanal.c (canonicalize_condition): Do not cross basic block
1730         boundaries.
1731
1732 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
1733
1734         PR debug/24444
1735         * config/ia64/ia64.c: Include debug.h.
1736         (MAX_ARTIFICIAL_LABEL_BYTES): New.
1737         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
1738         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
1739         (process_epilogue, process_set, process_for_unwind_directive):
1740         Output unwind info only if requested.  Add CFA info if requested.
1741         Add new arguments as needed.  Adjust callers.
1742         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
1743         incorrect default.
1744         (DWARF2_FRAME_INFO): Define to zero.
1745         * config/ia64/unwind-ia64.c: Remove code that compensated for
1746         the CFA offset error fixed above.
1747         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
1748         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
1749         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
1750         -funwind-tables and -fexceptions to enable frame info.
1751         (dwarf2out_frame_init): Define initial CFA even if
1752         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
1753         DWARF2_UNWIND_INFO is nonzero, not just defined.
1754         (dwarf2out_frame_finish): Output non-EH call frame info only
1755         if DWARF2_FRAME_INFO is nonzero.
1756         (convert_cfa_to_loc_list,
1757         compute_frame_pointer_to_cfa_displacement): Define even if
1758         unwind info is not supported.
1759         (gen_subprogram_die): Use the above unconditionally.  Remove
1760         legacy alternate code.
1761         * toplev.c (compile_file): Compile in call to
1762         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
1763         (lang_dependent_init): Ditto for dwarf2out_frame_init.
1764
1765 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
1766             Jakub Jelinek  <jakub@redhat.com>
1767
1768         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
1769         IBM extended float format long double as "g" on powerpc*-linux.
1770
1771 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1772
1773         PR target/25926
1774         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
1775         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
1776
1777 2006-02-03  Jason Merrill  <jason@redhat.com>
1778
1779         PR c++/25979
1780         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
1781
1782         PR middle-end/25977
1783         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
1784         on the return slot if it's an NRV.
1785
1786 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
1787
1788         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
1789         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
1790         rewrite_use): Do not handle USE_OUTER.
1791         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
1792         add_iv_outer_candidates, may_replace_final_value,
1793         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
1794         (find_interesting_uses_op): Functionality of
1795         find_interesting_uses_outer_or_nonlin moved here.
1796         (find_interesting_uses_outside): Use find_interesting_uses_op.
1797
1798 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
1799
1800         PR target/25960
1801         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
1802
1803 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
1804             Ulrich Weigand  <uweigand@de.ibm.com>
1805
1806         PR target/25864
1807         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
1808         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
1809         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
1810         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr 
1811         and dxr fields.
1812         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
1813         (s390_rtx_costs): Use the new fields to calculate rtx costs.
1814         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
1815         Define secondary reloads for TFmode moves.
1816         (constant_modes): Add TFmode.
1817         (NR_C_MODES): Set to 8.
1818         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
1819         builtin define.
1820         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
1821         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
1822         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, 
1823         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
1824         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf, 
1825         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
1826         (FPR mode macro): Add TFmode.
1827         (DSF mode macro): New.
1828         (<de>, <dee> mode attributes): Removed.
1829         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
1830         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs", 
1831         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee", 
1832         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3", 
1833         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm", 
1834         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly", 
1835         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
1836         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc", 
1837         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm", 
1838         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
1839         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly", 
1840         "*negabs<mode>2", "sqrt<mode>2"):
1841         Changed <de> to <xde>. R constraint replaced by <Rf>.
1842         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by 
1843         <Rf>.
1844         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
1845         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
1846         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5 
1847         splitters.
1848         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2", 
1849         "extenddftf2", "extendsftf2"): New expanders.
1850         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", 
1851         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
1852         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
1853         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
1854         New options.
1855         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
1856         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2, 
1857         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
1858         __floatditf): Add a GCC_4.1.0 symbol version tag.
1859         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
1860         the new options.
1861
1862 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
1863
1864         PR target/25377
1865         * config/i386/i386.c (ix86_function_ok_for_sibcall):
1866         Use targetm.binds_local_p instead of TREE_PUBLIC.
1867
1868 2006-02-02  Roger Sayle  <roger@eyesopen.com>
1869
1870         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
1871         on INTEGER_TYPEs to indicate that it denotes a character type.
1872         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
1873         signed_char_type_node, unsigned_char_type_node and char_type_node.
1874         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
1875         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
1876         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
1877
1878 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
1879             Daniel Berlin  <dberlin@dberlin.org>
1880
1881         * tree-tailcall.c (arg_needs_copy_p): New function.
1882         (eliminate_tail_call): Use arg_needs_copy_p.
1883         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
1884         (add_virtual_phis): New function.
1885
1886 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
1887
1888         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
1889         #ignore instead of #scratch for %g7 .register directive.
1890
1891 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
1892
1893         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
1894         object files.
1895
1896 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
1897
1898         * flow.c (calculate_global_regs_live): Assert that there aren't any
1899         EDGE_FAKE edges.
1900
1901 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
1902
1903         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
1904         what its name says.
1905         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
1906         bsi_after_labels iterator.
1907         * tree-if-conv.c (find_phi_replacement_condition,
1908         replace_phi_with_cond_modify_expr): Likewise.
1909         * tree-scalar-evolution.c (scev_const_prop): Likewise.
1910         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
1911
1912 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
1913
1914         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
1915
1916 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
1917
1918         PR 25990
1919         * tree-cfg.c (move_block_to_fn): Clear out the basic block
1920         array after growing it.
1921
1922 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
1923
1924         PR middle-end/24901
1925         * fold-const.c (fold_checksum_tree): Change type of buf.
1926
1927 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
1928
1929         * reload.c (push_secondary_reload): Initialize t_icode.
1930
1931 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
1932
1933         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
1934         -msoft-float -mlong-double-128 only issue a warning, but don't
1935         swich to DFmode long double.
1936
1937 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
1938
1939         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
1940         has a constant equivalent, iterate over equivalents for arg0,
1941         calling simplify_relational_operation and if there's a result
1942         cheaper than X, apply fold_rtx and return the result.
1943
1944 2006-02-01  Jan Hubicka  <jh@suse.cz>
1945
1946         * opts.c (no_unit_at_a_time_default): New global variable.
1947         (decode_options): Use it.
1948         * opts.h (no_unit_at_a_time_default): Declare.
1949
1950 2006-02-01  Paul Brook  <paul@codesourcery.com>
1951
1952         * function.c (assign_parm_setup_reg): Use function argument promotion
1953         rules.
1954         * expr.c (expand_expr_real_1): Use function argument promotion rules
1955         for PARM_DECLs.
1956
1957 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
1958
1959         * gcc.c (process_command): Change j to 'unsigned int'.
1960
1961 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
1962
1963         PR middle-end/26001
1964         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
1965         Use the corrected index for the character
1966         out of the string constant.
1967
1968 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
1969
1970         * mode-switching.c (optimize_mode_switching): Fix size
1971         allocated for bb_info[n_entities].
1972
1973 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
1974
1975         * gcc.c (main): Correct type that is allocated for
1976         explicit_link_files.
1977
1978 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
1979
1980         * config/s390/s390.c (init_alignment_context): Set
1981         ALIAS_SET_MEMORY_BARRIER on the MEM.
1982         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
1983
1984 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
1985
1986         PR middle-end/25933
1987         * loop-unroll.c (unroll_loop_runtime_iterations): Free
1988         dom_bbs pointer.
1989         * tree-ssa-live.c (type_var_init): Allocate bitmap after
1990         call to tpa_init.
1991
1992 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
1993
1994         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
1995         * regrename.c: Ditto.
1996         * tree-ssa-loop-im.c: Ditto.
1997         * tree-dump.c: Ditto.
1998         * tree-complex.c: Ditto.
1999         * genrecog.c: Ditto.
2000         * tree-ssa-threadupdate.c: Ditto.
2001         * tracer.c: Ditto.
2002         * java/class.c: Ditto.
2003         * java/jcf-parse.c: Ditto.
2004         * java/resource.c: Ditto.
2005         * java/except.c: Ditto.
2006         * java/jvspec.c: Ditto.
2007         * java/jcf-write.c: Ditto.
2008         * java/jcf-path.c: Ditto.
2009         * java/gjavah.c: Ditto.
2010         * java/zextract.c: Ditto.
2011         * java/jcf-io.c: Ditto.
2012         * java/jcf.h: Ditto.
2013         * java/buffer.c: Ditto.
2014         * java/lang.c: Ditto.
2015         * java/parse-scan.y: Ditto.
2016         * java/lex.c: Ditto.
2017         * java/lex.h: Ditto.
2018         * cfgloopmanip.c: Ditto.
2019         * postreload-gcse.c: Ditto.
2020         * tree-ssa-loop-manip.c: Ditto.
2021         * postreload.c: Ditto.
2022         * tree-ssa-loop-ch.c: Ditto.
2023         * loop.c: Ditto.
2024         * ipa-cp.c: Ditto.
2025         * cppspec.c: Ditto.
2026         * diagnostic.c: Ditto.
2027         * final.c: Ditto.
2028         * genoutput.c: Ditto.
2029         * gcc.c: Ditto.
2030         * cfghooks.c: Ditto.
2031         * cfgloopanal.c: Ditto.
2032         * objc/objc-act.c: Ditto.
2033         * gcov.c: Ditto.
2034         * genextract.c: Ditto.
2035         * genautomata.c: Ditto.
2036         * pretty-print.c: Ditto.
2037         * genemit.c: Ditto.
2038         * cgraphunit.c: Ditto.
2039         * flow.c: Ditto.
2040         * df-scan.c: Ditto.
2041         * haifa-sched.c: Ditto.
2042         * dominance.c: Ditto.
2043         * dbxout.c: Ditto.
2044         * tree-ssa-loop-ivopts.c: Ditto.
2045         * df-core.c: Ditto.
2046         * mode-switching.c: Ditto.
2047         * modulo-sched.c: Ditto.
2048         * graph.c: Ditto.
2049         * ipa-pure-const.c: Ditto.
2050         * cse.c: Ditto.
2051         * fix-header.c: Ditto.
2052         * web.c: Ditto.
2053         * tree-stdarg.c: Ditto.
2054         * ipa-utils.c: Ditto.
2055         * loop-init.c: Ditto.
2056         * ipa-inline.c: Ditto.
2057         * cfganal.c: Ditto.
2058         * global.c: Ditto.
2059         * alloc-pool.c: Ditto.
2060         * dwarf2out.c: Ditto.
2061         * opts.c: Ditto.
2062         * genattrtab.c: Ditto.
2063         * tree-ssa-loop-ivcanon.c: Ditto.
2064         * predict.c: Ditto.
2065         * timevar.c: Ditto.
2066         * lcm.c: Ditto.
2067         * fortran/gfortranspec.c: Ditto.
2068         * regmove.c: Ditto.
2069         * local-alloc.c: Ditto.
2070         * langhooks.c: Ditto.
2071         * function.c: Ditto.
2072         * tree-vectorizer.c: Ditto.
2073         * gcse.c: Ditto.
2074         * ipa-type-escape.c: Ditto.
2075         * alias.c: Ditto.
2076         * tree-if-conv.c: Ditto.
2077         * profile.c: Ditto.
2078         * ipa.c: Ditto.
2079         * tree-data-ref.c: Ditto.
2080         * loop-unroll.c: Ditto.
2081         * treelang/treetree.c: Ditto.
2082         * calls.c: Ditto.
2083         * bt-load.c: Ditto.
2084         * ggc-common.c: Ditto.
2085         * except.c: Ditto.
2086         * coverage.c: Ditto.
2087         * cselib.c: Ditto.
2088         * tree-cfgcleanup.c: Ditto.
2089         * tree-ssa-pre.c: Ditto.
2090         * cfgcleanup.c: Ditto.
2091         * loop-invariant.c: Ditto.
2092         * loop-iv.c: Ditto.
2093         * ipa-prop.c: Ditto.
2094         * print-tree.c: Ditto.
2095         * conflict.c: Ditto.
2096         * ggc-page.c: Ditto.
2097         * sched-deps.c: Ditto.
2098         * regclass.c: Ditto.
2099         * tree-object-size.c: Ditto.
2100         * combine.c: Ditto.
2101         * bb-reorder.c: Ditto.
2102         * resource.c: Ditto.
2103         * var-tracking.c: Ditto.
2104         * cfgloop.c: Ditto.
2105         * df-problems.c: Ditto.
2106         * reg-stack.c: Ditto.
2107         * tlink.c: Ditto.
2108         * gccspec.c: Ditto.
2109         * sched-rgn.c: Ditto.
2110         * tree-ssa-structalias.c: Ditto.
2111         * tree-ssa-reassoc.c: Ditto.
2112         * config/darwin-c.c: Ditto.
2113         * config/darwin.c: Ditto.
2114         * config/arm/arm.c: Ditto.
2115         * cfgrtl.c: Ditto.
2116         * collect2.c: Ditto.
2117         * reload1.c: Ditto.
2118
2119 2006-01-31  Nicolas Pitre  <nico@cam.org>
2120
2121         * arm.md (smaxsi3): Make aware of smax_m1.
2122         (smax_m1): New.
2123
2124 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
2125
2126         * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
2127
2128 2006-01-31  Richard Guenther  <rguenther@suse.de>
2129
2130         * doc/invoke.texi (-msselibm): Document.
2131         * target.h (expand_library_builtin): New target hook.
2132         * builtins.c (expand_builtin): Use expand_library_builtin.
2133         (default_expand_library_builtin): New function.
2134         * gcc.c (LINK_GCC_MATH_SPEC): Define.
2135         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
2136         (link_gcc_math_spec): Declare.
2137         (static_specs): Add link_gcc_math_spec.
2138         * expr.h (default_expand_library_builtin): Declare.
2139         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
2140         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
2141         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
2142         * config/i386/i386.opt (msselibm): New target option.
2143         * config/i386/i386.c (ix86_builtin_function_variants): New array.
2144         (ix86_init_sse_abi_builtins): New function.
2145         (ix86_expand_library_builtin): Likewise.
2146         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
2147         (override_options): Handle error conditions wrt -msselibm.
2148         (ix86_builtins): Add function codes for SSE2 ABI builtins.
2149         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
2150         * doc/extend.texi (__builtin_sse2_*): Document new target specific
2151         builtins.
2152
2153 2006-01-31  Richard Guenther  <rguenther@suse.de>
2154         Paolo Bonzini  <bonzini@gnu.org>
2155
2156         * doc/install.texi (--disable-libgcc-math): Document.
2157
2158 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
2159
2160         * expr.h (expand_normal): new inline function.
2161         * builtins.c: use it, use EXPAND_NORMAL explicitely.
2162         * dojump.c: use it.
2163         * dwarf2out.c: use it.
2164         * expr.c: use it.
2165         * calls.c: use it.
2166         * expmed.c: use it.
2167         * except.c: use it.
2168         * config/sparc/sparc.c: use it.
2169         * config/i386/i386.c: use it.
2170         * config/rs6000/rs6000.c: use it.
2171         * config/arm/arm.c: use it.
2172         * config/mips/mips.c: use it.
2173         * stmt.c: use it, use EXPAND_NORMAL explicitely.
2174
2175 2006-01-30  Roger Sayle  <roger@eyesopen.com>
2176
2177         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
2178         argv to the appropriate type.
2179
2180 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
2181
2182         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
2183         unreachable code.
2184
2185 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
2186
2187         PR target/26018
2188         * config/s390/s390.c (struct machine_function): New flag
2189         decomposed_literal_pool_addresses_ok_p.
2190         (s390_reorg): Set it before final stage of literal pool transforms.
2191         (s390_decompose_address): Only accept displacements of the form
2192         (minus (label_ref ...) (label_ref ...)) if that flag is set.
2193
2194 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
2195
2196         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
2197         the comparison routine return.
2198
2199 2006-01-30  Michael Matz  <matz@suse.de>
2200
2201         * global.c (find_reg): Only evict for global regs.
2202         Take n_refs into account and dump more info.
2203
2204 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
2205
2206         PR target/14798:
2207         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
2208         (pragma_trap, pragma_nosave_low_regs): Likewise.
2209         (current_function_anonymous_args): Likewise.
2210         (sh_deferred_function_attributes): New variable.
2211         (sh_deferred_function_attributes_tail): Likewise.
2212         (print_operand): For '@', look up trap_exit attribute.
2213         (calc_live_regs): Look up trapa_handler attribute.  For trapa
2214         handlers, save/restore fpscr, but don't do any other
2215         interrupt-specific saves.
2216         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
2217         Fix check for partially saved registers to check for SHmedia.
2218         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
2219         (sh_output_function_epilogue): Don't clear any of the removed
2220         variables.
2221         (sh_insert_attributes): Don't check pragma_interrupt.
2222         Insert deferred attributes.  Check that interrupt attribute is
2223         present for other attributes that require its presence.
2224         (sh_attribute_table): Add new attributes trapa_handler and
2225         nosave_low_regs.
2226         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2227         Don't check for pragma_interrupt.  Don't store argument.
2228         * sh.h (pragma_interrupt, sp_switch): Don't declare.
2229         (sh_deferred_function_attributes): Declare.
2230         (sh_deferred_function_attributes_tail): Likewise.
2231         * sh.md (sp_switch_1): Add operand.  Change generator caller.
2232         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
2233         (*return_i): Don't use when trap_exit attribute is in effect.
2234         (*return_trapa): New insn pattern.
2235         * sh-c.c: New file.
2236         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
2237         setting c_target_objs and cxx_target_objs.
2238         * t-sh: Add rule for sh-c.o.
2239
2240 2006-01-30  Richard Guenther  <rguenther@suse.de>
2241
2242         PR c++/23372
2243         * gimplify.c (gimplify_target_expr): Handle easy cases
2244         without creating a temporary.
2245
2246 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
2247
2248         * vec.h (safe_grow): Remove duplicated line.
2249
2250 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
2251
2252         PR 25874
2253         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
2254         (expand_omp): ... here.
2255         (expand_omp_parallel): Only remove barriers for combined
2256         parallel+workshare constructs.
2257
2258 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
2259
2260         Revert
2261
2262         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2263         * tree.c (build_qualified_type): Chain the new type to the original
2264         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
2265         a POINTER_TYPE or a REFERENCE_TYPE respectively.
2266         (build_pointer_type_for_mode): Only return unqualified types.
2267         (build_reference_type_for_mode): Likewise.
2268
2269 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
2270
2271         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
2272         * Makefile.in (CXX_COMPAT_WARN): Define.
2273         * configure: Regenerate.
2274
2275 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
2276
2277         PR tree-opt/25911
2278         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
2279         to an if check.
2280
2281 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2282
2283         * toplev.c: Fix thinko.
2284
2285 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2286             Marcin Dalecki  <martin@dalecki.de>
2287
2288         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
2289         (push_srcloc): Use XNEW.
2290         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
2291
2292 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
2293
2294         * df-core.c (df_set_blocks): Deleted all variable.
2295
2296 2006-01-28  Ian Lance Taylor  <ian@airs.com>
2297
2298         * cgraphunit.c (cgraph_assemble_pending_functions): Call
2299         cgraph_output_pending_asms.
2300
2301 2006-01-28  Zack Weinberg  <zackw@panix.com>
2302
2303         * c.opt: Add -W(no-)overlength-strings.
2304         * doc/invoke.texi: Document it.
2305         * c-opts.c (c_common_handle_option): -pedantic implies
2306         -Woverlength-strings, if not explicitly disabled already.
2307         (c_common_post_options): -Woverlength-strings defaults to off, and
2308         is always off for C++.
2309         * c-common.c (fix_string_type): Issue warning about strings longer
2310         than is portable only if warn_overlength_strings.  Rearrange code
2311         a little for clarity.
2312         * configure.in: Check for -Wno-overlength-strings as well before
2313         enabling -pedantic in stage 1.
2314         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
2315         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
2316
2317         * genconditions.c (write_header, write_one_condition)
2318         (write_conditions, write_writer): Consolidate very long strings
2319         that were broken up to fit in C89 portable limit.  Don't use
2320         printf when fputs will do.
2321
2322 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
2323
2324         * combine.c (simplify_comparison <AND>): Check
2325         TRULY_NOOP_TRUNCATION before start using a subreg.
2326
2327         * config/mips/mips.md (*branch_zero<mode>,
2328         *branch_zero<mode>_inverted, *branch_equality<mode>,
2329         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
2330         Remove mode check from comparisons.
2331
2332 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
2333
2334         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
2335
2336 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
2337
2338         * expmed.c (const_mult_add_overflow_p): Remove.
2339         * expr.h: Remove the prototype for const_mult_add_overflow_p.
2340
2341         * recog.c (validate_replace_rtx_subexp): Remove.
2342         * recog.h: Remove the prototype for
2343         validate_replace_rtx_subexp.
2344
2345         * integrate.h: Remove the prototype for
2346         copy_decl_for_inlining.
2347         * rtl.h: Remove the prototype for mark_constant_function.
2348         * tree-vectorizer.h: Remove the prototype for
2349         vect_strip_conversion.
2350
2351         * modulo-sched.c (create_partial_schedule,
2352         free_partial_schedule, reset_partial_schedule): Make them
2353         static.
2354
2355         * hooks.c (hook_bool_rtx_int_false): Remove.
2356         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
2357
2358 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
2359
2360         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
2361         and -mlong-double-128 are incompatible.
2362         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
2363         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
2364         (TARGET_LIBGCC2_CFLAGS): Define.
2365         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
2366         (TARGET_LIBGCC2_CFLAGS): Same.
2367         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
2368
2369 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
2370
2371         PR c/19606.
2372         * c-typeck.c (build_binary_op): Perform implicit casts of
2373         operands before shortening them.
2374
2375         * cfgloopmanip.c (split_loop_bb): Remove.
2376         * cfgloop.h: Remove the prototype for split_loop_bb.
2377
2378         * cfgloop.c (flow_loop_outside_edge_p): Remove.
2379         * cfgloop.h: Remove the prototype for
2380         flow_loop_outside_edge_p.
2381
2382         * emit-rtl.c (init_virtual_regs): Make it static.
2383         * function.h: Remove the prototype for init_virtual_regs.
2384
2385         * recog.c (peephole2_optimize): Make it static.
2386         * recog.h: Remove the prototype for peephole2_optimize.
2387
2388 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
2389
2390         * df-scan.c (df_record_entry_block_defs): Check if
2391         INCOMING_RETURN_ADDR_RTX is defined.
2392
2393 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
2394             Kenneth Zadeck <zadeck@naturalbridge.com>
2395
2396         PR rtl-optimization/24762
2397         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
2398         * targhooks.c (hook_void_bitmap): New hook prototype.
2399         * targhoohs.h (hook_void_bitmap): Ditto.
2400         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
2401         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
2402         * target.h (live_on_entry): New function pointer.
2403         * df-scan.c (df_all_hard_regs): Removed.
2404         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
2405         (df_scan_free_internal): Added df->entry_block_defs.
2406         (df_scan_alloc): Ditto.
2407         (df_scan_dump): Ditto.
2408         (df_uses_record): Plumbed flag field properly thru calls.
2409         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
2410         This part fixes PR24762.
2411         (df_bb_refs_record): Added code to make the frame and arg
2412         pointers live in EH blocks.
2413         (df_refs_record): Added call to df_record_entry_block_defs.
2414         (df_record_entry_block_defs): New function.
2415         * df-core.c: Added comments to describe new artifical defs.
2416         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
2417         (entry_block_defs): New field in struct df.
2418         (df_all_hard_regs): Deleted.
2419         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
2420         * df-problems.c (df_ru_bb_local_compute_process_def):
2421         Added code to handle artifical defs in the entry to a function.
2422         (df_ru_bb_local_compute): Ditto.
2423         (df_rd_bb_local_compute_process_def):  Ditto.
2424         (df_rd_bb_local_compute): Ditto.
2425         (df_lr_bb_local_compute): Ditto.
2426         (df_ur_bb_local_compute): Ditto.
2427         (df_urec_bb_local_compute):  Ditto.
2428         (df_chain_create_bb):  Ditto.
2429         (df_ur_local_finalize): Removed entry.
2430         (df_urec_init): Ditto.
2431         (df_urec_local_finalize): Ditto.
2432         (df_ri_bb_compute): Added detection of last use of pseudos.
2433         * Makefile.in (df-scan.o): Updated dependencies.
2434         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
2435         * config/mips/mips.c (mips_set_live_on_entry): Added.
2436         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
2437         for target hook.
2438         * dce.c (marked_insn_p): Added code to handle artifical defs.
2439
2440 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
2441
2442         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
2443         intrinsic.
2444         (_mm_cvtsi128_si64): Likewise.
2445         (_mm_cvtsd_si64): Likewise.
2446         (_mm_cvttsd_si64): Likewise.
2447         (_mm_cvtsi64_sd): Likewise.
2448         (_mm_cvtsi64_si128): Likewise.
2449         * config/i386/mmintrin.h (_m_from_int64): Likewise.
2450         (_mm_cvtsi64_m64): Likewise.
2451         (_m_to_int64): Likewise.
2452         (_mm_cvtm64_si64): Likewise.
2453         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
2454         (_mm_cvttss_si64): Likewise.
2455         (_mm_cvtsi64_ss): Likewise.
2456         (_mm_cvtss_f32): Likewise.
2457
2458 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
2459
2460         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
2461         for pragma redefine_extname.
2462
2463 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
2464
2465         PR target/25864
2466         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
2467         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
2468         -mno-minimal-toc to previous content.
2469         (bispecs): Remove goal.
2470         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
2471         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
2472         compatibility aliases on powerpc-*-*gnu*.
2473         * config/rs6000/libgcc-ppc-glibc.ver: New file.
2474         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
2475         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
2476         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
2477         (ldblspecs): New goal.
2478         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
2479         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
2480         _df_to_tf.
2481         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
2482         L_sf_to_tf or L_df_to_tf is defined.
2483
2484 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
2485             Alan Modra  <amodra@bigpond.net.au>
2486
2487         PR target/25864
2488         * config/rs6000/linux.h (POWERPC_LINUX): Define.
2489         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
2490         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
2491         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
2492         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
2493         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
2494         (rs6000_override_options): Initialize rs6000_ieeequad.
2495         Initialize TFmode format to ibm_extended_format if not
2496         TARGET_IEEEQUAD.
2497         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
2498         ieeelongdouble.
2499         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
2500         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
2501         (function_arg_advance): IBM long double passed in two FPRs, not
2502         split.
2503         (function_arg): IBM long double passed in FPRs.
2504         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
2505         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
2506         Only multireg GPR aligned.
2507         (rs6000_init_libfuncs): Enable IBM long double functions if not
2508         IEEEQUAD.
2509         (rs6000_generate_compare): Use IBM long double compare if not
2510         TARGET_IEEEQUAD.
2511         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
2512         (TARGET_IEEEQUAD): Define.
2513         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
2514         not TARGET_IEEEQUAD.
2515         * config/rs6000/rs6000.md: Enable TFmode patterns if
2516         !TARGET_IEEEQUAD.
2517         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
2518         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
2519         and -mlong-double-128 are incompatible.
2520         * doc/invoke.texi (-mabi): Collect options together.  Add
2521         ibmlongdouble and ieeelongdouble.
2522
2523 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
2524
2525         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
2526         opaque type.
2527         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
2528         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
2529         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
2530         * rtl.h (rtunion_def): Remove rt_ptr.
2531         (X0PTR): Delete.
2532         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
2533         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
2534         * config/i386/winnt.c (i386_pe_mark_dllexport)
2535         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
2536
2537 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
2538
2539         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
2540
2541 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
2542
2543         PR other/24829
2544         PR target/24831
2545         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
2546         pthread_key_delete.  From John David Anglin.  gthrw-ify
2547         pthread_getunique_np only if it it's not a macro.  Delete
2548         UNUSED macro.
2549         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
2550         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
2551         __gthread_objc_condition_signal, __gthread_key_delete): Add
2552         "__attribute__ ((__unused__))" to unused arguments.
2553         (__gthread_recursive_mutex_init_function): Add missing return.
2554         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
2555         gthr-posix95.h: Use macro-based approach for name redirection
2556         on targets missing weakref.
2557
2558 2006-01-26  Zack Weinberg  <zackw@panix.com>
2559
2560         * genconditions.c (write_header): In generated code, #ifdef out
2561         all includes and fake declarations, except includes of bconfig.h
2562         and system.h, unless GCC_VERSION >= 3001.  Do not include
2563         gensupport.h in any case.
2564         (write_conditions): Generate a definition of struct c_test.  Add
2565         a comment to the generated #endif.
2566         (write_one_condition): Escape backslashes in string too.
2567         (write_writer): Generated code must escape backslashes and quote
2568         marks (but not newlines) in the strings it writes.
2569         * Makefile.in (build/gencondmd.o): Update dependencies.
2570
2571 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
2572
2573         PR target/25961
2574         * Makefile.in (insn-automata.o): Add header file dependencies.
2575         * genautomata.c: Add includes.
2576
2577 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
2578
2579         PR target/25961
2580         * Makefile.in (insn-automata.o): Add -Wno-error flag.
2581
2582 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
2583
2584         * configure.ac: Expect target tools paths to be passed from the toplevel
2585         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
2586         AS_SET_VAR_IF.
2587         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
2588
2589 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
2590
2591         PR c/25892
2592         * c.opt (Wpointer-sign): Init to -1.
2593         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
2594         OPT_pedantic, to 0 otherwise.
2595         * doc/invoke.texi: Update.
2596
2597 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
2598
2599         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
2600         constants provided by 80387 instructions in the destination mode.
2601
2602 2006-01-26  Richard Guenther  <rguenther@suse.de>
2603             Andrew Pinski  <pinskia@physics.uc.edu>
2604
2605         PR tree-opt/21470
2606         partial PR tree-opt/17064
2607         * tree-ssa-structalias.c (intra_create_variable_infos):
2608         Create heap variables for incoming parameters if
2609         flag_argument_noalias > 1.
2610         (find_what_p_points_to): Look through default defs of
2611         parameter decls.
2612
2613 2006-01-26  Jeff Law  <law@redhat.com>
2614
2615         PR ada/25900
2616         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
2617         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
2618         within the VR_RANGE, use the VR_RANGE as the result, not the
2619         VR_ANTI_RANGE.
2620         (adjust_range_with_scev): Reject ranges from SCEV which are out of
2621         bounds for the type.
2622
2623 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
2624
2625         * tree-ssa-alias.c (maybe_create_global_var): Change
2626         subvar walking to an assertion that we don't have subvar'd variables.
2627
2628 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
2629
2630         PR C/25861
2631         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
2632         Use a new variable, inner.  PARM_DECLs are always non-weak.
2633
2634 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
2635
2636         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
2637         --disable-checking.
2638
2639 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
2640
2641         * config/mips/mips.md (*clear_upper32): New combiner pattern.
2642
2643 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
2644
2645         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
2646         (smax_insn, smin_insn, smax_0, smin_0): New.
2647
2648 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
2649
2650         PR target/25947
2651         * config/cris/cris.c (cris_order_for_addsi3): New function.
2652         * config/cris/cris-protos.h: Prototype it.
2653         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
2654         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
2655         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
2656         (split for "op.S1 [rx=rx+i],ry (swapped)")
2657         (split for "op(s|u).S1 [rx=rx+i],ry")
2658         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
2659         Apply cris_order_for_addsi3 when generating addsi3 insns.
2660
2661 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
2662
2663         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
2664         (TREE_BLOCK): Add call to EXPR_CHECK.
2665
2666 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
2667
2668         PR 25886
2669         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
2670         * tree-pretty-print.c (dump_omp_clause): Extract from ...
2671         (dump_omp_clauses): ... here.
2672         (dump_generic_node): Handle OMP_CLAUSE.
2673         * tree.c (omp_clause_num_ops): New.
2674         (omp_clause_code_name): New.
2675         (tree_code_size): Handle OMP_CLAUSE.
2676         (tree_size): Likewise.
2677         (make_node): Document handling of OMP_CLAUSE.
2678         (tree_node_structure): Handle OMP_CLAUSE.
2679         (omp_clause_check_failed): New.
2680         (omp_clause_range_check_failed): New.
2681         (omp_clause_operand_check_failed): New.
2682         (build_omp_clause): New.
2683         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
2684         * tree.h (enum omp_clause_code): Declare.
2685         (OMP_CLAUSE_SUBCODE_CHECK): Define.
2686         (OMP_CLAUSE_RANGE_CHECK): Define.
2687         (OMP_CLAUSE_ELT_CHECK): Define.
2688         (omp_clause_check_failed): Declare.
2689         (omp_clause_operand_check_failed): Declare.
2690         (omp_clause_range_check_failed): Declare.
2691         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
2692         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
2693         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
2694         (OMP_CLAUSE_LASTPRIVATE): Likewise.
2695         (OMP_CLAUSE_IF_EXPR): Likewise.
2696         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
2697         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
2698         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
2699         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
2700         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
2701         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
2702         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
2703         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
2704         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
2705         (OMP_CLAUSE_CODE): Define.
2706         (OMP_CLAUSE_SET_CODE): Define.
2707         (OMP_CLAUSE_CODE): Define.
2708         (OMP_CLAUSE_OPERAND): Define.
2709         (struct tree_omp_clause): Declare.
2710         (union tree_node): Add field 'omp_clause'.
2711         * treestruct.def (TS_OMP_CLAUSE): Define.
2712         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
2713         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
2714         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
2715         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
2716         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
2717         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
2718         (OMP_CLAUSE): Define.
2719         * print-tree.c (print_node): Handle OMP_CLAUSE.
2720         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
2721         * c-typeck.c: Likewise.
2722         * gimplify.c: Likewise.
2723         * c-omp.c: Likewise.
2724         * tree-nested.c: Likewise.
2725         * tree-inline.c: Likewise.
2726         * c-parser.c: Likewise.
2727         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
2728         clauses.
2729
2730 2006-01-25  Roger Sayle  <roger@eyesopen.com>
2731
2732         PR rtl-optimization/25703
2733         * combine.c (try_combine): Handle zero_extract and strict_low_part
2734         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
2735
2736 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
2737
2738         * global.c: Fix comment typos.
2739
2740 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
2741
2742         PR target/25758
2743         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
2744         Use output_addr_const instead of assemble_name.
2745
2746 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
2747
2748         * Makefile.in (sched-vis.o): Update dependencies.
2749         * haifa-sched.c (sched_finish): Clear current_sched_info.
2750         * cfg.c (dump_bb_info): New, split from dump_flow_info.
2751         (dump_flow_info): Call it.
2752         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
2753         a slim RTL dump.
2754         * basic-block.h (dump_bb_info): Declare.
2755         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
2756         option, and apply options only for dump files whose TDF_RTL,
2757         TDF_TREE, or TDF_IPA bits match.
2758         * rtl.h: Declare new functions exported from sched-vis.c.
2759         * sched-vis.c: Enable also if scheduling is not used.
2760         (print_value): Print the mode of registers if not inside scheduling.
2761         (print_insn): Make it work outside the scheduler.  Beautify the output
2762         a bit.
2763         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
2764
2765 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
2766
2767         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
2768         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
2769         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
2770         depending on the value of CONSTANT_POOL_ADDRESS_P.
2771         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
2772         SYMBOL_REF_DECL.
2773         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
2774         rather than SYMBOL_REF_DECL.
2775         (rtx_constant_pool): Remove const_rtx_sym_htab.
2776         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
2777         (init_varasm_status): Don't initialize const_rtx_sym_htab.
2778         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
2779         Remove handling of const_rtx_sym_htab.
2780         (find_pool_constant): Delete.
2781         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
2782         rather than find_pool_constant.
2783         (get_pool_constant_for_function): Delete.
2784         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
2785         find_pool_constant.
2786         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
2787         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
2788         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
2789         (SYMBOL_REF_CONSTANT): New macro.
2790         (get_pool_constant_for_function): Delete.
2791         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
2792         rather than SYMBOL_REF_DECL.
2793         (i386_pe_mark_dllimport): Likewise.
2794         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
2795         rather than SYMBOL_REF_DECL.
2796         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2797         (machopic_indirect_call_target): Likewise.
2798
2799 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
2800
2801         * flow.c (delete_noop_moves): Add missing EOL to dump message.
2802
2803 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
2804
2805         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
2806
2807 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2808
2809         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
2810
2811 2006-01-24  David Daney  <ddaney@avtrex.com>
2812
2813         PR java/25816
2814         * configure.ac (enable_tls): New enable option.
2815         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
2816         * configure: Regenerate.
2817         * doc/install.texi (--enable-tls): Document new option.
2818         (--disable-tls): Ditto.
2819
2820 2006-01-24  Richard Henderson  <rth@redehat.com>
2821
2822         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
2823         * alias.c (true_dependence): Respect it.
2824         (canon_true_dependence, write_dependence_p): Likewise.
2825         * builtins.c (get_builtin_sync_mem): Set it.
2826
2827 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
2828
2829         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
2830         efficient way.
2831
2832 2006-01-24  DJ Delorie  <dj@redhat.com>
2833
2834         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
2835         for storing constants in single-bit bitfields.
2836
2837 2006-01-25  Ben Elliston  <bje@au.ibm.com>
2838
2839         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
2840
2841 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
2842
2843         PR tree-opt/25860
2844         * tree-ssa-pre.c (phi_translate): Return NULL
2845         for AGGREGATE_TYPE's.
2846
2847 2006-01-24  Zack Weinberg  <zackw@panix.com>
2848
2849         * genautomata.c (process_state_for_insn_equiv_partition):
2850         Use xcalloc for insn_arcs_array.
2851         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
2852         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
2853
2854 2006-01-24  Richard Henderson  <rth@redhat.com>
2855
2856         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
2857         update all callers.
2858
2859 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
2860
2861         PR rtl-optimization/25890
2862         PR rtl-optimization/25905
2863         * combine.c (expand_compound_operation, expand_field_assignment):
2864         Fail if the bitfield's final position is out of bounds.
2865
2866 2006-01-24  Ian Lance Taylor  <ian@airs.com>
2867
2868         PR middle-end/25930
2869         * cgraphunit.c (cgraph_output_in_order): Don't clear
2870         cgraph_asm_nodes until after asm strings have been output.
2871
2872 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
2873
2874         * fix-header.c (read_scan_file): Add new parameter imultilib when
2875         calling register_include_chains.
2876
2877 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
2878
2879         * omp-low.c: Update documentation.
2880
2881 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
2882             Daniel Berlin  <dberlin@dberlin.org>
2883
2884         PR tree-opt/25315
2885         PR tree-opt/25857
2886         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
2887         return from the function.
2888
2889 2006-01-22  Zack Weinberg  <zackw@panix.com>
2890
2891         * rtl.def (match_code): Add second argument.
2892         * genpreds.c (write_extract_subexp): New function.
2893         (write_match_code): Add path argument.  Use write_extract_subexp.
2894         (write_predicate_expr): Pass path to write_match_code.
2895         (mark_mode_tests): MATCH_CODE applied to a subexpression does
2896         not perform a mode test.
2897         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
2898         a subexpression does not constrain the top-level code set.
2899         * read-rtl.c (read_rtx_variadic): New function.
2900         (read_rtx_1): Use it; allow AND and IOR to be variadic.
2901         * doc/md.texi: Document new notation.
2902         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
2903         (cmpsi_operand): ... here, using new notation.
2904
2905 2006-01-22  Zack Weinberg  <zackw@panix.com>
2906
2907         * varray.c: Remove GENERATOR_FILE #ifdefs.
2908
2909 2006-01-22  Zack Weinberg  <zackw@panix.com>
2910
2911         * genautomata.c (output_reserved_units_table): Emit nothing if
2912         description->query_units_num is zero.  Remove extra blank line.
2913         (output_cpu_unit_reservation_p): Short circuit
2914         if description->query_units_num is zero.
2915
2916 2006-01-22  Zack Weinberg  <zackw@panix.com>
2917
2918         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
2919         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
2920         nor any of the random handful of variables that used to be necessary
2921         when this program was linked with rtlanal.o.  Prune set of forward
2922         function declarations.
2923         (struct attr_desc): Remove static_p field.
2924         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
2925         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
2926         (attr_string): Do not read the character one past the length of
2927         the string.
2928         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
2929         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
2930         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
2931         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
2932         (make_automaton_attrs): New.
2933         (main): Do not call into genautomata.  Call local gen_bypass
2934         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
2935         Remove special case for insn_alts.
2936         * genautomata.c: Include gensupport.h; not genattrtab.h nor
2937         varray.h (leftover from previous change).  Prune set of forward
2938         function declarations.  Remove state_alts fields from all
2939         structures.  Remove state_alts_table from struct automaton.
2940         Make everything except main static.  Do not maintain num_dfa_decls.
2941         Do not maintain state_alts fields of various structures.
2942         (process_decls): Don't validate condexp for dm_insn_reserv decls.
2943         (add_arc): Remove state_alts argument.  All callers updated.
2944         (output_reserved_units_table): Emit #ifdef here...
2945         (output_tables): ...not here.  Don't generate state_alts tables.
2946         (expand_automata): Don't generate attributes.
2947         (write_automata): Don't generate state_alts functions.
2948         (main): New function.
2949         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
2950         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
2951         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
2952         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
2953         (BYPASS_P_FUNC_NAME, output_state_alts_table)
2954         (output_automata_list_state_alts_code, output_internal_state_alts_func)
2955         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
2956         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
2957         Delete.
2958         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
2959         * genattrtab.h: Delete file.
2960         * Makefile.in (OBJS-common): Add insn-automata.o.
2961         (insn-automata.o): New rule.
2962         (simple_generated_c): Add insn-automata.c.
2963         (build/genattrtab.o, build/genautomata.o): Update dependencies.
2964         (genprogmd): Add automata.
2965         (build/genattrtab): Needs no extra objects nor libraries.
2966         (build/genautomata): Needs build/vec.o and -lm.
2967
2968 2006-01-22  Zack Weinberg  <zackw@panix.com>
2969
2970         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
2971         (output_dfa_max_issue_rate, locked_states_num): Delete.
2972         (struct automaton): Add locked_states field.
2973         (output_dead_lock_vect): Save number of locked states in
2974         automaton->locked_states.  If it is zero, don't print anything.
2975         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
2976         (output_internal_dead_lock_func): Only test the dead_lock_vect
2977         for automata that have locked states.
2978         (output_statistics): Always print the number of locked states for
2979         each automaton.  Calculate total number of locked states here.
2980         (write_automata): Don't call output_dfa_max_issue_rate.
2981         * genattrtab.c: Define length_unit_log as a const variable.
2982         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
2983         max_insn_queue_index const.
2984         * final.c (length_unit_log): Declare const.
2985         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
2986
2987 2006-01-22  Zack Weinberg  <zackw@panix.com>
2988
2989         * genautomata.c:  Include vec.h, not varray.h.
2990         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
2991         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
2992         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
2993         VEC_* macros operating on appropriately typed vectors, or to
2994         malloced arrays when the size is known in advance.  Const-ify
2995         many char* variables and function arguments.  No functional changes.
2996         * Makefile.in (build/varray.o): Delete rule.
2997         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
2998         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
2999
3000 2006-01-22  Zack Weinberg  <zackw@panix.com>
3001
3002         * gensupport.c: Define get_insn_name and record_insn_name here.
3003         (read_md_rtx): Call record_insn_name as appropriate.
3004         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
3005         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
3006         * genpreds.c, genrecog.c: Don't define get_insn_name nor
3007         record_insn_name.
3008         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
3009         (BUILD_VARRAY): Delete.
3010         (genprognormal): Rename genprogmd.  Fold in all programs from
3011         genprognoprint; also attrtab.
3012         (build/genattrtab): Just mention genautomata.o and varray.o.
3013         Reorganize a bit, add comments to make the categories clearer.
3014
3015 2006-01-22  Zack Weinberg  <zackw@panix.com>
3016
3017         * genconditions.c (condition_table, add_condition): Delete.
3018         (write_conditions): Don't emit n_insn_conditions nor
3019         insn_elision_unavailable.  Issue the gcc version #ifdef here,
3020         inside the table, with no #else clause ...
3021         (write_header): ...not here.
3022         (write_writer): New function.
3023         (main): Don't initialize condition_table.  Use add_c_test.
3024         Call write_writer.
3025         * gensupport.c (init_md_reader_args_cb): Handle multiple input
3026         files on the command line.
3027         (maybe_eval_c_test): Don't check insn_elision_unavailable.
3028         Return -1 if there is no entry in the table, don't abort.
3029         (add_c_test, traverse_c_tests): New functions.
3030         * gensupport.h (insn_elision_unavailable, insn_conditions)
3031         (n_insn_conditions): Delete declarations.
3032         (add_c_test, traverse_c_tests): Declare.
3033         * read-rtl.c: Include gensupport.h.
3034         (read_conditions): New function.
3035         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
3036         (read_rtx_1): If we get EOF when we were looking for an initial
3037         open paren, return 0.  Call read_conditions when appropriate.
3038         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
3039         dummy-conditions.o.  Eliminate references to insn-conditions.o,
3040         or change them to build/gencondmd.o, as appropriate.  Remove
3041         insn-constants.h from $(simple_generated_h) and insn-conditions.c
3042         from $(simple_generated_c).  For all files remaining in those
3043         two lists, add insn-conditions.md to the generator command line.
3044         Give insn-constants.h/s-constants their own rules.  Add rules
3045         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
3046         (build/read-rtl.o): Depend on gensupport.h.
3047         (genprognormal): Include preds.
3048         (genprogearly): Rename genprognoprint; only difference is now that
3049         they don't link with $(BUILD_PRINT).
3050         * dummy-conditions.c: Delete.
3051
3052 2006-01-22  Zack Weinberg  <zackw@panix.com>
3053
3054         * genextract.c: Don't include insn-config.h.  Do include vec.h.
3055         Declare vectors of int, char, and locstr.
3056         (locstr): New typedef.
3057         (struct extraction): Make all array fields into bare pointers.
3058         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
3059         (insn_code_number): Delete.
3060         (accum_extract): New struct.
3061         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
3062         (gen_insn): Take insn_code_number as an argument.  Use an
3063         accum_extract structure instead of loading data directly into
3064         a struct extraction, and having to know how big it might get.
3065         (walk_rtx): Operate entirely on an accum_extract structure.
3066         (print_path): Avoid unnecessary use of printf.
3067         (print_header): New function, split out of main.  Distinguish
3068         more carefully between an unrecognizable insn and an insn that
3069         has the code number of a define_expand.
3070         (main): Pass insn_code_number to gen_insn.  Call print_header
3071         only after parsing.  Avoid unnecessary use of printf.
3072         * Makefile.in (build/vec.o): New rule.
3073         (build/genextract): Depend on build/vec.o.
3074         (build/genextract.o): Don't depend on insn-config.h.
3075
3076 2006-01-22  Zack Weinberg  <zackw@panix.com>
3077
3078         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
3079         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
3080         practical.  Eliminate per-generator-program link rules.
3081
3082 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
3083
3084         PR middle-end/24437
3085         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
3086         with a call expr to ...
3087         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
3088
3089 2006-01-23  Richard Guenther  <rguenther@suse.de>
3090
3091         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
3092         before make_edge with conditional EDGE_TRUE_VALUE.
3093
3094 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
3095         Jan Hubicka  <jh@suse.cz>
3096         Richard Guenther  <rguenther@suse.de>
3097
3098         PR rtl-optimization/25654
3099         * cfgexpand.c (aggregate_contains_union_type): New function.
3100         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
3101         for structure variables that contain a union type.
3102
3103 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
3104
3105         * gengtype.c (new_structure): Return the structure.
3106         (create_option): Add an extra "next" argument.
3107         (create_field): New function.
3108         (adjust_field_rtx_def): Use create_option and create_field.
3109         Remove a now-unnecessary call to find_structure.
3110         (adjust_field_tree_def): Likewise.
3111         (note_yacc_type): Remove an unnecessary call to find_structure.
3112         * gengtype.h (new_structure): Return the structure.
3113         (create_option): Add an extra argument.
3114         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
3115         (option): Adjust calls to create_option.
3116
3117 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
3118
3119         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
3120
3121 2006-01-22  Paul Brook  <paul@codesourcery.com>
3122         Peter Barada  <peter@the-baradas.com>
3123
3124         * config/m68k/m68k.md: Add Coldfire FPU support.
3125         Define FP mode macro and associated attributes.
3126         Use it for float mode patterns.
3127         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
3128         (LIBCALL_VALUE): Use m68k_libcall_value.
3129         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
3130         (m68k_function_value): Ditto.
3131         (emit_move_sequence): Ditto.
3132         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
3133         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
3134         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
3135         (MULTILIB_EXCEPTIONS): Ditto.
3136         * config/m68k/m68k.opt: Add mcfv4e.
3137         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
3138         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
3139         (m68k_output_function_prologue): Save ColdFire FPU registers.
3140         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
3141         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
3142         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
3143         ColdFire FPU registers.
3144         (m68k_libcall_value, m68k_function_value): New functions.
3145         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
3146         (LIBCALL_VALUE): Use m68k_libcall_value.
3147         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
3148         (MASK_COLDFIRE): Add MASK_CFV4E.
3149         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
3150         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
3151         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
3152         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
3153         (GO_IF_LEGITIMATE_ADDRESS): Use it.
3154         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
3155         * doc/invoke.tex: Document -mcfv4e on m68k.
3156
3157 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
3158
3159         * doc/contribute.texi: Change CVS to SVN and update the corresponding
3160         URL.
3161
3162 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3163
3164         PR c++/16190
3165         * c-opts.c (c_common_handle_option): Don't include
3166         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
3167         * doc/invoke.texi (C++ Dialect Options): Document that
3168         -Wnon-virtual-dtor is no longer included in -Wall.
3169
3170 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
3171
3172         * gcov.c (print_version), gcov-dump.c (print_version),
3173         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
3174         dates.
3175
3176 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
3177
3178         * df-scan.c (problem_SCAN): Added NULL reset function.
3179         (df_scan_reset_blocks): Added code to call reset block function
3180         (df_bb_refs_delete) Fixed comment.
3181         (df_insn_refs_delete): Made tolerant of deleting non existent info
3182         for dataflow problems that need to be reset.
3183         * df-core.c (df_set_blocks): Ditto.
3184         * df.h (struct df_problem): Added reset_fun.
3185         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
3186         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
3187         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
3188         functions to clear out all references to def-use or use-def chains.
3189
3190 2006-01-21  Ben Elliston  <bje@au.ibm.com>
3191
3192         * varasm.c (assemble_real): Initialise data array.
3193
3194 2006-01-20  Paul Brook  <paul@codesourcery.com>
3195
3196         Merge from csl-arm-branch.
3197         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
3198         * config/arm/arm.md (movdi): Force operands[1] to a register
3199         if we have a non-register source.
3200         (*arm_movdi, *movdf_soft_insn): Require that one of the
3201         operands be a register.
3202         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
3203         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3204
3205 2006-01-20  DJ Delorie  <dj@redhat.com>
3206
3207         * varasm.c (initialize_constant_valid_p): Allow pointers
3208         initialized from integer constants of lesser precision.
3209         (output_constant): Allow non-int-sized pointer modes to be
3210         initialized from integer constants.
3211
3212 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
3213
3214         PR libstdc++/25524
3215         * cppdefault.h (struct default_include): Add multilib flag.
3216         * cppdefault.c (cpp_include_defaults): Set it.
3217         * c.opt (-imultilib): New option.
3218         * c-opts.c (imultilib): New.
3219         (c_common_handle_option): Handle -imultilib.
3220         (c_common_post_options): Likewise.
3221         * c-incpath.c (add_standard_paths, register_include_chains):
3222         Likewise.
3223         * c-incpath.h (register_include_chains): Add extra parameter.
3224         * gcc.c (do_spec_1): Generate -imultilib option.
3225         (The Specs Language): Update %I description.
3226         (process_command): Update copyright notice.
3227         * doc/cppopts.texi (-imultilib): Document.
3228         * doc/invoke.texi (-imultilib): Include in option summary.
3229         (%I): Update specs documentation.
3230
3231 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
3232
3233         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
3234
3235 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
3236
3237         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
3238         label numbers.
3239
3240 2006-01-20  Richard Guenther  <rguenther@suse.de>
3241         Steven Bosscher <stevenb.gcc@gmail.com>
3242
3243         PR rtl-optimization/24626
3244         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
3245         EDGE_TRUE_VALUE if in RTL mode.
3246
3247         Revert
3248         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
3249         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
3250
3251 2006-01-20  Dirk Mueller  <dmueller@suse.com>
3252
3253         PR c++/5520
3254         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
3255         instead of a special NOP marker.
3256         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
3257         NOP marker handling.
3258         * c-common.h (empty_body_warning): Add forward declaration.
3259         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
3260         Now uses IS_EMPTY_STMT() instead of special NOP markers.
3261
3262 2006-01-20  Paul Brook  <paul@codesourcery.com>
3263
3264         * Makefile.in (lang_checks): Keep going if mkdir fails.
3265
3266 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3267
3268         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
3269         be able to clean out basic block when not necessary.
3270         (df_scan_free): Fixed to properly delete information if df is
3271         unused before calling df_finish.
3272         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
3273         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
3274         or comment typos.
3275         (df_bb_refs_delete): New function.
3276         (df_refs_delete): Moved per block code to df_bb_refs_delete.
3277         * df-core.c (df_set_blocks): Added code to properly clean out
3278         unused blocks if they are not part of the blocks to consider.
3279         Added additional null check.
3280         (df_compact_blocks): Added basic block parameter to free_bb_fun to
3281         be able to clean out basic block when not necessary
3282         * df.h (df_free_bb_function): Ditto.
3283         (df_bb_refs_delete): New function.
3284         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
3285         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
3286         basic block parameter to be able to clean out basic block when not
3287         necessary.
3288         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
3289         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
3290         Fixed to properly delete information if df is unused before
3291         calling df_finish.
3292
3293 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3294
3295         PR rtl-optimization/25799
3296         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
3297         Corrected confluence operator to remove bits from op2 before oring
3298         with op1 rather than removing bits from op1.
3299         (df_ru_transfer_function): Corrected test on wrong bitmap which
3300         caused infinite loop.  Both of these problems were introduced in
3301         the dataflow rewrite.
3302
3303 2006-01-19  DJ Delorie  <dj@redhat.com>
3304
3305         * reload1.c (find_reload_regs): Note the details of reload
3306         failures in the dump file.
3307         (spill_failure): Likewise.
3308
3309 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
3310
3311         * loop-iv.c: Include df.h and hashtab.h.
3312         (enum iv_grd_result): New enum.
3313         (DF_REF_IV, DF_REF_IV_SET): New macros.
3314         (struct biv_entry): New.
3315         (df, bivs): New global variables.
3316         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
3317         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
3318         Removed.
3319         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
3320         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
3321         analyzed_for_bivness_p, record_biv): New functions.
3322         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
3323         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
3324         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
3325         UD chains.
3326         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
3327         analysed.
3328         (iv_number_of_iterations): Use new interface to iv analysis.
3329         * loop-unroll.c: Do not include varray.h.
3330         (analyze_iv_to_split_insn): Use new interface to iv
3331         analysis.
3332         * loop-unswitch.c (may_unswitch_on): Ditto.
3333         * df.c (df_bitmaps_free): Only work for bbs for that structures are
3334         allocated.
3335         (df_bb_modify): Realloc tables to the new index.
3336         (df_find_use): New function.
3337         * df.h (df_find_use): Declare.
3338         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
3339         outmode.
3340         * cfgloop.h (struct rtx_iv): Remove analysed field.
3341         (iv_get_reaching_def): Removed.
3342         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
3343         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
3344         (loop-iv.o): Add df.h and hashtab.h dependency.
3345         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
3346
3347 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
3348
3349         PR target/25668
3350         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
3351         Double TFmode.
3352         (__floatundisf, __floatundidf): Likewise.
3353         * libgcc2.h (IS_IBM_EXTENDED): Define.
3354
3355 2006-01-19  DJ Delorie  <dj@redhat.com>
3356
3357         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
3358
3359 2006-01-19  Paul Brook  <paul@codesourcery.com>
3360
3361         * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
3362         as nothrow when unwinding tables are disabled.
3363
3364 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3365
3366         PR testsuite/25171
3367         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
3368         of bit-field" when in system header.
3369
3370 2006-01-19  DJ Delorie  <dj@redhat.com>
3371
3372         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
3373         the 16 bit shift limit of the m16c.
3374
3375 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
3376
3377         PR target/22099
3378         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
3379         * config/i386/i386.c (output_set_got): Output the label if we have one
3380         for the TARGET_DEEP_BRANCH_PREDICTION case.
3381
3382 2006-01-19  Jan Hubicka  <jh@suse.cz>
3383             H.J. Lu  <hongjiu.lu@intel.com>
3384             Evandro Menezes <evandro.menezes@amd.com>
3385
3386         * invoke.texi (generic): Document
3387         (i686) Update.
3388         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
3389         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
3390         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
3391         (x86_use_incdec, x86_pad_returns): New variables
3392         (TARGET_CPU_DEFAULT_generic): New constant
3393         (TARGET_CPU_DEFAULT_NAMES): Add generic.
3394         (enum processor_type): Add generic32 and generic64.
3395         * i386.md (cpu attribute): Add generic32/generic64
3396         (movhi splitter): Behave sanely when both partial_reg_dependency and
3397         partial_reg_stall are set.
3398         (K8 splitters): Enable for generic as well.
3399         * predicates.md (incdec_operand): Use TARGET_INCDEC
3400         (aligned_operand): Avoid memory mismatch stalls.
3401         * athlon.md: Enable for generic64, new patterns for 128bit moves.
3402         * ppro.md: Enable for generic32
3403         * i386.c (generic64_cost, generic32_cost): New.
3404         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
3405         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
3406         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
3407         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
3408         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
3409         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
3410         x86_partial_reg_dependency, x86_memory_mismatch_stall,
3411         x86_accumulate_outgoing_args, x86_prologue_using_move,
3412         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
3413         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
3414         Enable for generic.
3415         (x86_use_incdec, x86_pad_returns): New.
3416         (override_options): Add generic32 and generic64, translate "generic"
3417         to generic32/generic64 and "i686" to "generic32", refuse
3418         "generic32"/"generic64" as arch target.
3419         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
3420         (ix86_reorg): Honor PAD_RETURNS.
3421
3422 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
3423
3424         * tree-pretty-print.c (dump_generic_node): Handle
3425         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
3426         * cgraph.c (cgraph_expand_queue): Rename from
3427         cgraph_analyze_queue.  Update all users.
3428         * cgraphunit.c (cgraph_assemble_pending_functions): Process
3429         cgraph_expand_queue.
3430         (cgraph_expand_all_functions): Likewise.
3431         (cgraph_finalize_pending_functions): Remove.  Update callers.
3432
3433         * tree.h (OMP_DIRECTIVE_P): Define.
3434         (OMP_PARALLEL_FN): Define.
3435         (OMP_PARALLEL_DATA_ARG): Define.
3436         (OMP_SECTIONS_SECTIONS): Define.
3437         * tree-pass.h (pass_expand_omp): Declare.
3438         * omp-low.c (struct omp_region): Declare.
3439         (struct omp_context): Remove fields 'parallel_type',
3440         'parallel_start_ix' and 'parallel_start_additional_args'.
3441         Update all users.
3442         (struct omp_for_data): Rename from struct expand_omp_for_data.
3443         (omp_regions): New static variable.
3444         (root_omp_region): New static variable.
3445         (find_omp_clause): Make static.
3446         (is_in_combined_parallel_ctx): Remove.
3447         (is_combined_parallel): New.
3448         (extract_omp_for_data): Move earlier in the file.
3449         (workshare_safe_to_combine_p): New.
3450         (get_ws_args_for): New.
3451         (determine_parallel_type): Move earlier in the file.
3452         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
3453         child function.
3454         (omp_copy_decl): Likewise.
3455         (create_omp_child_function): Likewise.
3456         (lookup_omp_region): New.
3457         (dump_omp_region): New.
3458         (debug_omp_region): New.
3459         (debug_all_omp_regions): New.
3460         (new_omp_region): New.
3461         (scan_omp_parallel): If parallel_nesting_level > 1, the
3462         directive is nested within another parallel directive.
3463         Set OMP_PARALLEL_FN.
3464         (scan_omp_for): Do not try to handle combined parallel+for
3465         cases.
3466         Remove FIXME comment.
3467         (scan_omp_nested): Remove.
3468         (scan_omp_1): Do not call scan_omp_nested when
3469         parallel_nesting_level is > 1.
3470         Do not change the DECL_CONTEXT of local variables found.
3471         (lookup_decl_in_outer_ctx): New.
3472         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
3473         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
3474         (lower_reduction_clauses): Rename from expand_reduction_clauses.
3475         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
3476         If CTX is nested, lookup VAR in the outer context when
3477         building copy assignment.
3478         (lower_send_clauses): Rename from expand_send_clauses.
3479         If CTX is nested, lookup VAR in the outer context when
3480         building copy assignments.
3481         (lower_send_shared_vars): Rename from expand_send_shared_vars.
3482         If CTX is nested, lookup VAR in the outer context when
3483         building copy assignments.
3484         (expand_parallel_call): Rename from build_parallel_call.
3485         Handle combined parallel+workshare cases.
3486         Re-implement to emit code into the CFG.
3487         (list2chain): New.
3488         (expand_omp_parallel): Re-implement to emit code into the CFG.
3489         Call move_sese_region_to_fn to outline the sub-graph
3490         containing the parallel region.
3491         (expand_omp_for_1): Remove.
3492         (expand_omp_for_generic): Re-implement to emit code into the
3493         CFG.
3494         (expand_omp_for_static_nochunk): Likewise.
3495         (expand_omp_for_static_chunk): Likewise.
3496         (expand_omp_for): Likewise.
3497         (expand_omp_sections): Likewise.
3498         (remove_exit_barriers): New.
3499         (expand_omp_synch): New.
3500         (expand_omp): New.
3501         (build_omp_regions_1): New.
3502         (build_omp_regions): New.
3503         (execute_expand_omp): New.
3504         (gate_expand_omp): New.
3505         (pass_expand_omp): Define.
3506         (lower_omp_sections): Rename from expand_omp_sections.
3507         Set OMP_SECTIONS_SECTIONS.
3508         (lower_omp_single_simple): Rename from expand_omp_single_simple.
3509         (lower_omp_single_copy): Rename from expand_omp_single_copy.
3510         (lower_omp_single): Rename from expand_omp_simple.
3511         (lower_omp_master): Rename from expand_omp_master.
3512         (lower_omp_ordered): Rename from expand_omp_ordered.
3513         (lower_omp_critical): Rename from expand_omp_critical.
3514         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
3515         (lower_omp_for): Re-implement.
3516         (lower_omp_parallel): Re-implement.
3517         (lower_regimplify): Rename from expand_regimplify.
3518         (lower_omp_1): Rename from expand_omp_1.
3519         If there are syntax errors in the program, replace every
3520         OpenMP directive with NOP.
3521         Call lower_omp_* instead of expand_omp_*.
3522         (lower_omp): Rename from expand_omp.
3523
3524         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
3525         * tree-gimple.h (enum omp_parallel_type): Remove.
3526         (gimple_boolify): Declare extern.
3527         (find_omp_clause, determine_parallel_type): Remove.
3528
3529         * gimple-low.c (lower_omp_directive): New.
3530         (lower_stmt): Call it.
3531         (record_vars_into): Move from ...
3532         (record_vars): ... here.
3533         Call record_vars_into with current_function_decl.
3534
3535         * gimplify.c (struct gimplify_ctx): Remove fields
3536         combined_pre_p and combined_ctxp.  Update users.
3537         (get_formal_tmp_var): Add documentation.
3538         (gimple_boolify): Make extern.
3539         (gimplify_expr_in_ctx): Remove.  Update callers.
3540         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
3541         will always be a BIND_EXPR.
3542         (gimplify_expr): Handle OMP_RETURN_EXPR.
3543         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
3544         (OMP_PARALLEL): Add 3 operands.
3545         (OMP_SECTIONS): Add 1 operand.
3546         (OMP_RETURN_EXPR): Define.
3547
3548         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
3549         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
3550         * tree-iterator.c (alloc_stmt_list): Assert that we are not
3551         creating a circular free list.
3552         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
3553
3554         * tree-flow.h (move_sese_region_to_fn): Declare.
3555         (record_vars_into): Declare.
3556         * tree-cfg.c (make_omp_sections_edges): New.
3557         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
3558         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
3559         OMP_SECTIONS and OMP_SECTION.
3560         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
3561         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
3562         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
3563         (gather_blocks_in_sese_region): New.
3564         (struct move_stmt_d): Declare.
3565         (move_stmt_r): New.
3566         (move_block_to_fn): New.
3567         (move_sese_region_to_fn): New.
3568
3569         * passes.c (init_optimization_passes): Schedule
3570         pass_expand_omp after pass_init_datastructures.
3571
3572         * tree-ssa-operands.c (get_expr_operands): Handle
3573         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
3574         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
3575
3576 2006-01-19  Jeff Law  <law@redhat.com>
3577
3578         * tree-vrp.c (extract_range_from_assert): Refine the result range
3579         if the variable referenced by the ASSERT_EXPR has a range and
3580         either the tentative result range or the previous range is a
3581         VR_ANTI_RANGE.
3582
3583 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
3584
3585         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
3586
3587 2006-01-19  Jan Hubicka  <jh@suse.cz>
3588
3589         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
3590
3591 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
3592
3593         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
3594         (expand_compound_operation, expand_field_assignment): Fail if the
3595         bit lengths of an extract operation are out of range.
3596         (make_extraction): Compute wanted_inner_mode based on the position
3597         and length of the extraction.  Make it extraction_mode for non-constant
3598         positions, and do not modify offset in that case.  When generating a
3599         new MEM, use a mode that can hold the extraction while keeping correct
3600         alignment.  Remove code that supported MEMs wrapped by USEs.
3601         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
3602
3603 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3604
3605         * config/s390/s390.md ("Y", "y"): New mode attribute.
3606         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
3607         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
3608         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
3609         "*addsi3_imm_cc", "*addsi3_carry1_cc",
3610         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
3611         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
3612         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
3613         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
3614         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
3615         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
3616         "addsi3", "subsi3"): Insn patterns removed.
3617         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
3618         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
3619         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
3620         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
3621         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
3622         "*sub<mode>3_cconly2"): New insn patterns.
3623         ("addsi3", "subsi3"): New expanders.
3624
3625 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
3626
3627         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
3628         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
3629         existing STMT_VINFO_VECTYPE if available.
3630         (vect_mark_relevant): Add special handling for stmts that are
3631         marked as STMT_VINFO_IN_PATTERN_P.
3632         (vect_analyze_loop): Call vect_pattern_recog.
3633         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
3634         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
3635         stmt_info.
3636         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
3637         (vect_recog_func_ptr): New function-pointer type.
3638         * tree-vect-patterns.c: New file.
3639         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
3640         (vect_recog_dot_prod_pattern, vect_pattern_recog):
3641         (vect_pattern_recog_1): New functions.
3642         (vect_pattern_recog_funcs): New array of function pointers.
3643
3644         * tree-vectorizer.h (ternary_op): New enum value.
3645         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
3646         declaration. Revised documentation. Removed redundant dump prints.
3647         Removed redundant argument. Added support for reduction patterns.
3648         (vectorizable_reduction): Added support for reduction patterns.
3649         (vect_transform_stmt): Added support for patterns.
3650
3651         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
3652         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
3653         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
3654         (expand_widen_pattern_expr): New function.
3655         (init_optabs): Initialize new optabs udot_prod_optab,
3656         sdot_prod_optab.
3657         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
3658         (sdot_prod_optab, udot_prod_optab): Define new optabs.
3659         (expand_widen_pattern_expr): New function declaration.
3660         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
3661         tree-codes.
3662         * tree-inline.c (estimate_num_insns_1): Added cases for new
3663         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
3664         * tree-pretty-print.c (dump_generic_node): Likewise.
3665         (op_prio): Likewise.
3666         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
3667         * tree-ssa-operands.c (get_expr_operands): Added case for
3668         DOT_PROD_EXPR.
3669         * tree-vect-patterns.c (widened_name_p): New function.
3670         (vect_recog_dot_prod_pattern): Added function implementation.
3671         * tree-vect-transform.c (get_initial_def_for_reduction): Added
3672         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
3673         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
3674         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
3675
3676         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
3677         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
3678         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
3679         (init_optabs): Initialize new optabs widen_ssum_optab,
3680         widen_usum_optab.
3681         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
3682         (widen_ssum_optab, widen_usum_optab): Define new optabs.
3683         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
3684         use instead of type of def.
3685         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
3686         function implementation.
3687         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
3688         widen_ssumv8hi): New.
3689
3690         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
3691         patterns.
3692
3693 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
3694
3695         PR c/25805
3696         * c-decl.c (add_flexible_array_elts_to_size): New function.
3697         (finish_decl): Use it.
3698
3699 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3700
3701         * diagnostic.h: Include options.h.
3702         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
3703         dependancies for diagnostic.h.
3704         * Makefile.in (DIAGNOSTIC_H): Add options.h.
3705
3706 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
3707
3708         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
3709         (ssa_ro_call_cache_valid): Ditto.
3710         * tree-ssa-alias.c (sort_tags_by_id): New function.
3711         (init_transitive_clobber_worklist): Ditto.
3712         (add_to_worklist): Ditto.
3713         (mark_aliases_call_clobbered): Ditto.
3714         (compute_tag_properties): Ditto.
3715         (set_initial_properties): Ditto.
3716         (compute_call_clobbered): Ditto.
3717         (compute_may_aliases):  Call compute_call_clobbered and grouping.
3718         (compute_flow_sensitive_aliasing): Remove clobbering related code.
3719         (compute_flow_insensitive_aliasing): Grouping now happens in our
3720         caller.
3721         (setup_pointers_and_addressables): Remove clobbering related code.
3722         (add_may_alias): Ditto.
3723         (replace_may_alias): Ditto.
3724         (get_nmt_for): Ditto.
3725         (create_global_var):
3726         (is_escape_site): Return an escape_type enumeration.
3727         * tree-flow-inline.h (is_call_clobbered):  Global var does not
3728         imply call clobbered.
3729         (mark_call_clobbered): Take a reason for marking this. Remove
3730         marking of globalness, and cache invalidation.
3731         (clear_call_clobbered): Remove cache invalidation code.
3732         * tree-dfa.c (dump_variable): If details is on, dump the reason
3733         for escaping.
3734         * tree-outof-ssa.c (create_temp): Copy escape mask from original
3735         variable.
3736         * tree-flow.h (struct ptr_info_def): Add escape mask member.
3737         (struct var_ann_d): Ditto.
3738         (enum escape_type): New.
3739         (mark_call_clobbered): Adjust prototype.
3740         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
3741         are never call clobbered.
3742         Record reasons for escaping.
3743         * tree-ssa-structalias.h (is_escape_site): Update prototype.
3744         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
3745         (ssa_ro_call_cache_valid): Ditto.
3746         (clobbered_v_may_defs): Ditto.
3747         (clobbered_vuses): Ditto.
3748         (ro_call_vuses): Ditto.
3749         (clobber_stats): New.
3750         (init_ssa_operands): Zero out clobber stats.
3751         (fini_ssa_operands): Print out clobber stats.
3752         (get_call_expr_operands): Pass callee fndecl to
3753         add_call_read_ops).
3754         (add_call_clobber_ops): Remove use of cache.
3755         Add use of PURE_CONST information.
3756         (add_call_read_ops): Remove use of cache.
3757         Add use of static not_read information.
3758
3759 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
3760
3761         Introduce TLS descriptors for i386 and x86_64.
3762         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
3763         (TARGET_ANY_GNU_TLS): New macro.
3764         (enum tls_dialect): Added TLS_DIALECT_GNU2.
3765         (struct machine_function): Add tls_descriptor_call_expanded_p.
3766         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
3767         (ix86_current_function_calls_tls_descriptor): Likewise.
3768         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
3769         (override_options): Introduce gnu2 tls dialect.
3770         (ix86_frame_pointer_required): Functions containing TLSCALLs are
3771         not leaves.
3772         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
3773         Likewise.
3774         (legitimize_tls_address): Adjust logic for GNU2 TLS.
3775         (ix86_init_machine_status): Initialize new field.
3776         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
3777         (ix86_tls_module_base): New.
3778         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
3779         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
3780         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
3781         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
3782         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
3783         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
3784         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
3785         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
3786         * config/i386/predicates.md (tls_modbase_operand): New.
3787         (tp_or_register_operand): New.
3788
3789 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
3790
3791         * ipa-reference.c (check_operand):  Allow FUNCTION_DECL.
3792         (look_for_address_of): Ditto.
3793         (ipa_init): Walk the function decls.
3794         (static_execute): Don't set readonly on FUNCTION_DECL's.
3795
3796 2006-01-18  Roger Sayle  <roger@eyesopen.com>
3797
3798         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
3799         for shifts where the source and destination registers are different.
3800
3801 2006-01-18  Paul Brook  <paul@codesourcery.com>
3802
3803         Merge from csl-arm-branch.
3804         2005-03-14  Julian Brown  <julian@codesourcery.com>
3805         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
3806         (aeabi_llsl): Likewise.
3807         (ashrdi3): Likewise.
3808         (aeabi_lasr): Likewise.
3809         (lshrdi3): Likewise.
3810         (aeabi_llsr): Likewise.
3811         2005-03-10  Julian Brown  <julian@codesourcery.com>
3812         * config.gcc: Disable shared libgcc for SymbianOS.
3813         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
3814
3815 2006-01-18  DJ Delorie  <dj@redhat.com>
3816
3817         * c-pragma.c (handle_pragma_diagnostic): New.
3818         (init_pragma): Register it.
3819         * doc/extend.texi: Document it.
3820
3821         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
3822         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
3823         (diagnostic_context): Add classify_diagnostic[].
3824         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
3825         as errors if they're overridden to DK_WARNING.
3826         (diagnostic_initialize): Initialize classify_diagnostic[].
3827         (diagnostic_set_kind_override): New.
3828         (diagnostic_report_diagnostic): Check for kind changes.
3829         * opts.c (common_handle_option): Take lang_mask.  Update callers.
3830         Handle OPT_Werror_.
3831         * common.opt (Werror=): New.
3832         * doc/invoke.texi: Document -Werror=*
3833
3834 2006-01-18  Jeff Law  <law@redhat.com>
3835
3836         * tree-vrp.c (test_for_singularity): Correct test for new
3837         min limit.  Use operand_equal_p rather than pointer equality
3838         for testing if new min/max values are equal.
3839
3840         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
3841         using range information until after propagation and folding.
3842
3843 2006-01-18  Richard Henderson  <rth@redhat.com>
3844             Aldy Hernandez  <aldyh@redhat.com>
3845             Jakub Jelinek  <jakub@redhat.com>
3846             Diego Novillo  <dnovillo@redhat.com>
3847
3848         * omp-low.c: New file.
3849         * c-omp.c: New file.
3850
3851 2006-01-18  Richard Henderson  <rth@redhat.com>
3852             Jakub Jelinek  <jakub@redhat.com>
3853             Diego Novillo  <dnovillo@redhat.com>
3854
3855         * doc/invoke.texi: Document -fopenmp.
3856         * tree-dump.h (debug_function): Declare.
3857         * hooks.c (hook_bool_tree_bool_false): New function.
3858         (hook_tree_tree_null): Remove.
3859         (hook_tree_tree_tree_null): New.
3860         * hooks.h: Update to match.
3861         * tree-pretty-print.c (debug_tree_chain): New.
3862         (print_generic_expr): Handle TDF_CHAIN.
3863         (dump_generic_node): Handle BLOCK.
3864         Do not abort with incomplete SWITCH_EXPRs.
3865         Do not dump body of an OpenMP directive if TDF_SLIM is given.
3866         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
3867         print space after directive name.
3868         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
3869         Handle OMP_MASTER and OMP_ORDERED.
3870         Handle printing of OMP_BODY just in one place, goto
3871         dump_omp_body in the rest of OMP_* nodes that have
3872         OMP_BODY.
3873         Don't handle clause nodes here.  Update omp statements to
3874         use dump_omp_clauses.
3875         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
3876         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
3877         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
3878         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
3879         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
3880         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
3881         Adjust output for GOMP_PARALLEL.
3882         (dump_omp_clauses): New.
3883         (print_declaration): Dump DECL_VALUE_EXPR.
3884         (op_symbol_1): Split out of op_symbol.
3885         (dumping_stmts): Remove.  Update all users.
3886         * cgraph.c (cgraph_analyze_queue): New.
3887         (cgraph_add_new_function): New.
3888         * cgraph.h (cgraph_analyze_queue): Declare.
3889         (cgraph_add_new_function): Declare.
3890         (cgraph_lower_function): Remove.
3891         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
3892         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
3893         and TYPE_P nodes in its default clause.
3894         (empty_body_p): New.
3895         (tree_range_check_failed): New.
3896         (build5_stat): New.
3897         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
3898         OMP_CLAUSE_REDUCTION_MERGE,
3899         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
3900         OMP_CLAUSE_PRIVATE_DEBUG,
3901         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
3902         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
3903         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
3904         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
3905         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
3906         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
3907         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
3908         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
3909         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
3910         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
3911         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
3912         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
3913         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
3914         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
3915         (TREE_RANGE_CHECK): New.
3916         (empty_body_p): Declare.
3917         (enum omp_clause_default_kind): New.
3918         (build_string_literal): Declare.
3919         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
3920         (build5_stat, build5): Declare.
3921         * tree-pass.h (TDF_CHAIN): Define.
3922         * tree-pass.h (PROP_gimple_lomp): Define.
3923         (pass_lower_omp): Declare.
3924         * diagnostic.h (debug_tree_chain): Declare.
3925         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
3926         mode_for_size.
3927         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
3928         * builtins.c (build_string_literal): Make extern.
3929         * gcc.c (include_spec_function): New.
3930         (static_spec_functions): Add it.
3931         (main): Move load of libgomp.spec ...
3932         (LINK_COMMAND_SPEC): ... here.
3933         (link_gomp_spec): New.
3934         (static_specs): Include it.
3935         (LINK_COMMAND_SPEC): Add link_gomp.
3936         (GOMP_SELF_SPECS): New.
3937         (driver_self_specs): Include it.
3938         (switch_matches): Don't mark inline.
3939         (main): Load libgomp.spec.
3940         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
3941         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
3942         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
3943         * tree-gimple.h (enum omp_parallel): Declare.
3944         (determine_parallel_type): Declare.
3945         (omp_firstprivatize_variable): Declare.
3946         (omp_reduction_init): Declare.
3947         (diagnose_omp_structured_block_errors): Declare.
3948         (struct walk_stmt_info): Add want_return_expr.
3949         (struct walk_stmt_info): Add want_bind_expr, want_locations.
3950         (find_omp_clause): Declare.
3951         (insert_field_into_struct): Declare.
3952         (struct walk_stmt_info): Move from tree-nested.c
3953         (walk_stmts): Declare.
3954         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
3955         to 200505.
3956         * cgraphunit.c (cgr