OSDN Git Service

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