OSDN Git Service

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