OSDN Git Service

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