OSDN Git Service

* vec.h (safe_grow): Remove duplicated line.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
2
3         * vec.h (safe_grow): Remove duplicated line.
4
5 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
6
7         PR 25874
8         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
9         (expand_omp): ... here.
10         (expand_omp_parallel): Only remove barriers for combined
11         parallel+workshare constructs.
12
13 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
14
15         Revert
16
17         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
18         * tree.c (build_qualified_type): Chain the new type to the original
19         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
20         a POINTER_TYPE or a REFERENCE_TYPE respectively.
21         (build_pointer_type_for_mode): Only return unqualified types.
22         (build_reference_type_for_mode): Likewise.
23
24 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
25
26         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
27         * Makefile.in (CXX_COMPAT_WARN): Define.
28         * configure: Regenerate.
29
30 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
31
32         PR tree-opt/25911
33         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
34         to an if check.
35
36 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
37
38         * toplev.c: Fix thinko.
39
40 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
41             Marcin Dalecki  <martin@dalecki.de>
42
43         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
44         (push_srcloc): Use XNEW.
45         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
46
47 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
48
49         * df-core.c (df_set_blocks): Deleted all variable.
50
51 2006-01-28  Ian Lance Taylor  <ian@airs.com>
52
53         * cgraphunit.c (cgraph_assemble_pending_functions): Call
54         cgraph_output_pending_asms.
55
56 2006-01-28  Zack Weinberg  <zackw@panix.com>
57
58         * c.opt: Add -W(no-)overlength-strings.
59         * doc/invoke.texi: Document it.
60         * c-opts.c (c_common_handle_option): -pedantic implies
61         -Woverlength-strings, if not explicitly disabled already.
62         (c_common_post_options): -Woverlength-strings defaults to off, and
63         is always off for C++.
64         * c-common.c (fix_string_type): Issue warning about strings longer
65         than is portable only if warn_overlength_strings.  Rearrange code
66         a little for clarity.
67         * configure.in: Check for -Wno-overlength-strings as well before
68         enabling -pedantic in stage 1.
69         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
70         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
71
72         * genconditions.c (write_header, write_one_condition)
73         (write_conditions, write_writer): Consolidate very long strings
74         that were broken up to fit in C89 portable limit.  Don't use
75         printf when fputs will do.
76
77 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
78
79         * combine.c (simplify_comparison <AND>): Check
80         TRULY_NOOP_TRUNCATION before start using a subreg.
81
82         * config/mips/mips.md (*branch_zero<mode>,
83         *branch_zero<mode>_inverted, *branch_equality<mode>,
84         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
85         Remove mode check from comparisons.
86
87 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
88
89         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
90
91 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
92
93         * expmed.c (const_mult_add_overflow_p): Remove.
94         * expr.h: Remove the prototype for const_mult_add_overflow_p.
95
96         * recog.c (validate_replace_rtx_subexp): Remove.
97         * recog.h: Remove the prototype for
98         validate_replace_rtx_subexp.
99
100         * integrate.h: Remove the prototype for
101         copy_decl_for_inlining.
102         * rtl.h: Remove the prototype for mark_constant_function.
103         * tree-vectorizer.h: Remove the prototype for
104         vect_strip_conversion.
105
106         * modulo-sched.c (create_partial_schedule,
107         free_partial_schedule, reset_partial_schedule): Make them
108         static.
109
110         * hooks.c (hook_bool_rtx_int_false): Remove.
111         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
112
113 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
114
115         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
116         and -mlong-double-128 are incompatible.
117         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
118         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
119         (TARGET_LIBGCC2_CFLAGS): Define.
120         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
121         (TARGET_LIBGCC2_CFLAGS): Same.
122         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
123
124 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
125
126         PR c/19606.
127         * c-typeck.c (build_binary_op): Perform implicit casts of
128         operands before shortening them.
129
130         * cfgloopmanip.c (split_loop_bb): Remove.
131         * cfgloop.h: Remove the prototype for split_loop_bb.
132
133         * cfgloop.c (flow_loop_outside_edge_p): Remove.
134         * cfgloop.h: Remove the prototype for
135         flow_loop_outside_edge_p.
136
137         * emit-rtl.c (init_virtual_regs): Make it static.
138         * function.h: Remove the prototype for init_virtual_regs.
139
140         * recog.c (peephole2_optimize): Make it static.
141         * recog.h: Remove the prototype for peephole2_optimize.
142
143 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
144
145         * df-scan.c (df_record_entry_block_defs): Check if
146         INCOMING_RETURN_ADDR_RTX is defined.
147
148 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
149             Kenneth Zadeck <zadeck@naturalbridge.com>
150
151         PR rtl-optimization/24762
152         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
153         * targhooks.c (hook_void_bitmap): New hook prototype.
154         * targhoohs.h (hook_void_bitmap): Ditto.
155         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
156         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
157         * target.h (live_on_entry): New function pointer.
158         * df-scan.c (df_all_hard_regs): Removed.
159         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
160         (df_scan_free_internal): Added df->entry_block_defs.
161         (df_scan_alloc): Ditto.
162         (df_scan_dump): Ditto.
163         (df_uses_record): Plumbed flag field properly thru calls.
164         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
165         This part fixes PR24762.
166         (df_bb_refs_record): Added code to make the frame and arg
167         pointers live in EH blocks.
168         (df_refs_record): Added call to df_record_entry_block_defs.
169         (df_record_entry_block_defs): New function.
170         * df-core.c: Added comments to describe new artifical defs.
171         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
172         (entry_block_defs): New field in struct df.
173         (df_all_hard_regs): Deleted.
174         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
175         * df-problems.c (df_ru_bb_local_compute_process_def):
176         Added code to handle artifical defs in the entry to a function.
177         (df_ru_bb_local_compute): Ditto.
178         (df_rd_bb_local_compute_process_def):  Ditto.
179         (df_rd_bb_local_compute): Ditto.
180         (df_lr_bb_local_compute): Ditto.
181         (df_ur_bb_local_compute): Ditto.
182         (df_urec_bb_local_compute):  Ditto.
183         (df_chain_create_bb):  Ditto.
184         (df_ur_local_finalize): Removed entry.
185         (df_urec_init): Ditto.
186         (df_urec_local_finalize): Ditto.
187         (df_ri_bb_compute): Added detection of last use of pseudos.
188         * Makefile.in (df-scan.o): Updated dependencies.
189         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
190         * config/mips/mips.c (mips_set_live_on_entry): Added.
191         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
192         for target hook.
193         * dce.c (marked_insn_p): Added code to handle artifical defs.
194
195 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
196
197         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
198         intrinsic.
199         (_mm_cvtsi128_si64): Likewise.
200         (_mm_cvtsd_si64): Likewise.
201         (_mm_cvttsd_si64): Likewise.
202         (_mm_cvtsi64_sd): Likewise.
203         (_mm_cvtsi64_si128): Likewise.
204         * config/i386/mmintrin.h (_m_from_int64): Likewise.
205         (_mm_cvtsi64_m64): Likewise.
206         (_m_to_int64): Likewise.
207         (_mm_cvtm64_si64): Likewise.
208         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
209         (_mm_cvttss_si64): Likewise.
210         (_mm_cvtsi64_ss): Likewise.
211         (_mm_cvtss_f32): Likewise.
212
213 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
214
215         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
216         for pragma redefine_extname.
217
218 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
219
220         PR target/25864
221         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
222         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
223         -mno-minimal-toc to previous content.
224         (bispecs): Remove goal.
225         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
226         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
227         compatibility aliases on powerpc-*-*gnu*.
228         * config/rs6000/libgcc-ppc-glibc.ver: New file.
229         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
230         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
231         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
232         (ldblspecs): New goal.
233         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
234         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
235         _df_to_tf.
236         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
237         L_sf_to_tf or L_df_to_tf is defined.
238
239 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
240             Alan Modra  <amodra@bigpond.net.au>
241
242         PR target/25864
243         * config/rs6000/linux.h (POWERPC_LINUX): Define.
244         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
245         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
246         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
247         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
248         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
249         (rs6000_override_options): Initialize rs6000_ieeequad.
250         Initialize TFmode format to ibm_extended_format if not
251         TARGET_IEEEQUAD.
252         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
253         ieeelongdouble.
254         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
255         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
256         (function_arg_advance): IBM long double passed in two FPRs, not
257         split.
258         (function_arg): IBM long double passed in FPRs.
259         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
260         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
261         Only multireg GPR aligned.
262         (rs6000_init_libfuncs): Enable IBM long double functions if not
263         IEEEQUAD.
264         (rs6000_generate_compare): Use IBM long double compare if not
265         TARGET_IEEEQUAD.
266         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
267         (TARGET_IEEEQUAD): Define.
268         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
269         not TARGET_IEEEQUAD.
270         * config/rs6000/rs6000.md: Enable TFmode patterns if
271         !TARGET_IEEEQUAD.
272         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
273         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
274         and -mlong-double-128 are incompatible.
275         * doc/invoke.texi (-mabi): Collect options together.  Add
276         ibmlongdouble and ieeelongdouble.
277
278 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
279
280         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
281         opaque type.
282         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
283         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
284         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
285         * rtl.h (rtunion_def): Remove rt_ptr.
286         (X0PTR): Delete.
287         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
288         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
289         * config/i386/winnt.c (i386_pe_mark_dllexport)
290         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
291
292 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
293
294         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
295
296 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
297
298         PR other/24829
299         PR target/24831
300         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
301         pthread_key_delete.  From John David Anglin.  gthrw-ify
302         pthread_getunique_np only if it it's not a macro.  Delete
303         UNUSED macro.
304         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
305         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
306         __gthread_objc_condition_signal, __gthread_key_delete): Add
307         "__attribute__ ((__unused__))" to unused arguments.
308         (__gthread_recursive_mutex_init_function): Add missing return.
309         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
310         gthr-posix95.h: Use macro-based approach for name redirection
311         on targets missing weakref.
312
313 2006-01-26  Zack Weinberg  <zackw@panix.com>
314
315         * genconditions.c (write_header): In generated code, #ifdef out
316         all includes and fake declarations, except includes of bconfig.h
317         and system.h, unless GCC_VERSION >= 3001.  Do not include
318         gensupport.h in any case.
319         (write_conditions): Generate a definition of struct c_test.  Add
320         a comment to the generated #endif.
321         (write_one_condition): Escape backslashes in string too.
322         (write_writer): Generated code must escape backslashes and quote
323         marks (but not newlines) in the strings it writes.
324         * Makefile.in (build/gencondmd.o): Update dependencies.
325
326 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
327
328         PR target/25961
329         * Makefile.in (insn-automata.o): Add header file dependencies.
330         * genautomata.c: Add includes.
331
332 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
333
334         PR target/25961
335         * Makefile.in (insn-automata.o): Add -Wno-error flag.
336
337 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
338
339         * configure.ac: Expect target tools paths to be passed from the toplevel
340         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
341         AS_SET_VAR_IF.
342         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
343
344 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
345
346         PR c/25892
347         * c.opt (Wpointer-sign): Init to -1.
348         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
349         OPT_pedantic, to 0 otherwise.
350         * doc/invoke.texi: Update.
351
352 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
353
354         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
355         constants provided by 80387 instructions in the destination mode.
356
357 2006-01-26  Richard Guenther  <rguenther@suse.de>
358             Andrew Pinski  <pinskia@physics.uc.edu>
359
360         PR tree-opt/21470
361         partial PR tree-opt/17064
362         * tree-ssa-structalias.c (intra_create_variable_infos):
363         Create heap variables for incoming parameters if
364         flag_argument_noalias > 1.
365         (find_what_p_points_to): Look through default defs of
366         parameter decls.
367
368 2006-01-26  Jeff Law  <law@redhat.com>
369
370         PR ada/25900
371         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
372         with a VR_ANTI_RANGE and the VR_ANTI_RANGEis completely contained
373         within the VR_RANGE, use the VR_RANGE as the result, not the
374         VR_ANTI_RANGE.
375         (adjust_range_with_scev): Reject ranges from SCEV which are out
376         of bounds for the type.
377
378 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
379
380         * tree-ssa-alias.c (maybe_create_global_var): Change
381         subvar walking to an assertion that we don't have subvar'd variables.
382
383 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
384
385         PR C/25861
386         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
387         Use a new variable, inner.  PARM_DECLs are always non-weak.
388
389 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
390
391         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
392         --disable-checking.
393
394 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
395
396         * config/mips/mips.md (*clear_upper32): New combiner pattern.
397
398 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
399
400         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
401         (smax_insn, smin_insn, smax_0, smin_0): New.
402
403 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
404
405         PR target/25947
406         * config/cris/cris.c (cris_order_for_addsi3): New function.
407         * config/cris/cris-protos.h: Prototype it.
408         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
409         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
410         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
411         (split for "op.S1 [rx=rx+i],ry (swapped)")
412         (split for "op(s|u).S1 [rx=rx+i],ry")
413         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
414         Apply cris_order_for_addsi3 when generating addsi3 insns.
415
416 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
417
418         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
419         (TREE_BLOCK): Add call to EXPR_CHECK.
420
421 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
422
423         PR 25886
424         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
425         * tree-pretty-print.c (dump_omp_clause): Extract from ...
426         (dump_omp_clauses): ... here.
427         (dump_generic_node): Handle OMP_CLAUSE.
428         * tree.c (omp_clause_num_ops): New.
429         (omp_clause_code_name): New.
430         (tree_code_size): Handle OMP_CLAUSE.
431         (tree_size): Likewise.
432         (make_node): Document handling of OMP_CLAUSE.
433         (tree_node_structure): Handle OMP_CLAUSE.
434         (omp_clause_check_failed): New.
435         (omp_clause_range_check_failed): New.
436         (omp_clause_operand_check_failed): New.
437         (build_omp_clause): New.
438         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
439         * tree.h (enum omp_clause_code): Declare.
440         (OMP_CLAUSE_SUBCODE_CHECK): Define.
441         (OMP_CLAUSE_RANGE_CHECK): Define.
442         (OMP_CLAUSE_ELT_CHECK): Define.
443         (omp_clause_check_failed): Declare.
444         (omp_clause_operand_check_failed): Declare.
445         (omp_clause_range_check_failed): Declare.
446         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
447         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
448         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
449         (OMP_CLAUSE_LASTPRIVATE): Likewise.
450         (OMP_CLAUSE_IF_EXPR): Likewise.
451         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
452         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
453         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
454         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
455         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
456         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
457         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
458         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
459         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
460         (OMP_CLAUSE_CODE): Define.
461         (OMP_CLAUSE_SET_CODE): Define.
462         (OMP_CLAUSE_CODE): Define.
463         (OMP_CLAUSE_OPERAND): Define.
464         (struct tree_omp_clause): Declare.
465         (union tree_node): Add field 'omp_clause'.
466         * treestruct.def (TS_OMP_CLAUSE): Define.
467         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
468         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
469         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
470         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
471         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
472         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
473         (OMP_CLAUSE): Define.
474         * print-tree.c (print_node): Handle OMP_CLAUSE.
475         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
476         * c-typeck.c: Likewise.
477         * gimplify.c: Likewise.
478         * c-omp.c: Likewise.
479         * tree-nested.c: Likewise.
480         * tree-inline.c: Likewise.
481         * c-parser.c: Likewise.
482         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
483         clauses.
484
485 2006-01-25  Roger Sayle  <roger@eyesopen.com>
486
487         PR rtl-optimization/25703
488         * combine.c (try_combine): Handle zero_extract and strict_low_part
489         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
490
491 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
492
493         * global.c: Fix comment typos.
494
495 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
496
497         PR target/25758
498         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
499         Use output_addr_const instead of assemble_name.
500
501 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
502
503         * Makefile.in (sched-vis.o): Update dependencies.
504         * haifa-sched.c (sched_finish): Clear current_sched_info.
505         * cfg.c (dump_bb_info): New, split from dump_flow_info.
506         (dump_flow_info): Call it.
507         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
508         a slim RTL dump.
509         * basic-block.h (dump_bb_info): Declare.
510         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
511         option, and apply options only for dump files whose TDF_RTL,
512         TDF_TREE, or TDF_IPA bits match.
513         * rtl.h: Declare new functions exported from sched-vis.c.
514         * sched-vis.c: Enable also if scheduling is not used.
515         (print_value): Print the mode of registers if not inside scheduling.
516         (print_insn): Make it work outside the scheduler.  Beautify the output
517         a bit.
518         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
519
520 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
521
522         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
523         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
524         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
525         depending on the value of CONSTANT_POOL_ADDRESS_P.
526         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
527         SYMBOL_REF_DECL.
528         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
529         rather than SYMBOL_REF_DECL.
530         (rtx_constant_pool): Remove const_rtx_sym_htab.
531         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
532         (init_varasm_status): Don't initialize const_rtx_sym_htab.
533         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
534         Remove handling of const_rtx_sym_htab.
535         (find_pool_constant): Delete.
536         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
537         rather than find_pool_constant.
538         (get_pool_constant_for_function): Delete.
539         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
540         find_pool_constant.
541         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
542         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
543         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
544         (SYMBOL_REF_CONSTANT): New macro.
545         (get_pool_constant_for_function): Delete.
546         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
547         rather than SYMBOL_REF_DECL.
548         (i386_pe_mark_dllimport): Likewise.
549         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
550         rather than SYMBOL_REF_DECL.
551         * config/darwin.c (machopic_indirect_data_reference): Likewise.
552         (machopic_indirect_call_target): Likewise.
553
554 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
555
556         * flow.c (delete_noop_moves): Add missing EOL to dump message.
557
558 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
559
560         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
561
562 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
563
564         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
565
566 2006-01-24  David Daney  <ddaney@avtrex.com>
567
568         PR java/25816
569         * configure.ac (enable_tls): New enable option.
570         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
571         * configure: Regenerate.
572         * doc/install.texi (--enable-tls): Document new option.
573         (--disable-tls): Ditto.
574
575 2006-01-24  Richard Henderson  <rth@redehat.com>
576
577         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
578         * alias.c (true_dependence): Respect it.
579         (canon_true_dependence, write_dependence_p): Likewise.
580         * builtins.c (get_builtin_sync_mem): Set it.
581
582 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
583
584         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
585         efficient way.
586
587 2006-01-24  DJ Delorie  <dj@redhat.com>
588
589         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
590         for storing constants in single-bit bitfields.
591
592 2006-01-25  Ben Elliston  <bje@au.ibm.com>
593
594         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
595
596 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
597
598         PR tree-opt/25860
599         * tree-ssa-pre.c (phi_translate): Return NULL
600         for AGGREGATE_TYPE's.
601
602 2006-01-24  Zack Weinberg  <zackw@panix.com>
603
604         * genautomata.c (process_state_for_insn_equiv_partition):
605         Use xcalloc for insn_arcs_array.
606         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
607         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
608
609 2006-01-24  Richard Henderson  <rth@redhat.com>
610
611         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
612         update all callers.
613
614 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
615
616         PR rtl-optimization/25890
617         PR rtl-optimization/25905
618         * combine.c (expand_compound_operation, expand_field_assignment):
619         Fail if the bitfield's final position is out of bounds.
620
621 2006-01-24  Ian Lance Taylor  <ian@airs.com>
622
623         PR middle-end/25930
624         * cgraphunit.c (cgraph_output_in_order): Don't clear
625         cgraph_asm_nodes until after asm strings have been output.
626
627 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
628
629         * fix-header.c (read_scan_file): Add new parameter imultilib when
630         calling register_include_chains.
631
632 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
633
634         * omp-low.c: Update documentation.
635
636 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
637             Daniel Berlin  <dberlin@dberlin.org>
638
639         PR tree-opt/25315
640         PR tree-opt/25857
641         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
642         return from the function.
643
644 2006-01-22  Zack Weinberg  <zackw@panix.com>
645
646         * rtl.def (match_code): Add second argument.
647         * genpreds.c (write_extract_subexp): New function.
648         (write_match_code): Add path argument.  Use write_extract_subexp.
649         (write_predicate_expr): Pass path to write_match_code.
650         (mark_mode_tests): MATCH_CODE applied to a subexpression does
651         not perform a mode test.
652         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
653         a subexpression does not constrain the top-level code set.
654         * read-rtl.c (read_rtx_variadic): New function.
655         (read_rtx_1): Use it; allow AND and IOR to be variadic.
656         * doc/md.texi: Document new notation.
657         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
658         (cmpsi_operand): ... here, using new notation.
659
660 2006-01-22  Zack Weinberg  <zackw@panix.com>
661
662         * varray.c: Remove GENERATOR_FILE #ifdefs.
663
664 2006-01-22  Zack Weinberg  <zackw@panix.com>
665
666         * genautomata.c (output_reserved_units_table): Emit nothing if
667         description->query_units_num is zero.  Remove extra blank line.
668         (output_cpu_unit_reservation_p): Short circuit
669         if description->query_units_num is zero.
670
671 2006-01-22  Zack Weinberg  <zackw@panix.com>
672
673         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
674         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
675         nor any of the random handful of variables that used to be necessary
676         when this program was linked with rtlanal.o.  Prune set of forward
677         function declarations.
678         (struct attr_desc): Remove static_p field.
679         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
680         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
681         (attr_string): Do not read the character one past the length of
682         the string.
683         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
684         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
685         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
686         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
687         (make_automaton_attrs): New.
688         (main): Do not call into genautomata.  Call local gen_bypass
689         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
690         Remove special case for insn_alts.
691         * genautomata.c: Include gensupport.h; not genattrtab.h nor
692         varray.h (leftover from previous change).  Prune set of forward
693         function declarations.  Remove state_alts fields from all
694         structures.  Remove state_alts_table from struct automaton.
695         Make everything except main static.  Do not maintain num_dfa_decls.
696         Do not maintain state_alts fields of various structures.
697         (process_decls): Don't validate condexp for dm_insn_reserv decls.
698         (add_arc): Remove state_alts argument.  All callers updated.
699         (output_reserved_units_table): Emit #ifdef here...
700         (output_tables): ...not here.  Don't generate state_alts tables.
701         (expand_automata): Don't generate attributes.
702         (write_automata): Don't generate state_alts functions.
703         (main): New function.
704         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
705         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
706         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
707         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
708         (BYPASS_P_FUNC_NAME, output_state_alts_table)
709         (output_automata_list_state_alts_code, output_internal_state_alts_func)
710         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
711         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
712         Delete.
713         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
714         * genattrtab.h: Delete file.
715         * Makefile.in (OBJS-common): Add insn-automata.o.
716         (insn-automata.o): New rule.
717         (simple_generated_c): Add insn-automata.c.
718         (build/genattrtab.o, build/genautomata.o): Update dependencies.
719         (genprogmd): Add automata.
720         (build/genattrtab): Needs no extra objects nor libraries.
721         (build/genautomata): Needs build/vec.o and -lm.
722
723 2006-01-22  Zack Weinberg  <zackw@panix.com>
724
725         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
726         (output_dfa_max_issue_rate, locked_states_num): Delete.
727         (struct automaton): Add locked_states field.
728         (output_dead_lock_vect): Save number of locked states in
729         automaton->locked_states.  If it is zero, don't print anything.
730         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
731         (output_internal_dead_lock_func): Only test the dead_lock_vect
732         for automata that have locked states.
733         (output_statistics): Always print the number of locked states for
734         each automaton.  Calculate total number of locked states here.
735         (write_automata): Don't call output_dfa_max_issue_rate.
736         * genattrtab.c: Define length_unit_log as a const variable.
737         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
738         max_insn_queue_index const.
739         * final.c (length_unit_log): Declare const.
740         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
741
742 2006-01-22  Zack Weinberg  <zackw@panix.com>
743
744         * genautomata.c:  Include vec.h, not varray.h.
745         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
746         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
747         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
748         VEC_* macros operating on appropriately typed vectors, or to
749         malloced arrays when the size is known in advance.  Const-ify
750         many char* variables and function arguments.  No functional changes.
751         * Makefile.in (build/varray.o): Delete rule.
752         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
753         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
754
755 2006-01-22  Zack Weinberg  <zackw@panix.com>
756
757         * gensupport.c: Define get_insn_name and record_insn_name here.
758         (read_md_rtx): Call record_insn_name as appropriate.
759         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
760         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
761         * genpreds.c, genrecog.c: Don't define get_insn_name nor
762         record_insn_name.
763         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
764         (BUILD_VARRAY): Delete.
765         (genprognormal): Rename genprogmd.  Fold in all programs from
766         genprognoprint; also attrtab.
767         (build/genattrtab): Just mention genautomata.o and varray.o.
768         Reorganize a bit, add comments to make the categories clearer.
769
770 2006-01-22  Zack Weinberg  <zackw@panix.com>
771
772         * genconditions.c (condition_table, add_condition): Delete.
773         (write_conditions): Don't emit n_insn_conditions nor
774         insn_elision_unavailable.  Issue the gcc version #ifdef here,
775         inside the table, with no #else clause ...
776         (write_header): ...not here.
777         (write_writer): New function.
778         (main): Don't initialize condition_table.  Use add_c_test.
779         Call write_writer.
780         * gensupport.c (init_md_reader_args_cb): Handle multiple input
781         files on the command line.
782         (maybe_eval_c_test): Don't check insn_elision_unavailable.
783         Return -1 if there is no entry in the table, don't abort.
784         (add_c_test, traverse_c_tests): New functions.
785         * gensupport.h (insn_elision_unavailable, insn_conditions)
786         (n_insn_conditions): Delete declarations.
787         (add_c_test, traverse_c_tests): Declare.
788         * read-rtl.c: Include gensupport.h.
789         (read_conditions): New function.
790         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
791         (read_rtx_1): If we get EOF when we were looking for an initial
792         open paren, return 0.  Call read_conditions when appropriate.
793         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
794         dummy-conditions.o.  Eliminate references to insn-conditions.o,
795         or change them to build/gencondmd.o, as appropriate.  Remove
796         insn-constants.h from $(simple_generated_h) and insn-conditions.c
797         from $(simple_generated_c).  For all files remaining in those
798         two lists, add insn-conditions.md to the generator command line.
799         Give insn-constants.h/s-constants their own rules.  Add rules
800         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
801         (build/read-rtl.o): Depend on gensupport.h.
802         (genprognormal): Include preds.
803         (genprogearly): Rename genprognoprint; only difference is now that
804         they don't link with $(BUILD_PRINT).
805         * dummy-conditions.c: Delete.
806
807 2006-01-22  Zack Weinberg  <zackw@panix.com>
808
809         * genextract.c: Don't include insn-config.h.  Do include vec.h.
810         Declare vectors of int, char, and locstr.
811         (locstr): New typedef.
812         (struct extraction): Make all array fields into bare pointers.
813         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
814         (insn_code_number): Delete.
815         (accum_extract): New struct.
816         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
817         (gen_insn): Take insn_code_number as an argument.  Use an
818         accum_extract structure instead of loading data directly into
819         a struct extraction, and having to know how big it might get.
820         (walk_rtx): Operate entirely on an accum_extract structure.
821         (print_path): Avoid unnecessary use of printf.
822         (print_header): New function, split out of main.  Distinguish
823         more carefully between an unrecognizable insn and an insn that
824         has the code number of a define_expand.
825         (main): Pass insn_code_number to gen_insn.  Call print_header
826         only after parsing.  Avoid unnecessary use of printf.
827         * Makefile.in (build/vec.o): New rule.
828         (build/genextract): Depend on build/vec.o.
829         (build/genextract.o): Don't depend on insn-config.h.
830
831 2006-01-22  Zack Weinberg  <zackw@panix.com>
832
833         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
834         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
835         practical.  Eliminate per-generator-program link rules.
836
837 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
838
839         PR middle-end/24437
840         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
841         with a call expr to ...
842         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
843
844 2006-01-23  Richard Guenther  <rguenther@suse.de>
845
846         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
847         before make_edge with conditional EDGE_TRUE_VALUE.
848
849 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
850         Jan Hubicka  <jh@suse.cz>
851         Richard Guenther  <rguenther@suse.de>
852
853         PR rtl-optimization/25654
854         * cfgexpand.c (aggregate_contains_union_type): New function.
855         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
856         for structure variables that contain a union type.
857
858 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
859
860         * gengtype.c (new_structure): Return the structure.
861         (create_option): Add an extra "next" argument.
862         (create_field): New function.
863         (adjust_field_rtx_def): Use create_option and create_field.
864         Remove a now-unnecessary call to find_structure.
865         (adjust_field_tree_def): Likewise.
866         (note_yacc_type): Remove an unnecessary call to find_structure.
867         * gengtype.h (new_structure): Return the structure.
868         (create_option): Add an extra argument.
869         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
870         (option): Adjust calls to create_option.
871
872 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
873
874         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
875
876 2006-01-22  Paul Brook  <paul@codesourcery.com>
877         Peter Barada  <peter@the-baradas.com>
878
879         * config/m68k/m68k.md: Add Coldfire FPU support.
880         Define FP mode macro and associated attributes.
881         Use it for float mode patterns.
882         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
883         (LIBCALL_VALUE): Use m68k_libcall_value.
884         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
885         (m68k_function_value): Ditto.
886         (emit_move_sequence): Ditto.
887         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
888         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
889         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
890         (MULTILIB_EXCEPTIONS): Ditto.
891         * config/m68k/m68k.opt: Add mcfv4e.
892         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
893         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
894         (m68k_output_function_prologue): Save ColdFire FPU registers.
895         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
896         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
897         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
898         ColdFire FPU registers.
899         (m68k_libcall_value, m68k_function_value): New functions.
900         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
901         (LIBCALL_VALUE): Use m68k_libcall_value.
902         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
903         (MASK_COLDFIRE): Add MASK_CFV4E.
904         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
905         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
906         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
907         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
908         (GO_IF_LEGITIMATE_ADDRESS): Use it.
909         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
910         * doc/invoke.tex: Document -mcfv4e on m68k.
911
912 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
913
914         * doc/contribute.texi: Change CVS to SVN and update the corresponding
915         URL.
916
917 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
918
919         PR c++/16190
920         * c-opts.c (c_common_handle_option): Don't include
921         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
922         * doc/invoke.texi (C++ Dialect Options): Document that
923         -Wnon-virtual-dtor is no longer included in -Wall.
924
925 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
926
927         * gcov.c (print_version), gcov-dump.c (print_version),
928         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
929         dates.
930
931 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
932
933         * df-scan.c (problem_SCAN): Added NULL reset function.
934         (df_scan_reset_blocks): Added code to call reset block function
935         (df_bb_refs_delete) Fixed comment.
936         (df_insn_refs_delete): Made tolerant of deleting non existent info
937         for dataflow problems that need to be reset.
938         * df-core.c (df_set_blocks): Ditto.
939         * df.h (struct df_problem): Added reset_fun.
940         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
941         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
942         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
943         functions to clear out all references to def-use or use-def chains.
944
945 2006-01-21  Ben Elliston  <bje@au.ibm.com>
946
947         * varasm.c (assemble_real): Initialise data array.
948
949 2006-01-20  Paul Brook  <paul@codesourcery.com>
950
951         Merge from csl-arm-branch.
952         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
953         * config/arm/arm.md (movdi): Force operands[1] to a register
954         if we have a non-register source.
955         (*arm_movdi, *movdf_soft_insn): Require that one of the
956         operands be a register.
957         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
958         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
959
960 2006-01-20  DJ Delorie  <dj@redhat.com>
961
962         * varasm.c (initialize_constant_valid_p): Allow pointers
963         initialized from integer constants of lesser precision.
964         (output_constant): Allow non-int-sized pointer modes to be
965         initialized from integer constants.
966
967 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
968
969         PR libstdc++/25524
970         * cppdefault.h (struct default_include): Add multilib flag.
971         * cppdefault.c (cpp_include_defaults): Set it.
972         * c.opt (-imultilib): New option.
973         * c-opts.c (imultilib): New.
974         (c_common_handle_option): Handle -imultilib.
975         (c_common_post_options): Likewise.
976         * c-incpath.c (add_standard_paths, register_include_chains):
977         Likewise.
978         * c-incpath.h (register_include_chains): Add extra parameter.
979         * gcc.c (do_spec_1): Generate -imultilib option.
980         (The Specs Language): Update %I description.
981         (process_command): Update copyright notice.
982         * doc/cppopts.texi (-imultilib): Document.
983         * doc/invoke.texi (-imultilib): Include in option summary.
984         (%I): Update specs documentation.
985
986 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
987
988         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
989
990 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
991
992         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
993         label numbers.
994
995 2006-01-20  Richard Guenther  <rguenther@suse.de>
996         Steven Bosscher <stevenb.gcc@gmail.com>
997
998         PR rtl-optimization/24626
999         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
1000         EDGE_TRUE_VALUE if in RTL mode.
1001
1002         Revert
1003         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
1004         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
1005
1006 2006-01-20  Dirk Mueller  <dmueller@suse.com>
1007
1008         PR c++/5520
1009         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
1010         instead of a special NOP marker.
1011         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
1012         NOP marker handling.
1013         * c-common.h (empty_body_warning): Add forward declaration.
1014         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
1015         Now uses IS_EMPTY_STMT() instead of special NOP markers.
1016
1017 2006-01-20  Paul Brook  <paul@codesourcery.com>
1018
1019         * Makefile.in (lang_checks): Keep going if mkdir fails.
1020
1021 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1022
1023         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
1024         be able to clean out basic block when not necessary.
1025         (df_scan_free): Fixed to properly delete information if df is
1026         unused before calling df_finish.
1027         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
1028         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
1029         or comment typos.
1030         (df_bb_refs_delete): New function.
1031         (df_refs_delete): Moved per block code to df_bb_refs_delete.
1032         * df-core.c (df_set_blocks): Added code to properly clean out
1033         unused blocks if they are not part of the blocks to consider.
1034         Added additional null check.
1035         (df_compact_blocks): Added basic block parameter to free_bb_fun to
1036         be able to clean out basic block when not necessary
1037         * df.h (df_free_bb_function): Ditto.
1038         (df_bb_refs_delete): New function.
1039         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
1040         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
1041         basic block parameter to be able to clean out basic block when not
1042         necessary.
1043         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
1044         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
1045         Fixed to properly delete information if df is unused before
1046         calling df_finish.
1047
1048 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1049
1050         PR rtl-optimization/25799
1051         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
1052         Corrected confluence operator to remove bits from op2 before oring
1053         with op1 rather than removing bits from op1.
1054         (df_ru_transfer_function): Corrected test on wrong bitmap which
1055         caused infinite loop.  Both of these problems were introduced in
1056         the dataflow rewrite.
1057
1058 2006-01-19  DJ Delorie  <dj@redhat.com>
1059
1060         * reload1.c (find_reload_regs): Note the details of reload
1061         failures in the dump file.
1062         (spill_failure): Likewise.
1063
1064 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
1065
1066         * loop-iv.c: Include df.h and hashtab.h.
1067         (enum iv_grd_result): New enum.
1068         (DF_REF_IV, DF_REF_IV_SET): New macros.
1069         (struct biv_entry): New.
1070         (df, bivs): New global variables.
1071         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
1072         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
1073         Removed.
1074         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
1075         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
1076         analyzed_for_bivness_p, record_biv): New functions.
1077         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
1078         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
1079         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
1080         UD chains.
1081         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
1082         analysed.
1083         (iv_number_of_iterations): Use new interface to iv analysis.
1084         * loop-unroll.c: Do not include varray.h.
1085         (analyze_iv_to_split_insn): Use new interface to iv
1086         analysis.
1087         * loop-unswitch.c (may_unswitch_on): Ditto.
1088         * df.c (df_bitmaps_free): Only work for bbs for that structures are
1089         allocated.
1090         (df_bb_modify): Realloc tables to the new index.
1091         (df_find_use): New function.
1092         * df.h (df_find_use): Declare.
1093         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
1094         outmode.
1095         * cfgloop.h (struct rtx_iv): Remove analysed field.
1096         (iv_get_reaching_def): Removed.
1097         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
1098         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
1099         (loop-iv.o): Add df.h and hashtab.h dependency.
1100         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
1101
1102 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
1103
1104         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
1105         Double TFmode.
1106         (__floatundisf, __floatundidf): Likewise.
1107         * libgcc2.h (IS_IBM_EXTENDED): Define.
1108
1109 2006-01-19  DJ Delorie  <dj@redhat.com>
1110
1111         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
1112
1113 2006-01-19  Paul Brook  <paul@codesourcery.com>
1114
1115         * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
1116         as nothrow when unwinding tables are disabled.
1117
1118 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1119
1120         PR testsuite/25171
1121         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
1122         of bit-field" when in system header.
1123
1124 2006-01-19  DJ Delorie  <dj@redhat.com>
1125
1126         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
1127         the 16 bit shift limit of the m16c.
1128
1129 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
1130
1131         PR target/22099
1132         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
1133         * config/i386/i386.c (output_set_got): Output the label if we have one
1134         for the TARGET_DEEP_BRANCH_PREDICTION case.
1135
1136 2006-01-19  Jan Hubicka  <jh@suse.cz>
1137             H.J. Lu  <hongjiu.lu@intel.com>
1138             Evandro Menezes <evandro.menezes@amd.com>
1139
1140         * invoke.texi (generic): Document
1141         (i686) Update.
1142         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
1143         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
1144         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
1145         (x86_use_incdec, x86_pad_returns): New variables
1146         (TARGET_CPU_DEFAULT_generic): New constant
1147         (TARGET_CPU_DEFAULT_NAMES): Add generic.
1148         (enum processor_type): Add generic32 and generic64.
1149         * i386.md (cpu attribute): Add generic32/generic64
1150         (movhi splitter): Behave sanely when both partial_reg_dependency and
1151         partial_reg_stall are set.
1152         (K8 splitters): Enable for generic as well.
1153         * predicates.md (incdec_operand): Use TARGET_INCDEC
1154         (aligned_operand): Avoid memory mismatch stalls.
1155         * athlon.md: Enable for generic64, new patterns for 128bit moves.
1156         * ppro.md: Enable for generic32
1157         * i386.c (generic64_cost, generic32_cost): New.
1158         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
1159         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
1160         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
1161         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
1162         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
1163         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
1164         x86_partial_reg_dependency, x86_memory_mismatch_stall,
1165         x86_accumulate_outgoing_args, x86_prologue_using_move,
1166         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
1167         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
1168         Enable for generic.
1169         (x86_use_incdec, x86_pad_returns): New.
1170         (override_options): Add generic32 and generic64, translate "generic"
1171         to generic32/generic64 and "i686" to "generic32", refuse
1172         "generic32"/"generic64" as arch target.
1173         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
1174         (ix86_reorg): Honor PAD_RETURNS.
1175
1176 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
1177
1178         * tree-pretty-print.c (dump_generic_node): Handle
1179         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
1180         * cgraph.c (cgraph_expand_queue): Rename from
1181         cgraph_analyze_queue.  Update all users.
1182         * cgraphunit.c (cgraph_assemble_pending_functions): Process
1183         cgraph_expand_queue.
1184         (cgraph_expand_all_functions): Likewise.
1185         (cgraph_finalize_pending_functions): Remove.  Update callers.
1186
1187         * tree.h (OMP_DIRECTIVE_P): Define.
1188         (OMP_PARALLEL_FN): Define.
1189         (OMP_PARALLEL_DATA_ARG): Define.
1190         (OMP_SECTIONS_SECTIONS): Define.
1191         * tree-pass.h (pass_expand_omp): Declare.
1192         * omp-low.c (struct omp_region): Declare.
1193         (struct omp_context): Remove fields 'parallel_type',
1194         'parallel_start_ix' and 'parallel_start_additional_args'.
1195         Update all users.
1196         (struct omp_for_data): Rename from struct expand_omp_for_data.
1197         (omp_regions): New static variable.
1198         (root_omp_region): New static variable.
1199         (find_omp_clause): Make static.
1200         (is_in_combined_parallel_ctx): Remove.
1201         (is_combined_parallel): New.
1202         (extract_omp_for_data): Move earlier in the file.
1203         (workshare_safe_to_combine_p): New.
1204         (get_ws_args_for): New.
1205         (determine_parallel_type): Move earlier in the file.
1206         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
1207         child function.
1208         (omp_copy_decl): Likewise.
1209         (create_omp_child_function): Likewise.
1210         (lookup_omp_region): New.
1211         (dump_omp_region): New.
1212         (debug_omp_region): New.
1213         (debug_all_omp_regions): New.
1214         (new_omp_region): New.
1215         (scan_omp_parallel): If parallel_nesting_level > 1, the
1216         directive is nested within another parallel directive.
1217         Set OMP_PARALLEL_FN.
1218         (scan_omp_for): Do not try to handle combined parallel+for
1219         cases.
1220         Remove FIXME comment.
1221         (scan_omp_nested): Remove.
1222         (scan_omp_1): Do not call scan_omp_nested when
1223         parallel_nesting_level is > 1.
1224         Do not change the DECL_CONTEXT of local variables found.
1225         (lookup_decl_in_outer_ctx): New.
1226         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
1227         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
1228         (lower_reduction_clauses): Rename from expand_reduction_clauses.
1229         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
1230         If CTX is nested, lookup VAR in the outer context when
1231         building copy assignment.
1232         (lower_send_clauses): Rename from expand_send_clauses.
1233         If CTX is nested, lookup VAR in the outer context when
1234         building copy assignments.
1235         (lower_send_shared_vars): Rename from expand_send_shared_vars.
1236         If CTX is nested, lookup VAR in the outer context when
1237         building copy assignments.
1238         (expand_parallel_call): Rename from build_parallel_call.
1239         Handle combined parallel+workshare cases.
1240         Re-implement to emit code into the CFG.
1241         (list2chain): New.
1242         (expand_omp_parallel): Re-implement to emit code into the CFG.
1243         Call move_sese_region_to_fn to outline the sub-graph
1244         containing the parallel region.
1245         (expand_omp_for_1): Remove.
1246         (expand_omp_for_generic): Re-implement to emit code into the
1247         CFG.
1248         (expand_omp_for_static_nochunk): Likewise.
1249         (expand_omp_for_static_chunk): Likewise.
1250         (expand_omp_for): Likewise.
1251         (expand_omp_sections): Likewise.
1252         (remove_exit_barriers): New.
1253         (expand_omp_synch): New.
1254         (expand_omp): New.
1255         (build_omp_regions_1): New.
1256         (build_omp_regions): New.
1257         (execute_expand_omp): New.
1258         (gate_expand_omp): New.
1259         (pass_expand_omp): Define.
1260         (lower_omp_sections): Rename from expand_omp_sections.
1261         Set OMP_SECTIONS_SECTIONS.
1262         (lower_omp_single_simple): Rename from expand_omp_single_simple.
1263         (lower_omp_single_copy): Rename from expand_omp_single_copy.
1264         (lower_omp_single): Rename from expand_omp_simple.
1265         (lower_omp_master): Rename from expand_omp_master.
1266         (lower_omp_ordered): Rename from expand_omp_ordered.
1267         (lower_omp_critical): Rename from expand_omp_critical.
1268         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
1269         (lower_omp_for): Re-implement.
1270         (lower_omp_parallel): Re-implement.
1271         (lower_regimplify): Rename from expand_regimplify.
1272         (lower_omp_1): Rename from expand_omp_1.
1273         If there are syntax errors in the program, replace every
1274         OpenMP directive with NOP.
1275         Call lower_omp_* instead of expand_omp_*.
1276         (lower_omp): Rename from expand_omp.
1277
1278         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
1279         * tree-gimple.h (enum omp_parallel_type): Remove.
1280         (gimple_boolify): Declare extern.
1281         (find_omp_clause, determine_parallel_type): Remove.
1282
1283         * gimple-low.c (lower_omp_directive): New.
1284         (lower_stmt): Call it.
1285         (record_vars_into): Move from ...
1286         (record_vars): ... here.
1287         Call record_vars_into with current_function_decl.
1288
1289         * gimplify.c (struct gimplify_ctx): Remove fields
1290         combined_pre_p and combined_ctxp.  Update users.
1291         (get_formal_tmp_var): Add documentation.
1292         (gimple_boolify): Make extern.
1293         (gimplify_expr_in_ctx): Remove.  Update callers.
1294         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
1295         will always be a BIND_EXPR.
1296         (gimplify_expr): Handle OMP_RETURN_EXPR.
1297         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
1298         (OMP_PARALLEL): Add 3 operands.
1299         (OMP_SECTIONS): Add 1 operand.
1300         (OMP_RETURN_EXPR): Define.
1301
1302         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
1303         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
1304         * tree-iterator.c (alloc_stmt_list): Assert that we are not
1305         creating a circular free list.
1306         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
1307
1308         * tree-flow.h (move_sese_region_to_fn): Declare.
1309         (record_vars_into): Declare.
1310         * tree-cfg.c (make_omp_sections_edges): New.
1311         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
1312         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
1313         OMP_SECTIONS and OMP_SECTION.
1314         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
1315         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
1316         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
1317         (gather_blocks_in_sese_region): New.
1318         (struct move_stmt_d): Declare.
1319         (move_stmt_r): New.
1320         (move_block_to_fn): New.
1321         (move_sese_region_to_fn): New.
1322
1323         * passes.c (init_optimization_passes): Schedule
1324         pass_expand_omp after pass_init_datastructures.
1325
1326         * tree-ssa-operands.c (get_expr_operands): Handle
1327         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
1328         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
1329
1330 2006-01-19  Jeff Law  <law@redhat.com>
1331
1332         * tree-vrp.c (extract_range_from_assert): Refine the result range
1333         if the variable referenced by the ASSERT_EXPR has a range and
1334         either the tentative result range or the previous range is a
1335         VR_ANTI_RANGE.
1336
1337 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
1338
1339         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
1340
1341 2006-01-19  Jan Hubicka  <jh@suse.cz>
1342
1343         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
1344
1345 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
1346
1347         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
1348         (expand_compound_operation, expand_field_assignment): Fail if the
1349         bit lengths of an extract operation are out of range.
1350         (make_extraction): Compute wanted_inner_mode based on the position
1351         and length of the extraction.  Make it extraction_mode for non-constant
1352         positions, and do not modify offset in that case.  When generating a
1353         new MEM, use a mode that can hold the extraction while keeping correct
1354         alignment.  Remove code that supported MEMs wrapped by USEs.
1355         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
1356
1357 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1358
1359         * config/s390/s390.md ("Y", "y"): New mode attribute.
1360         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
1361         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
1362         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
1363         "*addsi3_imm_cc", "*addsi3_carry1_cc",
1364         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
1365         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
1366         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
1367         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
1368         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
1369         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
1370         "addsi3", "subsi3"): Insn patterns removed.
1371         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
1372         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
1373         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
1374         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
1375         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
1376         "*sub<mode>3_cconly2"): New insn patterns.
1377         ("addsi3", "subsi3"): New expanders.
1378
1379 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
1380
1381         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
1382         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
1383         existing STMT_VINFO_VECTYPE if available.
1384         (vect_mark_relevant): Add special handling for stmts that are
1385         marked as STMT_VINFO_IN_PATTERN_P.
1386         (vect_analyze_loop): Call vect_pattern_recog.
1387         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
1388         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
1389         stmt_info.
1390         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
1391         (vect_recog_func_ptr): New function-pointer type.
1392         * tree-vect-patterns.c: New file.
1393         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
1394         (vect_recog_dot_prod_pattern, vect_pattern_recog):
1395         (vect_pattern_recog_1): New functions.
1396         (vect_pattern_recog_funcs): New array of function pointers.
1397
1398         * tree-vectorizer.h (ternary_op): New enum value.
1399         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
1400         declaration. Revised documentation. Removed redundant dump prints.
1401         Removed redundant argument. Added support for reduction patterns.
1402         (vectorizable_reduction): Added support for reduction patterns.
1403         (vect_transform_stmt): Added support for patterns.
1404
1405         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
1406         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
1407         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
1408         (expand_widen_pattern_expr): New function.
1409         (init_optabs): Initialize new optabs udot_prod_optab,
1410         sdot_prod_optab.
1411         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
1412         (sdot_prod_optab, udot_prod_optab): Define new optabs.
1413         (expand_widen_pattern_expr): New function declaration.
1414         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
1415         tree-codes.
1416         * tree-inline.c (estimate_num_insns_1): Added cases for new
1417         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
1418         * tree-pretty-print.c (dump_generic_node): Likewise.
1419         (op_prio): Likewise.
1420         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
1421         * tree-ssa-operands.c (get_expr_operands): Added case for
1422         DOT_PROD_EXPR.
1423         * tree-vect-patterns.c (widened_name_p): New function.
1424         (vect_recog_dot_prod_pattern): Added function implementation.
1425         * tree-vect-transform.c (get_initial_def_for_reduction): Added
1426         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
1427         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
1428         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
1429
1430         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
1431         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
1432         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
1433         (init_optabs): Initialize new optabs widen_ssum_optab,
1434         widen_usum_optab.
1435         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
1436         (widen_ssum_optab, widen_usum_optab): Define new optabs.
1437         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
1438         use instead of type of def.
1439         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
1440         function implementation.
1441         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
1442         widen_ssumv8hi): New.
1443
1444         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
1445         patterns.
1446
1447 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
1448
1449         PR c/25805
1450         * c-decl.c (add_flexible_array_elts_to_size): New function.
1451         (finish_decl): Use it.
1452
1453 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
1454
1455         * diagnostic.h: Include options.h.
1456         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
1457         dependancies for diagnostic.h.
1458         * Makefile.in (DIAGNOSTIC_H): Add options.h.
1459
1460 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
1461
1462         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
1463         (ssa_ro_call_cache_valid): Ditto.
1464         * tree-ssa-alias.c (sort_tags_by_id): New function.
1465         (init_transitive_clobber_worklist): Ditto.
1466         (add_to_worklist): Ditto.
1467         (mark_aliases_call_clobbered): Ditto.
1468         (compute_tag_properties): Ditto.
1469         (set_initial_properties): Ditto.
1470         (compute_call_clobbered): Ditto.
1471         (compute_may_aliases):  Call compute_call_clobbered and grouping.
1472         (compute_flow_sensitive_aliasing): Remove clobbering related code.
1473         (compute_flow_insensitive_aliasing): Grouping now happens in our
1474         caller.
1475         (setup_pointers_and_addressables): Remove clobbering related code.
1476         (add_may_alias): Ditto.
1477         (replace_may_alias): Ditto.
1478         (get_nmt_for): Ditto.
1479         (create_global_var):
1480         (is_escape_site): Return an escape_type enumeration.
1481         * tree-flow-inline.h (is_call_clobbered):  Global var does not
1482         imply call clobbered.
1483         (mark_call_clobbered): Take a reason for marking this. Remove
1484         marking of globalness, and cache invalidation.
1485         (clear_call_clobbered): Remove cache invalidation code.
1486         * tree-dfa.c (dump_variable): If details is on, dump the reason
1487         for escaping.
1488         * tree-outof-ssa.c (create_temp): Copy escape mask from original
1489         variable.
1490         * tree-flow.h (struct ptr_info_def): Add escape mask member.
1491         (struct var_ann_d): Ditto.
1492         (enum escape_type): New.
1493         (mark_call_clobbered): Adjust prototype.
1494         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
1495         are never call clobbered.
1496         Record reasons for escaping.
1497         * tree-ssa-structalias.h (is_escape_site): Update prototype.
1498         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
1499         (ssa_ro_call_cache_valid): Ditto.
1500         (clobbered_v_may_defs): Ditto.
1501         (clobbered_vuses): Ditto.
1502         (ro_call_vuses): Ditto.
1503         (clobber_stats): New.
1504         (init_ssa_operands): Zero out clobber stats.
1505         (fini_ssa_operands): Print out clobber stats.
1506         (get_call_expr_operands): Pass callee fndecl to
1507         add_call_read_ops).
1508         (add_call_clobber_ops): Remove use of cache.
1509         Add use of PURE_CONST information.
1510         (add_call_read_ops): Remove use of cache.
1511         Add use of static not_read information.
1512
1513 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
1514
1515         Introduce TLS descriptors for i386 and x86_64.
1516         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
1517         (TARGET_ANY_GNU_TLS): New macro.
1518         (enum tls_dialect): Added TLS_DIALECT_GNU2.
1519         (struct machine_function): Add tls_descriptor_call_expanded_p.
1520         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
1521         (ix86_current_function_calls_tls_descriptor): Likewise.
1522         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
1523         (override_options): Introduce gnu2 tls dialect.
1524         (ix86_frame_pointer_required): Functions containing TLSCALLs are
1525         not leaves.
1526         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
1527         Likewise.
1528         (legitimize_tls_address): Adjust logic for GNU2 TLS.
1529         (ix86_init_machine_status): Initialize new field.
1530         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
1531         (ix86_tls_module_base): New.
1532         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
1533         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
1534         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
1535         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
1536         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
1537         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
1538         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
1539         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
1540         * config/i386/predicates.md (tls_modbase_operand): New.
1541         (tp_or_register_operand): New.
1542
1543 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
1544
1545         * ipa-reference.c (check_operand):  Allow FUNCTION_DECL.
1546         (look_for_address_of): Ditto.
1547         (ipa_init): Walk the function decls.
1548         (static_execute): Don't set readonly on FUNCTION_DECL's.
1549
1550 2006-01-18  Roger Sayle  <roger@eyesopen.com>
1551
1552         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
1553         for shifts where the source and destination registers are different.
1554
1555 2006-01-18  Paul Brook  <paul@codesourcery.com>
1556
1557         Merge from csl-arm-branch.
1558         2005-03-14  Julian Brown  <julian@codesourcery.com>
1559         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
1560         (aeabi_llsl): Likewise.
1561         (ashrdi3): Likewise.
1562         (aeabi_lasr): Likewise.
1563         (lshrdi3): Likewise.
1564         (aeabi_llsr): Likewise.
1565         2005-03-10  Julian Brown  <julian@codesourcery.com>
1566         * config.gcc: Disable shared libgcc for SymbianOS.
1567         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
1568
1569 2006-01-18  DJ Delorie  <dj@redhat.com>
1570
1571         * c-pragma.c (handle_pragma_diagnostic): New.
1572         (init_pragma): Register it.
1573         * doc/extend.texi: Document it.
1574
1575         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
1576         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
1577         (diagnostic_context): Add classify_diagnostic[].
1578         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
1579         as errors if they're overridden to DK_WARNING.
1580         (diagnostic_initialize): Initialize classify_diagnostic[].
1581         (diagnostic_set_kind_override): New.
1582         (diagnostic_report_diagnostic): Check for kind changes.
1583         * opts.c (common_handle_option): Take lang_mask.  Update callers.
1584         Handle OPT_Werror_.
1585         * common.opt (Werror=): New.
1586         * doc/invoke.texi: Document -Werror=*
1587
1588 2006-01-18  Jeff Law  <law@redhat.com>
1589
1590         * tree-vrp.c (test_for_singularity): Correct test for new
1591         min limit.  Use operand_equal_p rather than pointer equality
1592         for testing if new min/max values are equal.
1593
1594         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
1595         using range information until after propagation and folding.
1596
1597 2006-01-18  Richard Henderson  <rth@redhat.com>
1598             Aldy Hernandez  <aldyh@redhat.com>
1599             Jakub Jelinek  <jakub@redhat.com>
1600             Diego Novillo  <dnovillo@redhat.com>
1601
1602         * omp-low.c: New file.
1603         * c-omp.c: New file.
1604
1605 2006-01-18  Richard Henderson  <rth@redhat.com>
1606             Jakub Jelinek  <jakub@redhat.com>
1607             Diego Novillo  <dnovillo@redhat.com>
1608
1609         * doc/invoke.texi: Document -fopenmp.
1610         * tree-dump.h (debug_function): Declare.
1611         * hooks.c (hook_bool_tree_bool_false): New function.
1612         (hook_tree_tree_null): Remove.
1613         (hook_tree_tree_tree_null): New.
1614         * hooks.h: Update to match.
1615         * tree-pretty-print.c (debug_tree_chain): New.
1616         (print_generic_expr): Handle TDF_CHAIN.
1617         (dump_generic_node): Handle BLOCK.
1618         Do not abort with incomplete SWITCH_EXPRs.
1619         Do not dump body of an OpenMP directive if TDF_SLIM is given.
1620         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
1621         print space after directive name.
1622         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
1623         Handle OMP_MASTER and OMP_ORDERED.
1624         Handle printing of OMP_BODY just in one place, goto
1625         dump_omp_body in the rest of OMP_* nodes that have
1626         OMP_BODY.
1627         Don't handle clause nodes here.  Update omp statements to
1628         use dump_omp_clauses.
1629         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
1630         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
1631         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
1632         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
1633         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
1634         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
1635         Adjust output for GOMP_PARALLEL.
1636         (dump_omp_clauses): New.
1637         (print_declaration): Dump DECL_VALUE_EXPR.
1638         (op_symbol_1): Split out of op_symbol.
1639         (dumping_stmts): Remove.  Update all users.
1640         * cgraph.c (cgraph_analyze_queue): New.
1641         (cgraph_add_new_function): New.
1642         * cgraph.h (cgraph_analyze_queue): Declare.
1643         (cgraph_add_new_function): Declare.
1644         (cgraph_lower_function): Remove.
1645         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
1646         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
1647         and TYPE_P nodes in its default clause.
1648         (empty_body_p): New.
1649         (tree_range_check_failed): New.
1650         (build5_stat): New.
1651         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
1652         OMP_CLAUSE_REDUCTION_MERGE,
1653         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
1654         OMP_CLAUSE_PRIVATE_DEBUG,
1655         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
1656         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
1657         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
1658         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
1659         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
1660         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
1661         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
1662         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
1663         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
1664         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
1665         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
1666         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
1667         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
1668         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
1669         (TREE_RANGE_CHECK): New.
1670         (empty_body_p): Declare.
1671         (enum omp_clause_default_kind): New.
1672         (build_string_literal): Declare.
1673         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
1674         (build5_stat, build5): Declare.
1675         * tree-pass.h (TDF_CHAIN): Define.
1676         * tree-pass.h (PROP_gimple_lomp): Define.
1677         (pass_lower_omp): Declare.
1678         * diagnostic.h (debug_tree_chain): Declare.
1679         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
1680         mode_for_size.
1681         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
1682         * builtins.c (build_string_literal): Make extern.
1683         * gcc.c (include_spec_function): New.
1684         (static_spec_functions): Add it.
1685         (main): Move load of libgomp.spec ...
1686         (LINK_COMMAND_SPEC): ... here.
1687         (link_gomp_spec): New.
1688         (static_specs): Include it.
1689         (LINK_COMMAND_SPEC): Add link_gomp.
1690         (GOMP_SELF_SPECS): New.
1691         (driver_self_specs): Include it.
1692         (switch_matches): Don't mark inline.
1693         (main): Load libgomp.spec.
1694         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
1695         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
1696         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
1697         * tree-gimple.h (enum omp_parallel): Declare.
1698         (determine_parallel_type): Declare.
1699         (omp_firstprivatize_variable): Declare.
1700         (omp_reduction_init): Declare.
1701         (diagnose_omp_structured_block_errors): Declare.
1702         (struct walk_stmt_info): Add want_return_expr.
1703         (struct walk_stmt_info): Add want_bind_expr, want_locations.
1704         (find_omp_clause): Declare.
1705         (insert_field_into_struct): Declare.
1706         (struct walk_stmt_info): Move from tree-nested.c
1707         (walk_stmts): Declare.
1708         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
1709         to 200505.
1710         * cgraphunit.c (cgraph_lower_function): Make static.
1711         (cgraph_finalize_pending_functions): New.
1712         (cgraph_finalize_function): Call it.
1713         (cgraph_finalize_compilation_unit): Likewise.
1714         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
1715         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
1716         (BT_FN_UINT_UINT): New.
1717         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
1718         DEF_FUNCTION_TYPE_VAR_4): Document.
1719         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
1720         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
1721         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
1722         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
1723         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
1724         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
1725         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
1726         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
1727         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
1728         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
1729         into separate files.
1730         (DEF_GOMP_BUILTIN): New.
1731         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
1732         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
1733         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
1734         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
1735         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
1736         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
1737         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
1738         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
1739         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
1740         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
1741         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
1742         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
1743         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
1744         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
1745         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
1746         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1747         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1748         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1749         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1750         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
1751         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
1752         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
1753         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
1754         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
1755         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
1756         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
1757         * sync-builtins.def: New file, moved from builtins.def.
1758         * omp-builtins.def: New file, moved from builtins.def.
1759         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
1760         * gimple-low.c (lower_function_body): Clear data.
1761         (lower_stmt): Do not handle COMPOUND_EXPR.
1762         Remove call to print_node_brief.
1763         * c-tree.h (c_finish_omp_clauses): New prototype.
1764         (C_DECL_THREADPRIVATE_P): Define.
1765         (lookup_name_no_remap, c_omp_remap_private): Remove
1766         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
1767         (check_for_loop_decls): Update decl.
1768         (lookup_name_no_remap, c_omp_remap_private): Declare.
1769         (build_indirect_ref, build_modify_expr, pushdecl,
1770         pushdecl_top_level): Move to c-common.h.
1771         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
1772         before the switch, but just in the 2 places that need it.
1773         * c-decl.c (diagnose_mismatched_decls): Do not check for
1774         mismatched thread-local attributes when OLDDECL is marked
1775         threadprivate and NEWDECL has no thread-local attributes.
1776         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
1777         (c_gimple_diagnostics_recursively): Rename from
1778         c_warn_unused_result_recursively.  Invoke
1779         diagnose_omp_structured_block_errors.
1780         (check_for_loop_decls): Return a singular decl found.
1781         * langhooks.c (lhd_omp_predetermined_sharing): Return
1782         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
1783         (lhd_omp_firstprivatize_type_sizes): New.
1784         (lhd_omp_assignment): New.
1785         (lhd_omp_predetermined_sharing): New.
1786         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
1787         (struct lang_hooks_for_types): Add
1788         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
1789         omp_predetermined_sharing, omp_disregard_value_expr,
1790         omp_private_debug_clause, omp_clause_default_ctor,
1791         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
1792         (c_finish_omp_clauses): New.
1793         (c_finish_bc_stmt): Diagnose break within omp for.
1794         (c_begin_omp_parallel, c_finish_omp_parallel): New.
1795         (build_unary_op): Return error_mark after reporting
1796         a readonly_error.
1797         (build_modify_expr): Likewise.
1798         * gimplify.c: Include optabs.h and pointer-set.h.
1799         (enum gimplify_omp_var_data): Declare.
1800         (struct gimplify_omp_ctx): Declare.
1801         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
1802         and combined_ctxp.
1803         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
1804         (push_gimplify_context, pop_gimplify_context): Allow nesting.
1805         (splay_tree_compare_decl_uid): New.
1806         (new_omp_context): New.
1807         (delete_omp_context): New.
1808         (gimple_add_tmp_var): Call omp_add_variable.
1809         (gimplify_bind_expr): Likewise.
1810         (gimplify_var_or_parm_decl): If omp_notice_variable returned
1811         true, disregard DECL_VALUE_EXPR on the decl if any.
1812         (gimplify_expr_in_ctx): New.
1813         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
1814         omp_add_variable, omp_notice_variable, omp_is_private
1815         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
1816         gimplify_adjust_omp_clauses, gimplify_omp_parallel
1817         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
1818         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
1819         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
1820         gimplify_omp_atomic): New.
1821         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
1822         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
1823         OMP_CRITICAL and OMP_ATOMIC.
1824         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
1825         * c-pragma.h (enum pragma_kind): Add
1826         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
1827         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
1828         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
1829         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
1830         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
1831         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
1832         PRAGMA_OMP_THREADPRIVATE.
1833         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
1834         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
1835         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
1836         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
1837         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
1838         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
1839         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
1840         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
1841         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
1842         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
1843         * tree-ssa-dce.c (find_control_dependence): Do not assume that
1844         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
1845         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
1846         OpenMP directives.
1847         (struct nesting_info): Add field_map,
1848         suppress_expansion, debug_var_chain.
1849         (create_nesting_tree): Initialize them.
1850         (lookup_field_for_decl): Use field_map.
1851         (get_nonlocal_debug_decl, get_local_debug_decl): New.
1852         (convert_local_omp_clauses): New.
1853         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
1854         (walk_body): Split out of walk_function.
1855         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
1856         (convert_nonlocal_reference): Handle omp statements.
1857         (convert_local_reference): Likewise.
1858         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
1859         (unnest_nesting_tree): New.
1860         (lower_nested_functions): Call it.
1861         (insert_field_into_struct): Make extern.
1862         (struct walk_stmt_info): Move to tree-gimple.h.
1863         (walk_stmts): Make extern.
1864         * omp-builtins.def: New file.
1865         * tree-iterator.c (expr_only): Clarify comment.
1866         * c-common.h (pushdecl_top_level, pushdecl,
1867         build_modify_expr, build_indirect_ref,
1868         c_finish_omp_master, c_finish_omp_critical,
1869         c_finish_omp_ordered, c_finish_omp_barrier,
1870         c_finish_omp_atomic, c_finish_omp_flush,
1871         c_finish_omp_for, c_split_parallel_clauses,
1872         omp_clause_default_kind, c_omp_sharing_predetermined,
1873         c_omp_remap_decl): Declare.
1874         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
1875         (OBJS-common): Add omp-low.o.
1876         (c-omp.o, omp-low.o): Add.
1877         (gimplify.o): Add dependency on $(OPTABS_H).
1878         (GTFILES): Add omp-low.c.
1879         (gt-stringpool.h): Add.
1880         * tree-cfg.c (set_bb_for_stmt): Do not update the
1881         block-to-labels map if we are currently expanding to RTL.
1882         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
1883         checks.
1884         Handle IDENTIFIER_NODE.
1885         (tree_verify_flow_info): Do not ICE when emitting error
1886         messages about invalid labels.
1887         (dump_function_to_file): Reset CFUN before emitting the body
1888         of the function.
1889         (debug_function): New.
1890         * passes.c (init_optimization_passes): Schedule
1891         pass_lower_omp.
1892         * langhooks-def.h (lhd_omp_predetermined_sharing,
1893         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
1894         Declare.
1895         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
1896         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
1897         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
1898         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
1899         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
1900         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
1901         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
1902         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1903         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
1904         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
1905         (LANG_HOOK_DECLS): Use them.
1906
1907 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
1908             Richard Henderson  <rth@redhat.com>
1909             Jakub Jelinek  <jakub@redhat.com>
1910             Diego Novillo  <dnovillo@redhat.com>
1911
1912         * c-parser.c (pragma_omp_clause): Define.
1913         (c_parser_declaration_or_fndef): Document OpenMP syntax.
1914         (c_parser_compound_statement): Likewise.
1915         (c_parser_statement): Likewise.
1916         (c_parser_pragma): Handle omp pragmas.
1917         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
1918         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
1919         (c_parser_omp_clause_name, check_no_duplicate_clause,
1920         c_parser_omp_variable_list,
1921         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
1922         c_parser_omp_clause_copyprivate,
1923         c_parser_omp_clause_default,
1924         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
1925         c_parser_omp_clause_lastprivate,
1926         c_parser_omp_clause_nowait,
1927         c_parser_omp_clause_num_threads,
1928         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
1929         c_parser_omp_clause_reduction,
1930         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
1931         c_parser_omp_all_clauses, c_parser_omp_structured_block,
1932         c_parser_omp_atomic, c_parser_omp_barrier,
1933         c_parser_omp_critical, c_parser_omp_flush,
1934         c_parser_omp_for_loop, c_parser_omp_for,
1935         c_parser_omp_master, c_parser_omp_ordered,
1936         c_parser_omp_sections_scope, c_parser_omp_sections,
1937         c_parser_omp_parallel, c_parser_omp_single,
1938         c_parser_omp_construct, c_parser_omp_threadprivate): New.
1939         * c-pragma.c (init_pragma): Do omp pragma registration here.
1940         * c.opt (fopenmp): New flag.
1941
1942 2006-01-18  Eric Christopher  <echristo@apple.com>
1943
1944         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
1945         * config/darwin.h (GOMP_SELF_SPECS): Define.
1946
1947 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
1948
1949         * rtl.h: Remove the prototype for reg_alloc.
1950
1951 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1952
1953         PR target/25731
1954         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
1955         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
1956         sjlj and dwarf2 exception handling.
1957         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
1958         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
1959         * pa/pa.c (function_value): Treat complex and vector types as
1960         aggregates.
1961         (function_arg): Likewise.  Only pass scalar floats in the floating
1962         point argument registers.
1963         * pa/t-slibgcc-dwarf-ver: New file.
1964         * pa/t-slibgcc-sjlj-ver: New file.
1965         * pa/t-slibgcc-elf-ver: Delete file.
1966
1967 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
1968
1969         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
1970         unlikely_test_section_p test.
1971
1972 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
1973
1974         * mode-switching.c (optimize_mode_switching): Make it static.
1975         * basic-block.h: Remove the prototype for
1976         optimize_mode_switching.
1977
1978         * modulo-sched.c (sms_schedule): Make it static.
1979         * rtl.h: Remove the prototype for sms_schedule.
1980
1981         * postreload-gcse.c (gcse_after_reload_main): Make it static.
1982         * rtl.h: Remove the prototype for gcse_after_reload_main.
1983
1984         * reg-stack.c (reg_to_stack): Make it static.
1985         * rtl.h: Remove the prototype for reg_to_stack.
1986
1987         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
1988         Make them static.
1989         * rtl.h: Remove the prototypes for regrename_optimize and
1990         copyprop_hardreg_forward.
1991
1992 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
1993
1994         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
1995         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
1996         Test against the appropriate null constant for the mode.
1997         If 'fixup_overlap' is true, swap the operands if they overlap.
1998         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
1999         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
2000         alpha_split_tmode_pair and adjust for above change.
2001         * config/alpha/alpha.md (movtf_internal): Adjust call to
2002         alpha_split_tfmode_pair and rely on it to swap the operands.
2003         (movti_internal): New insn and post-reload splitter.
2004         (movti): New expander.
2005
2006 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
2007
2008         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
2009         operands.
2010
2011 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
2012
2013         * rtlanal.c (global_reg_mentioned_p_1,
2014         global_reg_mentioned_p): Remove.
2015         * rtl.h: Remove the prototype for global_reg_mentioned_p.
2016
2017         * flow.c (initialize_uninitialized_subregs): Make it static.
2018         * rtl.h: Remove the prototype for
2019         initialize_uninitialized_subregs.
2020
2021         * function.c (instantiate_virtual_regs): Make it static.
2022         * function.h: Remove the prototype for
2023         instantiate_virtual_regs.
2024
2025         * regmove.c (regmove_optimize, combine_stack_adjustments):
2026         Make them static.
2027         * rtl.h: Remove the prototypes for regmove_optimize and
2028         combine_stack_adjustments.
2029
2030 2006-01-17  Roger Sayle  <roger@eyesopen.com>
2031
2032         * config/i386/i386.c (COSTS_N_BYTES): New macro.
2033         (size_cost): Encode costs in bytes so that a reg-reg addition is
2034         equivalent to COSTS_N_INSNS(1).
2035         (override_options): Use the size_cost.branch_cost as the default
2036         ix86_branch_cost when optimizing for size.
2037
2038 2006-01-18  Ben Elliston  <bje@au.ibm.com>
2039
2040         * Makefile.in (D32PBIT_FUNCS): New.
2041         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
2042         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
2043         D64PBIT_FUNCS and D128PBIT_FUNCS.
2044         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
2045         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
2046         D128PBIT are set.
2047         (decnumber_dep): Define.
2048         * doc/libgcc.texi (Decimal float library routines): New node.
2049         * config/dfp-bit.h, config/dfp-bit.c: New files.
2050
2051 2006-01-18  Ben Elliston  <bje@au.ibm.com>
2052
2053         * expr.c (emit_move_change_mode): Always adjust addresses, not
2054         just during reload.  Copy replacements only during reload.
2055         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
2056         emit_move_via_integer.
2057
2058 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
2059
2060         * Makefile.in (check-%, check-consistency): Use $${srcdir}
2061         instead of $(srcdir) and ${srcdir}.
2062
2063 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
2064
2065         PR target/592
2066         PR middle-end/11135
2067         * arm.h (struct machine_function): Add pic_reg.
2068         * arm.c (arm_pic_register): Make unsigned.
2069         (arm_override_options): Only set arm_pic_register if
2070         TARGET_SINGLE_PIC_BASE.
2071         (use_return_insn): Only test for a pic register if it is fixed.
2072         (arm_compute_save_reg0_reg12_mask): Likewise.
2073         (thumb_compute_save_reg_mask): Likewise.
2074         (legitimate_pic_operand): Factor out some known invariants.
2075         (legitimize_pic_address): If we don't have a fixed pic register,
2076         then set up a pseudo in the function entry sequence.  Handle the
2077         pic base being in a pseudo.
2078         (arm_load_pic_register): Handle the pic register being in a pseudo.
2079         (arm_expand_prologue): Only set up the pic register if it is fixed.
2080         (thumb_expand_prologue): Likewise.
2081         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
2082         (pic_load_addr_based_insn): Likewise.
2083         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
2084         fixed.
2085
2086 2006-01-18  Ben Elliston  <bje@au.ibm.com>
2087
2088         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
2089         decimal float modes for all floating point registers.
2090
2091         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
2092         match_code "mem" with match_test "macho_lo_sum_memory_operand".
2093
2094 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
2095
2096         PR c/25682
2097         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
2098         even when the pointer is not NULL.
2099
2100 2006-01-16  Ian Lance Taylor  <ian@airs.com>
2101
2102         * common.opt (ftoplevel-reorder): New option.
2103         * cgraph.c (cgraph_asm_nodes): New global variable.
2104         (cgraph_asm_last_node): New static variable.
2105         (cgraph_order): New global variable.
2106         (cgraph_create_node): Set new order field.
2107         (cgraph_varpool_node): Likewise.
2108         (decide_is_variable_needed): Return true if not
2109         flag_toplevel_reorder.
2110         (cgraph_add_asm_node): New function.
2111         * cgraph.h (struct cgraph_node): Add order field.
2112         (struct cgraph_varpool_node): Add order field.
2113         (struct cgraph_asm_node): Define.
2114         (cgraph_asm_nodes, cgraph_order): Declare.
2115         (cgraph_add_asm_node): Declare.
2116         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
2117         function.
2118         (cgraph_varpool_assemble_pending_decls): Call it.
2119         (cgraph_output_pending_asms): New static function.
2120         (cgraph_finalize_compilation_unit): Call it.
2121         (struct cgraph_order_sort): Define.
2122         (cgraph_output_in_order): New static function.
2123         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
2124         !flag_toplevel_reorder case.
2125         * c-parser.c: Include "cgraph.h".
2126         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
2127         assemble_asm.
2128         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
2129         than -fno-unit-at-a-time.
2130         * doc/invoke.texi (Option Summary): Mention
2131         -fno-toplevel-reorder.
2132         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
2133         -funit-at-a-time documentation.
2134
2135 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
2136             Kazu Hirata  <kazu@codesourcery.com>
2137
2138         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
2139
2140 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
2141
2142         * Makefile.in (FUNCTION_H): New.  Use it instead of
2143         function.h throughout the file.
2144         * function.h: Include tree.h.
2145
2146 2006-01-17  Ben Elliston  <bje@au.ibm.com>
2147
2148         * recog.c: Separate some functions with whitespace.
2149
2150 2006-01-16  Richard Henderson  <rth@redhat.com>
2151
2152         Merge from gomp branch:
2153         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
2154         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
2155         and rename from struct inline_data.  Rename callee* to dst*;
2156         caller* to src*; add copy_decl hook, transform_call_graph_edges,
2157         transform_new_cfg, transform_return_to_modify, and
2158         transform_lang_insert_block flags; remove cloning_p, versioning_p,
2159         update_clones_p.
2160         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
2161         (copy_decl_for_dup): Remove.
2162         * tree-inline.c (struct inline_data): Move to header.
2163         (insert_decl_map): Export.
2164         (remap_decl): Update for member name changes.  Use copy_decl hook.
2165         Allow for replacement to be a non-decl.  Remove dead code.
2166         (remap_type_1): Check for existing mapping.
2167         (remap_type): Export.
2168         (remap_decls): Update for member name changes.
2169         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
2170         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
2171         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
2172         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
2173         (tree_function_versioning, build_duplicate_type): Likewise.
2174         (copy_body_r): Likewise.  Export.
2175         (copy_decl_for_dup): Split into ...
2176         (copy_decl_for_dup_finish, copy_decl_to_var,
2177         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
2178         (replace_ref_tree, inlining_p): Remove.
2179
2180 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
2181
2182         * ifcvt.c (if_convert): Make it static.
2183         * rtl.h: Remove the prototype for if_convert.
2184
2185         * local-alloc.c (local_alloc): Make it static.
2186         * rtl.h: Remove the prototype for local_alloc.
2187
2188         * loop.c (loop_optimize): Make it static.
2189         * cfgloop.h: Remove the prototype for loop_optimize.
2190         * rtl.h: Likewise.
2191
2192 2006-01-16  DJ Delorie  <dj@redhat.com>
2193
2194         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
2195         mems.
2196
2197 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2198
2199         * pa.md: Disparage copies between general and floating-point registers
2200         in 32-bit move patterns.
2201
2202 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
2203
2204         PR testsuite/25741
2205         * Makefile.in (check-%): Depend on site.exp instead of
2206         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
2207         directories.
2208
2209 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
2210
2211         * global.c (global_alloc): Make it static.
2212         * rtl.h: Remove the prototype for global_alloc.
2213
2214 2006-01-16  Richard Guenther  <rguenther@suse.de>
2215
2216         * tree-ssa-alias.c (struct used_part): Add write_only field.
2217         (get_or_create_used_part_for): Initialize it to true.
2218         (create_overlap_variables_for): Don't create structure variables
2219         for structures that only are written to.
2220         (find_used_portions): Handle MODIFY_EXPR to track whether a
2221         structure is only written to.
2222
2223 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
2224
2225         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
2226         static.
2227         * basic-block.h: Remove the prototype for
2228         partition_hot_cold_basic_blocks.
2229
2230 2006-01-16  Rafael Ãƒvila de Espíndola <rafael.espindola@gmail.com>
2231
2232         * cppspec.c (lang_specific_spec_functions): Remove.
2233         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
2234         * gcc.h (lang_specific_spec_functions): Remove.
2235         * gccspec.c (lang_specific_spec_functions): Remove.
2236
2237 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
2238
2239         * combine.c (record_value_for_reg): Invalidate registers
2240         if INSN is null.
2241         (record_dead_and_set_regs_1): Likewise, by passing them to
2242         record_value_for_reg.
2243         (record_dead_and_set_regs): Invalidate stores made by a
2244         call.  We do not combine across a call, but we still
2245         relied on equivalences.
2246
2247 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
2248
2249         * tree-vrp.c (extract_range_from_binary_expr): Cope with
2250         vrp_int_const_binop returning non-constant nodes.
2251
2252 2006-01-16  Paul Brook  <paul@codesourcery.com>
2253
2254         * config/m68k/m68k.c (output_move_const_into_data_reg):
2255         Output correct mnemonic for mvz and mvs.
2256
2257 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
2258
2259         * rtl-factoring.c: Add sequence abstraction algorithm.
2260         * cfgcleanup.c (outgoing_edges_match): Extra checks.
2261         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
2262         ABNORMAL edges.
2263         (block_has_preserve_label): New function.
2264         * common.opt: Register new pass.
2265         * Makefile.in: Ditto.
2266         * passes.c: Ditto.
2267         * timevar.def: Ditto.
2268         * tree-pass.h: Ditto.
2269         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
2270         * rtl.h (make_jump_insn_raw): Add forward decl.
2271         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
2272
2273 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
2274             Roger Sayle  <roger@eyesopen.com>
2275
2276         * fold-const.c (fold_minmax): New static function.
2277         (fold_binary) <MIN_EXPR>: Call it.
2278         <MAX_EXPR>: Likewise.
2279         * stor-layout.c (place_field): Use DECL_SIZE consistently
2280         in the computation of the new record size.
2281
2282 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
2283
2284         * cse.c (cse_condition_code_reg): Make it static.
2285         * rtl.h: Remove the prototype for cse_condition_code_reg.
2286
2287         * combine.c (combine_instructions): Make it static.
2288         * rtl.h: Remove the prototype for combine_instructions.
2289
2290 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2291
2292         PR target/25168
2293         * tree.c (get_file_function_name_long): Concatenate the first global
2294         object name with a string derived from the input filename of the object
2295         for type "F".
2296
2297 2006-01-16  Ben Elliston  <bje@au.ibm.com>
2298
2299         * config/i386/winnt-stubs.c: Update FSF address.
2300         * config/xtensa/ieee754-df.S: Ditto.
2301         * config/xtensa/ieee754-sf.S: Ditto.
2302
2303 2006-01-14  Ian Lance Taylor  <ian@airs.com>
2304
2305         * ifcvt.c (noce_init_if_info): New static function, broken out of
2306         noce_process_if_block.
2307         (noce_process_if_block): Call noce_init_if_info.
2308         (check_cond_move_block): New static function.
2309         (cond_move_process_if_block): New static function.
2310         (process_if_block): Call cond_move_process_if_block.
2311
2312 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
2313
2314         * cselib.c (hash_table): Rename to cselib_hash_table.
2315         (cselib_clear_table, discard_useless_values,
2316         remove_useless_values, cselib_lookup_mem, cselib_lookup,
2317         cselib_init, cselib_finish): Adjust uses of hash_table.
2318
2319 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
2320
2321         PR tree-optimization/25485
2322         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
2323         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
2324         is known to be false and true, respectively.
2325
2326 2006-01-14  Richard Guenther  <rguenther@suse.de>
2327
2328         PR tree-optimization/22548
2329         PR tree-optimization/22555
2330         PR tree-optimization/22501
2331         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
2332         * params.def (salias-max-array-elements): New parameter.
2333         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
2334         * doc/invoke.texi (salias-max-array-elements): Document.
2335         * tree-flow-inline.h (var_can_have_subvars): We also handle
2336         arrays now.
2337         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
2338         COMPONENT_REF.
2339         * tree-ssa-structalias.c (params.h): Include.
2340         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
2341         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
2342         (get_constraint_for): For ADDR_EXPR operating on something
2343         containing an ARRAY_REF, add all subvars to the solution.
2344         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
2345         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
2346         for creating MUST_DEFs.
2347         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
2348
2349 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
2350
2351         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
2352         functions.
2353         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
2354         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
2355         number_of_iterations_le): New functions.
2356         (number_of_iterations_special): Removed.
2357         (number_of_iterations_exit): Do not use number_of_iterations_special.
2358         * tree.c (unsigned_type_for): Always return integer type.
2359
2360 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
2361         Richard Guenther  <rguenther@suse.de>
2362
2363         PR rtl-optimization/24257
2364         * gcse.c (find_moveable_store): Only consider a store movable
2365         when the SET_SRC of the insn can be assigned to a register.
2366
2367 2006-01-14  Ian Lance Taylor  <ian@airs.com>
2368
2369         * tree.c (tree_not_class_check_failed): New function.
2370         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
2371         (tree_not_class_check_failed): Declare.
2372
2373 2006-01-13  Ian Lance Taylor  <ian@airs.com>
2374
2375         * reload1.c (do_output_reload): Add assertion rejecting a
2376         CALL_INSN.
2377
2378 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
2379
2380         * combine.c (struct reg_stat): Add new fields truncation_label and
2381         truncated_to_mode.
2382         (record_value_for_reg): Reset truncated_to_mode.
2383         (record_truncated_value): New function.
2384         (check_promoted_subreg): Call it.  Rename to check_conversions.
2385         (combine_instructions): Rename check_promoted_subreg to
2386         check_conversions.
2387         (reg_truncated_to_mode): New function.
2388         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
2389         (gen_lowpart_or_truncate): New function.
2390         (force_to_mode): Use it instead of gen_lowpart.
2391
2392 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
2393
2394         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
2395         VAR is a tag, not its type tag.
2396
2397 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
2398
2399         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
2400         alternatives to match style of other entries.
2401         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
2402
2403 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
2404
2405         PR tree-optimization/25771
2406         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
2407         SSA_NAMES.
2408
2409 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
2410
2411         PR tree-opt/24365
2412         * tree-inline.c (declare_return_variable): If the return variable
2413         was marked as a non gimple complex, set the return slot variable
2414         to be a non gimple comple variable.
2415
2416 2006-01-13  Richard Guenther  <rguenther@suse.de>
2417
2418         * builtins.c (expand_builtin_sincos): New function.
2419         (expand_builtin_mathfn_3): Remove dead code, sin and cos
2420         do not set errno.
2421         (expand_builtin): Expand sincos using expand_builtin_sincos.
2422
2423 2006-01-12  DJ Delorie  <dj@redhat.com>
2424
2425         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
2426         shift counts, separate SI shifts for m32c vs m16c, pass shift type
2427         so that constant shifts can be split.
2428         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
2429         (m32c_valid_pointer_mode): Make static.
2430         (shift_gen_func_for): New.
2431         (m32c_prepare_shift): Use it.  Split large const shifts into
2432         multiple shifts.
2433         * config/m32c/predicates.md (shiftcount_operand): Allow more
2434         general operands.
2435         (longshiftcount_operand): New.
2436         * doc/md.texi (Machine Constraints): Document In6.
2437
2438 2006-01-13  Ben Elliston  <bje@au.ibm.com>
2439
2440         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
2441         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
2442         documentation.
2443
2444 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
2445
2446         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
2447         to try to avoid clobbering pieces of structures when we know
2448         something about the whole structure.
2449         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
2450
2451 2006-01-13  Ben Elliston  <bje@au.ibm.com>
2452
2453         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
2454         return in memory, as this is no limitation is no longer present.
2455
2456 2006-01-12  DJ Delorie  <dj@redhat.com>
2457
2458         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
2459         mova with fb, and for fb+0 -> An.
2460
2461         * config/m32c/mov.md (peephole2): Fix enabling logic.
2462
2463         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
2464         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
2465         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
2466         FINI_ARRAY_SECTION_ASM_OP): Define.
2467
2468         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
2469         variable.
2470         (m32c_legitimize_reload_address): New logic to reload FB to An.
2471         (m32c_output_reg_push): Add newline.
2472         (m32c_output_reg_pop): Likewise.
2473
2474 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
2475
2476         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
2477
2478 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
2479
2480         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
2481
2482 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
2483
2484         * config/sh/predicates.md (sh_rep_vec): Add parallel to
2485         match_code.
2486
2487 2006-01-11  Ben Elliston  <bje@au.ibm.com>
2488
2489         * rtlanal.c (find_reg_note): Assert insn is not null.
2490
2491 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2492
2493         * df-scan.c (df_hard_reg_init): Move declaration of i outside
2494         ifdef.
2495
2496 2006-01-11  Jeff Law  <law@redhat.com>
2497
2498         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
2499         hold edge pairs.
2500         (mark_threaded_blocks, register_jump_thread): New functions.
2501         (thread_through_all_blocks): Remove unwanted argument.  No
2502         longer rely on e->aux to communicate thread target info.
2503         Call mark_threaded_blocks.  Release the threaded_blocks
2504         bitmap and threaded_edges vector when complete.
2505         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
2506         (threaded_blocks): Remove.
2507         (tree_ssa_dominator_optimize): Remove initialization and
2508         finalization of threaded_blocks.  Simplify call to
2509         thread_through_all_blocks.
2510         (thread_across_edge): Call register_jump_thread rather than
2511         storing thread information into e->aux.
2512         (free_all_edge_infos): Simplify now that e->aux is no longer
2513         used to communicate with thread_through_all_blocks.
2514         * tree-flow.h (thread_through_all_blocks): Update prototype.
2515         (register_jump_thread): Prototype.
2516
2517 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
2518
2519         * df-core.c (df_compact_blocks, df_bb_replace): Use
2520         SET_BASIC_BLOCK instead of BASIC_BLOCK.
2521
2522 2006-01-11  Richard Guenther  <rguenther@suse.de>
2523
2524         PR tree-optimization/25734
2525         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2526         stop propagation after successful propagation to the LHS.
2527
2528 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
2529
2530         * basic-block.h (control_flow_graph): Change the type of
2531         x_basic_block_info to VEC(basic_block,gc) *.
2532         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
2533         basic_block_info.
2534         (SET_BASIC_BLOCK): New.
2535         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
2536         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
2537         * cfgbuild.c (find_basic_blocks): Likewise.
2538         * cfglayout.c (fixup_reorder_chain): Likewise.
2539         * cfgrtl.c (create_basic_block_structure,
2540         rtl_create_basic_block): Likewise.
2541         * ifcvt.c (find_if_case_1): Likewise.
2542         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
2543         Likewise.
2544
2545 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2546
2547         * Makefile.in: Removed rotted odf.c entry.
2548
2549 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
2550
2551         PR target/25706
2552         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
2553         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
2554         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
2555         output pattern modifier, not %e.
2556         * config/cris/cris.c (cris_op_str): Update comment about pattern
2557         modifier.
2558         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
2559         before falling through into...
2560         <case 'E'>: Redefined from old 'e' case.
2561
2562 2006-01-11  Jan Hubicka  <jh@suse.cz>
2563
2564         PR target/25042
2565         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
2566
2567 2006-01-11  Jan Hubicka  <jh@suse.cz>
2568
2569         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
2570         * i386.c (x86_decompose_lea): Kill.
2571         (ix86_rtx_costs): Kill.
2572
2573 2006-01-11  Jan Hubicka  <jh@suse.cz>
2574
2575         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
2576         * cgraph.h (cgraph_node): Add inline_decl.
2577         (cgraph_insert_node_to_hashtable): Declare.
2578         (save_inline_function_body): Declare.
2579         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
2580         clones.
2581         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
2582         (cgraph_function_versioning): Update call of tree_function_versioning.
2583         (save_inline_function_body): New function.
2584         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
2585         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
2586         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
2587         (cgraph_default_inline_p): Likewise.
2588         (cgraph_decide_inlining_incrementally): Likewise.
2589         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
2590         (copy_bb): Kill saving; do updating of clones.
2591         (copy_cfg_body): Kill saving.
2592         (initialize_inlined-parameters): Likewise.
2593         (expand_call_inline): Likewise.
2594         (save_body): Kill.
2595         (tree_function_versioning): New parameter "update_clones".
2596         (inlining_p): Kill saving.
2597         * tree-inline.h (tree_function_versioning): Update prototype.
2598         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
2599         saving.
2600
2601 2006-01-11  Ian Lance Taylor <ian@airs.com>
2602
2603         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
2604         Allow undoing set of machine mode.
2605         (do_SUBST): Use enums instead of is_int.
2606         (do_SUBST_MODE): New function.
2607         (SUBST_MODE): New macro.
2608         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
2609         reg and trying to replace reg_regno_rtx with a new register.
2610         (undo_all): Use new enums, handle undoing a PUT_MODE change.
2611         (simplify_set): Use SUBST_MODE.
2612         (distribute_notes): Remove code that tried to update reg notes
2613         for regno_reg_rtx changes.
2614
2615 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
2616
2617         PR tree-optimization/23109
2618         PR tree-optimization/23948
2619         PR tree-optimization/24123
2620
2621         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
2622         * tree-cfg.c (single_noncomplex_succ): New.
2623         * tree-flow.h (single_noncomplex_succ): Declare it.
2624         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
2625         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
2626         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
2627         insert_bb, register_division_in, insert_reciprocals,
2628         replace_reciprocal, free_bb): New.
2629         (execute_cse_reciprocals_1): Rewritten.
2630         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
2631         Do not commit any edge insertion.  Always compute dominators and
2632         create the allocation pool.
2633         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
2634         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
2635         * targhooks.c (default_min_divistions_for_recip_mul): New.
2636         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
2637         * passes.c (init_optimization_passes): Run recip after tree loop
2638         optimizations.
2639         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
2640
2641 2006-01-11  Danny Berlin <dberlin@dberlin.org>
2642             Kenneth Zadeck <zadeck@naturalbridge.com>
2643
2644         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
2645         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
2646         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
2647         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
2648         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
2649         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
2650         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
2651         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
2652         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
2653         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
2654         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
2655         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
2656         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
2657         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
2658         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
2659         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
2660         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
2661         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
2662         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
2663         DF_SCAN_POST_ALLOC): New macros.
2664         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
2665         df_free_bb_function, df_local_compute_function, df_init_function,
2666         df_dataflow_function, df_confluence_function_0,
2667         df_confluence_function_n, df_transfer_function,
2668         df_finalizer_function, df_free_function, df_dump_problem_function,
2669         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
2670         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
2671         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
2672         df_urec_bb_info, ) New types.
2673         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
2674         variables.
2675         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
2676         df_analyze_simple_change_some_blocks,
2677         df_analyze_simple_change_one_block, df_compact_blocks,
2678         df_bb_replace, df_bb_regno_last_use_find,
2679         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
2680         df_insn_regno_def_p, df_find_def, df_find_use,
2681         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
2682         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
2683         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
2684         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
2685         debug_df_chain, df_get_dependent_problem, df_chain_create,
2686         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
2687         df_grow_bb_info, df_chain_dump, df_print_bb_index,
2688         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
2689         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
2690         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
2691         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
2692         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
2693         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
2694         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
2695         df_ref_remove, df_insn_refs_delete, df_refs_delete,
2696         df_reorganize_refs, df_set_state, df_hard_reg_init,
2697         df_read_modify_subreg_p) New public functions.
2698         * df-core.c: The core dataflow solver and glue routines for rtl
2699         dataflow.
2700         (df_init, df_add_problem, df_set_blocks, df_finish,
2701         df_hybrid_search_forward, df_hybrid_search_backward,
2702         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
2703         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
2704         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2705         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
2706         df_reg_defined, df_find_use, df_reg_used, df_dump,
2707         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
2708         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
2709         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
2710         debug_df_useno, reset_df_after_reload): New functions.
2711         * df-scan.c: The scanning fuctions, once in df.c, completely
2712         rewritten so that they now fully model the functionality of
2713         register usage at the backend.
2714         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
2715         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
2716         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
2717         df_grow_insn_info, df_rescan_blocks, df_ref_create,
2718         df_get_artificial_defs, df_get_artificial_uses,
2719         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
2720         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
2721         df_refs_delete, df_reorganize_refs, df_set_state,
2722         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
2723         df_def_record_1, df_defs_record, df_uses_record,
2724         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
2725         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
2726         df_record_exit_block_uses, df_hard_reg_init): New functions.
2727
2728         * df-problems.c: Seven concrete dataflow problems that use the
2729         scanning in df-scan.c and are solved by the engine in df-core.c.
2730         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
2731         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
2732         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
2733         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
2734         df_ru_free_bb_info, df_ru_alloc,
2735         df_ru_bb_local_compute_process_def,
2736         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
2737         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
2738         df_ru_transfer_function, df_ru_free, df_ru_dump,
2739         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
2740         df_rd_free_bb_info, df_rd_alloc,
2741         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
2742         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
2743         df_rd_transfer_function, df_rd_free, df_rd_dump,
2744         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
2745         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
2746         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
2747         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
2748         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
2749         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
2750         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
2751         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
2752         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
2753         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
2754         df_urec_mark_reg_change, df_urec_check_earlyclobber,
2755         df_urec_mark_reg_use_for_earlyclobber,
2756         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
2757         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
2758         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
2759         df_urec_dump, df_urec_add_problem, df_chain_alloc,
2760         df_chain_create_bb_process_use, df_chain_create_bb,
2761         df_chain_finalize, df_chain_free, df_chains_dump,
2762         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
2763         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
2764         df_reg_lifetime): New functions.
2765         * df.c: Deleted file.
2766         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
2767         consistent with new df api.
2768         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
2769         rest_of_handle_sms): Ditto.
2770         * web.c (unionfind_union, union_defs, entry_register, web_main):
2771         Ditto.
2772         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
2773         invariant_expr_equal_p, find_defs, check_dependencies,
2774         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
2775         free_inv_motion_data, move_loop_invariants): Ditto.
2776         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
2777         Update dependencies.
2778         (odf.c): Added defective entry that was deleted later in day.
2779         * sched-deps.c (sched_analyze_1): Ditto.
2780
2781 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
2782
2783         * tree-ssa-operands.c (get_expr_operands): Record addressable
2784         variables directly.  Do not call add_stmt_operands for CONST_DECLs
2785         and ARRAY_DECLs.
2786         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
2787         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
2788
2789 2006-01-11  Ben Elliston  <bje@au.ibm.com>
2790
2791         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
2792         function returns true in the positive case.
2793
2794 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2795
2796         PR target/20754
2797         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
2798         for SI, DI, SF and DF modes.  Add alternatives to copy between
2799         general and floating point registers to the 32-bit patterns.
2800         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
2801         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
2802         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
2803         generating 64-bit code.
2804         * config/pa/pa.c (output_move_double): Handle copies between general
2805         and floating registers.
2806
2807 2006-01-10  Stuart Hastings  <stuart@apple.com>
2808
2809         * config/i386/i386.md (set_got): Update.
2810         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
2811         (builtin_setjmp_receiver): Mach-O support.
2812         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
2813         (GOT_SYMBOL_NAME): Define.
2814         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
2815         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
2816         * config/i386/i386.c (override_options): Revise for Darwin.
2817         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
2818         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
2819         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
2820         * config/i386/i386-protos.h (output_set_got): Likewise.
2821         * config/darwin.c (machopic_legitimize_pic_address): Update
2822         regs_ever_live[].
2823
2824 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2825
2826         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
2827         when MODE isn't BLKmode.
2828
2829 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2830
2831         PR rtl-optimization/25367
2832         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
2833
2834 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
2835
2836         PR target/25718
2837         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
2838         for a negative bound.
2839
2840 2006-01-10  Richard Guenther  <rguenther@suse.de>
2841
2842         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2843         Never override with anything constraint.
2844
2845 2006-01-10  Jan Beulich  <jbeulich@novell.com>
2846
2847         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
2848         256 bits when optimize_size.
2849
2850 2006-01-10  Jan Beulich  <jbeulich@novell.com>
2851
2852         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
2853         MASK_ALIGN_DOUBLE.
2854         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
2855         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
2856         arguments.
2857
2858 2006-01-10  Ben Elliston  <bje@au.ibm.com>
2859
2860         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
2861         float modes.
2862         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
2863         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
2864         (USE_FP_FOR_ARG): Reject decimal float modes.
2865         (function_arg_advance): Likewise.
2866         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
2867         (rs6000_handle_altivec_attribute): Do not permit decimal floating
2868         point types in AltiVec vectors.
2869         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
2870         (rs6000_libcall_value): Likewise.
2871
2872 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
2873
2874         * config/xtensa/ieee754-df.S: New file.
2875         * config/xtensa/ieee754-sf.S: New file.
2876         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
2877         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
2878         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
2879
2880 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
2881
2882         * config/sh/predicates.md (binary_float_operator,
2883         binary_logical_operator, commutative_float_operator,
2884         equality_comparison_operator, greater_comparison_operator,
2885         less_comparison_operator, logical_operator,
2886         noncommutative_float_operator, shift_operator,
2887         symbol_ref_operand, unary_float_operator): Remove redundant
2888         conditionals.
2889
2890 2006-01-09  Jeff Law  <law@redhat.com>
2891
2892         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
2893         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
2894         now unused arguments.  Callers updated.
2895         (eliminate_redundant_computations): Remove now unused arguments,
2896         callers updated.
2897         (local_fold): Remove, no longer used.
2898         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
2899         and moved to...
2900         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
2901         (simplify_cond): New function.
2902         (forward_propagate_into_cond): Call simplify_cond.
2903
2904 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
2905
2906         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
2907         (*vec_extractv2di_1_sse): New.
2908
2909 2006-01-09  Ben Elliston  <bje@au.ibm.com>
2910
2911         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
2912
2913 2006-01-08  Richard Guenther  <rguenther@suse.de>
2914
2915         * tree-ssa-structalias.c (get_constraint_for): Remove
2916         anyoffset argument.
2917         (get_constraint_for_component_ref): Likewise.
2918         (do_deref): Likewise.
2919         (get_constraint_for): Likewise.
2920         (do_structure_copy): Likewise.
2921         (handle_ptr_arith): Likewise.
2922         (find_func_aliases): Likewise.  Remove unused need_anyoffset
2923         variable.
2924
2925 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
2926             Kaz Kojima  <kkojima@gcc.gnu.org>
2927
2928         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
2929         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
2930         (EXTRA_CONSTRAINT_C16): Remove.
2931         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
2932         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
2933         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
2934         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
2935         constants of SHmedia.  Handle nested constant expressions of
2936         SHmedia correctly.
2937         (andcosts): Fix the costs for SHmedia constants.
2938         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
2939         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
2940         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
2941         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
2942         (movv4hi_i, movv2si_i): Likewise.
2943         (movsi_const): Adjust the second operand of ior so to match with
2944         the Csu constraint.
2945         (movdi_const, movdi_const_32bit): Likewise.
2946         (movdi_const_16bit+1): Don't sign-extend LOW.
2947         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
2948         step.
2949         (*double_shori): Fix the split condition.  Use GEN_INT instead
2950         of get_int_mode calls.  Mask lower 16-bit of the argument of
2951         the last GEN_INT.
2952         (sym2GOTPLT): Remove.
2953         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
2954         gen_rtx_UNSPEC.
2955         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
2956         instead of EXTRA_CONSTRAINT_C16.
2957
2958 2006-01-07  Ian Lance Taylor  <ian@airs.com>
2959             David Edelsohn  <edelsohn@gnu.org>
2960
2961         PR rtl-optimization/25662
2962         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
2963         for constant operands instead of simplify_gen_binary.
2964         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
2965         after trying simplify_binary_operation
2966
2967 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
2968
2969         * tree.c (iterative_hash_expr): Hash decls based on UID.
2970
2971 2006-01-06  Eric Christopher  <echristo@apple.com>
2972
2973         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
2974         (TARGET_UNWIND_EMIT): Fix spelling.
2975         * target.h (gcc_target): Add except_table_label.
2976         * except.c (output_function_exception_table): Use.
2977         * varasm.c (default_emit_except_table_label): New.
2978         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
2979         define.
2980         (asm_out): Add here.
2981         * output.h (default_emit_except_table_label): Prototype.
2982         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
2983         * config/darwin.c (darwin_emit_except_table_label): Define.
2984         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
2985
2986 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
2987
2988         PR tree-optimization/18527
2989         * tree-ssa-loop-niter.c (number_of_iterations_cond,
2990         number_of_iterations_special, number_of_iterations_exit):
2991         Move base and step of an iv to a single structure.  Add
2992         no_overflow flag, and use it in # of iterations analysis.
2993         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
2994         folded_casts argument.
2995         (simple_iv): Pass base and step in a structure.  Set no_overflow
2996         flag.
2997         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
2998         Evaluate expensiveness of computing # of iterations instead of
2999         the final expression.
3000         * tree-scalar-evolution.h (affine_iv): New structure.
3001         (simple_iv): Declaration changed.
3002         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
3003         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
3004         find_givs_in_stmt): Changed due to simple_iv change.
3005
3006 2006-01-06  Jeff Law  <law@redhat.com>
3007
3008         PR ada/24994
3009         * tree-cfg.c (bsi_replace): Rename final argument from
3010         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
3011         change (stmt -> orig_stmt).
3012         * tree-eh.c (verify_eh_throw_stmt_node): New function.
3013         (bsi_remove): Add new argument.  Remove EH information
3014         if requested.
3015         (verify_eh_throw_table_statements): New function.
3016         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
3017         updated.
3018         * tree-optimize.c (execute_free_cfg_annotations): Verify
3019         the EH throw statement table after removing annotations.
3020         * except.h (verify_eh_throw_table_statements): Prototype.
3021         * tree-flow.h (bsi_remove): Update prototype.
3022         * tree-vrp.c (remove_range_assertions): Add new argument to
3023         bsi_remove call.
3024         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
3025         * tree-complex.c (expand_complex_div_wide): Likewise.
3026         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
3027         * tree-tailcall.c (eliminate_tailcall): Likewise.
3028         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
3029         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3030         * tree-nrv.c (tree_nrv): Likewise.
3031         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
3032         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
3033         (combine_blocks): Likewise.
3034         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
3035         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
3036         (cleanup_control_flow): Likewise.
3037         (remove_forwarder_block): Likewise.
3038         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3039         * tree-sra.c (sra_replace): Likewise.
3040         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
3041         (forward_propagate_single_use_vars): Likewise.
3042         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
3043         * tree-inline.c (expand_call_inline): Likewise.
3044         * tree-vect-transform.c (vect_transform_loop): Likewise.
3045         * tree-outof-ssa.c (rewrite_trees): Likewise.
3046         * tree-cfg.c (make_goto_expr_edges): Likewise.
3047         (cleanup_dead_labels): Likewise.
3048         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
3049         (bsi_move_before, bsi_move_after): Likewise.
3050         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
3051         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
3052
3053 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
3054
3055         PR tree-opt/25528
3056         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
3057         and IMAGPART_EXPR.
3058         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
3059         on non gimple variables.  Also add checks at the top for decls and
3060         mtags.
3061         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
3062         complex types.
3063         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
3064         and IMAGPART_EXPR for creating MUST_DEFs.
3065         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
3066         and NAME_MEMORY_TAG separately from the DECLs.
3067
3068 2006-01-06  Richard Guenther  <rguenther@suse.de>
3069
3070         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
3071         annotation, if necessary.
3072         * tree-ssa-pre.c (create_expression_by_pieces): Remove
3073         redundant calls to update_stmt.
3074         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
3075         Likewise.
3076
3077 2006-01-05  Richard Henderson  <rth@redhat.com>
3078
3079         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
3080
3081 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
3082
3083         * c-typeck.c: Update copyright date.
3084
3085 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
3086
3087         * c-typeck.c (build_c_cast): Always warn when casting
3088         from a pointer to an integer of different size, even if
3089         the node was constant.
3090
3091 2006-01-05  Richard Guenther  <rguenther@suse.de>
3092
3093         PR tree-optimization/22555
3094         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
3095         if one structure field is an array.
3096         * tree-ssa-operands.c (get_expr_operands): Continue scanning
3097         operands even if we found a subvar, but ignore VOPs in this
3098         case.
3099         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
3100         for renaming.
3101         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
3102
3103 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
3104
3105         PR middle-end/24998
3106         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
3107
3108 2006-01-05  Richard Guenther  <rguenther@suse.de>
3109             Diego Novillo  <dnovillo@redhat.com>
3110
3111         * tree-pass.h (TODO_remove_unused_locals): Define.
3112         * gimple-low.c (expand_var_p, remove_useless_vars,
3113         pass_remove_useless_vars): Remove.  Update all users.
3114         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
3115         (remove_unused_locals): New function.
3116         * tree-flow.h (remove_unused_locals): Declare.
3117         * passes.c (execute_todo): Call remove_unused_locals if
3118         TODO_remove_unused_locals is set.
3119         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
3120         * tree-ssa-dce.c (pass_dce): Likewise.
3121         * tree-outof-ssa.c (pass_del_ssa): Likewise.
3122
3123 2006-01-05  Richard Guenther  <rguenther@suse.de>
3124
3125         * tree-flow.h (struct fieldoff): Decompose field to
3126         type, size and decl.
3127         * tree-ssa-alias.c (create_sft): Take type as parameter.
3128         (create_overlap_variables_for): Store type, size and decl
3129         in the fieldoff structure.
3130         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
3131         of struct fieldoff.
3132         (push_fields_onto_fieldstack): Likewise.
3133         (create_variable_info_for): Likewise.  Use offset for the
3134         SFT name if the decl is not available.
3135
3136 2006-01-04  Paul Brook  <paul@codesourcery.com>
3137
3138         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
3139
3140 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
3141
3142         * lambda-code.c (can_put_in_inner_loop): Relax
3143         restrictions.
3144         (can_put_after_inner_loop): New function.
3145         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
3146         (perfect_nestify): Change to make copies and modify uses.
3147
3148 2006-01-04  Richard Henderson  <rth@redhat.com>
3149
3150         Merge from gomp branch:
3151         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
3152         via integer constant.
3153         (pragma_lex): Remove.
3154         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
3155         rather than parsing it.
3156         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
3157         handle_pragma_extern_prefix): Add %< %> quotes.
3158         (registered_pragmas): New.
3159         (c_register_pragma_1): New.
3160         (c_register_pragma): Use it.
3161         (c_register_pragma_with_expansion): Likewise.
3162         (c_invoke_pragma_handler): New.
3163         (init_pragma): Use cpp_register_deferred_pragma directly for
3164         pch_preprocess.
3165         * c-pragma.h (enum pragma_kind): New.
3166         (pragma_handler): New.
3167         (c_invoke_pragma_handler): Declare.
3168         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
3169         CPP_PRAGMA_EOL.
3170         * c-common.h (c_common_pch_pragma): Update decl.
3171         * Makefile.in (c-parser.o): Update dependencies.
3172         (GTFILES): Add c-pragma.h.
3173         * c-parser.c (struct c_token): Add pragma_kind.
3174         (struct c_parser): Add in_pragma.
3175         (c_lex_one_token): Always initialize keyword and pragma_kind.
3176         Extract data for CPP_PRAGMA.
3177         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
3178         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
3179         Don't allow CPP_PRAGMA_EOL if in_pragma.
3180         (c_parser_consume_pragma): New.
3181         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
3182         (c_parser_skip_to_end_of_parameter): Likewise.
3183         (c_parser_skip_to_end_of_block_or_statement): Likewise.
3184         (c_parser_skip_to_pragma_eol): New.
3185         (c_parser_external_declaration): Handle CPP_PRAGMA.
3186         (c_parser_compound_statement_nostart): Likewise.
3187         (c_parser_statement_after_labels): Likewise.
3188         (c_parser_pragma): New.
3189         (pragma_lex): Likewise.
3190         (c_parser_pragma_pch_preprocess): New.
3191         (c_parser_new): Merge into ...
3192         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
3193
3194 2006-01-04  Jeff Law  <law@redhat.com>
3195
3196         PR ada/24994
3197         * tree-cfg.c (bsi_replace): Remove the original statement
3198         from the EH throw statement table.
3199
3200 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
3201
3202         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
3203         make the prototype extern "C" and add throw ().
3204
3205         PR target/25554
3206         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
3207         and pos non-negative and pos + len <= 32.
3208         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
3209         drop pos + len < HOST_BITS_PER_WIDE_INT test.
3210         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
3211
3212         PR c/25559
3213         * c-common.c (handle_vector_size_attribute): Reject zero vector size
3214         as well as sizes not multiple of component size.
3215
3216         PR debug/25562
3217         * function.c (instantiate_expr): New function.
3218         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
3219         walk its DECL_VALUE_EXPR with instantiate_expr.
3220
3221         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
3222         DW_OP_deref{,_size} if address isn't going to be added.
3223
3224 2006-01-04  Ben Elliston  <bje@au.ibm.com>
3225
3226         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
3227         * config/fp-bit.c: Likewise.
3228
3229 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
3230
3231         * dominance.c: Add comment about why we use DFS numbering
3232         of dominance tree.
3233
3234 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
3235             Richard Henderson  <rth@redhat.com>
3236
3237         Merge from gomp-branch:
3238         * varasm.c (assemble_variable): Handle thread-local COMMON data.
3239         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
3240
3241 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
3242
3243         PR rtl-optimization/25578
3244         * combine.c (combine_simplify_rtx, force_to_mode): Don't
3245         pass a parameter to simplify_shift_const if changing ASHIFTRT
3246         to LSHIFTRT.
3247
3248 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
3249
3250         * builtins.c (get_builtin_sync_mem): New function.
3251         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
3252         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
3253         Call get_builtin_sync_mem to generate mem rtx.
3254
3255 2006-01-03  Richard Guenther  <rguenther@suse.de>
3256
3257         PR c/25183
3258         * stmt.c (add_case_node): Make sure to clear overflow flags
3259         from ranges.
3260
3261 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
3262
3263         Merge from gomp-branch.
3264         * config/sparc/sync.md: New file.
3265         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
3266         UNSPECV_LDSTUB): New constants.
3267         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
3268         * config/sparc/predicates.md (memory_reg_operand): New predicate.
3269         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
3270         prototype.
3271
3272 2006-01-03  Roger Sayle  <roger@eyesopen.com>
3273
3274         * combine.c (reg_subword_p): New predicate to test whether the
3275         destination of a set refers to a subword/piece of a register.
3276         (try_combine): Generalize the code to merge the setting of a
3277         pseudo to a constant followed by a set of a subword of that
3278         register to a constant.
3279
3280 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
3281
3282         * basic-block.h (control_flow_graph): Change the type of
3283         x_label_to_block_map to VEC(basic_block,gc) *.
3284         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
3285         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
3286
3287         * tree-ssa-propagate.c (cfg_blocks): Change the type to
3288         VEC(basic_block,heap) *.
3289         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
3290         ssa_prop_fini): Adjust the uses of cfg_blocks.
3291
3292 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
3293
3294         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
3295         COMPONENT_REFs.
3296         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
3297         hashing trees instead of a pointer hash.
3298         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
3299         compare for MEM_EXPR.
3300
3301         PR rtl-optimization/25130
3302         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
3303         when comparing MEMs for GCSE
3304
3305 2006-01-03  Ben Elliston  <bje@au.ibm.com>
3306
3307         * targhooks.h (default_decimal_float_supported_p): Declare.
3308         * targhooks.c (default_decimal_float_supported_p): Define.
3309         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
3310         `default_decimal_float_supported_p'.
3311         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
3312
3313 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
3314
3315         * combine.c (apply_distributive_law <SUBREG>): Check
3316         TRULY_NOOP_TRUNCATION.
3317
3318 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
3319
3320         * dwarf2out.c (have_switched_text_section): Delete.
3321         (have_multiple_function_sections): New.
3322         (have_location_lists): Make 'bool'.
3323         (add_AT_loc_list): Use 'true' not '1'.
3324         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
3325         (output_loc_list): Use have_multiple_function_sections.
3326         (output_ranges): Likewise.
3327         (dwarf2out_begin_function): Set have_multiple_function_sections if
3328         necessary.
3329         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
3330         Check function_section rather than DECL_SECTION_NAME.
3331         (dwarf2out_finish): Use have_multiple_function_sections.
3332         Don't clear have_location_lists.
3333
3334 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
3335             Jan Hubicka  <jh@suse.cz>
3336
3337         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
3338         case of conditional jump jumping to the next instruction.
3339         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
3340         cases of conditional jump jumping to the next instruction.
3341
3342 2006-01-02  Jan Hubicka  <jh@suse.cz>
3343
3344         * i386.c (*_cost): Add COSTS_N_INSNS.
3345         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
3346
3347 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
3348
3349         PR target/25259
3350         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
3351
3352 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3353
3354         * config/arm/arm.c (all_fpus): Fix comment typo.
3355         * config/darwin.c: Likewise.
3356         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
3357         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
3358         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
3359
3360 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
3361
3362         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
3363         (rs6000_split_compare_and_swapqhi): New.
3364         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
3365         (sync_compare_and_swapqhi_internal): New.
3366         * config/rs6000/rs6000-protos.h: Declare.