OSDN Git Service

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