OSDN Git Service

bc786cdc7b8a15da9a03f4c94f41d87ef56b510f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
2
3         Fix PR tree-optimization/27093
4         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for 
5         renaming when they become not-used_alone.
6
7 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8
9         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
10         relocation and relocation stubs.
11
12 2006-05-08  Eric Christopher  <echristo@apple.com>
13
14         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
15         section for ppc.
16
17 2006-05-08  Jan Hubicka  <jh@suse.cz>
18
19         PR middle-end/25962
20         * cgraphunit.c (decide_is_function_needed): When not optimizing even
21         unused static functions are needed.
22
23 2006-05-08  Roger Sayle  <roger@eyesopen.com>
24
25         PR target/27158
26         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
27         of a reg_equiv_constant if the result is a legitimate constant.
28
29 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
30
31         PR target/27277
32         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
33         standard 80387 constants, raise the cost to prevent
34         compress_float_constant() to generate load from memory.
35
36 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
37
38         * config/arm/constraints.md (c): Fix a typo.
39
40         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
41         typos.
42
43 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
44
45         PR target/24879
46         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
47         inline function.
48         (_mm_mwait): Likewise.
49
50         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
51         "mwait".
52         (sse3_monitor): Make it 32bit only.
53         (sse3_monitor64): New. 64bit monitor.
54
55 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
56
57         PR target/27421
58         * config/i386/i386.c (classify_argument): Skip fields with invalid
59         types.
60
61 2006-05-07  Richard Guenther  <rguenther@suse.de>
62
63         PR tree-optimization/27409
64         * tree-ssa-structalias.c (get_constraint_for_component_ref):
65         Do not try to find zero-sized subvars.
66
67 >>>>>>> .r113631
68 2006-05-07  Richard Guenther  <rguenther@suse.de>
69
70         PR tree-optimization/27136
71         * tree-ssa-loop-niter.c (get_val_for): Correct function
72         comment, assert requirements.
73         (loop_niter_by_eval): Stop processing if the iterated
74         value did not simplify.
75
76 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
77
78         * opts.c (flag_see): remove its setting at -O3.
79
80 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
81
82         * genpeep.c (main): Make insn-peep.c depend on flags.h.
83         * arm/constraints.md: New file.
84         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
85         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
86         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
87         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
88         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
89         (EXTRA_MEMORY_CONSTRAINT): Likewise.
90         * arm.md: Include constraints.md.
91         (thumb_movsi_insn): Use satisfies_constraint_J.
92         (movhi, movqi): Use satisfies_constraint_I.
93
94 2006-04-29 Anatoly Sokolov <aesok@post.ru>
95
96         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
97         for atmeg a645 device.
98
99 2006-05-06   Richard Guenther  <rguenther@suse.de>
100
101         PR tree-optimization/27151
102         * tree-vect-transform.c (vectorizable_condition): Punt on
103         values that have a different type than the condition.
104
105 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
106
107         PR/21391
108         * c-parser.c (c_parser_cast_expression): Only insert casts into
109         hash table if pointer.
110         * function.c (used_types_insert_helper): Rename from
111         used_types_insert.
112         (used_types_insert): Call used_types_insert_helper.
113         * function.h (used_types_insert): Accept only one argument.
114
115 2006-05-05  David Edelsohn  <edesohn@gnu.org>
116
117         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
118         scratch with output modifier.
119
120 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
121
122         PR target/26481
123         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
124         with output modifier.
125
126 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
127
128         PR target/26765
129         * config/mips/mips.c (mips_symbolic_address_p): Return true
130         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
131         SYMBOL_GOTTPREL, and SYMBOL_TLS.
132
133 2006-05-04  Richard Guenther  <rguenther@suse.de>
134
135         PR tree-optimization/14287
136         PR tree-optimization/14844
137         PR tree-optimization/19792
138         PR tree-optimization/21608
139         PR tree-optimization/27090
140         * tree-ssa-pre.c (try_combine_conversion): New function.
141         (compute_avail): After constructing the value-handle
142         expression, use try_combine_conversion to combine NOP_EXPRs
143         with previous value-handle expressions and use the result if it
144         is available.
145
146 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
147
148         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
149
150 2006-05-04  Jan Hubicka  <jh@suse.cz>
151
152         PR middle-end/25962
153         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
154
155 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
156
157         * config/bfin/predicates.md (const01_rtx): Tell generator programs
158         that this only matches CONST_INTs.  All users changed to VOIDmode
159         operands.
160
161         * config/bfin/bfin.c: Include "optabs.h".
162         (bfin_rtx_costs): Some costs for vector operations, to allow combine
163         to do more work.
164         (enum bfin_builtins): Add a number of fractional and vector builtins.
165         (bfin_init_builtins): Likewise.
166         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
167         (safe_vector_operand, bfin_expand_binop_builtin,
168         bfin_expand_unop_builtin): New functions.
169         (bfin_expand_builtin): Handle the new builtins.
170         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
171         __ADSPBLACKFIN__.
172
173 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
174
175         * see.c: New file.
176         * Makefile.in (OBJS-common): Add see.o.
177         (see.o): Add dependencies.
178         * common.opt (fsee): New flag for the see optimization was added.
179         * opts.c (flag_see): Initialized.
180         * passes.c (init_optimization_passes, pass_see): New pass.
181         * rtl.h (see_main): Declaration as extern.
182         * timevar.def (TV_SEE): New.
183         * tree-pass.h (pass_see): Declaration as extern.
184         * invoke.texi (-fsee): Document.
185         * recog.c (validate_simplify_insn): New function.
186         * recog.h (validate_simplify_insn): Declaration as extern.
187         * df-problems.c (df_chain_dump): Check for NULL.
188
189 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
190             Daniel Berlin  <dberlin@dberlin.org>
191
192         * cfgrtl.c (insert_insn_bb_end_new): New function.
193         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
194
195 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
196
197         * df.h (struct web_entry): Moved from web.c.
198         (union_defs): Declaration as extern.
199         (unionfind_root): Likewise.
200         (unionfind_union): Likewise.
201         * web.c (struct web_entry): Moved to df.h.
202         (unionfind_root): Remove static declaration.
203         (unionfind_union): Likewise.
204         (union_defs): Likewise and generalize to use callback function.
205         (web_main): Update arguments for union_defs function call.
206
207 2006-05-04  Richard Guenther  <rguenther@suse.de>
208
209         PR tree-optimization/26447
210         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
211         produce SSA_NAME copies before the store stmt to avoid
212         breaking exception handling.
213
214 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
215
216         PR middle-end/27388
217         * gimplify.c (omp_is_private): If var is shared in some outer context,
218         return false instead of true.  Stop searching on parallel context
219         boundary.
220
221 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
222
223         PR java/8260
224         * coverage.c: Use get_gcov_unsigned_t() instead of
225         unsigned_type_node all over.
226
227 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
228
229         PR tree-optimization/27381
230         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
231         maintain the same immediate_use links.
232         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
233         node rather than segfaulting.
234
235 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
236
237         PR fortran/27395
238         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
239         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
240         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
241
242 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
243
244         Fix PR tree-optimization/26626
245         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
246         always.
247         * tree-ssa-operands.c (access_can_touch_variable): Allow
248         typecasting through union pointers.
249
250 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
251
252         PR c++/26943
253         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
254         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
255         to find if var will be a global variable even in the nested context.
256         (omp_copy_decl): Only check for global variable at the end, it might
257         be overridden in outer contexts.
258         (scan_sharing_clauses): For global variables don't create a field.
259         (lower_rec_input_clauses): Do nothing for global shared variables.
260         Emit a barrier at the end of ILIST if there were any decls in both
261         firstprivate and lastprivate clauses.
262         (lower_send_clauses): Do nothing for global variables except for
263         COPYIN.
264
265 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
266
267         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
268         of the correct signedness is returned.
269
270 2006-05-02  Jeff Law  <law@redhat.com>
271
272         PR tree-optimization/27364
273         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
274         multiply expressions.
275
276 2006-05-02  Tom Tromey  <tromey@redhat.com>
277
278         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
279
280 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
281
282         PR target/27387
283         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
284         -mthumb -fPIC are used.
285
286 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
287             Joshua Kinard  <kumba@gentoo.org>
288
289         PR target/25871
290         * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
291         with 64-bit pointers.
292
293 2006-05-02  Paul Brook  <paul@codesourcery.com>
294
295         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
296         and pool overlap.
297         (create_fix_barrier): Check that a suitable barrier location is
298         found.
299         (arm_reorg): Include ftmp->address in allowable range of addresses.
300
301 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
302
303         PR ada/27366
304         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
305         on Cygwin.
306
307 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
308
309         PR middle-end/27337
310         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
311         around RESULT_DECL for result passed by reference.
312         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
313         * omp-low.c (use_pointer_for_field): Don't look at
314         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
315         (scan_omp_1): Call remap_decl on RESULT_DECLs.
316         (lower_rec_input_clauses): Don't allocate VLA memory for the second
317         time or var for passing by reference for
318         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
319         TREE_ADDRESSABLE variables when passing by reference.
320
321         * omp-low.c (dump_omp_region): Fix output formatting.
322
323         PR middle-end/27328
324         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
325         (expand_omp_parallel): Likewise.
326         * tree-cfg.c (move_sese_region_to_fn): Likewise.
327
328         PR middle-end/27325
329         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
330         on statement list containing also constructors and destructors.
331         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
332
333         PR middle-end/27310
334         * except.c (duplicate_eh_regions): Fix clearing of
335         cfun->eh->region_array entries.
336
337 2006-05-01  DJ Delorie  <dj@redhat.com>
338
339         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
340         build!=host.
341         (gcc_cv_objdump): Likewise.
342         * configure: Regenerated.
343
344 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
345
346         PR target/27374
347         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
348         templates for case 3 and 4.
349
350 2006-05-01  DJ Delorie  <dj@redhat.com>
351
352         * vec.c: Include bconfig.h when appropriate.
353         * Makefile.in (build/vec.o): Adjust dependencies.
354         * mkconfig.sh: Make sure config.h isn't used for build machine
355         compiles.
356
357 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
358
359         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
360         variables.
361         (mark_phi_for_rewrite): New function.
362         (insert_phi_nodes_for, mark_use_interesting): Call
363         mark_phi_for_rewrite.
364         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
365         (update_ssa): Initialize and free phis_to_rewrite.
366
367 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
368
369         PR rtl-optimization/27291
370         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
371         folded to a constant.
372
373 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
374
375         PR tree-optimization/27283
376         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
377         not whole # of iteration descriptions.
378         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
379         uses abnormal ssa name.
380         (niter_for_single_dom_exit): Ditto.
381         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
382         return just the number of iterations.
383
384 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
385
386         PR tree-optimization/27144
387         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
388         (record_estimate): Only record constant upper bound.
389         (infer_loop_bounds_from_undefined): Call
390         compute_estimated_nb_iterations just once.
391         (proved_non_wrapping_p): Renamed to ...
392         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
393         (convert_step_widening, scev_probably_wraps_p): Call
394         n_of_executions_at_most instead of proved_non_wrapping_p.
395         (substitute_in_loop_info): Do not replace values in bounds.
396         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
397         comments.
398
399 2006-05-01  Richard Henderson  <rth@redhat.com>
400
401         PR c/27358
402         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
403         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
404         CPP_PRAGMA.
405
406 2006-05-01  Roger Sayle  <roger@eyesopen.com>
407
408         * c-typeck.c (parser_build_binary_op): Don't call the function
409         unsigned_conversion_warning to spot operand/result type overflow.
410         (build_binary_op): Instead, call convert_and_check instead of
411         convert to report the problem when the operands are promoted.
412         * c-common.c (unsigned_conversion_warning): Make static.
413         * c-common.h (unsigned_conversion_warning): Delete prototype.
414
415 2006-05-01  Richard Guenther  <rguenther@suse.de>
416
417         PR tree-optimization/26726
418         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
419         problem ...
420         (find_interesting_uses_address): ... we work around here
421         by folding INDIRECT_REFs in the substituted base.
422
423 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
424
425         * omp-low.c (dump_omp_region): Add newlines.
426
427 2006-04-30  Roger Sayle  <roger@eyesopen.com>
428
429         * common.opt (Woverflow): New command line option.
430         * c-common.c (constant_expression_warning): Check warn_overflow.
431         (overflow_waring): Pass OPT_Woverflow to warning.
432         (unsigned_conversion_warning): Likewise.
433         (convert_and_check): Likewise.
434         * doc/invoke.texi: Document new command line option.
435
436 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
437
438         * config/rs6000/rs6000.c (rs6000_override_options): Enable
439         TARGET_NO_FP_IN_TOC for section anchors.
440         (optimization_options): Enable section anchors for all
441         non-"Objective" languages.
442
443 2006-04-28  Eric Christopher  <echristo@apple.com>
444
445         * config/darwin-c.c (darwin_ms_struct): Move this
446         (darwin_set_default_type_attributes): and this...
447         * config/darwin.c: ... here.
448         * config/darwin.h (darwin_ms_struct): Declare.
449
450 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
451
452         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
453
454 2006-04-28  Roger Sayle  <roger@eyesopen.com>
455
456         PR c/25309
457         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
458         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
459         an unsigned HOST_WIDE_INT.
460         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
461         array index.
462         (really_start_incremental_init): No need to call convert because
463         bitsize_zero_node is already of type bitsizetype.
464         (push_init_level): Extract the value of constructor_index as an
465         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
466         (process_init_element): Likewise.
467
468 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
469
470         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
471         value before passing to make_relative_prefix.
472
473 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
474
475         PR middle-end/27260
476         * builtins.c (expand_builtin_memset): Expand val in original mode.
477
478 2006-04-27  Eric Christopher  <echristo@apple.com>
479
480         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
481         with #ifndef/#endif.
482         * config/darwin-c.c (darwin_ms_struct): New.
483         (darwin_pragma_ms_struct): Ditto.
484         (darwin_set_default_type_attributes): Ditto.
485         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
486         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
487         Register ms_struct pragma.
488         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
489         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
490         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
491         darwin_set_default_type_attributes if TARGET_MACHO.
492
493 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
494
495         PR tree-optimization/26854
496         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
497         * doc/tree-ssa.texi: Update immuse iterator documentation.
498         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
499         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
500         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
501         first_safe_imm_use, next_safe_imm_use): Remove.
502         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
503         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
504         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
505         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
506         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
507         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
508         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
509         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
510         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
511         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
512         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
513         (perfect_nestify): Use new iterator.
514         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
515         iterator.
516         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
517         (next_imm_name): New field in struct immediate_use_iterator_d.
518         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
519         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
520         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
521         * tree-cfg.c (replace_uses_by): Use new iterator.
522         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
523         * tree-ssa-operands.c (correct_use_link): Remove.
524         (finalize_ssa_use_ops): No longer call correct_use_link.
525
526 2006-04-27  Stuart Hastings  <stuart@apple.com>
527
528         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
529         * config/t-darwin (crt3.o): Use it.
530         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
531         'pmode', use Pmode instead of SImode for SYMBOL_REF.
532         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
533         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
534         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
535         support.
536
537 2006-04-27  Roger Sayle  <roger@eyesopen.com>
538
539         * expmed.c (store_fixed_bit_field): If we're not optimizing for
540         size, force the intermediate into a new pseudo rather instead of
541         performing both a bitwise AND and a bitwise IOR in memory.
542
543 2006-04-27  Richard Guenther  <rguenther@suse.de>
544
545         PR rtl-optimization/26685
546         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
547         this one "max-flow-memory-locations".
548
549 2006-04-27  Richard Guenther  <rguenther@suse.de>
550
551         PR tree-optimization/25148
552         * tree-vrp.c (compare_values): Remove code dealing with
553         comparisons against type min/max value.  Honour overflow
554         and negative constants in code dealing with comparisons
555         of plus and minus expressions.
556         (value_inside_range): Use fold_binary with LE_EXPR and
557         GE_EXPR rather than compare_values.
558
559 2006-04-27  Dirk Mueller  <dmueller@suse.de>
560
561         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
562         prototype for SSE.
563
564 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
565
566         * basic-block.h (safe_insert_insn_on_edge): Removed.
567         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
568
569
570 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
571             Paolo Bonzini  <bonzini@gnu.org>
572
573         PR middle-end/27282
574         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
575         (simplify_and_const_int): Same.
576
577 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
578
579         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
580
581 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
582
583         PR c/26171
584         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
585         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
586         cgraph_global_info_ready.
587
588         PR middle-end/26913
589         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
590
591         PR c/25996
592         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
593         either decl or init is error_mark_node.
594
595         PR middle-end/25989
596         * tree-flow.h (struct omp_region): Add sched_kind.
597         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
598         instead of extracting omp for data.
599         (expand_omp_for): Save extracted sched_kind.
600
601 2006-04-25  Roger Sayle  <roger@eyesopen.com>
602
603         * expmed.c (store_bit_field): Also check whether the bitsize is
604         valid for the machine's "insv" instruction before moving the
605         target into a pseudo for use with the insv.
606         * config/i386/predicates.md (const8_operand): New predicate.
607         * config/i386/i386.md (extv, extzv, insv): Use the new
608         const8_operand predicate where appropriate.
609
610 2006-04-25  DJ Delorie  <dj@redhat.com>
611
612         * doc/install.texi (Specific): Clarify that this is not a list of
613         supported hosts or targets.
614
615 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
616
617         PR rtl-optimization/26725
618         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
619         block's BB_DIRTY flag.
620
621 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
622
623         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
624         are no branches.
625
626         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
627         to print an integer.
628
629 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
630
631         * varasm.c (align_variable): New function.
632         (get_block_for_decl): Apply align_variable to DECL before
633         calculating section information.
634         (assemble_variable): Split out alignment computation.
635
636 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
637
638         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
639         machines.
640
641 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
642
643         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
644         MODE_PARTIAL_INT mode.
645         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
646         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
647         for CONST_INTs.
648         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
649         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
650         V2PDImode.
651         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
652         New predicates.
653         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
654         New constants.
655         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
656         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
657         MACFLAG_IH): Likewise.
658         (movstricthi_1): Renamed from "*movstricthi".
659         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
660         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
661         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
662         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
663         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
664         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
665         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
666         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
667         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
668         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
669         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
670         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
671         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
672         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
673         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
674
675         * doc/rtl.texi (ss_ashift): Improve wording.
676
677 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
678
679         * dwarf2out.c (verify_marks_clear): New.
680         (prune_unused_types): Call verify_marks_clear initially, not
681         prune_unmark_dies.
682
683 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
684
685         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
686         * doc/rtl.texi: Document them.
687         * simplify-rtx.c (simplify_unary_operation,
688         simplify_binary_operation_1): Don't abort when we see them.
689
690 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
691
692         Revert:
693         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
694         * configure.ac: Completely disregard languages that are not
695         enabled.
696         * configure: Regenerated.
697
698 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
699         Richard Guenther  <rguenther@suse.de>
700
701         PR tree-optimization/27236
702         * tree-inline.c (copy_body_r): Make sure to copy
703         TREE_THIS_VOLATILE flag.
704
705 2006-04-24  Richard Guenther  <rguenther@suse.de>
706
707         PR middle-end/26869
708         * tree-complex.c (update_parameter_components): Don't handle
709         unused parameters which have no default def.
710
711 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
712         Richard Guenther  <rguenther@suse.de>
713
714         PR tree-optimization/27218
715         * tree-inline.c (expand_call_inline): Strip useless type
716         conversions for the return slot address.
717
718 2006-04-24  Richard Guenther  <rguenther@suse.de>
719
720         * cfgloop.h (struct loops): Remove unused field array.  Reorder
721         state after num.
722         (LOOP_PREFETCH): Remove.
723
724 2006-04-24  Richard Guenther  <rguenther@suse.de>
725
726         PR tree-optimization/22525
727         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
728         variable, adjust types of generated expressions.
729
730 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
731
732         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
733         (tree-vect-patterns.o): Likewise.
734         (jump.o): Likewise.
735         (cselib.o): Likewise.
736         (loop-doloop.o): Likewise.
737         (regclass.o): Likewise.
738         (reload1.o): Likewise.
739         (explow.o): Replace target.h with $(TARGET_H).
740         (ipa-prop.o): Likewise.
741         (ipa-cp.o): Likewise.
742         (ipa-inline.o): Likewise.
743         (reorg.o): Likewise.
744         (reg-stack.o): Likewise.
745
746 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
747
748         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
749
750 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
751
752         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
753
754         * configure.ac: Completely disregard languages that are not
755         enabled.
756         * configure: Regenerated.
757
758         PR c++/26534
759         * c-common.h (c_build_bitfield_integer_type): Declare.
760         * c-decl.c (c_build_bitfield_integer_type): Move to ...
761         * c-common.c (c_build_bitfield_integer_type): ... here.
762
763 2006-04-23  Roger Sayle  <roger@eyesopen.com>
764
765         PR target/21283
766         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
767         a SImode SUBREG of a floating point register after no_new_pseudos.
768
769 2006-04-23  Roger Sayle  <roger@eyesopen.com>
770
771         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
772         identify potentially eliminable registers to additionally catch
773         VIRTUAL_INCOMING_ARGS_REGNUM.
774         (addsi3): Update the conditions on when to use addsi_small_int.
775
776 2006-04-23  Roger Sayle  <roger@eyesopen.com>
777
778         PR target/16641
779         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
780         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
781         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
782
783 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
784
785         * fold-const.c (range_predecessor): Use operand_equal_p
786         as the predicate for equality.
787         (range_successor): Likewise.
788
789 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
790
791         Revert:
792         * config/soft-fp/op-common.h: Fix a typo.
793
794 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
795
796         PR libmudflap/26864
797         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
798         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
799
800 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
801
802         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
803         Fix comment typos.
804         * doc/tm.texi: Fix a typo.
805
806 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
807
808         * dwarf2out.c (struct die_struct): Document that die_sib makes
809         a circular linked list.
810         (FOR_EACH_CHILD): New.
811         (reverse_die_lists): Delete.
812         (reverse_all_dies): Delete.
813         (add_dwarf_attr): Correct documentation.
814         (remove_child_with_prev): New.
815         (remove_child_TAG): Update for change to die_struct, use
816         remove_child_with_prev.
817         (add_child_die): Update for change to die_struct.
818         (splice_child_die): Use remove_child_with_prev and add_child_die.
819         (print_die): Use FOR_EACH_CHILD.
820         (die_checksum): Likewise.
821         (assign_symbol_names): Likewise.
822         (output_location_lists): Likewise.
823         (build_abbrev_table): Likewise.
824         (calc_die_sizes): Likewise.
825         (mark_dies): Likewise.
826         (unmark_dies): Likewise.
827         (unmark_all_dies): Likewise.
828         (output_die): Likewise.
829         (prune_unused_types_mark): Likewise.
830         (prune_unused_types_walk): Likewise.
831         (same_die_p): Update for change to die_struct.
832         (break_out_includes): Likewise.
833         (prune_unused_types_prune): Likewise.
834         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
835         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
836         it's already clear.
837         (dwarf2out_finish): Don't call reverse_all_dies.
838
839 2006-04-21  Eric Christopher  <echristo@apple.com>
840
841         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
842         in comments and function names.
843
844 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
845
846         PR c/25875
847         * c-typeck.c (digest_init): Robustify.
848
849         * c-typeck.c (pop_init_level): Simplify.
850
851 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
852
853         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
854
855 2006-04-21  Paul Brook  <paul@codesourcery.com>
856
857         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
858         hardware floating point.
859
860 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
861
862         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
863         NON_FLOAT_REGS.
864
865 2006-04-21  Nick Clifton  <nickc@redhat.com>
866
867         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
868         OPT_EXTRA_PARTS.
869
870 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
871
872         PR target/27230
873         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
874         C++ lang type in traceback table for Objective-C++.
875
876         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
877
878 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
879
880         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
881
882 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
883
884         PR mudflap/26789
885         * tree-mudflap.c (mudflap_finish_file): Skip function when there
886         were errors.  Remove check for erroneous objects.
887
888 2006-04-20  Jeff Law  <law@redhat.com>
889
890         PR tree-optimization/26854
891         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
892         checking for zero or one use.
893         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
894         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
895         * tree-ssa-reassoc.c (negate_value): Similarly.
896         (reassociate_bb): Similarly.
897
898 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
899
900         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
901         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
902         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
903
904 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
905
906         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
907         fp regs if the last fp arg doesn't fit in regs.
908
909 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
910
911         PR target/27182
912         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
913         that the last insn has the REG_INC note.
914
915 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
916             Nathan Sidwell  <nathan@codesourcery.com>
917
918         PR c/26774
919         * stor-layout.c (update_alignment_for_field): Do not align
920         ERROR_MARK nodes.
921         (place_union_field): Place union field at the start of the union.
922         (place_field): Move ERROR_MARK check later, and use the current
923         allocation position to maintain monotonicity.
924
925 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
926
927         * dominance.c: Include timevar.h.
928         (calculate_dominance_info): Use TV_DOMINANCE.
929         * timevar.def (TV_DOMINANCE): New timevar.
930         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
931
932 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
933
934         PR rtl-optimization/14261
935         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
936         move would be an INSV insn.
937         (noce_process_if_block): Don't optimize if the destination is a
938         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
939
940 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
941
942         * config/s390/s390.md: Add comments with the instructions emitted
943         by an insn pattern if macros are used.
944
945 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
946
947         PR rtl-optimization/26026
948         * fold-const.c (fold_binary): Optimize div and mod where the divisor
949         is a known power of two shifted left a variable amount.
950
951 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
952
953         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
954         to hash table twice when the debug_str section has SECTION_MERGE.
955
956 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
957
958         * config/soft-fp: New directory.  From glibc.
959         * config/soft-fp/t-softfp: New.
960         * config/soft-fp/README: New.
961         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
962         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
963         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
964         (LIBGCC_DEPS): Add $(SFP_MACHINE).
965         * config.gcc: Use rs6000/t-fprules-fpbit or
966         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
967         rs6000/t-fprules.
968         * config/rs6000/sfp-machine.h: New.  Based on glibc.
969         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
970         New.
971         * config/rs6000/t-fprules: Remove fp-bit rules.
972         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
973         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
974         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
975         (softfp_wrap_start, softfp_wrap_end): New.
976
977 2006-04-18  DJ Delorie  <dj@redhat.com>
978
979         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
980
981 2006-04-18  Devang Patel  <dpatel@apple.com>
982
983         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
984
985 2006-04-18  Nick Clifton  <nickc@redhat.com>
986
987         * config/sh/t-symbian: Add rule to build sh-c.o
988         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
989         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
990         (sh_symbian_encode_section_info): Likewise.
991
992 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
993
994         * builtins.c (expand_builtin_strcmp): Cover label definition of
995         do_libcall with HAVE_cmpstrnsi.
996
997 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
998
999         * function.c (temp_slots_at_level, max_slot_level): Use VEC
1000         instead of VARRAY.
1001         * function.h (temp_slot_p): New.
1002         (function): Change the type of x_used_temp_slots to
1003         VEC(temp_slot_p,gc) *.
1004
1005 2006-04-18  Nick Clifton  <nickc@redhat.com>
1006
1007         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
1008         flag_strength_reduce.
1009
1010         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
1011
1012 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
1013
1014         PR target/27117
1015
1016         Partial revert of revision 112637
1017         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
1018                     Dale Johannesen  <dalej@apple.com>
1019
1020         PR target/19653
1021         * regclass.c (struct reg_pref): Update documentation.
1022         (regclass): Set prefclass to NO_REGS if memory is the best option.
1023         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1024
1025 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
1026
1027         PR tree-optimization/26821
1028         * tree-ssa-math-opts.c (get_constant_one): New.
1029         (insert_reciprocals): Use it.
1030
1031 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
1032
1033         * dwarf2out.c (free_AT): Delete.
1034         (remove_AT): Update string ref counts.
1035         (remove_child_TAG): Don't call free_die.
1036         (free_die): Delete.
1037         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
1038         or DW_TAG_GNU_EINCL.
1039         (prune_unused_types_walk_attribs): Reset string refcounts.
1040         (prune_unused_types_update_strings): New.
1041         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
1042         call free_die.  Do call prune_unused_types_update_strings.
1043         (prune_unused_types): Empty debug_str_hash.
1044
1045 2006-04-17  Roger Sayle  <roger@eyesopen.com>
1046
1047         * expr.c (expand_assignment): Optimize away no-op moves where the
1048         source and destination are equal and have no side-effects.
1049
1050 2006-04-17  Richard Guenther  <rguenther@suse.de>
1051
1052         PR target/26826
1053         * reload.c (push_reload): Guard calls to get_secondary_mem
1054         for memory subregs.
1055
1056 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
1057
1058         * alias.c (reg_base_value, old_reg_base_value): Change the
1059         type to VEC(rtx,gc) *.
1060         (REG_BASE_VALUE, find_base_value, record_set,
1061         init_alias_analysis): Use VEC instead of VARRAY.
1062
1063         * alias.c (alias_sets): Change the type to
1064         VEC(alias_set_entry,gc) *.
1065         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
1066         VEC instead of VARRAY.
1067         (last_alias_set): Remove.
1068
1069         * cgraph.h (cgraph_edge_p): New.
1070         Update the prototype of cgraph_function_versioning.
1071         * cgraphunit.c (cgraph_copy_node_for_versioning,
1072         cgraph_function_versioning): Use VEC instead of VARRAY.
1073         * ipa-cp.c (ipcp_insert_stage): Likewise.
1074
1075 2006-04-16  Roger Sayle  <roger@eyesopen.com>
1076
1077         PR target/26961
1078         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
1079         "A op B" or "A op C", we may need to convert A to the type of B and C.
1080
1081 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
1082
1083         * target.h (struct gcc_target): Add mode_rep_extended.
1084         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
1085         (init_num_sign_bit_copies_in_rep): Initialize it using
1086         mode_rep_extended.
1087         (truncate_to_mode): Use it.
1088         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
1089         * targhooks.h (default_mode_rep_extended): Declare it.
1090         * targhooks.c (default_mode_rep_extended): Define it.
1091         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
1092         default_mode_rep_extended.
1093         (TARGET_INITIALIZER): Include it.
1094         * doc/tm.texi (Misc): Document it.
1095         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
1096         (mips_truncated_to_mode): New function.
1097
1098 2006-04-16  Roger Sayle  <roger@eyesopen.com>
1099
1100         PR middle-end/25474
1101         * expr.c (compress_float_constant): Copy the narrow constant into
1102         a new pseudo before extending it to its final width.
1103
1104 2006-04-16  Roger Sayle  <roger@eyesopen.com>
1105             Andrew Pinski  <pinskia@gcc.gnu.org>
1106             Dale Johannesen  <dalej@apple.com>
1107
1108         PR target/24076
1109         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
1110         special case code to implement V8HImode and V16QImode with SSE2.
1111
1112 2006-04-15  Roger Sayle  <roger@eyesopen.com>
1113
1114         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
1115         trees are constructed with a suitable tree type.
1116
1117 2006-04-15  Roger Sayle  <roger@eyesopen.com>
1118
1119         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
1120         (integer_onep): Likewise.
1121         (integer_all_onesp): Likewise.
1122         (integer_pow2p): Likewise.
1123         (integer_nonzerop): Likewise.
1124         (real_zerop): Likewise.
1125         (real_onep): Likewise.
1126         (real_twop): Likewise.
1127         (real_minus_onep): Likewise.
1128         (int_size_in_bytes): Likewise.
1129         (host_integerp): Likewise.
1130
1131 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
1132
1133         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1134         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1135         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1136
1137         * tree-ssa-structalias.h (alias_info): Remove num_references.
1138
1139 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1140
1141         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1142         (output_bvb patterns): Likewise.
1143         * pa.c (output_bb): Use 'bb' insn for long branch case.
1144         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1145         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1146         1.  Correct length operand for alternatives 1 and 2.
1147         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1148         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
1149
1150 2006-04-14  Roger Sayle  <roger@eyesopen.com>
1151
1152         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1153         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1154         were accidentally reverted by r112959.
1155
1156 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
1157
1158         PR middle-end/26823
1159         * except.h (eh_region_outermost): New prototype.
1160         * except.c (eh_region_outermost): New function.
1161         * tree-cfg.c (find_outermost_region_in_block): Use it.
1162
1163 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
1164
1165         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1166         of VARRAY.
1167         * reload1.c (reg_equiv_memory_loc_varray): Rename to
1168         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
1169         (init_reload, reload): Use VEC instead of VARRAY.
1170         * reload.h: Update the prototype for
1171         reg_equiv_memory_loc_varray.
1172
1173 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1174             Eric Botcazou  <ebotcazou@libertysurf.fr>
1175
1176         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1177         register save area.
1178
1179 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
1180
1181         PR middle-end/27134
1182         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1183         to expand fallback builtin function call.
1184
1185 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
1186
1187         PR middle-end/27095
1188         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1189         and emit libcall here in case the builtin fails.
1190         (expand_builtin_strcmp): Always emit the libcall here on failure.
1191
1192 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
1193
1194         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1195         * flow.c (reg_n_info): Change the type to
1196         VEC(reg_info_p,heap) *.
1197         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1198         instead of VARRAY.
1199         * regs.h (reg_info_p): New.
1200         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1201         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1202         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1203         instead of VARRAY.
1204
1205 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1206
1207         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1208         defaulting to 100.
1209         * params.h (MAX_SCHED_READY_INSNS): New macro.
1210         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1211         past MAX_SCHED_READY_INSNS during the first scheduling pass.
1212         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1213         the ready list for 1 cycle during the first scheduling pass.
1214         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1215
1216 2006-04-13  Richard Henderson  <rth@redhat.com>
1217
1218         PR libgomp/26651
1219         * gimple-low.c (lower_omp_directive): Remove dead code.
1220         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1221         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1222         * omp-low.c (struct omp_region): Move to tree-flow.h.
1223         (root_omp_region): Export.
1224         (omp_regions, lookup_omp_region): Remove.
1225         (determine_parallel_type): Update for struct omp_region changes.
1226         (dump_omp_region): Dump regions with block numbers.
1227         (new_omp_region): Take type and block instead of stmt; malloc
1228         instead of ggc.
1229         (free_omp_region_1, free_omp_regions): New.
1230         (expand_parallel_call): Take entry_stmt as argument; update for
1231         changes to omp_region.
1232         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1233         (remove_exit_barriers): New.
1234         (expand_omp_parallel): Update for struct omp_region changes.
1235         (expand_omp_synch): Likewise.
1236         (expand_omp): Likewise.
1237         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1238         (expand_omp_for_static_chunk): Likewise.
1239         (expand_omp_for): Likewise.
1240         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1241         (expand_omp_sections): Similarly, with GOMP_sections_end.
1242         (expand_omp_single): New.
1243         (build_omp_regions_1): Update for OMP_CONTINUE.
1244         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1245         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1246         OMP_SECTIONS_SECTIONS.
1247         (lower_omp_single_simple): Don't emit barrier here.
1248         (lower_omp_single_copy): Likewise.
1249         (lower_omp_single): Fix bindings, and lower to straightline now.
1250         (lower_omp_master, lower_omp_ordered): Likewise.
1251         (lower_omp_critical): Likewise.
1252         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
1253         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1254         omp edges, free it afterward.
1255         (make_omp_sections_edges): Remove.
1256         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1257         (move_stmt_r): Handle OMP_CONTINUE.
1258         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
1259         statement pointers to basic blocks.  Add type member.
1260         (root_omp_region, new_omp_region, free_omp_regions): Declare.
1261         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1262         * tree-inline.c (estimate_num_insns_1): Likewise.
1263         * tree-pretty-print.c (dump_generic_node): Likewise.
1264         * tree-ssa-operands.c (get_expr_operands): Likewise.
1265         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1266         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1267         (OMP_CONTINUE): New.
1268         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1269         (OMP_SECTIONS_SECTIONS): Remove.
1270         (OMP_SECTION_LAST): New.
1271         (OMP_RETURN_NOWAIT): New.
1272
1273 2006-04-13  Roger Sayle  <roger@eyesopen.com>
1274
1275         * fold-const.c (native_encode_vector, native_interpret_real):
1276         Correct obvious mistakes in the previous check-in.
1277
1278 2006-04-13  Roger Sayle  <roger@eyesopen.com>
1279
1280         * fold-const.c (native_encode_expr): New function to encode
1281         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1282         or VECTOR_CST into a specified buffer.
1283         (native_encode_int): New function.
1284         (native_encode_real): New function.
1285         (native_encode_complex): New function.
1286         (native_encode_vector): New function.
1287         (native_interpret_expr): Inverse of native_encode_expr to convert
1288         a target representation into an INTEGER_CST, REAL_CST etc...
1289         (native_interpret_int): New function.
1290         (native_interpret_real): New function.
1291         (native_interpret_complex): New function.
1292         (native_interpret_vector): New function.
1293         (fold_view_convert_expr): New function to constant fold/evaluate
1294         a VIEW_CONVERT_EXPR of a suitable constant expression.
1295         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1296         Change call of build1 to fold_build1 when constructing a
1297         VIEW_CONVERT_EXPR.
1298
1299 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
1300             Ulrich Weigand  <uweigand@de.ibm.com>
1301
1302         PR target/27006
1303         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1304         to be even.
1305
1306 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
1307
1308         PR target/26459
1309         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1310         optimize to lo_sum for DFmode if !TARGET_FPRS.
1311
1312 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
1313
1314         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1315         delete_alias_info, compute_flow_sensitive_aliasing,
1316         group_aliases): Use VEC instead of VARRAY.
1317         * tree-ssa-structalias.c (update_alias_info): Likewise.
1318         * tree-ssa-structalias.h (alias_info): Change the type of
1319         processed_ptrs to VEC(tree,heap) *.
1320
1321 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
1322
1323         PR target/27060
1324         * config/sh/lib1funcs.h: New file, broken out of:
1325         * config/sh/lib1funcs.asm.
1326         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1327         New macros.
1328         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1329         * config/sh/lib1funcs-Os-4-200.asm: New file.
1330         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1331         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1332         (EXTRA_MULTILIB_PARTS): Include it.
1333         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1334         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1335         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1336         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1337         TARGET_SH2.
1338
1339 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
1340
1341         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1342         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1343         tpa_compact, root_var_init, type_var_init): Use VEC instead of
1344         VARRAY.
1345         * tree-ssa-live.h: Include vecprim.h.
1346         (tree_partition_associator_d): Change the type of
1347         first_partition to VEC(int,heap) *.
1348         (tpa_first_partition): Use VEC instead of VARRAY.
1349
1350         * Makefile.in (GTFILES): Move functions.h after tree.h.
1351         * function.c (reset_block_changes, record_block_change,
1352         check_block_change, free_block_changes): Use VEC instead of
1353         VARRAY.
1354         * function.h (function): Change the type of
1355         ib_boundaries_block to VEC(tree,gc) *.
1356         * tree-inline.c (copy_cfg_body): Initialize
1357         ib_boundaries_block to NULL instead of (varray_type) 0.
1358
1359 2006-04-12  Roger Sayle  <roger@eyesopen.com>
1360
1361         * expr.c (emit_group_store): Correct operand order in call to
1362         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
1363         a SUBREG_BYTE of zero.
1364
1365 2006-04-12  Richard Guenther  <rguenther@suse.de>
1366
1367         * profile.c (compute_branch_probabilities): Remove code
1368         encapsulated in !ir_type (), which are remanents of the
1369         removed RTL profiling code.
1370         * rtl-profile.c: Remove.
1371
1372 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
1373
1374         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1375         magic NULL_RTX comment.
1376         (function_arg): Store entire fp arg to mem if any part should go
1377         on stack.
1378         (rs6000_arg_partial_bytes): Adjust for above change.
1379
1380 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1381
1382         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1383         if it hasn't been initialized by dwarf2out_init.
1384
1385 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
1386
1387         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1388         symbolic constants in branch patterns.
1389
1390 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1391
1392         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1393
1394 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
1395
1396         PR rtl-optimization/27073
1397         * gcse.c (try_replace_reg): Revert last change.  Continue to search
1398         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1399         on the former.
1400
1401 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1402
1403         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1404         aggregate types other than record and union types.
1405         (function_arg): Likewise.
1406         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1407         small arrays.
1408         (function_value): In 64-bit mode, return objects that require it
1409         in FP registers.
1410
1411 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1412
1413         * dwarf2out.c (premark_used_types): Remove problematic prototype.
1414
1415 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
1416
1417         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1418
1419 2006-04-03  Jeff Law  <law@redhat.com>
1420
1421         PR/27087
1422         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1423         alias information too.
1424
1425 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
1426
1427         * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
1428
1429 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
1430
1431         PR/21391
1432         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1433         (premark_used_types_helper): New.
1434         (premark_used_types): New.
1435         (gen_subprogram_die): Call premark_used_types.
1436         (prune_unused_types_walk): Do not prune perennial dies.
1437         * function.c (used_types_insert): New.
1438         * function.h (struct function): Add used_types_hash field.
1439         (used_types_insert): Add prototype.
1440         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1441         * c-parser.c (c_parser_cast_expression): Save casted types in used
1442         types hash table.
1443
1444 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
1445
1446         PR target/26459
1447         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1448         rs6000_explicit_options.float_gprs.
1449
1450 2006-04-10  Roger Sayle  <roger@eyesopen.com>
1451
1452         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1453         from ix86_expand_vector_init_low_nonzero.  Take an additional
1454         one_var argument indicating which element is non-zero.  Support
1455         one_var != 0 for V4SFmode and V4SImode by permuting the result.
1456         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1457         with one_var instead of ix86_expand_vector_init_low_nonzero.
1458
1459 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
1460
1461         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1462         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1463         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1464         build/genextract.o): Depend on vecprim.h.
1465         * cfglayout.c, df-problems.c, function.c, genextract.c,
1466         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1467         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1468         vecprim.h.
1469         * vecprim.h: New.
1470
1471 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
1472
1473         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1474         Declare VECs of this type.
1475         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1476         (remove_children): Delete.
1477         (add_dwarf_attr): Use VEC routines.
1478         (add_AT_flag): Update for changes to add_dwarf_attr.
1479         (add_AT_int): Likewise.
1480         (add_AT_unsigned): Likewise.
1481         (add_AT_long_long): Likewise.
1482         (add_AT_vec): Likewise.
1483         (add_AT_string): Likewise.
1484         (add_AT_die_ref): Likewise.
1485         (add_AT_fde_ref): Likewise.
1486         (add_AT_loc): Likewise.
1487         (add_AT_loc_list): Likewise.
1488         (add_AT_addr): Likewise.
1489         (add_AT_lbl_id): Likewise.
1490         (add_AT_lineptr): Likewise.
1491         (add_AT_macptr): Likewise.
1492         (add_AT_offset): Likewise.
1493         (add_AT_range_list): Likewise.
1494         (get_AT): Use VEC_iterate.
1495         (remove_AT): Use VEC_ordered_remove.
1496         (free_die): Fold remove_children into here; have it use VEC_iterate.
1497         (print_die): Use VEC_iterate on attrs.
1498         (reverse_die_lists): Don't reverse attr lists.
1499         (die_checksum): Use VEC_iterate on attrs.
1500         (same_die_p): Likewise.
1501         (output_location_lists): Likewise.
1502         (build_abbrev_table): Likewise.
1503         (size_of_die): Likewise.
1504         (unmark_all_dies): Likewise.
1505         (output_abbrev_section): Likewise.
1506         (output_die): Likewise.
1507         (prune_unused_types_walk_attribs): Likewise.
1508
1509 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1510
1511         * doc/install.texi (*-*-solaris2*): Point to the configure page.
1512
1513 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
1514
1515         PR debug/27057
1516         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1517
1518 2006-04-09  Roger Sayle  <roger@eyesopen.com>
1519
1520         * expr.c (store_constructor): Don't bother clearing target if
1521         we're about to assign a vector to it using vec_init_optab.
1522
1523 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
1524
1525         * tree-ssa-alias.c (lhs_may_store_to): New function.
1526         (recalculate_used_alone): Handle LHS of calls.
1527
1528 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1529
1530         PR target/27034
1531         PR target/26508
1532         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1533         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
1534         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
1535         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1536         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1537         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1538         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1539         stubs.  Add ".align 8" directives before all ".dword" directives.
1540         (GTHREAD_USE_WEAK): Revise comment.
1541         (TARGET_ATTRIBUTE_WEAK): Define.
1542         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1543         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1544         * stublib.c: New file.
1545
1546         PR target/26743
1547         PR target/11254
1548         PR target/10274
1549         * pa.md (cbranch patterns): Revise arguments used in calls to
1550         output_cbranch, output_bb and output_bvd.  Add long branch length
1551         attributes.
1552         (fbranch patterns): Handle long branches.
1553         (jump): Revise length check.  Revise arguments for output_lbranch call.
1554         Add long branch length attributes.
1555         (decrement_and_branch_until_zero): Add long branch length attributes.
1556         (output_movb, output_parallel_addb and output_parallel_movb patterns):
1557         Likewise.  Revise arguments for output_parallel_addb and
1558         output_parallel_movb calls.
1559         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
1560         output_parallel_movb and output_parallel_addb): Update prototypes.
1561         * pa.c (output_cbranch): Revise arguments.  Correct handling of
1562         nullification in long branches.
1563         (output_lbranch): Add new argument to control extraction of delay
1564         instruction.
1565         (output_bb): Handle long branches.
1566         (output_bvb, output_dbra, output_movb, output_parallel_movb,
1567         output_parallel_addb): Likewise.
1568
1569 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
1570
1571         PR rtl-optimization/27073
1572         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
1573         not REG_EQUIVs.
1574
1575 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
1576
1577         * tree.h (tree_memory_tag): Add old_used_alone.
1578         (SMT_OLD_USED_ALONE): New macro.
1579         * tree-ssa-alias.c (recalculate_used_alone): Stop
1580         marking things for renaming unnecessarily.
1581
1582 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
1583
1584         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
1585         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
1586         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
1587         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
1588         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
1589         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
1590         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
1591         spelling convensions.
1592         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
1593         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
1594         typos.  Follow spelling conventions.
1595
1596 2006-04-07  DJ Delorie  <dj@redhat.com>
1597
1598         * config/m32c/m32c.c (m32c_function_arg): Structures are always
1599         passed on the stack.
1600         (m32c_init_cumulative_args): When a function returns a structure,
1601         always pass the pointer to that return area on the stack.
1602         (m32c_function_arg_advance): Don't increment the parameter number
1603         if we're processing the returned structure pointer.
1604         (pushm_info): Reverse order of registers.
1605
1606 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
1607
1608         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
1609         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
1610         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
1611         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
1612         build_int_cst_type.
1613         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1614         chrec_fold_multiply): Same.
1615         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
1616         force_expr_to_var_cost): Same.
1617         * tree-mudflap.c (mf_xform_derefs_1): Same.
1618         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
1619
1620 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
1621
1622         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
1623         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
1624         insn.
1625
1626 2006-04-07  Jan Hubicka  <jh@suse.cz>
1627
1628         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
1629
1630 2006-04-07  Richard Guenther  <rguenther@suse.de>
1631
1632         PR tree-optimization/26135
1633         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
1634         loads for store copy-prop.
1635         (copy_prop_visit_stmt): Likewise.
1636
1637 2006-04-05  Robert Millan  <robertmh@gnu.org>
1638
1639         * gcc/config/i386/linux.h:  Add a comment to mark macros that are
1640         being overriden in config/k*bsd-gnu.h.
1641         * gcc/config/kfreebsd-gnu.h:  Redefine GLIBC_DYNAMIC_LINKER instead of
1642         DYNAMIC_LINKER.
1643         * gcc/config/knetbsd-gnu.h:  Ditto.
1644
1645 2006-04-06  Jan Hubicka  <jh@suse.cz>
1646
1647         PR profile/20815
1648         PR profile/26399
1649         * coverage.c (coverage_checksum_string): Reorganize loop to not read
1650         after buffer.
1651
1652 2006-04-06  Mike Stump  <mrs@apple.com>
1653
1654         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
1655         for HAVE_nonlocal_goto to be consistent.
1656         (expand_builtin_nonlocal_goto): Likewise.
1657         (expand_builtin_strcmp): Use #ifdef instead of #if
1658         for HAVE_cmpstrnsi to be consistent.
1659
1660 2006-04-05  DJ Delorie  <dj@redhat.com>
1661
1662         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1663         vs m32c.
1664
1665 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1666
1667         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1668         got-relative addressing for anything but SImode.
1669
1670         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1671         even if the calling function doesn't modify them.
1672
1673 2006-04-05  Richard Guenther  <rguenther@suse.de>
1674
1675         PR tree-optimization/26919
1676         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1677         to cgraph_estimate_size_after_inlining.
1678
1679 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
1680
1681         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1682
1683 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
1684
1685         PR tree-optimization/26996
1686         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1687         VECTOR_TYPE variables.
1688
1689 2006-04-05  Richard Guenther  <rguenther@suse.de>
1690
1691         PR tree-optimization/26763
1692         * fold-const.c (fold_comparison): Move folding of
1693         PTR + CST CMP PTR + CST ...
1694         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
1695
1696 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
1697
1698         * doc/install.texi (Prerequisites): Refine some wording on
1699         bootstrapping and ksh.
1700         Move the version numbers of DejaGnu here from the testing section
1701         and fix casing of names.
1702         Fix markup and clarify wording for autogen requirements.
1703         Refer to GCJ instead of just java.
1704         Refer to SVN instead of CVS.
1705         Describe diffutils as useful instead of necessary.
1706         (Downloading the source): Refer to SVN instead of CVS.
1707         Adjust a link to our web site accordingly.
1708         (Configuration): Fix casing of Bison.
1709         (Building): Refer to SVN instead of CVS.
1710         Fix a sentence on the use of Bison and remove duplicate (and
1711         incorrect) version number of Bison requirement.
1712         Remove one redundant list of packages needed for building.
1713         (Specific): Avoid reference to CVS.
1714
1715 2006-04-04  Eric Christopher  <echristo@apple.com>
1716
1717         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
1718         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
1719         (rs6000_handle_struct_attribute): New.
1720         (rs6000_ms_bitfield_layout_p): Ditto.
1721
1722 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
1723
1724         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1725         NULL for dso parameter to atexit_common.
1726
1727 2006-04-04  Eric Christopher  <echristo@apple.com>
1728
1729         * config/i386/i386.c (machopic_output_stub): Output \t
1730         between instructions and operands.
1731
1732 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
1733
1734         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1735         satisfies_constraint_[IL] to explicit tests on value.
1736
1737 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
1738
1739         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1740         set_nb_iterations_in_loop): Use build_int_cst instead of
1741         build_int_cst_type.
1742         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1743         build_int_cst instead of convert.
1744
1745 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
1746
1747         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
1748         new value 2 for incoming.
1749         * function.c (expand_function_start): Call struct_value_rtx
1750         with incoming as 2.
1751         * config/sparc/sparc.md: Comment updated_return.
1752         * config/sparc/sparc.opt: Add -mstd-struct-return option.
1753         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
1754         struct return if sparc_std_struct_return and incoming is 2.
1755         (print_operand): Do not adjust return if
1756         sparc_std_struct_return.
1757
1758 2006-04-04  Roger Sayle  <roger@eyesopen.com>
1759
1760         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
1761         convert in the middle-end.
1762         * expr.c (store_expr, store_constructor, get_inner_reference,
1763         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
1764         Likewise.
1765         * tree.c (build_range_type): Likewise.
1766
1767 2006-04-04  Tom Tromey  <tromey@redhat.com>
1768
1769         * doc/install.texi (Prerequisites): Mention jar.
1770
1771 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
1772
1773         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1774         subsection.
1775
1776 2006-04-04  Matthias Klose  <doko@debian.org>
1777
1778         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1779         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
1780         strings.
1781
1782 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
1783
1784         * doc/extend.texi (Function Attributes): Rewrite visibility
1785         attribute documentation.
1786         * doc/invoke.texi (C++ Dialect Options): Rewrite
1787         -fvisibility-inlines-hidden documentation to describe something
1788         entirely different, although in practise compatible.
1789         (Code Gen Options): Warn about system headers in -fvisibiltity=
1790         documentation.
1791
1792         * doc/extend.texi (Other Builtins): Document that
1793         __builtin_nan is a compile-time constant only when its argument
1794         is valid.
1795
1796 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1797
1798         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
1799         trying to remove TRUNCATE check if all bits outside the new mode
1800         are identical to the sign bit.
1801
1802 2006-04-03  Jeff Law  <law@redhat.com>
1803
1804         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1805         and operand scanning in some common cases.
1806
1807 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
1808             Dale Johannesen  <dalej@apple.com>
1809
1810         PR target/19653
1811         * regclass.c (struct reg_pref): Update documentation.
1812         (regclass): Set prefclass to NO_REGS if memory is the best option.
1813         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1814         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
1815         into account.  For non-registers, equate an empty preferred
1816         reload class to a `!' in the constraint; move the if clause to
1817         do so after those that reject the insn.
1818         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
1819         return NO_REGS.
1820         (find_dummy_reload): Likewise.
1821         * doc/tm.texi (Register Classes): Document what it means
1822         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
1823         * config/i386/i386.c (ix86_preferred_reload_class): Force
1824         using SSE registers (and return NO_REGS for floating-point
1825         constants) if math is done with SSE.
1826         (ix86_preferred_output_reload_class): New.
1827         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
1828         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
1829         * config/i386/i386.md: Remove # register preferences.
1830
1831 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1832
1833         PR bootstrap/26992
1834         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1835         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
1836         the type of nb_iter.
1837         (instantiate_parameters_1): Convert the operands before calling
1838         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
1839         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
1840
1841 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1842
1843         * builtins.c (dummy_object): Use build_int_cst instead of convert.
1844         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1845         instead of convert.
1846         * dojump.c (do_jump): Likewise.
1847         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
1848         * gimplify.c (gimple_boolify, gimplify_init_constructor,
1849         gimplify_boolean_expr): Likewise.
1850         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1851         * varasm.c (array_size_for_constructor): Likewise.
1852         * tree-object-size.c (compute_object_offset): Likewise.
1853
1854 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1855
1856         PR middle-end/26977
1857         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1858         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1859
1860 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1861
1862         PR tree-optimization/26939
1863         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1864
1865 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1866
1867         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
1868         at_stmt.  Convert the type of operands before calling
1869         build_polynomial_chrec.
1870         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
1871         add_to_evolution_1.
1872         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
1873         (instantiate_parameters_1): Convert the type of operands before calling
1874         build_polynomial_chrec.
1875         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1876         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
1877         reset_evolution_in_loop): Insert asserts to check the types of the
1878         operands.
1879         (chrec_type): Moved...
1880         (eq_evolutions_p): Use operand_equal_p.
1881         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
1882         the types of the operands.
1883         (chrec_type): ...here.
1884         * tree-data-ref.c (create_data_ref): Convert the operands before
1885         calling chrec_replace_initial_condition.
1886         (same_access_functions, analyze_subscript_affine_affine,
1887         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
1888         (compute_subscript_distance, analyze_ziv_subscript,
1889         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
1890         analyze_miv_subscript): Convert the operands before calling
1891         chrec_fold_minus or chrec_fold_plus.
1892
1893 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1894
1895         * tree-data-ref.c (compute_all_dependences): Use a pointer to
1896         the dependence_relations vector.
1897         (compute_data_dependences_for_loop): Adjust call to
1898         compute_all_dependences.
1899
1900 2006-04-01  Roger Sayle  <roger@eyesopen.com>
1901             Richard Henderson  <rth@redhat.com>
1902
1903         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1904         gimple_boolify on the condition before calling gimplify_expr.
1905
1906 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
1907
1908         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
1909         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
1910         the frame size.  Update to use the new macros.
1911         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
1912         * config/xtensa/ieee754-df.S: Likewise.
1913
1914 2006-03-31  Richard Henderson  <rth@redhat.com>
1915
1916         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
1917         (make_edges): ... here.  Control fallthru creation with a local
1918         variable.  Do not play with fake edges.
1919         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
1920         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
1921         a boolean.
1922
1923 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1924
1925         * dwarf2.h (DW64_CIE_ID): Define.
1926         * dwarf2out.c (DWARF_CIE_ID): Define.
1927         (output_call_frame_info): Output 0xffffffff before standard 8-byte
1928         length header.  Use DWARF_CIE_ID.
1929         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
1930         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
1931
1932 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1933
1934         * config/sh/linux-atomic.asm: New file.
1935         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1936
1937 2006-03-31  DJ Delorie  <dj@redhat.com>
1938
1939         * config/m32c/cond.md: Set condition flags properly throughout.
1940         * config/m32c/minmax.md: Likewise.
1941         * config/m32c/prologue.md: Likewise.
1942         * config/m32c/bitops.md: Likewise.
1943         * config/m32c/muldiv.md: Likewise.
1944         * config/m32c/mov.md: Likewise.
1945         * config/m32c/addsub.md: Likewise.
1946         * config/m32c/m32c.md: Likewise.
1947         * config/m32c/jump.md: Likewise.
1948         * config/m32c/shift.md: Likewise.
1949
1950         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
1951         conditionally output the pattern for this.
1952         * config/m32c/m32c.c (flags_needed_for_conditional): New.
1953         (m32c_compare_redundant): New.
1954         (m32c_output_compare): New.
1955         * config/m32c/m32c-protos.h (m32c_output_compare): New.
1956
1957         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1958         dest, not src.  Allow other 4-byte modes.
1959
1960 2006-03-30  Denis Chertykov  <denisc@overta.ru>
1961
1962         * doc/md.texi: Refer to avr/constraints.md instead of
1963         avr/avr.h.
1964
1965 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1966
1967         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1968         signed vs. unsigned comparison failures on some hosts.
1969
1970 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
1971
1972         PR target/26459
1973         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1974         change to FLOAT_REGS.
1975
1976         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
1977         (rs6000_override_options): Use it.
1978         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
1979         only for -mabi=spe/no-spe and -mabi=altivec.
1980
1981 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
1982
1983         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1984         !Zdynamiclib.
1985
1986 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
1987
1988         * Makefile.in: Rename docdir to gcc_docdir.
1989
1990 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1991
1992         PR target/17959
1993         * expr.c (emit_group_store):  Optimize group stores into a pseudo
1994         register by using a paradoxical subreg to initialize the destination
1995         if the first or last member of the group specifies a "low part".
1996
1997 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1998
1999         PR target/26734
2000         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
2001         * target.h (struct gcc_target.speculate_insn): Change type of the
2002         second parameter to 'int'.
2003         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
2004         the second operand of the DEPS_LIST.
2005         (copy_DEPS_LIST_list): Update reference to the second operand of the
2006         DEPS_LIST.
2007         * rtl.h (alloc_DEPS_LIST): Update signature.
2008         * sched-int.h (ds_t): Change typedef to 'int'.
2009         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2010
2011 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2012
2013         * haifa-sched.c (try_ready): Change condition to restore
2014         non-speculative pattern of the instruction.
2015         (process_insn_depend_be_in_spec): Code to keep probability of the
2016         speculative dependence non-decreasing.
2017
2018 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
2019
2020         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
2021         (single_move_for_movmem): ... this. Also change all uses.
2022         (bfin_expand_strmov): Renamed to...
2023         (bfin_expand_movmem): ... this. Also change all uses.
2024         * config/bfin/bfin.md (movstrsi): Renamed to...
2025         (movstrsi): ...this.
2026
2027 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
2028
2029         PR tree-optimization/26830
2030
2031         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
2032         (copy_prop_visit_stmt): Remove write-only variable ann.
2033         (init_copy_prop): Check variable loop depth here.  Do not simulate
2034         memory-tag and virtual operand PHIs except for store copy prop.
2035
2036 2006-03-30  Richard Guenther  <rguenther@suse.de>
2037
2038         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
2039         variants with double arguments.
2040
2041 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
2042
2043         * genpreds.c (write_tm_constrs_h): Delete variable p.
2044         * genconditions.c (write_header): Add tm-constrs.h to included
2045         headers.
2046         * genpeep.c (main): Add toplev.h to included headers.
2047         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
2048         (build/genpeep.o): Add toplev.h dependency.
2049         * config/rs6000/constraints.md: Add "W" constraint.
2050
2051 2006-03-29  Roger Sayle  <roger@eyesopen.com>
2052
2053         * stor-layout.c (mode_for_size_tree): Remove restiction on type
2054         sizes by correctly testing whether the size fits a host integer.
2055         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
2056         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
2057         SImode range for the default sizetype and bitsizetype.
2058
2059 2006-03-29  Roger Sayle  <roger@eyesopen.com>
2060
2061         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
2062         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
2063         quickly if the argument is already of the correct type.
2064         Call fold_build1 instead of build1.  Tidy up blank lines.
2065
2066 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
2067
2068         * genemit.c (main): Add tm-constrs.h to included headers.
2069         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
2070         * genpeep.c (main): Add tm-constrs.h to included headers.
2071         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
2072         (write_tm_constrs_h): this and write complete file.
2073         (write_tm_preds_h): Do not emit satisfies_constraint fns.
2074         (write_insn_preds_c): Add tm-constrs.h to included headers.
2075         (gen_constrs): New variable.
2076         (parse_option): Parse "-c".
2077         (main): Invoke write_tm_constrs_h.
2078         * genrecog.c (write_header): Add tm-constrs.h to included headers.
2079         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
2080         (object_out_file): Add tm-constrs.h dependency.
2081         (insn-emit.o): Same.
2082         (insn-output.o): Same.
2083         (insn-peep.o): Same.
2084         (insn-preds.o): Same.
2085         (insn-recog.o): Same.
2086         (tm-constsr.h): New target.
2087         (s-constrs-h): New target.
2088
2089         * config/rs6000/constraints.md: New file.
2090         * config/rs6000/rs6000.c: Include tm-constrs.h.
2091         (num_insn_constant_wide): Convert to satisfies_constraint.
2092         (rs6000_rtx_costs): Convert to satisfies_constraint.
2093         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
2094         (CONST_OK_FOR_LETTER_P): Delete.
2095         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2096         (EXTRA_CONSTRAINT): Delete.
2097         (EXTRA_MEMORY_CONSTRAINT): Delete.
2098         (EXTRA_ADDRESS_CONSTRAINT): Delete.
2099         * config/rs6000/predicates.md: Convert to satisfies_constraint.
2100         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
2101         satisfies_constraint.
2102
2103         * config/i386/i386.c: Include tm-constrs.h.
2104
2105 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
2106
2107         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
2108         * tree-data-ref.c (find_data_references_in_loop,
2109         compute_data_dependences_for_loop): Use pointers to VEC.
2110         (analyze_all_data_dependences): Adjust calls.
2111         * tree-data-ref.h (find_data_references_in_loop,
2112         compute_data_dependences_for_loop): Adjust declarations.
2113         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
2114         compute_data_dependences_for_loop.
2115
2116 2006-03-29  Paul Brook  <paul@codesourcery.com>
2117
2118         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
2119         (movdf_vfp): Ditto.
2120
2121 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
2122
2123         PR tree-optimization/26859
2124         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
2125         division by zero.
2126         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2127         for the step after fold_convert.
2128
2129 2006-03-29  Paul Brook  <paul@codesourcery.com>
2130
2131         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2132         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2133
2134 2006-03-29  Paul Brook  <paul@codesourcery.com>
2135
2136         PR middle-end/23623
2137         * targhooks.c (default_narrow_bitfield): New fuction.
2138         * targhooks.h (default_narrow_bitfield): add prototype.
2139         * target.h (gcc_target): Add narrow_volatile_bitfield.
2140         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2141         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2142         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2143         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2144
2145 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2146
2147         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2148         tmake_file.
2149         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2150         (NR_C_MODES): Add TDmode, DDmode and SDmode.
2151         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2152         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2153         (s390_function_arg_float): Allow SDmode and DDmode values to be
2154         passed in floating point registers.
2155         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2156         check with SCALAR_FLOAT_MODE_P.
2157         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2158
2159 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
2160
2161         PR tree-optimization/25985
2162         * tree-ssa-loop-niter.c (number_of_iterations_le,
2163         number_of_iterations_ne): Make comments more precise.
2164         (number_of_iterations_cond): Add only_exit argument.  Use the
2165         fact that signed variables do not overflow only when only_exit
2166         is true.
2167         (loop_only_exit_p): New.
2168         (number_of_iterations_exit): Pass result of loop_only_exit_p to
2169         number_of_iterations_cond.
2170
2171 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
2172
2173         PR tree-optimization/26643
2174         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2175         bit_field_refs.
2176
2177 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2178
2179         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2180         (divsi3_i4_int): Likewise.
2181
2182 2006-03-28  Roger Sayle   <roger@eyesopen.com>
2183
2184         * expr.c (emit_group_store): Only create a new pseudo reg if the
2185         quantity it needs to hold isn't already a suitable pseudo.
2186
2187 2006-03-28  Jeff Law  <law@redhat.com>
2188
2189         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2190         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2191
2192 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2193
2194         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2195         the equivalent ~X & Y, and the symmetry related transformations.
2196         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2197         ~X & Y, and symmetry related transforms.
2198
2199 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2200
2201         Revert my 2006-03-27 patches.
2202
2203 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2204
2205         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2206         ~(T1)X, when T1 and T2 are integer types of the same precision
2207         and (T2)X isn't an extension.
2208
2209 2006-03-28  Jeff Law  <law@redhat.com>
2210
2211         PR tree-optimization/26796
2212         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2213         need EH edge cleanups rather than purging them immediately.
2214         (eliminate_degenerate_phis): Handle queued EH cleanups.
2215
2216 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
2217
2218         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2219         from parent_var.
2220
2221 2006-03-27  Roger Sayle  <roger@eyesopen.com>
2222
2223         PR middle-end/22524
2224         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2225         cast BIT_NOT_EXPR operand to the correct type.
2226
2227 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
2228
2229         * tree-loop-linear.c: Don't include varray.h.
2230         (gather_interchange_stats, try_interchange_loops,
2231         linear_transform_loops): Use VEC instead of VARRAY.
2232         * lambda-mat.c: Don't include varray.h.
2233         * tree-chrec.c: Same.
2234         * lambda-trans.c: Same.
2235         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2236         VEC instead of VARRAY.
2237         * tree-vectorizer.h: Idem.
2238         * tree-data-ref.c (dump_data_references,
2239         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2240         initialize_data_dependence_relation, finalize_ddr_dependent,
2241         compute_all_dependences, find_data_references_in_loop,
2242         compute_data_dependences_for_loop, analyze_all_data_dependences,
2243         free_dependence_relation, free_dependence_relations,
2244         free_data_refs): Idem.
2245         * tree-data-ref.h (data_reference_p, subscript_p): New.
2246         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2247         VEC instead of VARRAY.
2248         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2249         (find_data_references_in_loop, compute_data_dependences_for_loop,
2250         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2251         dump_data_dependence_relations, free_dependence_relations,
2252         free_data_refs): Adjust declaration.
2253         (lambda_transform_legal_p): Move declaration here...
2254         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2255         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2256         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2257         vect_analyze_data_refs): Use VEC instead of VARRAY.
2258         * lambda.h (lambda_transform_legal_p): ...from here.
2259         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2260         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2261         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2262         tree-chrec.o): Don't depend on VARRAY_H.
2263
2264 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2265
2266         * rtl.def (Copyright): Update date.
2267         (DEPS_LIST): Change type of the second operand to 'int'.
2268         * target.h (Copyright): Update date.
2269         (struct gcc_target.speculate_insn): Change type of the second parameter
2270         to 'int'.
2271         * lists.c (Copyright): Update date.
2272         (alloc_DEPS_LIST): Change signature.  Update reference to the second
2273         operand of the DEPS_LIST.
2274         (copy_DEPS_LIST_list): Update reference to the second operand of the
2275         DEPS_LIST.
2276         * rtl.h (Copyright): Update date.
2277         (alloc_DEPS_LIST): Update signature.
2278         * sched-int.h (Copyright): Update date.
2279         (ds_t): Change typedef to 'int'.
2280         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2281
2282 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2283
2284         * haifa-sched.c (Copyright): Update date.
2285         (try_ready): Change condition to restore non-speculative pattern
2286         of the instruction.
2287         (process_insn_depend_be_in_spec): Code to keep probability of the
2288         speculative dependence non-decreasing.
2289
2290 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
2291
2292         * regrename.c (replace_oldest_value_addr): Initialize a variable to
2293         shut up the compiler.
2294
2295 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
2296
2297         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2298         to use lib prefix for target.
2299         ($(T)libic_invalidate_array_4-200.a): Likewise.
2300         ($(T)libic_invalidate_array_4a.a): Likewise.
2301
2302 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
2303             J"orn Rennecke <joern.rennecke@st.com>
2304
2305         * superh.opt: New file.
2306         * sh.c (boardtype, osruntime): Remove.
2307         * superh.h (SUBTARGET_OPTIONS): Remove.
2308         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2309
2310         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
2311         arguments with ^ and/or [].
2312
2313         * config.gcc (sh-*-*): Add quoting to account for quirk of
2314         Solaris /bin/sh.
2315         Replace == with = in enable_incomplete_targets test.
2316
2317         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2318         with MASK_LITTLE_ENDIAN.
2319
2320         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2321         * config/sh/sh.opt: Added to some comments.
2322         * config/sh/superh.h: Removed some chaff.
2323
2324         * config/sh/sh.opt: Add m4-[1234]00* options.
2325         * config/sh/sh.c (sh_handle_option): Likewise.
2326         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2327         (ic_invalidate_array_4-100.o): New rule.
2328         ($(T)libic_invalidate_array_4-100.a): Likewise.
2329         (ic_invalidate_array_4-200.o): Likewise.
2330         ($(T)libic_invalidate_array_4-200.a): Likewise.
2331         (ic_invalidate_array_4a.o): Likewise.
2332         ($(T)libic_invalidate_array_4a.a): Likewise.
2333         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2334         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2335         m4-200*, and m4a*.
2336         * config/sh/crt1.asm: Merged in profiling code.
2337         * config/sh/superh.h (STARTFILE_SPEC): Override.
2338         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2339         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2340         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2341
2342         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2343         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2344         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2345
2346         * sh.opt (mpretend-cmove): New option.
2347         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2348         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2349         (movsicc): Add TARGET_PRETEND_CMOVE code.
2350
2351 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2352
2353         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
2354         s390_class_max_nregs): New function prototypes.
2355         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2356         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2357         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2358         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2359
2360 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
2361
2362         * dwarf2out.c (add_location_or_const_value_attribute): Call
2363         tree_add_const_value_attribute if nothing else works.
2364         (reference_to_unused): New.
2365         (rtl_for_decl_init): Use reference_to_unused to decide whether
2366         to output an initializer.
2367
2368 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
2369
2370         PR target/26459
2371         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2372         peephole removing spe frob_di_df_2.
2373
2374 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
2375
2376         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2377         (subscript_dependence_tester_1): Declared.
2378         (print_dir_vectors, print_dist_vectors): New.
2379         (debug_data_dependence_relation): New.
2380         (dump_data_dependence_relation): Print more details.
2381         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2382         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2383         (save_dist_v, save_dir_v, add_outer_distances,
2384         build_classic_dist_vector_1): New.
2385         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2386         Don't test for lambda_vector_lexico_pos.
2387         (same_access_functions, add_multivariate_self_dist,
2388         add_other_self_distances, dir_from_dist): New.
2389         (build_classic_dir_vector): Replace implementation almost identical to
2390         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2391         dir_from_dist.
2392         (subscript_dependence_tester_1): New.
2393         (subscript_dependence_tester): Handle the lexicographically negative
2394         distance vectors by recomputing the dependence relation.
2395         (compute_affine_dependence): Remove parameter loop_nest_depth.
2396         (compute_self_dependence): Don't call compute_subscript_distance.
2397         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2398         Add a parameter for the loop_nest.
2399         (find_loop_nest_1, find_loop_nest): New.
2400         (compute_data_dependences_for_loop): Compute the loop nest, and give
2401         up if the nest is not well formed.
2402         * tree-data-ref.h (loop_p): New.
2403         (struct data_dependence_relation): Replace size_vect field with
2404         loop_nest, a vec of loops.
2405         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2406         (DDR_LOOP_NEST): New.
2407         (print_dir_vectors, print_dist_vectors,
2408         debug_data_dependence_relation): Declared.
2409         (index_in_loop_nest): New.
2410         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2411         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2412         distance.
2413
2414 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
2415
2416         * simplify-rtx.c (simplify_relational_operation): Call
2417         simplify_relational_operation_1 even if mode is VOIDmode.
2418
2419 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
2420
2421         PR tree-optimization/26804
2422         * tree.h (DECL_CALL_CLOBBERED): New macro.
2423         (tree_decl_common): Add call_clobbered_flag.
2424         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2425         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2426         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2427         (mark_non_addressable): Ditto.
2428         * tree-ssa.c (verify_call_clobbered): New function.
2429         (verify_alias_info): Use it.
2430         * tree-pass.h (pass_reset_cc_flags): New prototype.
2431         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2432         (reset_cc_flags): New function.
2433         * passes.c (init_optimization_passes): Call reset_cc_flags after
2434         initializing referenced_vars.
2435
2436 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
2437             Roger Sayle  <roger@eyesopen.com>
2438
2439         PR middle-end/26717
2440         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2441         to 1.0 for non-real operands. Implement A / A optimization for
2442         complex operands.
2443
2444 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
2445
2446         * config/i386/i386.c (size_cost): Correct the comment for
2447         cost of storing fp registers.
2448         (i386_cost): Likewise.
2449         (i486_cost): Likewise.
2450         (pentium_cost): Likewise.
2451         (pentiumpro_cost): Likewise.
2452         (k6_cost): Likewise.
2453         (athlon_cost): Likewise.
2454         (k8_cost): Likewise.
2455         (pentium4_cost): Likewise.
2456         (nocona_cost): Likewise.
2457         (generic64_cost): Likewise.
2458         (generic32_cost): Likewise.
2459
2460 2006-03-24  Denis Chertykov  <denisc@overta.ru>
2461
2462         * config/avr/avr-protos.h (extra_constraint): Delete.
2463         (extra_constraint_Q): New declaration.
2464         * config/avr/constraints.md: New file.
2465         * config/avr/avr.md: Include it.
2466         (REG_X, REG_Y, REG_Z, REG_W): New constants.
2467         (TMP_REGNO, ZERO_REGNO): Likewise.
2468         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2469         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2470         (extra_constraint): Delete.
2471         (extra_constraint_Q): Test for memory constraint 'Q'.
2472         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2473         (REG_CLASS_FROM_LETTER): Delete.
2474         (CONST_OK_FOR_LETTER_P): Delete.
2475         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2476         (EXTRA_CONSTRAINT): Delete.
2477         (TMP_REGNO): Delete.
2478         (ZERO_REGNO): Delete.
2479
2480 2006-03-24  Jeff Law  <law@redhat.com>
2481
2482         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2483         directly.  Call mark_new_vars_to_rename slightly earlier.
2484
2485 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
2486
2487         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2488         (is_cxx): Likewise.
2489         (gen_compile_unit_die): Use new language types for Objective-C and
2490         Objective-C++.
2491         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2492         DW_LANG_C_plus_plus.
2493
2494         PR 26793
2495         * config/t-darwin (crt3.o): Work around bug 26840.
2496         * config/darwin-crt3.c: Rewrite.
2497         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2498
2499 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
2500
2501         * doc/invoke.texi: Document -femit-class-debug-always
2502         * common.opt: Add -femit-class-debug-always.
2503
2504 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2505
2506         * config/s390/s390.c (s390_decompose_address): Allow SImode for
2507         index and base register.
2508         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2509         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2510         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2511         REGNO_OK_FOR_INDEX_P.
2512         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2513         ADDR_REGNO_P.
2514         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2515         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2516         REG_OK_FOR_BASE_P): Definitions removed.
2517
2518 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
2519
2520         PR middle-end/26611
2521         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2522         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2523         set yet or weren't marked as local yet.
2524
2525 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2526
2527         * regrename.c (scan_rtx_address): Initialize a variable to shut up
2528         the compiler.
2529
2530 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2531
2532         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2533         (rs6000_legitimate_small_data_p): Delete.
2534         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2535         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2536         and make static.  Add forward declaration.  Update uses.
2537         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2538         of offsettable_memref_p.
2539         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2540         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2541
2542 2006-03-24  Jeff Law  <law@redhat.com>
2543
2544         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2545         around bug in immediate-use iterator.
2546
2547 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
2548
2549         PR target/26607
2550         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2551         or __LITTLE_ENDIAN__.
2552
2553 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
2554
2555         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
2556         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
2557         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
2558         * config/sh/sh.opt (mdiv=): Amend description.
2559         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
2560         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
2561         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
2562         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
2563         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
2564         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
2565         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
2566         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
2567         TARGET_DIVIDE_CALL_FP.
2568
2569 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2570
2571         * haifa-sched.c (choose_ready): Fix type of the local variable.
2572         Move local variables.  Add comment.
2573         (check_reg_live): Change signature.  Make callable from debugger.
2574         * sched-int.h (check_reg_live): Update signature.
2575         * sched-ebb.c (check_reg_live): Update parameters.
2576         * sched-rgn.c (check_reg_live): Ditto.
2577         (region_head_or_leaf_p): Check pointer before dereferencing.
2578         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
2579         before reload on optimization levels below 1.
2580
2581 2006-03-23  Richard Henderson  <rth@redhat.com>
2582
2583         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
2584         tls symbols.
2585
2586         PR target/26347
2587         * config/alpha/predicates.md (local_symbolic_operand): Reject
2588         weak symbols.
2589
2590 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
2591
2592         PR tree-opt/26795
2593         * tree-ssa-pre.c (create_value_expr_from): Don't reject
2594         expressions which have overflowed constants.
2595
2596 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
2597
2598         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
2599
2600 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
2601
2602         * cfgloopmanip.c (create_loop_notes): Removed.
2603         * final.c (final_scan_insn): Do not handle loop notes.
2604         * jump.c (squeeze_notes): Ditto.
2605         * cfglayout.c (skip_insns_after_block,
2606         duplicate_insn_chain): Ditto.
2607         * cfgcleanup.c (rest_of_handle_jump2): Do not call
2608         create_loop_notes.
2609         * cfgloop.h (create_loop_notes): Declaration removed.
2610
2611 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
2612
2613         * varasm.c (output_constant_pool): Restore fnname and fndecl
2614         arguments.
2615         (assemble_start_function): Adjust call accordingly.
2616         (assemble_end_function): Likewise.
2617
2618 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2619
2620         PR mudflap/26789
2621         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
2622
2623         PR mudflap/26790
2624         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
2625
2626 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2627
2628         PR driver/22600
2629         * system.h (ICE_EXIT_CODE): New macro.
2630         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
2631         (diagnostic_action_after_output): Likewise.
2632         * gcc.c (fatal_ice): New function.
2633         (execute): Use it instead of fatal.
2634         (fancy_abort): Likewise.
2635         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
2636
2637 2006-03-22  Jeff Law  <law@redhat.com>
2638
2639         * loop-unroll.c (analyze_iv_to_split_insn): Handle
2640         iv_analyze_result returning false.
2641
2642 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
2643
2644         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2645
2646 2006-03-22  Richard Henderson  <rth@redhat.com>
2647
2648         PR middle-end/26084
2649         * except.c (duplicate_eh_regions_0): New.
2650         (duplicate_eh_region_1): Duplicate the children of the node as
2651         well as the node itself.  Link them up properly.
2652         (duplicate_eh_region_2): Merge into ...
2653         (duplicate_eh_regions): ... here.  Take copy_region argument, and
2654         copy only a sub-tree if asked.  Simplify copying and fixup.
2655         (eh_region_outer_p): New.
2656         * except.h (duplicate_eh_regions): Update decl.
2657         (eh_region_outer_p): Declare.
2658         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
2659         (lower_omp_master): Likewise.
2660         (lower_omp_ordered): Likewise.
2661         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
2662         (move_stmt_r): Use it to remap labels.  Handle recursion vs
2663         remap_decls_p properly.
2664         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
2665         (find_outermost_region_in_block): New.
2666         (new_label_mapper): New.
2667         (move_sese_region_to_fn): Copy eh information to the new function
2668         properly.
2669         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2670         argument.
2671         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2672         number.
2673
2674 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2675
2676         * doc/md.texi (-mshared): Mention that -mshared code can be linked
2677         into shared libraries.
2678
2679 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2680
2681         * doc/md.texi: Refer to i386/constraints.md instead of
2682         i386/predicates.md.
2683         * config/i386/constraints.md: New file, extracted from...
2684         * config/i386/predicates.md: ...here.
2685         * config/i386/i386.md: Include constraints.md.
2686
2687 2006-03-21  Jason Merrill  <jason@redhat.com>
2688
2689         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2690
2691         PR middle-end/20297
2692         * expr.c (init_block_move_fn): Force default visibility.
2693         (init_block_clear_fn): Likewise.
2694         * builtins.c (expand_builtin_fork_or_exec): Likewise.
2695         * targhooks.c (default_external_stack_protect_fail): Likewise.
2696
2697 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
2698
2699         * config/mips/predicates.md (const_call_insn_operand): Allow direct
2700         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
2701         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
2702         Use TARGET_OLDABI instead of !TARGET_NEWABI.
2703         (loadgp): Use mips_current_loadgp_style.
2704         (loadgp_noshared): New pattern.
2705         (sibcall_internal): Use MIPS_CALL.
2706         (sibcall_value_internal): Likewise.
2707         (sibcall_value_multiple_internal): Likewise.
2708         (call_internal): Likewise.
2709         (call_value_internal): Likewise.
2710         (call_value_multiple_internal): Likewise.
2711         (call_split): Use MIPS_CALL and add an 'S' constraint.
2712         (call_value_split): Likewise.
2713         (call_value_multiple_split): Likewise.
2714         * config/mips/mips.opt (-mabicalls): Tweak docstring.
2715         (-mshared): New option.
2716         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
2717         (mips_current_loadgp_style): Declare.
2718         * config/mips/mips.c (mips_classify_symbol): Avoid using
2719         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
2720         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
2721         TARGET_ABSOLUTE_ABICALLS.
2722         (override_options): Adjust comments.  Improve the warning that is
2723         issued when -mabicalls and -G are used together.
2724         (mips_file_start): Remove comment.
2725         (mips_current_loadgp_style): New function.
2726         (mips_gnu_local_gp): New variable.
2727         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
2728         LOADGP_ABSOLUTE.
2729         (mips_output_function_prologue): Use mips_current_laodgp_style.
2730         (mips_expand_prologue): Call mips_emit_loadgp before emitting
2731         the cprestore instruction.
2732         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
2733         live for TARGET_ABSOLUTE_ABICALLS.
2734         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
2735         (ASM_SPEC): Pass down -mshared and -mno-shared.
2736         (MIPS_CALL): New macro.
2737         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
2738         definition.
2739         * doc/invoke.texi (-mabicalls): Update documentation.
2740         (-mshared): Document.
2741
2742 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2743
2744         * config/ia64/unwind-hpux.c: New file.
2745         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2746
2747 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2748
2749         PR libgomp/26384
2750         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2751
2752 2006-03-21  Jeff Law  <law@redhat.com>
2753
2754         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2755         type conversions of a VR_VARYING source to a wider type.
2756
2757 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2758
2759         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
2760         tm_file on Solaris 10 and later.
2761         (sparc64-*-solaris2*): Likewise.
2762         (sparc-*-solaris2*): Likewise.
2763         * config/sol26.h: Rename to config/sol2-6.h.
2764         * config/sol2-10.h: New file.
2765
2766 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
2767
2768         PR tree-opt/26781
2769         * tree-ssa-pre.c (create_component_ref_by_pieces):
2770         Handle STRING_CST.
2771
2772 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
2773
2774         PR c++/26690
2775         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2776         return it immediately.
2777
2778 2006-03-21  Michael Matz  <matz@suse.de>
2779
2780         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2781         New members.
2782         (remove_arc, add_arc): Update num_out_arcs member.
2783         (set_out_arc_insns_equiv_num): Returns nothing instead of number
2784         of out arcs.
2785         (cache_presence): New function.
2786         (compare_states_for_equiv): New function.
2787         (state_is_differed): Don't take number of outargs, adjust callers.
2788         Use new invariant for speeding up.
2789         (init_equiv_class): Create initial classes based on sorted
2790         input.
2791         (partition_equiv_class): Don't track out_arcs_num.
2792         (evaluate_equiv_classes): Call cache_presence on all states and
2793         sort them.
2794
2795 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2796
2797         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
2798         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
2799         (bfin_valid_reg_p): Test for pseudos explicitly and use only
2800         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
2801         callers changed.
2802         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
2803         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
2804         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
2805         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2806         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
2807         macros.
2808         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
2809         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
2810         (REGNO_REG_CLASS): ARGP is in PREGS.
2811         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
2812         IREGS.
2813         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
2814         to deal with those addresses.
2815         * addresses.h: New file.
2816         * caller-save.c: Include "addresses.h".
2817         (init_caller_save): Use new base_reg_class function.
2818         * rtl-factoring.c: Include "addresses.h".
2819         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
2820         * recog.c: Include "addresses.h".
2821         (preprocess_constraints): Use new base_reg_class function.
2822         * regrename.c: Include "addresses.h".
2823         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
2824         functions.  Keep track of a new var INDEX_CODE to compute valid
2825         classes.
2826         (replace_oldest_value_addr): Likewise.
2827         (replace_oldest_value_mem): Use base_reg_class.
2828         * reload.c: Include "addresses.h".
2829         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
2830         (find_reloads): Use new base_reg_class function.
2831         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
2832         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
2833         all callers and prototype changed.
2834         * reload1.c: Include "addresses.h".
2835         (maybe_fix_stack_asms): Use base_reg_class.
2836         * regclass.c: Include "addresses.h".
2837         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
2838         (init_reg_autoinc): Use new base_reg_class function.
2839         (record_reg_classes): Likewise.
2840         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
2841         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
2842         Use new args to compute necessary class.
2843
2844         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
2845         regrename.o, rtl-factoring.o): Update dependencies.
2846         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
2847         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2848         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
2849         REG_OK_FOR_INDEX_P): Delete documentation.
2850
2851 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2852
2853         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2854         from V7 to V9 for Solaris 7 and above.
2855
2856 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
2857
2858         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
2859         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
2860         argument pointers may not alias any other storage.
2861         * common.opt: Define option -fargument-noalias-anything.
2862         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
2863         alias semantics is specified by flag_argument_noalias > 2.
2864
2865 2006-03-20  Jeff Law  <law@redhat.com>
2866
2867         * tree-pass.h (pass_phi_only_copy_prop): Delete.
2868         (pass_phi_only_cprop): Declare.
2869         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
2870         with phi_only_cprop
2871         * tree-ssa-dom.c (degenerate_phi_result): New function.
2872         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
2873         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
2874         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
2875         (eliminate_degenerate_phis): Likewise.
2876         (pass_phi_only_cprop): New pass descriptor.
2877         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
2878         support code.  Callers updated.
2879         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
2880         (store_copy_prop): Likewise.
2881         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2882
2883 2006-03-20  Jason Merrill  <jason@redhat.com>
2884
2885         PR c++/21764
2886         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2887         (push_visibility, pop_visibility): Likewise.
2888         * c-pragma.h: Declare them.
2889
2890 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2891
2892         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2893
2894         * config/sh/sh.c (find_regmode_weight): Change the type of the first
2895         parameter and use get_ebb_head_tail.
2896         (sh_md_init_global): Adjust uses of find_regmode_weight.
2897
2898 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
2899
2900         * function.h (struct function) <x_tail_recursion_reentry>:
2901         Rename to x_stack_check_probe_note.
2902         (tail_recursion_reentry): Rename to stack_check_probe_note.
2903         * function.c: Replace tail_recursion_reentry with
2904         stack_check_probe_note everywhere.
2905         (expand_function_start): Only emit a note for
2906         stack_check_probe_note with -fstack-protect.
2907         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
2908
2909         * emit-rtl.c (remove_unnecessary_notes): Remove.
2910         (pass_remove_unnecessary_notes): Remove.
2911         * rtl.h (remove_unnecessary_notes): Remove prototype.
2912         * final.c (final_start_function): Don't call remove_unnecessary_notes.
2913         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
2914         * passes.c (pass_remove_unnecessary_notes): Don't run it.
2915
2916 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
2917
2918         PR tree-opt/26629
2919         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
2920         (valid_in_set): Handle ARRAY_REF.
2921         Change "if min_variant or VH" to asserts.
2922         (create_component_ref_by_pieces): Handle ARRAY_REF.
2923         (create_expression_by_pieces): Likewise.
2924         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2925
2926 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
2927
2928         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2929         is operand of switch, not str[0].
2930
2931 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
2932
2933         * config/rs6000/rs6000.c (rs6000_handle_option): Use
2934         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2935
2936 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2937
2938         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2939         end of insn_extra_address_constraint declaration.
2940
2941 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2942
2943         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
2944         (no-sum-in-toc): Same.
2945         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
2946         variables.
2947         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2948         NO_FP_IN_TOC for -fPIC instead of mask.
2949
2950         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2951         (BOOT_LDFLAGS): Delete.
2952         (LDFLAGS): Delete.
2953         * config/rs6000/t-aix52: Same.
2954
2955         * config/rs6000/rs6000.md (store_multiple_power): Delete.
2956         (stmsi[345678]_power): New.
2957
2958 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
2959
2960         * config/ia64/ia64.opt: Add empty line to end of file.
2961
2962 2006-03-17  Richard Guenther  <rguenther@suse.de>
2963
2964         PR middle-end/26721
2965         * builtins.c (get_pointer_alignment): For component style references
2966         adjust alignment to the component type alignment.  Make sure
2967         to adjust alignment for component access of constants.
2968
2969 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
2970
2971         * config/rs6000/rs6000.md (strlensi): Emit barrier after
2972         unconditional jump.
2973
2974 2006-03-17  Paul Brook  <paul@codesourcery.com>
2975
2976         * doc/install.texi: Docuemnt --with-mode.
2977         * config.gcc: Add --with-mode for arm*-*-*.
2978         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2979
2980 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
2981
2982         * sh.c (max_labelno_before_reorg): New variable.
2983         (sh_reorg): Initialize it.
2984         (find_barrier): Check max_labelno_before_reorg before using
2985         label_to_alignment.  Take length of explicit alignment insns
2986         into account.  When seeing a UNSPECV_CONST_END, return it.
2987
2988         * sh.c (fixup_mova): Set mode of affected label to QImode.
2989         (untangle_mova): New function.
2990         (find_barrier): Use it.  Check mode of label before decrementing
2991         num_mova.
2992         (sh_reorg): Likewise.
2993         Set mode of all insns back to VOIDmode.
2994
2995         * sh.c (MOVA_LABELREF): New macro.
2996         (mova_p, fixup_mova, sh_reorg): Use it.
2997         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
2998         ADDR_DIFF_VEC matches mova.
2999
3000 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
3001
3002         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
3003         with ATTRIBUTE_UNUSED.
3004
3005 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
3006
3007         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3008         pointer, instead of assuming it is possible to derive the
3009         correct args size from a call insn.
3010
3011 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3012
3013         * rtl.h (CONST_INT_P): Define.
3014         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
3015         instead of GET_CODE(x) == CONST_INT.
3016         (vax_rtx_costs): Likewise.
3017         (vax_output_int_move): Likewise.
3018         (vax_output_int_add): Likewise.
3019         (legitimate_constant_address_p): Likewise.
3020         (index_term_p): Likewise.
3021         * config/vax/vax.h (PRINT_OPERAND): Likewise.
3022         * config/vax/vax.md (and<mode>3): Likewise.
3023         (ashrsi3): Likewise.
3024         (extv): Likewise.
3025         (movstricthi): Likewise.
3026         (movstrictqi): Likewise.
3027         (rotrsi3): Likewise.
3028         (five unnamed insns): Likewise.
3029
3030 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
3031
3032         * doc/tm.texi (SDB and DWARF): Add extra parameter to
3033         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
3034         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
3035         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
3036         Pass to ASM_OUTPUT_DWARF_OFFSET.
3037         * dwarf2out.c (debug_frame_section): New.
3038         (output_call_frame_info): Use debug_frame_section.  Pass it to
3039         dw2_asm_output_offset.
3040         (output_die): Pass appropriate section to dw2_asm_output_offset.
3041         (output_compilation_unit_header): Likewise.
3042         (output_pubnames): Likewise.
3043         (output_aranges): Likewise.
3044         (enum dw_val_class): Break dw_val_class_lbl_offset into
3045         dw_val_class_lineptr and dw_val_class_macptr.
3046         (add_AT_lbl_offset): Delete.
3047         (add_AT_lineptr): New.
3048         (add_AT_macptr): New.
3049         (AT_lbl): Expect a lineptr or macptr.
3050         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
3051         (attr_checksum): Likewise.
3052         (same_dw_val_p): Likewise.
3053         (size_of_die): Likewise.
3054         (value_format): Likewise.
3055         (output_die): Likewise.
3056         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
3057         add_AT_lbl_offset.
3058         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3059         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
3060         * config/darwin-protos.h (darwin_file_start): New.
3061         (darwin_asm_output_dwarf_offset): New.
3062         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
3063         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
3064         darwin_file_start.
3065         * config/darwin.c (darwin_emit_unwind_label): Don't output label
3066         if not EH section; simplify.
3067         (darwin_file_start): New.
3068         (darwin_asm_output_dwarf_offset): New.
3069         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
3070         mark as 'debug'.
3071         (DEBUG_INFO_SECTION): Likewise.
3072         (DEBUG_ABBREV_SECTION): Likewise.
3073         (DEBUG_ARANGES_SECTION): Likewise.
3074         (DEBUG_MACINFO_SECTION): Likewise.
3075         (DEBUG_LINE_SECTION): Likewise.
3076         (DEBUG_LOC_SECTION): Likewise.
3077         (DEBUG_PUBNAMES_SECTION): Likewise.
3078         (DEBUG_STR_SECTION): Likewise.
3079         (DEBUG_RANGES_SECTION): Likewise.
3080         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
3081         (ASM_OUTPUT_DWARF_OFFSET): New.
3082
3083 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
3084
3085         * config.gcc (tm_defines): Always add to previous value rather
3086         than replacing it.
3087
3088 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
3089
3090         * config/mips/predicates.md (splittable_const_int_operand): New,
3091         split from move_operand.
3092         (splittable_symbolic_operand): New.
3093         (move_operand): Add commentary.  Use splittable_const_int_operand.
3094         Inline mips_atomic_symbolic_constant_p.
3095         * config/mips/mips.md: Add combine splitters for handling moves
3096         of splittable_const_int_operands and splittable_symbolic_operands.
3097         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
3098         (mips_split_symbol): Declare.
3099         (mips_move_integer): Declare.
3100         * config/mips/mips.c (mips_split_p): Make global.
3101         (TARGET_MIN_ANCHOR_OFFSET): Override default.
3102         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3103         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3104         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
3105         (mips_offset_within_object_p): Handle block symbols.
3106         (mips_atomic_symbolic_constant_p): Delete.
3107         (mips_cannot_force_const_mem): Return false for constants that
3108         mips_legitimize_move can handle.
3109         (mips_use_blocks_for_constant_p): New function.
3110         (mips_split_symbol): Make global.
3111         (mips_move_integer): Likewise.  Add a temporary register argument.
3112         (mips_legitimize_const_move): Use splittable_const_int_operand and
3113         splittable_symbolic_operand.
3114         (mips_use_anchors_for_symbol_p): New function.
3115         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
3116         (mips_split_p): Declare.
3117
3118 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
3119
3120         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
3121         (mips*-*-linux*): Likewise.
3122
3123 2006-03-16  Roger Sayle  <roger@eyesopen.com>
3124             Daniel Speyer  <dspeyer@wam.umd.edu>
3125
3126         PR middle-end/18259
3127         * tree-dump.c (dump_real): New function.
3128         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3129         * Makefile.in (REAL_H): New macro for dependencies on real.h.
3130         (tree-dump.o): Add $(REAL_H) to the dependencies.
3131
3132 2006-03-16  Roger Sayle  <roger@eyesopen.com>
3133
3134         PR middle-end/21781
3135         * real.c (real_from_string): If the mantissa is zero, don't bother
3136         parsing the exponent as the result should always be zero.
3137
3138 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3139
3140         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3141
3142 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3143
3144         * config/ia64/ia64.c (stops_p): Added explicit initialization.
3145         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3146         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3147         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
3148         ia64_sched_finish_global): New static functions to implement
3149         hooks from gcc_target.sched.
3150         (spec_check_no, max_uid, pending_data_specs): New static variables.
3151         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
3152         ia64_spec_check_src_p): New static functions.
3153         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3154         (TARGET_SCHED_ADJUST_COST): Removed.
3155         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
3156         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3157         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3158         TARGET_SCHED_GEN_CHECK,
3159         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3160         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3161         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
3162         Fixed to handle speculation checks.
3163         (rtx_needs_barrier): Fixed to handle speculative loads and
3164         their checks.
3165         (ia64_variable_issue): Added code to count speculative loads and their
3166         checks.
3167         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3168         speculative loads.
3169         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3170         New enumerations.
3171         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3172         New constants.
3173         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
3174         (ia64_reorg): Reset stops_p to NULL after it is freed.
3175         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
3176         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
3177         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
3178         chk_a.
3179         (data_speculative, control_speculative, check_load): New attributes.
3180         (mov<mode>_advanced, mov<mode>_speculative,
3181         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3182         zero_extend<mode>di2_speculative,
3183         zero_extend<mode>di2_speculative_advanced): New patterns for
3184         data and control speculative loads.
3185         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3186         check loads.
3187         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3188         New pattern for data and control speculation checks.
3189         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3190         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3191         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3192         Auxiliary definitions for the patterns.
3193         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3194         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3195         constraints.
3196         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
3197         for speculation.
3198         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3199         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
3200         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3201         New resource constraints.
3202         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
3203         for speculation.
3204         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3205         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3206         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3207         msched-in-control-spec, msched-ldc, msched-control-ldc,
3208         msched-spec-verbose, msched-prefer-non-data-spec-insns,
3209         msched-prefer-non-control-spec-insns,
3210         msched-count-spec-in-critical-path): New flags to tune speculative
3211         scheduling.
3212         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
3213         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3214         msched-in-control-spec, msched-ldc, msched-control-ldc,
3215         msched-spec-verbose, msched-prefer-non-data-spec-insns,
3216         msched-prefer-non-control-spec-insns,
3217         msched-count-spec-in-critical-path): Document new flags.
3218
3219 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3220
3221         * target.h (struct spec_info_def): New opaque declaration.
3222         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3223         speculate_insn, needs_block_p, gen_check,
3224         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3225         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3226         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3227         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3228         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3229         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3230         gcc_target.sched.
3231         (TARGET_SCHED): Use new macros.
3232         * rtl.h (copy_DEPS_LIST_list): New prototype.
3233         * sched-int.h (struct sched_info): Change signature of new_ready field,
3234         adjust all initializations. New fields: add_remove_insn,
3235         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
3236         region_head_or_leaf_p.
3237         (struct spec_info_def): New structure declaration.
3238         (spec_info_t): New typedef.
3239         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3240         recovery_block, orig_pat.
3241         (glat_start, glat_end): New variables declaraions.
3242         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
3243         New access macros.
3244         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3245         DETACH_LIFE_INFO, USE_GLAT.
3246         (enum SPEC_SCHED_FLAGS): New enumeration.
3247         (NOTE_NOTE_BB_P): New macro.
3248         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3249         attach_life_info, debug_spec_status, check_reg_live): New functions.
3250         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3251         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3252         sched-ebb.c
3253         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
3254         * ddg.c (get_block_head_tail): Adjust all uses.
3255         * modulo-sched.c (get_block_head_tail): Adjust all uses.
3256         (sms_sched_info): Initialize new fields.
3257         (contributes_to_priority): Removed.
3258         * haifa-sched.c (params.h): New include.
3259         (get_block_head_tail): Adjust all uses.
3260         (ISSUE_POINTS): New macro.
3261         (glat_start, glat_end): New global variables.
3262         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
3263         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3264         old_last_basic_block, before_recovery, current_sched_info_var,
3265         rgn_n_insns, luid): New static variables.
3266         (insn_cost1): New function.  Move logic from insn_cost to here.
3267         (find_insn_reg_weight1): New function.  Move logic from
3268         find_insn_reg_weight to here.
3269         (reemit_notes, move_insn, max_issue): Change signature.
3270         (move_insn1): Removed.
3271         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3272         extend_bb): New static functions to support extension of scheduler's
3273         data structures.
3274         (generate_recovery_code, process_insn_depend_be_in_spec,
3275         begin_speculative_block, add_to_speculative_block,
3276         init_before_recovery, create_recovery_block, create_check_block_twin,
3277         fix_recovery_deps): New static functions to support
3278         generation of recovery code.
3279         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3280         restore_bb_notes, move_block_after_check, move_succs): New static
3281         functions to support ebb scheduling.
3282         (init_glat, init_glat1, attach_life_info1, free_glat): New static
3283         functions to support handling of register live information.
3284         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
3285         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3286         add_jump_dependencies): New static functions.
3287         (check_cfg, has_edge_p, check_sched_flags): New static functions for
3288         consistancy checking.
3289         (debug_spec_status): New function to call from debugger.
3290         (priority): Added code to handle speculation checks.
3291         (rank_for_schedule): Added code to distinguish speculative instructions.
3292         (schedule_insn): Added code to handle speculation checks.
3293         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3294         Fixed to handle ebbs.
3295         (move_insn): Added code to handle ebb scheduling.
3296         (max_issue): Added code to use ISSUE_POINTS of instructions.
3297         (choose_ready): Added code to choose between speculative and
3298         non-speculative instructions.
3299         (schedule_block): Added code to handle ebb scheduling and scheduling of
3300         speculative instructions.
3301         (sched_init): Initialize new variables.
3302         (sched_finish): Free new variables.  Print statistics.
3303         (try_ready): Added code to handle speculative instructions.
3304         * lists.c (copy_DEPS_LIST_list): New function.
3305         * sched-deps.c (extend_dependency_caches): New function.  Move logic
3306         from create_dependency_caches to here.
3307         (get_dep_weak, ds_merge): Make global.
3308         * genattr.c (main): Code to output prototype for
3309         dfa_clear_single_insn_cache.
3310         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3311         (output_dfa_clean_insn_cache_func): Code to output
3312         dfa_clear_single_insn_cache function.
3313         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
3314         n_insns.
3315         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3316         Removed.
3317         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3318         New static variables.
3319         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
3320         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3321         struct sched_info.
3322         (ebb_sched_info): Initialize new fields.
3323         (get_block_head_tail): Adjust all uses.
3324         (compute_jump_reg_dependencies): Fixed to use glat_start.
3325         (schedule_ebb): Code to remove unreachable last block.
3326         (schedule_ebbs): Added code to update register live information.
3327         * sched-rgn.c (region_sched_info): Initialize new fields.
3328         (get_block_head_tail): Adjust all uses.
3329         (last_was_jump): Removed.  Adjust users.
3330         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
3331         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3332         Implement new hooks.
3333         (check_dead_notes1): New static function.
3334         (struct region): New fields: dont_calc_deps, has_real_ebb.
3335         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
3336         (BB_TO_BLOCK): Fixed to handle EBBs.
3337         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
3338         (ebb_head): New static variable.
3339         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
3340         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
3341         new fields.
3342         (compute_dom_prob_ps): New assertion.
3343         (check_live_1, update_live_1): Fixed to work with glat_start instead of
3344         global_live_at_start.
3345         (init_ready_list): New assertions.
3346         (can_schedule_ready_p): Split update code to begin_schedule_ready.
3347         (new_ready): Add support for BEGIN_CONTROL speculation.
3348         (schedule_insns): Fixed code that updates register live information
3349         to handle EBBs.
3350         (schedule_region): Fixed to handle EBBs.
3351         (init_regions): Use extend_regions and check_dead_notes1.
3352         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
3353         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
3354         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
3355         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3356         TARGET_SCHED_GEN_CHECK,
3357         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3358         TARGET_SCHED_SET_SCHED_FLAGS): Document.
3359         * doc/invoke.texi (max-sched-insn-conflict-delay,
3360         sched-spec-prob-cutoff): Document.
3361
3362 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3363
3364         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
3365         inter_tick, queue_index.
3366         (struct sched_info): Change signature of init_ready_list field.
3367         Adjust all initializations.
3368         (RESOLVED_DEPS): New access macro.
3369         (ready_add): Remove prototype.
3370         (try_ready): Add prototype.
3371         * sched-rgn.c (init_ready_list): Use try_ready.
3372         (schedule_region): Initialize
3373         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
3374         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
3375         (init_ready_list): Use try_ready.
3376         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
3377         * lists.c (remove_list_elem): Remove `static'.
3378         (remove_free_INSN_LIST_elem): New function.
3379         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
3380         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
3381         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
3382         New constants.
3383         (readyp): New variable.
3384         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
3385         change_queue_index, resolve_dep): New static functions.
3386         (try_ready): New function.  Adjust callers in sched-rgn.c and
3387         sched-ebb.c to use it instead of ready_add.
3388         (clock_var): Move at the begining of file.
3389         (rank_for_schedule): Fix typo.
3390         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
3391         (ready_lastpos): Enforce assertion.
3392         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
3393         update all callers.
3394         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
3395         (schedule_insn): Rewrite to use try_ready and resolve_dep.
3396         (queue_to_ready): Use free_INSN_LIST_list.
3397         (early_queue_to_ready): Fix typo.
3398         (schedule_block): Init readyp.  Move init_ready_list call after the
3399         initialization of clock_var.  Fix error in rejecting insn by
3400         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
3401         that previously corrected INSN_TICKs.  Add code for handling
3402         QUEUE_INDEX.
3403         (set_priorities): Fix typo.
3404         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
3405         Clarify comment and code that keeps current_sched_info->next_tail
3406         non-null.
3407
3408 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3409
3410         * sched-rgn.c (extend_rgns): New static function.
3411         (find_rgns): Use it.
3412         (gather_region_statistics, print_region_statistics): New static
3413         functions.
3414         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
3415         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3416
3417 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3418             Andrey Belevantsev <abel@ispras.ru>
3419
3420         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
3421         * lists.c (unused_deps_list): New variable.
3422         (free_list): Add assertions to verify the proper distinguishing
3423         between INSN_LISTs and DEPS_LISTs.
3424         (find_list_elem, remove_list_elem, remove_list_node): New static
3425         functions.
3426         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
3427         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
3428         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
3429         (alloc_INSN_LIST): Assert that the list we're working on is indeed
3430         an INSN_LIST.
3431         (free_INSN_LIST_node): Likewise.
3432         * modulo-sched.c (current_sched_info): Initialize flags field.
3433         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
3434         * rtl.def (DEPS_LIST): Define.
3435         * rtl.h: Declare new functions from lists.c.
3436         * sched-deps.c (spec_dependency_cache): New static variable.
3437         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
3438         (add_dependence): Change return type to void.  Move the logic to ...
3439         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
3440         (delete_all_dependences): Add comment about forward_dependency_cache.
3441         Handle spec_dependency_cache.  Handle DEPS_LISTs.
3442         (fixup_sched_groups): Clarify the change of priority of output
3443         and anti dependencies.
3444         (sched_analyze_2): Adjust add_dependence calls to create data
3445         speculative dependence.
3446         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
3447         Adjust all callers.  Handle DEPS_LISTS.
3448         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
3449         presence of speculation.
3450         (init_dependency_caches, free_dependency_caches):
3451         Handle spec_dependency_cache.
3452         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
3453         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
3454         New static functions.
3455         (add_or_update_back_dep, add_or_update_back_forw_dep,
3456         add_back_forw_dep, delete_back_forw_dep): New functions.
3457         * sched-int.h (ds_t, dw_t): New typedefs.
3458         (struct sched_info): Add new field flags.
3459         (struct haifa_insn_data): Add new bitfield has_internal_dep.
3460         Prototype new sched-deps.c functions.
3461         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
3462         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
3463         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
3464         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
3465         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
3466         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
3467         New constants.
3468         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
3469         New enums.
3470         * sched-rgn.c (current_sched_info): Initialize flags field.
3471         (schedule_insns): Initialize current_sched_info before the sched_init
3472         call.
3473         * sched-ebb.c (current_sched_info): Initialize flags field.
3474         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
3475         Call add_or_update_back_dep instead of add_dependence.
3476         Create control speculative dependencies.
3477         (schedule_insns): Initialize current_sched_info before the sched_init
3478         call.
3479
3480 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3481
3482         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
3483         fs->signal_frame.
3484         (sh_fallback_frame_state): Likewise.
3485
3486 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
3487
3488         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
3489         Do switch on default_use_cxa_atexit.
3490         (powerpc*-*-darwin*): Build crt2.o on powerpc.
3491         * config/darwin-crt3.o: New.
3492         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
3493         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
3494         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
3495         OS version.
3496         * config/rs6000/t-darwin: Move crt2.o building to here.
3497         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
3498         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
3499         of __cxa_atexit.
3500
3501 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3502
3503         * config/vax/vax.c (nonindexed_address_p): Change logical negation
3504         from '! xxx' to '!xxx' for coding-style conformance.
3505         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
3506         (EXTRA_CONSTRAINT): Likewise.
3507         * config/vax/vax.md (four unnamed insns): Likewise.
3508
3509 2006-03-15  Paul Brook  <paul@codesourcery.com>
3510
3511         * config/arm/arm.c (minipool_pad): New.
3512         (add_minipool_forward_ref): Include pool alignment padding in address
3513         calculation.
3514         (push_minipool_fix): Set minipool_pad.
3515         (minipool_pad): Ditto.
3516
3517 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3518
3519         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
3520         instead of GET_CODE() == MEM and REG_P() instead of
3521         GET_CODE() == REG.
3522         (print_operand_address): Likewise.
3523         (vax_address_cost): Likewise.
3524         (vax_rtx_costs): Likewise.
3525         (vax_notice_update_cc): Likewise.
3526         (vax_output_int_add): Likewise.
3527         (INDEX_REGISTER_P): Likewise.
3528         (BASE_REGISTER_P): Likewise.
3529         (nonindexed_address_p): Likewise.
3530         (vax_mode_dependent_address_p): Likewise.
3531         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
3532         (PRINT_OPERAND): Likewise.
3533         * config/vax/vax.md (ashlsi3): Likewise.
3534         (ashlsi3): Likewise.
3535         (some more unnamed insns): Likewise.
3536
3537 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
3538
3539         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
3540         iterator-style macro.
3541         (mark_control_dependent_edges_necessary): Update the use of
3542         EXECUTE_IF_CONTROL_DEPENDENT.
3543
3544 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
3545
3546         * config/sh/predicates.md (cache_address_operand): Special.
3547         (ua_address_operand): Likewise.
3548
3549 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
3550
3551         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
3552         loop notes.
3553         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
3554
3555 2006-03-15  Andreas Schwab  <schwab@suse.de>
3556
3557         * gensupport.c (identify_predicable_attribute): Don't free p_false
3558         when it is still in use.
3559
3560 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
3561
3562         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
3563         the default setting here.
3564
3565 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
3566
3567         * tree-pass.h (pass_cfg): Remove.
3568         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
3569         * passes.c (pass_cfg): Don't run it.
3570
3571 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
3572
3573         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
3574         * reg-stack.c (stack_regs_mentioned_data): Change the type to
3575         VEC(char,heap) *.
3576         (stack_regs_mentioned): Update the uses of
3577         stack_regs_mentioned_data.  Don't access the array beyond its
3578         end.
3579         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
3580         Don't include gt-reg-stack.h.
3581
3582         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
3583         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
3584
3585         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
3586
3587         PR middle-end/26684
3588         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
3589         STACK_REGS.
3590
3591 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3592
3593         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
3594
3595 2006-03-14  Richard Guenther  <rguenther@suse.de>
3596
3597         PR tree-optimization/26672
3598         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
3599         SSA form.
3600
3601 2006-03-14  Richard Guenther  <rguenther@suse.de>
3602
3603         PR tree-optimization/26667
3604         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
3605         node for the callees.  Always allow inlining if it will shrink
3606         the function size.
3607
3608 2006-03-14  Richard Guenther  <rguenther@suse.de>
3609
3610         PR middle-end/26659
3611         * builtins.c (get_pointer_alignment): Prefer alignment
3612         information from decls over that from types.
3613
3614 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
3615
3616         PR target/26657
3617         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
3618
3619 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
3620
3621         * config/rs6000/rs6000.opt (mdlmzb): New option.
3622         (msched-prolog, msched-epilog): Use Var not Mask.
3623         * doc/invoke.texi (-mdlmzb): Document.
3624         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3625         MASK_SCHED_PROLOG.
3626         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
3627         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
3628
3629 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
3630
3631         PR rtl-optimization/25739
3632         * bt-load.c (augment_live_range): Free tos pointer.
3633
3634         * gensupport.c (identify_predicable_attribute): Free
3635         p_false pointer.
3636         * gcov.c (create_file_names): Free name pointer.
3637
3638 2006-03-13  Roger Sayle  <roger@eyesopen.com>
3639
3640         PR middle-end/26557
3641         * stmt.c (emit_case_nodes): Handle the case where the index is a
3642         CONST_INT, where the comparison mode is specified by the index type.
3643
3644 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3645
3646         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
3647         is defined.
3648
3649 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
3650
3651         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
3652         (*branch_fp_inverted): Likewise.
3653
3654 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3655
3656         PR middle-end/25989
3657         * omp-low.c (expand_omp_for_generic): Mark istart0
3658         and iend0 as addressable.
3659
3660 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
3661
3662         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
3663
3664 2006-03-13  Jeff Law  <law@redhat.com>
3665
3666         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
3667         virtual operands are interesting.
3668         (vrp_visit_stmt): Corresponding changes.
3669
3670 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3671
3672         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
3673         of RETS.
3674         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
3675         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
3676         * config/bfin/crti.S: Use it instead of __PIC__.
3677         * config/bfin/crtn.S: Likewise.
3678
3679         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
3680         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
3681         not if flag_pic.
3682         Lose 'G' modifier for call operand.
3683         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
3684         recognize 'G' modifier.
3685
3686 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
3687
3688         PR middle-end/18859
3689         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
3690         * stmt.c (expand_case): Likewise.
3691
3692 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3693
3694         PR rtl-optimization/26254
3695         * loop-invariant.c (seq_insns_valid_p): New function.
3696         (move_invariant_reg): Only emit new code if it is valid.
3697
3698 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3699
3700         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
3701         Removed.
3702         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
3703         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
3704         (commit_one_edge_insertion): Do not look for loop notes.
3705
3706 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3707
3708         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
3709         flag_test_coverage out of loop.
3710
3711 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3712
3713         * final.c (shorten_branches): Remove outdated comment, and turn
3714         the if branch that guards it to continue.
3715
3716 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3717
3718         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
3719         * cfgloop.h (struct loop): Remove unused fields.
3720
3721 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
3722
3723         * doc/invoke.texi (-fdump-rtl-loop): Remove.
3724         (-dL, -fdump-rtl-loop2): Update the dump file names
3725
3726         * doc/invoke.texi: Update dump file names.
3727
3728 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
3729
3730         * predict.c (estimate_probability): Remove.
3731         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
3732         * basic-block.h (estimate_probability): Remove prototype.
3733         * passes.c (finish_optimization_passes): Dump branch prediction or
3734         profiling heuristics to the .profile tree dump.
3735         (init_optimization_passes): Unqueue pass_branch_prob.
3736
3737         * doc/invoke.texi (-fdump-rtl-bp): Remove.
3738
3739 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
3740
3741         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
3742         * rtl.h (LABEL_NEXTREF): Remove field accessor.
3743
3744 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
3745
3746         * function.h (frame_offset_overflow): Declare.
3747         * function.c (frame_offset_overflow): New function.
3748         (assign_stack_local_1): Call it to detect that the offset overflows.
3749         * cfgexpand.c (alloc_stack_frame_space): Likewise.
3750
3751 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
3752
3753         * config/sh/sh.c: Include alloc-pool.h.
3754         (label_ref_list_pool): New alloc pool.
3755         (label_ref_list_t): New type for lists of labels.
3756         (struct pool_node): Make wend a label_ref_list_t.
3757         (add_constant): Use the new type, eradicate LABEL_NEXTREF
3758         references.
3759         (dump_table): Likewise.
3760         (sh_reorg): Set up the alloc pool before using add_constant and
3761         dump_table, and destroy it when finishing.
3762
3763 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
3764
3765         * config/mips/mips.c: Remove redundant comment.
3766
3767 2006-03-10  Jason Merrill  <jason@redhat.com>
3768
3769         PR c/26004
3770         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
3771         the target was declared 'register'.
3772
3773 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
3774
3775         * genpreds.c (write_insn_constraint_len): Change definition of
3776         insn_constraint_len to return size_t to match the declaration.
3777
3778 2006-03-10  DJ Delorie  <dj@redhat.com>
3779
3780         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
3781         start at zero.
3782         (m32c_expand_insv): Fix test for an AND mask.
3783
3784 2006-03-10  Richard Guenther  <rguenther@suse.de>
3785
3786         PR middle-end/26565
3787         * builtins.c (get_pointer_alignment): Handle component
3788         references for field alignment.
3789
3790 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
3791
3792         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
3793         when building with libgloss.
3794         (sh*elf): Implement --without-fp option.
3795         (sh64-superh-linux*): Don't multilib.
3796
3797 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
3798
3799         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
3800
3801 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
3802
3803         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
3804         Set it when one of the replacement functions returned true.
3805         Return TODO_cleanup_cfg if cfgchanged is true.
3806         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
3807
3808 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
3809
3810         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
3811         instead of gen_lowpart.
3812
3813 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
3814
3815         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
3816         interface.
3817         (mips_output_order_conditional_branch): Declare.
3818         * config/mips/mips.h (MIPS_BRANCH): New macro.
3819         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
3820         for the comparison.  Use gen_condjump.
3821         (mips_output_conditional_branch): Rework interface to take the
3822         asm templates for a direct branch and the inverse of a direct branch.
3823         (mips_output_order_conditional_branch): New function.
3824         (mips_builtin_branch_and_move): New function.
3825         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
3826         branch condition.  Use gen_single_cc as the condition for
3827         __builtin_mips_upper_* or __builtin_mips_lower_*.
3828         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
3829         Use VOIDmode for the branch condition.
3830         * config/mips/predicates.md (order_operator): New predicate.
3831         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
3832         (branch_fp): Rename to...
3833         (*branch_fp): ...this.  Remove mode from comparison operator.
3834         Use new mips_output_conditional_branch interface.
3835         (branch_fp_inverted): Rename to...
3836         (*branch_fp_inverted): ...this and update as for *branch_fp.
3837         (*branch_zero<mode>): Rename to...
3838         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
3839         Use mips_output_order_conditional_branch.  Only accept ordered
3840         comparisons.
3841         (*branch_zero<mode>_inverted): Rename to...
3842         (*branch_order<mode>_inverted): ...this and update as for
3843         *branch_order<mode>.
3844         (*branch_equality<mode>): Accept zero as the second operand to
3845         the equality operator.  Use the new mips_output_conditional_branch
3846         interface.
3847         (*branch_equality<mode>_inverted): Likewise.
3848         (condjump): New expander.
3849         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
3850         operator.
3851         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
3852         (bc1any2t, bc1any2f): Likewise.
3853         (single_cc): New expander.
3854         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
3855
3856 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
3857
3858         * doc/md.texi: Update documentation of MIPS constraints.
3859         * config/mips/constraints.md: New file.
3860         * config/mips/mips.md: Include it.
3861         * config/mips/mips.c (mips_char_to_class): Delete.
3862         (override_options): Don't initialize mips_char_to_class.
3863         * config/mips/mips.h (mips_char_to_class): Delete.
3864         (REG_CLASS_FROM_LETTER): Delete.
3865         (CONST_OK_FOR_LETTER_P): Delete.
3866         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3867         (EXTRA_CONSTRAINT_Y): Delete.
3868         (EXTRA_CONSTRAINT_STR): Delete.
3869         (CONSTRAINT_LEN): Delete.
3870         (EXTRA_MEMORY_CONSTRAINT): Delete.
3871
3872 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3873
3874         * tree-cfg.c (move_block_to_fn): Remove the statements from the
3875         original fn's eh regions.
3876
3877 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3878
3879         * fold-const.c (build_range_check): Make sure to use a valid type to
3880         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
3881         transformation.
3882
3883         (range_predecessor): New static function.
3884         (range_successor): Likewise.
3885         (merge_ranges): Use them to compute predecessors and successors of
3886         range bounds.
3887
3888 2006-03-09  Roger Sayle  <roger@eyesopen.com>
3889
3890         PR middle-end/26561
3891         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
3892         X op C3, consider whether C3 overflows towards +Inf or -Inf.
3893
3894 2006-03-08  DJ Delorie  <dj@redhat.com>
3895
3896         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
3897         (addpsi3): Expand to include memory operands.  Remove
3898         reload-specific splits.
3899         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
3900         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
3901         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
3902         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
3903         (shift1_qi, shift1_hi, insv): New.
3904         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
3905         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
3906         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
3907         cond_to_int): New.
3908         * config/m32c/m32c-protos.h: Update as needed.
3909         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
3910         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
3911         Fail for unrecognized R* constraints.
3912         (m32c_cannot_change_mode_class): Be more picky about pseudos.
3913         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
3914         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
3915         Add Sp constraint.
3916         (m32c_init_libfuncs): New.
3917         (m32c_legitimate_address_p): Add debug wrapper.
3918         (m32c_rtx_costs): New.
3919         (m32c_address_cost): New.
3920         (conversions): Add 'B' prefix.
3921         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
3922         operands, or word regnames for QI operands.  'B' prints bit
3923         position.
3924         (m32c_expand_setmemhi): New.
3925         (m32c_expand_movmemhi): New.
3926         (m32c_expand_movstr): New.
3927         (m32c_expand_cmpstr): New.
3928         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
3929         (m32c_expand_neg_mulpsi3): Handle non-ints.
3930         (m32c_cmp_flg_0): New.
3931         (m32c_expand_movcc): New.
3932         (m32c_expand_insv): New.
3933         (m32c_scc_pattern): New.
3934         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
3935         a0/a1 out of SIregs.
3936         (STORE_FLAG_VALUE): New.
3937         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
3938         code macros.
3939         (no_insn): New.
3940         * config/m32c/mov.md: Make constraints more liberal.
3941         (zero_extendqihi2): Optimize r0/r1 case.
3942         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
3943         * config/m32c/predicates.md (m32c_any_operand): New.
3944         (m32c_nonimmediate_operand): New.
3945         (m32c_hl_operand): New.
3946         (m32c_r3_operand): New.
3947         (ap_operand): New.
3948         (ma_operand): New.
3949         (memsym_operand): New.
3950         (memimmed_operand): New.
3951         (a_qi_operand): New.
3952         (m32c_eqne_operator): New.
3953         (m32c_1bit8_operand): New.
3954         (m32c_1bit16_operand): New.
3955         (m32c_1mask8_operand): New.
3956         (m32c_1mask16_operand): New.
3957         * config/m32c/blkmov.md: New file.
3958         * config/m32c/t-m32c (MD_FILES): Add blkmov.
3959
3960 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
3961
3962         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
3963         unsigned to fix signed/unsigned comparison issue in
3964         DWARF2_FRAME_REG_OUT.
3965         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
3966         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
3967
3968         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
3969         of ptr into the ENABLE_CHECKING section.
3970
3971 2006-03-08  Jeff Law  <law@redhat.com>
3972
3973         * tree-vrp.c (infer_value_range): Only count pointer uses
3974         and dereferences if -fdelete-null-pointer-checks is enabled.
3975
3976         * tree-vrp.c (find_assert_locations): Infer value ranges for
3977         single use pointers, but do not create ASSERT_EXPRs for them.
3978         When a non-null range is inferred for a pointer, backwards
3979         propagate that range to other equivalent pointers through the
3980         use-def chain.
3981
3982 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
3983
3984         PR bootstrap/26500
3985         * Makefile.in (dvi, html, install-info): Invoke the corresponding
3986         language hook targets.
3987         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
3988         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
3989         if language hook targets were missing.
3990
3991 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
3992
3993         * tree-ssa-opfinalize.h: Removed.
3994         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
3995         dependency.
3996         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
3997         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
3998         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
3999         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
4000         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
4001         finalize_ssa_v_must_def_ops): New.
4002
4003 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
4004
4005         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
4006         block as parameter.
4007
4008 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
4009
4010         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
4011
4012         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
4013         addresses with offsets; reorganize.
4014
4015         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
4016         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
4017         (expand_builtin_init_dwarf_reg_sizes): Likewise.
4018
4019 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
4020
4021         PR target/26588
4022         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
4023
4024 2006-03-08  Ben Elliston  <bje@au.ibm.com>
4025
4026         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
4027
4028 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
4029
4030         PR gomp/26238
4031         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
4032         expansion.
4033
4034 2006-03-07  Richard Guenther  <rguenther@suse.de>
4035
4036         PR tree-optimization/26587
4037         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
4038
4039 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
4040
4041         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
4042
4043 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
4044
4045         * hooks.c (hook_bool_mode_rtx_true): New function.
4046         * hooks.h (hook_bool_mode_rtx_true): Declare.
4047         * toplev.c (compile_file): Call output_shared_constant_pool.
4048         * varasm.c (shared_constant_pool): New variable.
4049         (assemble_start_function, assemble_end_function): Remove arguments
4050         from call to output_constant_pool.
4051         (create_constant_pool): New function, split out from...
4052         (init_varasm_status): ...here.
4053         (force_const_mem): Choose between the shared and per-function constant
4054         pools.  Set current_function_uses_const_pool when reusing old entries
4055         as well as when creating new ones.
4056         (mark_constant): Ignore data argument.
4057         (mark_constants): Remove pool argument.
4058         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
4059         to decide whether the function uses a constant pool.
4060         (output_constant_pool_contents): New function, split out from...
4061         (output_constant_pool): ...here.
4062         (output_shared_constant_pool): New function.
4063         (init_varasm_once): Initialize shared_constant_pool.
4064         * output.h (output_constant_pool): Delete.
4065         (output_shared_constant_pool): Declare.
4066         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
4067         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
4068
4069 2006-03-06  Nick Clifton  <nickc@redhat.com>
4070
4071         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
4072         flag_strength_reduce.
4073
4074 2006-03-06  Ben Elliston  <bje@au.ibm.com>
4075
4076         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
4077         x86_64-*-linux* configurations.
4078
4079         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
4080         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
4081
4082 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
4083
4084         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
4085         Remove.
4086         * basic-block.h: Remove the extern for
4087         rediscover_loops_after_threading.
4088
4089         * cfgloop.c (cancel_loop): Make it static.
4090         * cfgloop.h: Remove the prototype for cancel_loop.
4091
4092         * flow.c (recompute_reg_usage): Make it static.
4093         * rtl.h: Remove the prototype for recompute_reg_usage.
4094
4095         * function.c (use_return_register): Make it static.
4096         * function.h: Remove the prototype.
4097
4098 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
4099
4100         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
4101         Remove.
4102         * recog.h: Remove the prototype for
4103         validate_change_maybe_volatile.
4104
4105 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
4106
4107         * rtlanal.c (replace_reg): Remove.
4108         * rtl.h: Remove the prototype for replace_reg.
4109
4110 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
4111
4112         * regclass.c (reg_scan_update): Remove.
4113         (reg_scan_mark_refs): Remove the last argument.
4114         * rtl.h: Remove the prototype for reg_scan_update.
4115
4116 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
4117
4118         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
4119         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
4120         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
4121         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
4122         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
4123         loop-invariant.c, omp-low.c, opts.c, passes.c,
4124         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
4125         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
4126         tree-ssa-structalias.c, tree-ssa-threadedge.c,
4127         tree-ssa-threadupdate.c, tree-vect-patterns.c,
4128         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
4129         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
4130
4131 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
4132
4133         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
4134         * dwarf2out.h: Remove the prototype for
4135         dwarf2out_add_library_unit_info.
4136
4137 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
4138
4139         * tree.c (add_var_to_bind_expr): Remove.
4140         * tree.h: Remove the prototype for add_var_to_bind_expr.
4141
4142 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
4143
4144         * regclass.c (n_non_fixed_regs): Remove.
4145         (init_reg_sets_1, globalize_reg): Remove all uses of
4146         n_non_fixed_regs.
4147         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
4148
4149 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
4150
4151         * rtlanal.c (insns_safe_to_move_p): Remove.
4152         * rtl.h: Remove the prototype for insns_safe_to_move_p.
4153
4154 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
4155
4156         * expmed.c (expand_mult_add): Remove.
4157         * expr.h: Remove the prototype for expand_mult_add.
4158
4159 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
4160
4161         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
4162         and REG_SAVED_VAL_EXP constants.
4163         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
4164         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
4165         Handle regs stored by value.
4166         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
4167         (execute_cfa_program): Handle DW_CFA_val_offset,
4168         DW_CFA_val_offset_sf and DW_CFA_val_expression.
4169         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
4170         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
4171         (uw_install_context_1): Handle target regs stored by value.
4172
4173 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
4174
4175         * tree-sra.c (tree_sra): Return todoflags;
4176         (generate_one_element): Set TODO_update_smt_usage if needed.
4177         (pass_sra): Remove TODO_update_smt_usage.
4178         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
4179         parameter.
4180         (tree_ssa_forward_propagate_single_use_vars): Return
4181         TODO_update_smt_usage if we need to update SMT usage.
4182         (pass_forwprop): Remove TODO_update_smt_usage.
4183
4184 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
4185
4186         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
4187         (correct_use_link): Remove reference to get_stmt_operands.
4188         (update_stmt_operands): Likewise.
4189         (get_modify_expr_operands): New function factored out of
4190         parse_ssa_operands and get_expr_operands.
4191         Try to create V_MUST_DEFs for LHS by default.
4192         (get_expr_operands) <case MODIFY_EXPR>: Call
4193         get_modify_expr_operands.
4194         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
4195         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
4196         (parse_ssa_operands) <case MODIFY_EXPR>: Call
4197         get_modify_expr_operands.
4198
4199 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
4200
4201         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
4202         * tree-flow.h: Remove the prototype for
4203         referenced_var_lookup_if_exists.
4204
4205 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
4206
4207         PR rtl-optimization/26345
4208         PR target/19061
4209         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
4210
4211 2006-03-03  Roger Sayle  <roger@eyesopen.com>
4212
4213         PR tree-optimization/26524
4214         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
4215         fold_convert to create a constant of the appropriate type.
4216
4217 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
4218
4219         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4220         SYMBOL_REF_IN_BLOCK_P.
4221         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
4222         of SYMBOL_FLAG_IN_BLOCK.
4223         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
4224         instead of SYMBOL_REF_IN_BLOCK_P.
4225         * explow.c (use_anchored_address): Likewise.
4226         * rtl.c (rtx_size): Likewise.
4227         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
4228         instead of SYMBOL_FLAG_IN_BLOCK.
4229         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4230         SYMBOL_REF_IN_BLOCK_P.
4231         (assemble_variable): Likewise.
4232         (output_constant_def_contents): Likewise.
4233         (output_constant_pool): Likewise.
4234         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
4235         instead of SYMBOL_FLAG_IN_BLOCK.
4236         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4237         SYMBOL_REF_IN_BLOCK_P.
4238         (SYMBOL_REF_BLOCK): Likewise.
4239         (SYMBOL_REF_OFFSET): Likewise.
4240         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
4241         SYMBOL_REF_IN_BLOCK_P.
4242         (SYMBOL_FLAG_IN_BLOCK): Replace with...
4243         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
4244         (SYMBOL_REF_IN_BLOCK_P): Replace with...
4245         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
4246
4247 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
4248
4249         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
4250
4251 2006-03-02  Roger Sayle  <roger@eyesopen.com>
4252
4253         * simplify-rtx.c (simplify_unary_operation): When simplifying
4254         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
4255         that we perform the right shift in the appropriate mode, and
4256         then extend or truncate the result to requested mode.
4257
4258 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
4259
4260         * gengtype.c (main): Handle double_int type.
4261         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
4262         * double-int.c: New file.
4263         * double-int.h: New file.
4264         * system.h: Include doubleint.h.
4265         * Makefile.in (SYSTEM_H): Include double-int.h.
4266         (double-int.o): Add.
4267
4268 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
4269
4270         PR bootstrap/26478
4271         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
4272         copying over it.
4273
4274 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
4275
4276         * tree-vrp.c (remove_range_assertions): Do not update statements
4277         unnecessarily.
4278
4279 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
4280
4281         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
4282         cleanup.
4283         * gcse.c (rest_of_handle_gcse): Ditto.
4284         * except.c (gate_handle_eh): Ditto.
4285         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
4286         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
4287
4288 2006-03-02  Eric Christopher  <echristo@apple.com>
4289
4290         * config/i386/i386.c (machopic_output_stub): Add indirection to
4291         jump.
4292
4293 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
4294
4295         * loop.c: Removed.
4296
4297 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
4298
4299         Sun Niagara specific optimizations.
4300         * config.gcc: Recognize niagara as target.
4301         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
4302         (TARGET_CPU_niagara): Define.
4303         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
4304         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
4305         (CPP_CPU_SPEC): Handle -mcpu=niagara.
4306         (ASM_CPU_SPEC): Likewise.
4307         (PROCESSOR_NIAGARA): New enum entry.
4308         (REGISTER_MOVE_COST): Handle Niagara.
4309         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
4310         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
4311         (sparc_override_options): Recognize "niagara", set appropriate
4312         default MASK_* values for it, and align functions to 32-bytes
4313         by default just like ULTRASPARC/ULTRASPARC3.
4314         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
4315         (sparc64_initialize_trampoline): Likewise.
4316         (sparc_use_sched_lookahead): Use zero for niagara.
4317         (sparc_issue_rate): Use one for niagara.
4318         * config/sparc/niagara.md: New file.
4319         * config/sparc/sparc.md: Include it.
4320         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
4321         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
4322         when default cpu is niagara.
4323         (CPP_CPU_SPEC): Handle -mcpu=niagara.
4324         (ASM_CPU_SPEC): Likewise.
4325         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
4326         when default cpu is niagara.
4327         (ASM_CPU_SPEC): Handle -mcpu=niagara.
4328         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
4329         just like v9/ultrasparc/ultrasparc3.
4330         * doc/invoke.texi: Add documentation for "niagara" and improve
4331         existing documentation for ultrasparc variants.
4332
4333 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
4334
4335         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
4336
4337 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
4338
4339         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
4340         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
4341         and say that only one is needed.
4342         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
4343         * target.h (have_switchable_bss_sections): New hook.
4344         * explow.c (use_anchored_address): Check that the symbol is in a block.
4345         * varasm.c (tls_comm_section, comm_section, lcomm_section)
4346         (bss_noswitch_section): New variables.
4347         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
4348         (get_noswitch_section): New function.
4349         (get_block_for_section): Allow SECT to be null.
4350         (unlikely_text_section_p): Use SECTION_STYLE.
4351         (bss_initializer_p): New function.
4352         (get_variable_section): Move earlier in file.  Take a new argument,
4353         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
4354         Return one of the new *_sections in such cases.
4355         (get_block_for_decl): New function, extracting some logic from
4356         use_blocks_for_decl_p.
4357         (change_symbol_section): Remove in favor of...
4358         (change_symbol_block): ...this new function.
4359         (use_blocks_for_decl_p): Remove checks now performed by
4360         get_block_for_decl.
4361         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
4362         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
4363         (emit_local, emit_bss, emit_common): ...these new functions.
4364         Return true if the alignment was honored.
4365         (emit_tls_common): New function.
4366         (asm_emit_uninitialised): Delete.
4367         (assemble_variable_noswitch): New function, split out from...
4368         (assemble_variable): ...here.  Don't make decisions about common
4369         variables here.  Globalize all public decls that go into non-common
4370         sections.  Check whether SYMBOL_REF_BLOCK is null.
4371         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
4372         (output_constant_pool): Likewise.
4373         (init_varasm_once): Initialize the new section variables.
4374         (have_global_bss_p): New function.
4375         (categorize_decl_for_section): Use bss_initializer_p.
4376         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
4377         (place_block_symbol): Assert that the symbol must be in a block.
4378         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
4379         (TARGET_INITIALIZER): Include it.
4380         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
4381         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
4382         (SECTION_MACH_DEP): Bump by two.
4383         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
4384         (unnamed_section): Mention SECTION_UNNAMED in comment.
4385         (named_section): Likewise SECTION_NAMED.
4386         (noswitch_section_callback): New type.
4387         (noswitch_section): New structure.
4388         (section): Add a noswitch_section alternative.
4389         (SECTION_STYLE): New macro.
4390         (tls_comm_section, comm_section, lcomm_section): Declare.
4391         (bss_noswitch_section, have_global_bss_p): Declare.
4392         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
4393         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
4394         Override.
4395         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
4396         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
4397         Override.
4398
4399 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
4400
4401         * gcc/tree-vrp.c (execute_vrp): Return value.
4402         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
4403         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
4404         * gcc/tree-complex.c (tree_lower_complex): Ditto.
4405         (tree_lower_complex_O0): Ditto.
4406         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
4407         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
4408         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
4409         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
4410         (execute_tail_calls): Ditto.
4411         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
4412         * gcc/tree.h (init_function_for_compilation): Ditto.
4413         * gcc/ipa-cp.c (ipcp_driver): Ditto.
4414         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
4415         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
4416         * gcc/final.c (compute_alignments): Ditto.
4417         (rest_of_handle_final): Ditto.
4418         (rest_of_handle_shorten_branches): Ditto.
4419         (rest_of_clean_state): Ditto.
4420         * gcc/omp-low.c (execute_expand_omp): Ditto.
4421         (execute_lower_omp): Ditto.
4422         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
4423         * gcc/ipa-reference.c (static_execute): Ditto.
4424         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
4425         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
4426         (rest_of_handle_machine_reorg): Ditto.
4427         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
4428         * gcc/flow.c (recompute_reg_usage): Ditto.
4429         (rest_of_handle_remove_death_notes): Ditto.
4430         (rest_of_handle_life): Ditto.
4431         (rest_of_handle_flow2): Ditto.
4432         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
4433         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
4434         (do_ssa_store_ccp): Ditto.
4435         (execute_fold_all_builtins): Ditto.
4436         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
4437         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
4438         * gcc/ipa-pure-const.c (static_execute): Ditto.
4439         * gcc/cse.c (rest_of_handle_cse): Ditto.
4440         (rest_of_handle_cse2): Ditto.
4441         * gcc/web.c (rest_of_handle_web): Ditto.
4442         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
4443         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
4444         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
4445         * gcc/tree-nrv.c (tree_nrv): Ditto.
4446         (execute_return_slot_opt): Ditto.
4447         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
4448         (create_structure_vars): Ditto.
4449         * gcc/loop-init.c (rtl_loop_init): Ditto.
4450         (rtl_loop_done): Ditto.
4451         (rtl_move_loop_invariants): Ditto.
4452         (rtl_unswitch): Ditto.
4453         (rtl_unroll_and_peel_loops): Ditto.
4454         (rtl_doloop): Ditto.
4455         * gcc/gimple-low.c (lower_function_body): Ditto.
4456         (mark_used_blocks): Ditto.
4457         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
4458         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
4459         (cgraph_early_inlining): Ditto.
4460         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
4461         * gcc/jump.c (cleanup_barriers): Ditto.
4462         (purge_line_number_notes): Ditto.
4463         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
4464         (rest_of_handle_if_after_reload): Ditto.
4465         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
4466         (tree_ssa_loop_im): Ditto.
4467         (tree_ssa_loop_unswitch): Ditto.
4468         (tree_vectorize): Ditto.
4469         (tree_linear_transform): Ditto.
4470         (tree_ssa_loop_ivcanon): Ditto.
4471         (tree_ssa_empty_loop): Ditto.
4472         (tree_ssa_loop_bounds): Ditto.
4473         (tree_complete_unroll): Ditto.
4474         (tree_ssa_loop_prefetch): Ditto.
4475         (tree_ssa_loop_ivopts): Ditto.
4476         (tree_ssa_loop_done): Ditto.
4477         * gcc/predict.c (tree_estimate_probability): Ditto.
4478         * gcc/recog.c (split_all_insns_noflow): Ditto.
4479         (rest_of_handle_peephole2): Ditto.
4480         (rest_of_handle_split_all_insns): Ditto.
4481         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
4482         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
4483         (rest_of_handle_stack_adjustments): Ditto.
4484         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
4485         * gcc/function.c (instantiate_virtual_regs): Ditto.
4486         (init_function_for_compilation): Ditto.
4487         (rest_of_handle_check_leaf_regs): Ditto.
4488         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
4489         (rest_of_handle_gcse): Ditto.
4490         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
4491         * gcc/alias.c (rest_of_handle_cfg): Ditto.
4492         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
4493         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
4494         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
4495         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
4496         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
4497         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
4498         * gcc/except.c (set_nothrow_function_flags): Ditto.
4499         (convert_to_eh_region_ranges): Ditto.
4500         (rest_of_handle_eh): Ditto.
4501         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
4502         (remove_unnecessary_notes): Ditto.
4503         * gcc/except.h (set_nothrow_function_flags): Ditto.
4504         (convert_to_eh_region_ranges): Ditto.
4505         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
4506         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
4507         * gcc/tree-ssa-pre.c (do_pre): Ditto.
4508         (execute_fre): Ditto.
4509         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
4510         (rest_of_handle_jump2): Ditto.
4511         * gcc/tree-sra.c (tree_sra): Ditto.
4512         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
4513         (execute_mudflap_function_decls): Ditto.
4514         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
4515         (do_store_copy_prop): Ditto.
4516         * gcc/ipa-prop.h (ipcp_driver): Ditto.
4517         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
4518         * gcc/tree-ssa-forwprop.c
4519         (tree_ssa_forward_propagate_single_use_vars): Ditto.
4520         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
4521         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
4522         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
4523         (execute_late_warn_uninitialized): Ditto.
4524         * gcc/rtl.h (cleanup_barriers): Ditto.
4525         (split_all_insns_noflow): Ditto.
4526         (purge_line_number_notes): Ditto.
4527         (unshare_all_rtl): Ditto.
4528         (remove_unnecessary_notes): Ditto.
4529         (recompute_reg_usage): Ditto.
4530         (variable_tracking_main): Ditto.
4531         * gcc/integrate.c (emit_initial_value_sets): Ditto.
4532         * gcc/integrate.h (emit_initial_value_sets): Ditto.
4533         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
4534         (execute_free_cfg_annotations): Ditto.
4535         (execute_fixup_cfg): Ditto.
4536         (execute_cleanup_cfg_pre_ipa): Ditto.
4537         (execute_cleanup_cfg_post_optimizing): Ditto.
4538         (execute_init_datastructures): Ditto.
4539         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
4540         * gcc/combine.c (rest_of_handle_combine): Ditto.
4541         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
4542         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
4543         (rest_of_handle_reorder_blocks): Ditto.
4544         (rest_of_handle_partition_blocks): Ditto.
4545         * gcc/var-tracking.c (variable_tracking_main): Ditto.
4546         * gcc/tree-profile.c (tree_profiling): Ditto.
4547         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
4548         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
4549         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
4550         (rest_of_handle_sched2): Ditto.
4551         * gcc/basic-block.h (free_bb_insn): Ditto.
4552         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
4553         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
4554         (remove_useless_stmts): Ditto.
4555         (split_critical_edges): Ditto.
4556         (execute_warn_function_return): Ditto.
4557         (execute_warn_function_noreturn): Ditto.
4558         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
4559         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
4560         * gcc/passes.c (execute_one_pass): Run additional
4561         todos returned by execute function.
4562         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
4563         return a value.
4564
4565 2006-03-02  Richard Guenther  <rguenther@suse.de>
4566
4567         * tree-ssa-alias.c (find_used_portions): Consider taking
4568         the address as making the variable not write-only.
4569
4570 2006-03-02  Nick Clifton  <nickc@redhat.com>
4571
4572         * config.gcc (default_use_cxa_atexit): Extend the description of
4573         this configure variable.  Set its default value to "yes" for
4574         Linux, NetBSD and ELF targets on the assumption that they will
4575         use C libraries with the __cxa_atexit function.
4576
4577 2006-03-02  Ben Elliston  <bje@au.ibm.com>
4578
4579         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
4580         parameter as unused to suppress a build warning.
4581
4582 2006-03-02  Ben Elliston  <bje@au.ibm.com>
4583
4584         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
4585         config/dfp-bit.c.
4586
4587 2006-03-01  Roger Sayle  <roger@eyesopen.com>
4588
4589         PR other/26489
4590         * gthr-posix.h (__gthrw2): Define to take three parameters, the
4591         declared name, the weak reference name, and the typeof name.
4592         (__gthrw): Avoid expanding the declared name suffix.
4593         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
4594
4595 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
4596
4597         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
4598         from DWARF 3.
4599         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
4600         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
4601         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
4602         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
4603         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
4604         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
4605         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
4606         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
4607         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
4608         DW_DS_leading_separate, DW_DS_trailing_separate): New.
4609         (DW_END_default, DW_END_big, DW_END_little): New.
4610         (DW_END_lo_user, DW_END_hi_user): Define.
4611         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
4612         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
4613         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
4614         DW_LANG_D): New.
4615
4616 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
4617
4618         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
4619         Update all users.
4620         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
4621         Update all users.
4622         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
4623         Update all users.
4624         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
4625         Update all users.
4626         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
4627         to 'symbol_mem_tag'.
4628         Update all users.
4629         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
4630         rename.
4631
4632 2006-03-01  Roger Sayle  <roger@eyesopen.com>
4633
4634         * builtins.c (fold_builtin_copysign): Delete unreachable code.
4635
4636 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
4637
4638         PR target/25761
4639         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
4640         MACHO_DYNAMIC_NO_PIC_P.
4641         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
4642
4643 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
4644
4645         PR target/26389
4646         * config/darwin-protos.h (darwin_asm_output_anchor):
4647         Declare.
4648         * config/darwin-sections.def (cstring_section):
4649         Add SECTION_MERGE to the flags.
4650         (literal4_section): Likewise.
4651         (literal8_section): Likewise.
4652         (objc_selector_refs_section): Likewise.
4653         (objc_cls_refs_section): Likewise.
4654         * config/darwin.c (darwin_asm_output_anchor): New
4655         function.
4656         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
4657
4658 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
4659
4660         Fix PR tree-optimization/26443
4661         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
4662         to todo and PROP_tmt_usage to properties_destroyed.
4663         * tree-ssa-ccp.c (pass_ccp): Ditto.
4664         (pass_store_ccp): Ditto.
4665         * tree-ssa-dom.c (pass_dominator): Ditto.
4666
4667 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
4668
4669         * tree-ssa-operands.c: Cleanup whitespace.
4670         (get_asm_expr_operands): Move before first invocation.
4671         (get_indirect_ref_operands): Likewise.
4672         (get_tmr_operands): Likewise.
4673         (get_call_expr_operands): Likewise.
4674         (append_def): Likewise.
4675         (append_use): Likewise.
4676         (append_v_may_def): Likewise.
4677         (append_v_must_def): Likewise.
4678         (add_call_clobber_ops): Likewise.
4679         (add_call_read_ops): Likewise.
4680         (add_stmt_operand): Likewise.
4681         (add_virtual_operand): Likewise.
4682         (build_ssa_operands): Likewise.
4683
4684 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
4685
4686         PR middle-end/26022
4687         Revert:
4688         PR middle-end/24437
4689         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
4690         with a call expr to ...
4691         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
4692
4693 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
4694
4695         * tree-vrp.c (extract_range_from_assert): Remove special
4696         handling for types with super-types.
4697
4698 2006-03-01  Ben Elliston  <bje@au.ibm.com>
4699
4700         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
4701         and powerpc64-*-linux* configurations.
4702         * config/t-dfprules: New file.
4703
4704         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
4705         Compile dfp-bit.c from the source directory using -DWIDTH and
4706         $DFP_CFLAGS to control the compilation of that file, rather than
4707         generating width-specific versions in the build directory.
4708         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
4709         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
4710
4711 2006-02-28  Zack Weinberg  <zackw@panix.com>
4712
4713         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
4714         continues to work.
4715
4716 2006-02-28  Eric Christopher  <echristo@apple.com>
4717
4718         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
4719         Set up IN_LIBGCC definition of TARGET_64BIT.
4720         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
4721
4722 2006-02-28  Roger Sayle  <roger@eyesopen.com>
4723
4724         PR middle-end/14752
4725         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
4726         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
4727         cases via the construction of "expr != 0".
4728
4729 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
4730
4731         * alias.c (alias_invariant, alias_invariant_size): Remove.
4732         (record_base_value): Remove.
4733         (memrefs_conflict_p): Don't look at alias_invariant.
4734         (end_alias_analysis): Don't free it.
4735         * alias.h (record_base_value): Remove prototype.
4736
4737 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
4738             Adam Nemet  <anemet@caviumnetworks.com>
4739
4740         * rtl.h (truncated_to_mode): Declare it.
4741         (struct rtl_hooks): Add reg_truncated_to_mode hook.
4742         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
4743         (RTL_HOOKS_INITIALIZER): Include it.
4744         * rtlhooks.c (reg_truncated_to_mode_general): New function.
4745         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
4746         reg_truncated_to_mode.
4747         * rtlanal.c (truncated_to_mode): Define it.
4748         * simplify-rtx.c (simplify_unary_operation_1): Use it.
4749
4750 2006-02-28  Jeff Law  <law@redhat.com>
4751
4752         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
4753         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
4754         the range allowed by TYPE_PRECISION.
4755
4756         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
4757
4758 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
4759
4760         PR tree-optimization/26419
4761         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
4762         values of n.
4763
4764 2006-02-27  Zack Weinberg  <zackw@panix.com>
4765
4766         * doc/md.texi: Fix typo in previous change.
4767
4768 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
4769
4770         * df.c: Remove.
4771
4772 2006-02-27  Zack Weinberg  <zackw@panix.com>
4773
4774         * rtl.def (define_constraint, define_register_constraint)
4775         (define_memory_constraint, define_address_constraint): New MD forms.
4776         * gensupport.c (process_rtx): Put define_constraint etc on the
4777         predicate queue.
4778         * genpreds.c (process_define_predicate): Adjust comment.  Validate
4779         the name, and call validate_exp to validate the expression.
4780         (mark_mode_tests, write_extract_subexp): Can assume correct input.
4781         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
4782         all callers changed.
4783         (validate_exp, needs_variable, struct constraint_data)
4784         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
4785         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
4786         (const_dbl_constraints, constraint_max_namelen)
4787         (have_register_constraints, have_memory_constraints)
4788         (have_address_constraints, have_address_constraints)
4789         (have_extra_constraints, have_const_int_constraints)
4790         (have_const_dbl_constraints, mangle, add_constraint)
4791         (process_define_constraint, process_define_register_constraint)
4792         (write_enum_constraint_num, write_lookup_constraint)
4793         (write_insn_constraint_len, write_regclass_for_constraint)
4794         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
4795         (write_insn_extra_memory_constraint)
4796         (write_insn_extra_address_constraint)
4797         (write_satisfies_constraint_fns): New.
4798         (write_tm_preds_h): If we have new-style constraint definitions,
4799         prototype the functions generated from them, and define the
4800         old constraint interface (still used by generic code) in terms of
4801         those functions.
4802         (write_insn_preds_c): If we have new-style constraint definitions,
4803         generate all relevant functions from those definitions.
4804         (main): Handle define_constraint etc.
4805         * genoutput.c (struct constraint_data, indep_constraints)
4806         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
4807         (mdep_constraint_len): New data structures and functions, defined
4808         #ifdef USE_MD_CONSTRAINTS.
4809         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
4810         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
4811         use new logic to validate operand constraints against constraint
4812         definitions.
4813         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
4814         defined.
4815         * defaults.h: If none of the old-style constraint macros are
4816         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
4817         old-style macros; and poison REG_CLASS_FROM_LETTER,
4818         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
4819         EXTRA_CONSTRAINT.
4820         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
4821         * doc/md.texi: Document new constraint-definition mechanism and the
4822         C interface it provides.  Remove references to old mechanism
4823         elsewhere in the document.
4824         (Machine Constraints): Use pathnames relative to gcc directory,
4825         i.e. config/ARCH/FILE.  Change i386 section to refer to
4826         config/i386/predicates.md; update that section to match docstrings.
4827         * doc/tm.texi: Move all documentation of the old constraint-
4828         definition macros to their own section, clearly mark as obsolete.
4829
4830         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
4831         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
4832         definitions.
4833         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
4834         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
4835         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
4836         constraint strings.
4837         (splits and peepholes): Use satisfies_constraint_*.
4838         * config/i386/i386.c (memory_address_length)
4839         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
4840
4841 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
4842
4843         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
4844         scalar operation to be put back into the loop.
4845
4846 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
4847
4848         PR other/26208
4849         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
4850         (extract_cie_info): Handle S flag in augmentation string.
4851         (execute_cfa_program): If context->signal_frame, execute also
4852         fs->pc == context->ra instructions.
4853         (uw_frame_state_for): If context->signal_frame, don't subtract one
4854         from context->ra to find FDE.
4855         (uw_update_context_1): Set context->signal_frame to
4856         fs->signal_frame.
4857         (_Unwind_GetIPInfo): New function.
4858         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
4859         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
4860         of _Unwind_GetIP.
4861         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
4862         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
4863         * unwind-compat.c (_Unwind_GetIPInfo): New function.
4864         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
4865         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
4866         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
4867         * config/i386/linux-unwind.h (x86_fallback_frame_state,
4868         x86_64_fallback_frame_state): Set fs->signal_frame.
4869         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
4870         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
4871         (frob_update_context): Likewise.  Workaround missing S flag in
4872         Linux 2.6.12 - 2.6.16 kernel vDSOs.
4873         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
4874         Remove the psw_addr + 1 hack.
4875
4876 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
4877
4878         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
4879         with aggregates here.
4880         (find_func_aliases): Remove code for &<aggregate> from here.
4881
4882 2006-02-26  Roger Sayle  <roger@eyesopen.com>
4883
4884         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (~X & C) eq/ne 0 as
4885         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
4886         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
4887         as (X & C) ne/eq 0.
4888
4889 2006-02-26  Roger Sayle  <roger@eyesopen.com>
4890
4891         PR middle-end/19983
4892         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
4893
4894 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
4895
4896         * opts.c (decode_options): Do not handle flag_strength_reduce.
4897         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
4898         and OPT_fstrength_reduce.
4899         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
4900         flag_prefetch_loop_arrays for being nonzero.
4901         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
4902         no-ops.
4903         (fprefetch-loop-arrays-rtl): Removed.
4904         (flag_prefetch_loop_arrays): Do not specify the value.
4905
4906         * doc/passes.texi: Update documentation of loop optimizer
4907         passes.
4908         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
4909         -frerun-loop-opt): Remove.
4910
4911 2006-02-26  Richard Guenther  <rguenther@suse.de>
4912
4913         PR tree-optimization/26421
4914         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
4915         in function calls that are ADDR_EXPRs as using the whole structure.
4916
4917 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
4918
4919         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
4920         * tree-pass.h (pass_loop_optimize): Remove.
4921         * passes.c (pass_loop_optimize): Never run it.
4922         * toplev.c (backend_init): Don't call init_loop.
4923         * opts.c (flag_loop_optimize_set): Remove.
4924         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
4925         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
4926         the old RTL loop optimizer when profiling enabled.
4927         * predict.c (tree_estimate_probability): Always strip builtin_expect.
4928         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
4929         pre-headers for the sake of the old RTL loop optimizer.
4930         * Makefile.in: Remove all references to loop.o.
4931
4932         * doc/invoke.texi: Remove all references to -floop-optimize
4933         and -frerun-loop-opt.
4934
4935 2006-02-26  Zack Weinberg  <zackw@panix.com>
4936
4937         * doc/md.texi (Machine Constraints): Refer to all files with paths
4938         relative to gcc directory (i.e. config/CPU/file).  Add missing
4939         @table @code ... @end table to M32C subsection.
4940
4941 2006-02-26  Roger Sayle  <roger@eyesopen.com>
4942
4943         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
4944         (X & 1) == 0.
4945         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
4946
4947 2006-02-26  Roger Sayle  <roger@eyesopen.com>
4948             James A. Morrison  <phython@gcc.gnu.org>
4949
4950         PR middle-end/21137
4951         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
4952         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
4953         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
4954         signedness of the shift operation.
4955
4956 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
4957
4958         PR tree-optimization/26359
4959         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
4960
4961 2006-02-25  Roger Sayle  <roger@eyesopen.com>
4962
4963         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
4964         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
4965         as X == 0, and some symmetry related transformations.
4966         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
4967
4968 2006-02-25  Roger Sayle  <roger@eyesopen.com>
4969
4970         PR middle-end/23673
4971         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
4972         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
4973         symmetry related transformations.  Fold (X^C1) == C2 as
4974         X == (C1^C2).
4975
4976 2006-02-25  Juergen Weigert  <jw@suse.de>
4977         Richard Guenther  <rguenther@suse.de>
4978
4979         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
4980
4981 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
4982
4983         * combine.c (gen_lowpart_or_truncate): Call
4984         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
4985
4986 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
4987
4988         * doc/invoke.texi: Move -fopenmp description to "Options for
4989         Code Generation".
4990         Remove reference to -lgomp.
4991
4992 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
4993
4994         * doc/install.texi: Require GNU tar version 1.14.
4995
4996 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
4997
4998         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
4999         * doc/invoke.texi (C++ Dialect Options): Document
5000         -fno-use-cxa-get-exception-ptr.
5001         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
5002         * configure: Regenerate.
5003         * c.opt (fuse-cxa-get-exception-ptr): New.
5004         * c-opts.c (c_common_handle_option): Handle
5005         OPT_fuse_cxa_get_exception_ptr.
5006         * c-common.c (flag_use_cxa_atexit): Update documentation.
5007         (flag_use_cxa_get_exception_ptr): New.
5008         * c-common.h (flag_use_cxa_get_exception_ptr): New.
5009         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
5010         documentation.
5011         (C_COMMON_OVERRIDE_OPTIONS): New.
5012
5013 2006-02-24  Roger Sayle  <roger@eyesopen.com>
5014
5015         PR middle-end/24952
5016         * combine.c (try_combine): Explicitly check whether GET_CODE is
5017         a SET or a CLOBBER, instead on checking that it isn't a USE.
5018
5019 2006-02-24  Roger Sayle  <roger@eyesopen.com>
5020
5021         * fold-const.c (fold_comparison): New subroutine of fold_binary
5022         containing transformations common to both the equality and
5023         ordering relational operators, factored out of fold_binary.
5024         (fold_binary): Separate out the equality operators (EQ_EXPR
5025         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
5026         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
5027         transformations common to both.
5028         (fold_div_compare): Fix latent bugs in the previously unreachable
5029         LT_EXPR and GE_EXPR cases.
5030
5031 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
5032
5033         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
5034         decl libname for clog to __clog on AIX.
5035
5036         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
5037
5038 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
5039
5040         PR target/26453
5041         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
5042         output traceback table for thunks.  Localise rs6000_stack_info call.
5043
5044 2006-02-23  Roger Sayle  <roger@eyesopen.com>
5045             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5046
5047         * gthr-posix.h (__gthrw): Fix typo in comment.
5048
5049 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
5050
5051         * doc/cpp.texi (Character sets): Document that we do support
5052         input files to be in any character set.
5053
5054 2006-02-23  Jeff Law  <law@redhat.com>
5055
5056         * tree.h (PHI_ARG_NONZERO): Remove.
5057         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
5058         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
5059         node to the new node.
5060
5061         PR tree-optimization/26425
5062         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
5063         min/max, then assume its varying.
5064
5065 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
5066
5067         PR rtl-optimization/26316
5068         * rtlanal.c (enum may_trap_p_flags): New.
5069         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
5070         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
5071         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
5072         (may_trap_after_code_motion_p): New function.
5073         * loop-invariant.c (find_identical_invariants): Fix dump formating.
5074         (find_invariant_insn): Use may_trap_after_code_motion_p.
5075         * rtl.h (may_trap_after_code_motion_p): Declare.
5076
5077 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
5078
5079         * emit-rtl.c (immed_double_const): Cleanup.
5080
5081 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
5082
5083         Fix PR tree-optimization/26376
5084         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
5085         remove assert.
5086
5087 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
5088
5089         PR middle-end/26412
5090         * gimplify.c (omp_add_variable): Guard variable size decl test with
5091         DECL_SIZE (decl) check.
5092
5093 2006-02-23  Richard Guenther  <rguenther@suse.de>
5094
5095         PR middle-end/26439
5096         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
5097         like aggregate types.
5098
5099 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
5100
5101         * configure.ac: Add --with{,out}-long-double-128 configure option.
5102         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
5103         * configure: Rebuilt.
5104         * config.in: Rebuilt.
5105         * doc/install.texi (Options specification): Document
5106         --with-long-double-128.
5107
5108         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
5109         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
5110         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
5111         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
5112
5113 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
5114
5115         * config/s390/s390.c (override_options): Handle
5116         TARGET_DEFAULT_LONG_DOUBLE_128.
5117
5118         * config/alpha/alpha.c (override_options): Handle
5119         TARGET_DEFAULT_LONG_DOUBLE_128.
5120
5121         * config/sparc/sparc.c (sparc_override_options): Handle
5122         TARGET_DEFAULT_LONG_DOUBLE_128.
5123
5124 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
5125
5126         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
5127         (real-install-headers-tar, real-install-headers-cpio)
5128         (real-install-headers-cp): New targets.
5129
5130 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
5131
5132         * tree.h (variable_section): Delete.
5133         * varasm.c (variable_section): Delete.
5134
5135 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
5136
5137         * install.texi: Add notes on install.texi2html.
5138         (Building in parallel): Do not use footnotes.
5139
5140 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
5141
5142         PR libgomp/26234
5143         * doc/install.texi (Configuration): Document --disable-libgomp.
5144
5145 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
5146
5147         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
5148
5149 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
5150
5151         * config/i386/sse.md (vec_extractv2df_1_sse): New.
5152         (vec_extractv2df_0_sse): New.
5153
5154 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
5155
5156         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
5157         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
5158         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
5159         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
5160         to the result of the expression.
5161         (def_cfa_1): Adjust.
5162         (frame_pointer_cfa_offset): Rename to...
5163         (frame_pointer_fb_offset): ... this.  Adjust all uses.
5164         (convert_cfa_to_loc_list): Rename to...
5165         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
5166         Pass it on to build_cfa_loc.
5167         (compute_frame_pointer_to_cfa_displacement): Rename to...
5168         (compute_frame_pointer_to_fb_displacement): ... this.  New
5169         offset parameter.  Use it in computation.
5170         (gen_subprogram_die): Compute cfa_fb_offset with the new
5171         macro, and use it to compute the fb loc list and the
5172         displacement.
5173
5174 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
5175
5176         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
5177         replaced with register_operand.
5178         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
5179         non-DREG is expensive.
5180         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
5181         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
5182         involving memory.
5183
5184 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
5185
5186         * doc/install.texi2html: Use set -e.
5187
5188 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
5189
5190         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
5191         (ASM_OUTPUT_SHARED_LOCAL): Delete.
5192         * doc/invoke.texi (-fshared-data): Delete.
5193         * common.opt (fshared-data): Delete.
5194         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
5195         (assemble_static_space): Remove #if 0 code.
5196         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
5197         (ASM_OUTPUT_SHARED_LOCAL): Poison.
5198         * config/cris/cris.h: Remove FIXME.
5199
5200 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
5201
5202         * doc/sourcebuild.texi (Front End Directory): No more double-colon
5203         hooks.
5204
5205 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
5206
5207         PR middle-end/26379
5208         * combine.c (simplify_shift_const_1): Disable nested shifts
5209         optimization for vector shifts.
5210
5211 2006-02-20  Roger Sayle  <roger@eyesopen.com>
5212
5213         PR tree-optimization/26361
5214         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
5215         of unsigned integer types.
5216
5217 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
5218
5219         * tree-chrec.c (eq_evolutions_p): New.
5220         * tree-chrec.h (eq_evolutions_p): Declared.
5221         * tree-data-ref.c: Fix formatting.
5222         (datadep_stats, dependence_stats): New.
5223         (gcd): Moved...
5224         (print_direction_vector): New.
5225         (dump_data_dependence_relation): Use print_direction_vector.
5226         (object_analysis, create_data_ref): Handle COMPONENT_REF.
5227         (compute_subscript_distance): Static.
5228         (initialize_data_dependence_relation): Static.  Get the number
5229         of loops surrounding the references from the callers, and initialize
5230         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
5231         base_object_differ_p analyzers.
5232         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
5233         compute_overlap_steps_for_affine_1_2,
5234         analyze_subscript_affine_affine): Count the classified dependences.
5235         Print a message when a test failed.
5236         (can_use_analyze_subscript_affine_affine): New.
5237         (analyze_siv_subscript): Compute the data dependences on symbolic
5238         scevs that verify can_use_analyze_subscript_affine_affine.
5239         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
5240         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
5241         Handle symbolic scevs.
5242         (analyze_overlapping_iterations): Let symbolic affine scevs to be
5243         analyzed.
5244         (subscript_dependence_tester): Moved...
5245         (build_classic_dist_vector, build_classic_dir_vector): Don't use
5246         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
5247         DDR_SIZE_VECT instead of getting it in parameter.
5248         (subscript_dependence_tester): ... here.  Take as a parameter
5249         loop_nest_depth.  Call build_classic_dist_vector and
5250         build_classic_dir_vector.
5251         (compute_affine_dependence): Update subscript_dependence_tester
5252         parameters.  Update datadep_stats counters.  Call
5253         compute_subscript_distance.
5254         (compute_self_dependence): Save the dist and dir vectors.  Call
5255         compute_subscript_distance.
5256         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
5257         (compute_all_dependences): Reorder parameters as they were before
5258         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
5259         compute_subscript_distance.  Update the use of
5260         compute_affine_dependence and initialize_data_dependence_relation.
5261         (find_data_references_in_loop): Handle COMPONENT_REF.
5262         (compute_data_dependences_for_loop): Initialize dependence_stats.
5263         Don't call build_classic_dist_vector and build_classic_dir_vector.
5264         Update the parameters of initialize_data_dependence_relation and
5265         compute_all_dependences.  Print the statistics from datadep_stats.
5266         (analyze_all_data_dependences): Static.  Not used until the pass for
5267         checking the data dependences is contributed.
5268         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
5269         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
5270         (initialize_data_dependence_relation, compute_affine_dependence,
5271         analyze_all_data_dependences, compute_subscript_distance): Removed.
5272         (print_direction_vector): New.
5273         * lambda.h (gcd): ... here.
5274         (lambda_vector_gcd): Moved here from gcd_vector.
5275         * lambda-code.c (gcd, gcd_vector): Removed.
5276         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
5277         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
5278
5279 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
5280
5281         * ipa-type-escape.c: Tidy some comments and white space.
5282         * tree-ssa-operands.c: Likewise.
5283
5284 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
5285
5286         PR tree-opt/25879
5287         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
5288         (dump_decl_name): Do not walk the decl tree chains.
5289         * tree-pass.h (TDF_CHAIN): Remove.
5290
5291 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5292
5293         * Makefile.in (C): Remove
5294         (PROTO): Remove
5295         (.PHONY): Remove C and PROTO
5296
5297 2006-02-20  Roger Sayle  <roger@eyesopen.com>
5298
5299         PR middle-end/26236
5300         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
5301         deprecated CHAR_TYPE tree code.
5302
5303 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
5304
5305         * configure.ac (target_list): Add install-info, dvi, html.
5306         * configure: Regenerate.
5307
5308         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
5309         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
5310         treelang/Make-lang.in: Do not use double-colon rules.
5311
5312 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
5313
5314         * tree.h (struct tree_memory_tag): Add is_used_alone member.
5315         (TMT_USED_ALONE): New macro.
5316         * tree-pass.h (PROP_tmt_usage): New property.
5317         (TODO_update_tmt_usage): New todo.
5318         * tree-ssa-alias.c (updating_used_alone): New variable.
5319         (recalculate_used_alone): New function.
5320         (compute_may_aliases): Set updating_used_alone, call
5321         recalculate_used_alone.
5322         * tree-sra.c (pass_sra): Note that this pass destroys
5323         PROP_tmt_usage, and add TODO_update_tmt_usage.
5324         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
5325         * tree-flow.h (updating_used_alone): Prototype.
5326         (recalculate_used_alone): Ditto.
5327         * passes.c (execute_todo): Add code to set updating_used_alone,
5328         and call recalculate.
5329         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
5330         for clobber if used alone, and add assert to verify used_alone
5331         status.
5332
5333 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
5334
5335         * config/s390/s390.c (legitimize_pic_address): Assertions checking
5336         for non tls symbols added.
5337         (legitimize_address): Do nothing for PLUS expressions if one of the
5338         addends is a tls symbol reference.
5339
5340 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
5341
5342         PR bootstrap/25476
5343
5344         * Makefile.in (LDFLAGS): Define from autoconf substitution.
5345
5346         * Makefile.in (BOOTSTRAPPING): New.
5347         (quickstrap): New definition if BOOTSTRAPPING=yes.
5348
5349         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
5350         * configure.ac: Substitute all_selected_languages with the languages
5351         that were configured.  For all the other variables except
5352         lang_specs_files, include all the languages in the tree.
5353         * configure: Regenerate.
5354
5355         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
5356         if there is one.  Run the commands to run fixincludes in the same
5357         subshell.
5358
5359         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
5360         * doc/install.texi: Document exact conventions for searching target tools.
5361         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
5362         something more about building an Ada cross-compiler.  Don't list GNU Make
5363         requirements which affect all platforms.
5364
5365 2006-02-19  Roger Sayle  <roger@eyesopen.com>
5366
5367         PR middle-end/19543
5368         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
5369         only equivalent if the have both the same mode and precision.
5370
5371 2006-02-20  Ben Elliston  <bje@au.ibm.com>
5372
5373         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
5374
5375 2006-02-19  Roger Sayle  <roger@eyesopen.com>
5376             Steven Bosscher  <stevenb.gcc@gmail.com>
5377
5378         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
5379         constant pool references to identify stack mode constants.
5380         * rtlanal.c (constant_pool_constant_p): New predicate to check
5381         whether operand is a floating point constant in the pool.
5382         * rtl.h (constant_pool_constant_p): Prototype here.
5383         * loop.c (scan_loop): Avoid hoisting constants from the constant
5384         pool on STACK_REGS targets.
5385         (load_mems): Likewise.
5386         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
5387         loads into x87 registers expensive in terms of register pressure.
5388
5389 2006-02-19  Roger Sayle  <roger@eyesopen.com>
5390
5391         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
5392         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
5393
5394 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
5395
5396         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
5397         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
5398
5399 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
5400
5401         * doc/invoke.texi: Document -fipa-pta.
5402         * common.opt: Add ipa-pta option.
5403         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
5404         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
5405         (do_ds_constraint): Ditto.
5406         (get_constraint_for): Only add to referenced_vars if
5407         referenced_vars exists.
5408         (insert_into_field_list): Rewrite to do this unsorted.
5409         (insert_into_field_list_sorted): Rename old insert_into_field_list
5410         to this.
5411         (create_function_info_for): Use insert_into_field_list_sorted.
5412         (create_variable_info_for): Rewrite so it uses unsorted version,
5413         since the field list is sorted.
5414         (intra_create_variable_infos): Only add to referenced_vars if
5415         referenced_vars exists.
5416         (ipa_pta_execute): Init heapvars, and delete when done.
5417         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
5418
5419 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5420
5421         * doc/install.texi: Add missing `@samp'.
5422
5423 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
5424
5425         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
5426         Use the arguments.
5427
5428 2006-02-18  Mark Wielaard  <mark@klomp.org>
5429
5430         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
5431         who added new 4.1 features, bug fixes and integration support.
5432
5433 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
5434
5435         PR target/26350
5436         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
5437         MEM for ABI_V4 pic.
5438
5439 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
5440
5441         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
5442         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
5443         (copy_insn_1): Likewise.  Don't copy each field individually.
5444         Reindent.
5445         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
5446         of RTX_SIZE.
5447         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
5448         * rtl.c (rtx_size): Rename variable to...
5449         (rtx_code_size): ...this.
5450         (rtx_size): New function.
5451         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
5452         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
5453         Reindent.
5454         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
5455         * rtl.h (rtx_code_size): New variable.
5456         (rtx_size): Change from a variable to a function.
5457         (RTX_SIZE): Rename to...
5458         (RTX_CODE_SIZE): ...this.
5459
5460         PR target/9703
5461         PR tree-optimization/17106
5462         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
5463         (Anchored Addresses): New section.
5464         * doc/invoke.texi (-fsection-anchors): Document.
5465         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
5466         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
5467         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
5468         * hooks.c (hook_bool_mode_rtx_false): New function.
5469         * hooks.h (hook_bool_mode_rtx_false): Declare.
5470         * gengtype.c (create_optional_field): New function.
5471         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
5472         SYMBOL_REF_IN_BLOCK_P is true.
5473         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
5474         (min_anchor_offset, max_anchor_offset): Likewise.
5475         (use_anchors_for_symbol_p): New hook.
5476         * toplev.c (compile_file): Call output_object_blocks.
5477         (target_supports_section_anchors_p): New function.
5478         (process_options): Check that -fsection-anchors is only used on
5479         targets that support it and when -funit-at-a-time is in effect.
5480         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
5481         if the decl doesn't have one.
5482         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
5483         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
5484         of force_const_mem through use_anchored_address.
5485         (expand_expr_constant): New function.
5486         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
5487         calling expand_expr for INDIRECT_REF.
5488         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
5489         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
5490         * expr.h (use_anchored_address): Declare.
5491         * loop-unroll.c: Don't declare rtx vectors here.
5492         * explow.c: Include output.h.
5493         (validize_mem): Call use_anchored_address.
5494         (use_anchored_address): New function.
5495         * common.opt (-fsection-anchors): New switch.
5496         * varasm.c (object_block_htab, anchor_labelno): New variables.
5497         (hash_section, object_block_entry_eq, object_block_entry_hash)
5498         (use_object_blocks_p, get_block_for_section, create_block_symbol)
5499         (use_blocks_for_decl_p, change_symbol_section): New functions.
5500         (get_variable_section): New function, split out from assemble_variable.
5501         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
5502         use_blocks_for_decl_p say so.  Use change_symbol_section if the
5503         symbol has already been created.
5504         (assemble_variable_contents): New function, split out from...
5505         (assemble_variable): ...here.  Don't output any code for
5506         block symbols; just pass them to place_block_symbol.
5507         Use get_variable_section and assemble_variable_contents.
5508         (get_constant_alignment, get_constant_section, get_constant_size): New
5509         functions, split from output_constant_def_contents.
5510         (build_constant_desc): Create a block symbol if use_object_blocks_p
5511         says so.  Or into SYMBOL_REF_FLAGS.
5512         (assemble_constant_contents): New function, split from...
5513         (output_constant_def_contents): ...here.  Don't output any code
5514         for block symbols; just pass them to place_section_symbol.
5515         Use get_constant_section and get_constant_alignment.
5516         (force_const_mem): Create a block symbol if use_object_blocks_p and
5517         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
5518         (output_constant_pool_1): Add an explicit alignment argument.
5519         Don't switch sections here.
5520         (output_constant_pool): Adjust call to output_constant_pool_1.
5521         Switch sections here instead.  Don't output anything for block symbols;
5522         just pass them to place_block_symbol.
5523         (init_varasm_once): Initialize object_block_htab.
5524         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
5525         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
5526         (place_block_symbol, get_section_anchor, output_object_block)
5527         (output_object_block_htab, output_object_blocks): New functions.
5528         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
5529         (TARGET_ASM_OUT): Include it.
5530         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
5531         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
5532         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
5533         (TARGET_INITIALIZER): Include them.
5534         * rtl.c (rtl_check_failed_block_symbol): New function.
5535         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
5536         (block_symbol, object_block): New structures.
5537         (rtx_def): Add a block_symbol field to the union.
5538         (BLOCK_SYMBOL_CHECK): New macro.
5539         (rtl_check_failed_block_symbol): Declare.
5540         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
5541         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
5542         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
5543         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
5544         * output.h (output_section_symbols): Declare.
5545         (object_block): Name structure.
5546         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
5547         (default_use_anchors_for_symbol_p): Declare.
5548         * Makefile.in (RTL_BASE_H): Add vec.h.
5549         (explow.o): Depend on output.h.
5550         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
5551         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
5552         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
5553         (rs6000_use_blocks_for_constant_p): New function.
5554
5555 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5556
5557         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
5558
5559 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
5560
5561         PR tree-opt/25680
5562         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
5563         IMAGPART_EXPR.
5564
5565 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
5566
5567         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
5568         is_aliased.
5569         Update all users.
5570
5571 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
5572
5573         PR middle-end/26334
5574         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
5575         instead of DECL_REGISTER.
5576
5577 2006-02-18  Olivier Hainque  <hainque@adacore.com>
5578
5579         PR ada/13408
5580         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
5581
5582 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5583
5584         PR target/24837
5585         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
5586         * opth-gen.awk: Handle Var and InverseMask together.
5587         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
5588         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
5589         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
5590         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
5591         used together.
5592         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
5593         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
5594         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
5595         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
5596         LINUX_DYNAMIC_LINKER): Define.
5597         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
5598         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
5599         TARGET_GLIBC.
5600         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5601         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
5602         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5603         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5604         (TARGET_C99_FUNCTIONS): Don't define.
5605         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
5606         GLIBC_DYNAMIC_LINKER.
5607         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
5608         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
5609         GLIBC_DYNAMIC_LINKER64): Define.
5610         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
5611         LINUX_DYNAMIC_LINKER64.
5612         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5613         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5614         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
5615         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5616         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5617         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5618         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
5619         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
5620         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
5621         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
5622         and LINUX_DYNAMIC_LINKER32.
5623         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5624         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5625         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
5626         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5627         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
5628         TARGET_GLIBC.
5629         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
5630         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
5631         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
5632         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
5633         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
5634         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
5635         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
5636         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
5637         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
5638         LINUX_DYNAMIC_LINKER): Define.
5639         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
5640         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
5641         GLIBC_DYNAMIC_LINKER64): Define.
5642         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
5643         LINUX_DYNAMIC_LINKER64.
5644         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5645         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5646         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
5647         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
5648         LINUX_DYNAMIC_LINKER): Define.
5649         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5650         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
5651         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
5652         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
5653         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
5654         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
5655         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
5656         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
5657         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
5658         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5659         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5660         * doc/invoke.texi (-muclibc): Remove caveat about supported
5661         targets.
5662
5663 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
5664
5665         * doc/cpp.texi (__TIMESTAMP__): Document.
5666
5667 2006-02-17  Roger Sayle  <roger@eyesopen.com>
5668
5669         PR middle-end/25600
5670         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
5671         C is one less than the width of X (and related transformations).
5672         * simplify-rtx.c (simplify_unary_operation_1): Transform
5673         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
5674         depending on STORE_FLAG_VALUE, were C is one less then the
5675         width of X.
5676
5677 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
5678
5679         Fix PR tree-optimization/26341
5680         * tree-ssa-operands.c (add_virtual_operand): Remove assert
5681         about NAME_MEMORY_TAG's.
5682
5683 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5684
5685         PR target/26255
5686         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
5687         with hardware float support, and software float support.  Add fcpy
5688         alternative to hardware patterns.  Add alternatives to copy between
5689         general and floating-point registers to the 32-bit pattern.
5690         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
5691         secondary reload to load a QI or HI mode constant into a floating
5692         point register.
5693         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
5694         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
5695
5696 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
5697
5698         PR target/26272
5699         * config/rs6000/darwin.md (load_macho_picbase_si): Add
5700         pc to the pattern.
5701         (load_macho_picbase_di): Likewise.
5702
5703 2006-02-16  Jeff Law  <law@redhat.com>
5704
5705         * tree-vrp.c (set_value_range_to_nonnegative): New function.
5706         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
5707         (ssa_name_nonzero_p): Likewise.
5708         (get_value_range): Return NULL if VRP is not running.
5709         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
5710         VRP routines do not discover a range.
5711         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
5712         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
5713         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
5714         (tree_expr_nonnegative_p): Similarly.
5715         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
5716         (restore_nonzero_vars_to_original_value): Remove.
5717         (unsafe_associative_fp_binop): Remove.
5718         (tree_ssa_dominator_optimize): Remove initialization and
5719         finalization of nonzero_vars and nonzero_vars_stack.
5720         (dom_opt_initialize_block): No longer push marker on
5721         nonzero_vars_stack.
5722         (dom_opt_finalize_block): No longer call
5723         restore_nonzero_vars_to_original_value.
5724         (record_equivalences_from_phis): No longer look for
5725         nonzero PHI arguments.
5726         (cprop_into_successor_phis): No longer propagate nonzero
5727         property into PHI arguments.  Lose unused argument.  Caller
5728         updated.
5729         (record_equivalences_from_stmt): No longer record nonzero
5730         values for SSA_NAMEs.
5731         (lookup_avail_expr): No longer use nonzero_vars.
5732
5733         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
5734         for sizetype when sizetype is unsigned.
5735
5736 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
5737
5738         PR rtl-optimization/25603
5739         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
5740         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
5741         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
5742         with new meaning of SETS.
5743
5744 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
5745
5746         PR target/20353
5747         PR target/24578
5748         PR target/24837
5749         * config/linux.opt: New file.
5750         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
5751         LINUX_DYNAMIC_LINKER): Define.
5752         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
5753         * config.gcc (*-*-linux*): Define extra_options.
5754         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
5755         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
5756         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
5757         GLIBC_DYNAMIC_LINKER.
5758         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
5759         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5760         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
5761         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
5762         * doc/invoke.texi (GNU/Linux Options): New section.
5763
5764 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
5765
5766         * config/sparc/sparc.md (setjmp): Rewrite.
5767         (setjmp_32): Delete.
5768         (setjmp_64): Likewise.
5769
5770 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
5771
5772         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
5773          previous change.
5774
5775 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
5776
5777         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
5778         read-write uses.
5779
5780 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
5781
5782         PR rtl-optimization/26296
5783         * Makefile.in (loop-invariant.c): Add except.h dependency.
5784         * loop-invariant.c: Include except.h.
5785         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
5786
5787 2005-02-16  Paul Brook  <paul@codesourcery.com>
5788
5789         * reload1.c (emit_reload_insns): Invalidate dead input registers used
5790         for reloads.
5791
5792 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
5793
5794         PR rtl-optimization/25636
5795         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
5796         when deciding whether an insn is an initializing insn.
5797
5798 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
5799
5800         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
5801         (tree_code_size): Ditto.
5802         * tree.h (struct tree_memory_tag): Remove parent_var.
5803         (struct tree_struct_field_tag): New.
5804         (SFT_OFFSET): New.
5805         (SFT_SIZE): New.
5806         (union tree_node): Add sft member.
5807         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
5808         specially here.
5809         (create_sft): Add size and offset argument, set SFT_OFFSET and
5810         SFT_SIZE.
5811         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
5812         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
5813         * tree-flow-inline.h (get_subvar_at): Update for
5814         SFT_OFFSET/SFT_SIZE.
5815         (var_can_have_subvars): Ditto.
5816         (overlap_subvar): Ditto.
5817         * print-tree.c (print_node): Print out interesting things for
5818         SFT's.
5819         * tree-flow.h (struct subvar): Remove offset and size members.
5820         * tree-ssa-operands.c (get_expr_operands): Update for
5821         get_indirect_ref_operands changes.
5822         (get_indirect_ref_operands): Call add_virtual_operand instead of
5823         add_stmt_operand.  Only recurse on base var if requested.
5824         (access_can_touch_variable): New function.
5825         (add_stmt_operand): Split virtual operand handling into ...
5826         (add_virtual_operand): Here.  Add offset, size, and for_clobber
5827         arguments.  Prune alias sets.
5828         (add_call_clobber_ops): Call add_virtual_operand.
5829
5830 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
5831
5832         PR middle-end/26300
5833         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
5834
5835         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
5836         than TREE_CODE as index into omp_clause_num_ops array.
5837
5838 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
5839
5840         PR rtl-optimization/26184
5841         * modulo-sched.c (generate_reg_moves): Free bitmap vector
5842         uses_of_defs.
5843         * modulo-sched.c (sms_schedule): Free g_arr pointer.
5844         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
5845         must_precede, must_follow and tobe_scheduled.
5846
5847         PR other/26147
5848         * opts.c (common_handle_option): Free new_option pointer.
5849         * df-core.c (df_analyze): Free postorder pointer.
5850
5851 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
5852
5853         * Makefile.in: Fix the examples about the use of stamps
5854
5855 2006-02-15  Michael Matz  <matz@suse.de>
5856
5857         PR middle-end/22275
5858
5859         * stor-layout.c (layout_decl): Zero-width bitfields aren't
5860         influenced by maximum_field_alignment or DECL_PACKED.
5861         (update_alignment_for_field): Ditto.
5862         (place_field): Ditto.
5863         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
5864         this behaviour.
5865
5866 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
5867
5868         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
5869         (debug_flow_info): Pass it.
5870         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
5871         * bb-reorder.c (reorder_basic_blocks): Likewise.
5872         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
5873         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
5874         * flow.c (life_analysis, recompute_reg_usage): Likewise.
5875         * gcse.c (gcse_main, bypass_jumps): Likewise.
5876         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
5877         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
5878         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
5879         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
5880         * rtl.h (dump_flow_info): Adjust prototype.
5881         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
5882         * var-tracking.c (variable_tracking_main): Likewise.
5883         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
5884         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
5885         options.
5886
5887 2006-02-15  Marcin Dalecki <martin@dalecki.de>
5888
5889         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
5890         construction.
5891
5892 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
5893
5894         PR tree-optimization/26209
5895         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
5896         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
5897         eh edges.
5898         * tree-cfg.c (replace_uses_by): Do not alter cfg.
5899
5900 2006-02-14  Roger Sayle  <roger@eyesopen.com>
5901
5902         PR middle-end/23670
5903         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
5904         (X,Y) and the corresponding symmetry related transformations.
5905         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
5906         (X,Y) and its symmetry related transformations.
5907
5908 2006-02-14  Roger Sayle  <roger@eyesopen.com>
5909
5910         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
5911         and GEU.
5912
5913 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
5914
5915         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
5916
5917 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5918
5919         PR bootstrap/26053
5920         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
5921         support COMDAT group.
5922         * configure: Regenerate.
5923
5924 2006-02-14  Roger Sayle  <roger@eyesopen.com>
5925
5926         PR middle-end/26279
5927         PR middle-end/26280
5928         PR middle-end/26283
5929         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
5930
5931 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
5932
5933         Fix PR tree-optimization/26260
5934
5935         * doc/invoke.texi (max-fields-for-field-sensitive): Document
5936         param.
5937         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
5938         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
5939         * tree-ssa-structalias.c (create_variable_info_for): Use
5940         MAX_FIELDS_FOR_FIELD_SENSITIVE.
5941
5942 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
5943
5944         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
5945         Document.
5946         * tree-ssa-loop-niter.c (number_of_iterations_ne,
5947         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
5948         of the ending condition.
5949         * tree-ssa-loop-manip.c: Include params.h.
5950         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
5951         tree_unroll_loop): New functions.
5952         * tree-pass.h (pass_loop_prefetch): Declare.
5953         * loop.c (rest_of_handle_loop_optimize): Test for
5954         -fprefetch-loop-arrays-rtl.
5955         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
5956         * timevar.def (TV_TREE_PREFETCH): New timevar.
5957         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
5958         pass_loop_prefetch): New.
5959         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
5960         (cleanup_tree_cfg_loop): Call scev_reset.
5961         * common.opt (fprefetch-loop-arrays-rtl): Add.
5962         * tree-ssa-loop-prefetch.c: New file.
5963         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
5964         (new_temp_expr_table): Initialize expr_vars.
5965         (free_temp_expr_table): Cleanup expr_vars.
5966         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
5967         expressions from being merged into one.
5968         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
5969         (struct tree_niter_desc): Add control, bound and cmp fields.
5970         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
5971         Declare.
5972         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
5973         (tree-cfgcleanup.o): Add SCEV_H dependency.
5974         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
5975         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
5976
5977 2006-02-14  Richard Guenther  <rguenther@suse.de>
5978
5979         PR tree-optimization/26258
5980         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
5981         in PHI argument processing.
5982
5983 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
5984
5985         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
5986         new expression in the requested machine mode.
5987
5988 2006-02-13  Roger Sayle  <roger@eyesopen.com>
5989
5990         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
5991         directly, instead let do_compare_rtx_and_jump handle this for us.
5992         * expr.c (expand_expr_real_1): Likewise.
5993         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
5994         before do_jump_by_parts_greater.
5995         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
5996         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
5997
5998 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5999
6000         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
6001
6002 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
6003
6004         PR rtl-optimization/26235
6005         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
6006         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
6007         format.
6008
6009 2006-02-13  Jeff Law  <law@redhat.com>
6010
6011         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
6012         TRUTH_XOR_EPR.
6013
6014 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
6015
6016         PR middle-end/26092
6017         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
6018         twice if decl is a builtin.  When trying again, call get_callee_fndecl
6019         first to verify it is still a builtin.
6020
6021 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
6022
6023         * dwarf2out.c (base_type_die): Don't add AT_name here.
6024         (subrange_type_die): Don't add AT_name here.
6025         (modified_type_die): Rearrange code flow.  Do add AT_name here.
6026
6027 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
6028
6029         PR rtl-optimization/26247
6030         PR rtl-optimization/26248
6031         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
6032
6033 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
6034
6035         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
6036         * config/fixtfdi.c: Likewise.
6037         * config/fixunstfdi.c: Likewise.
6038         * config/floatditf.c: Likewise.
6039
6040 2006-02-13  Roger Sayle  <roger@eyesopen.com>
6041
6042         PR middle-end/24427
6043         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
6044         into (X,C2) if C1 is a subset of the bits of C2.  Transform
6045         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
6046         (X&(C1&~C2))|C2.
6047         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
6048
6049 2006-02-13  Josh Conner  <jconner@apple.com>
6050
6051         PR target/25376
6052         * varasm.c (function_section): Check for section name before
6053         calling select_section on targets that define
6054         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
6055         unlikely_text_section instead of hot_function_section if
6056         first_function_block_is_cold.
6057
6058 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
6059
6060         PR middle-end/25335
6061         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
6062
6063 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
6064
6065         PR rtl-optimization/26222
6066         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
6067         after tree->rtl expansion.
6068         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
6069         before passing it to emit_move_insn.
6070
6071 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6072
6073         * doc/invoke.texi (-Write-strings): Document that it is enabled by
6074         default.
6075         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
6076         Clarify documentation.
6077         * c-common.h (warn_write_strings): Remove.
6078         * c-common.c (warn_write_strings): Likewise.
6079         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
6080         default for C++.
6081
6082 2006-02-12  Roger Sayle  <roger@eyesopen.com>
6083
6084         PR middle-end/25724
6085         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
6086         (do_jump_parts_zero_rtx): New function renamed from
6087         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
6088         (do_jump_parts_equality_rtx): New function split out from
6089         do_jump_parts_equality.  Old implementation renamed as above.
6090         Call do_jump_parts_zero_rtx if either operand is zero.
6091         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
6092         do all of the heavy lifting.
6093         (do_compare_rtx_and_jump): Handle multi-word comparisons by
6094         calling either do_jump_by_parts_greater_rtx or
6095         do_jump_by_parts_equality_rtx.
6096         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
6097         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
6098         moved to do_compare_rtx_and_jump, call it directly.
6099         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
6100         mode argument.  Call do_compare_rtx_and_jump.
6101         (emit_case_nodes): Update calls to do_jump_if_equal.
6102
6103 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
6104
6105         PR rtl-optimization/26225
6106         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
6107
6108 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
6109
6110         PR rtl-optimization/26232
6111         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
6112
6113 2006-02-11  Jason Merrill  <jason@redhat.com>
6114
6115         PR tree-opt/24365
6116         * tree-inline.c (declare_return_variable): Just don't use the
6117         modify target if it's a gimple complex reg and the return slot
6118         isn't.
6119
6120 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6121
6122         * doc/contrib.texi: Update my entry.
6123
6124 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
6125
6126         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
6127
6128 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
6129
6130         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
6131         expensive.
6132
6133 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
6134
6135         * doc/invoke.texi (-floop-optimize2): Removed.
6136         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
6137         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
6138         Test flag_branch_on_count_reg only if HAVE_doloop_end.
6139         * common.opt (floop-optimize2): Removed.
6140         (fmove-loop-invariants): Enabled by default.
6141
6142 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
6143
6144         * tree-if-conv.c (combine_blocks): Free the result of
6145         get_loop_exit_edges.
6146
6147 2006-02-10  Jeff Law  <law@redhat.com>
6148
6149         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
6150
6151         PR tree-optimization/26213
6152         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
6153         loop trying to follow SSA_NAME_VALUE chains.
6154
6155 2006-02-10  Richard Guenther  <rguenther@suse.de>
6156
6157         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
6158         deal with structures that end in implicitly variable sized arrays.
6159
6160 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
6161
6162         PR rtl-optimization/24762
6163         * df-scan.c (df_bb_refs_record): Record correct registers defined on
6164         eh edges.
6165
6166 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
6167
6168         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
6169         (struct ivopts_data): Add regs_used field.
6170         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
6171         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
6172         instead of loop_data->regs_used;
6173         (free_loop_data): Do not free aux fields for loops.
6174         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
6175         and tree_ssa_iv_optimize_finalize.
6176
6177 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
6178
6179         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
6180
6181 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
6182
6183         PR target/26141
6184         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
6185         computing the effective result type.
6186
6187 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
6188
6189         PR inline-asm/16194
6190         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
6191         (tree_overlaps_hard_reg_set): Declare.
6192         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
6193         type and signature to match function type expected by walk_tree.
6194         (tree_overlaps_hard_reg_set): New function.
6195         (decl_conflicts_with_clobbers_p): Rename to:
6196         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
6197         Use tree_overlaps_hard_reg_set.  Changed caller.
6198         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
6199         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
6200         * cris.c (cris_md_asm_clobbers): Likewise.
6201
6202 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
6203
6204         * reload1.c (emit_input_reload_insns): Delete code that tries to
6205         inherit using find_equiv_reg.
6206
6207 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6208
6209         * c-common.h (flag_const_strings): Don't declare.
6210         * c-common.c (flag_const_strings): Remove.
6211         * c.opt (fconst_strings): Remove.
6212         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
6213         <OPT_Wwrite_strings>: Don't set flag_const_strings.
6214         (c_common_init_options): Don't set flag_const_strings.
6215         * doc/invoke.texi (-fno-const-strings): Remove documentation.
6216
6217 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
6218
6219         * arm.md (tlobits_cbranch): New pattern.
6220         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
6221         testing a single bit.
6222
6223 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
6224
6225         PR tree-opt/26179
6226         * tree-ssa-pre.c (create_component_ref_by_pieces):
6227         Handle RETURN_DECL like VAR_DECL.
6228
6229 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
6230
6231         PR middle-end/26134
6232         * fold-const.c (fold_indirect_ref_1): Fold
6233         "*(foo *)&complexfoo" to "__real__ complexfoo"
6234         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
6235
6236 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
6237
6238         * tree-flow-inline.h (var_can_have_subvars):
6239         Volatile variables should not have subvariables.
6240
6241 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
6242
6243         PR 26180
6244         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
6245         multiplying unsigned values.
6246         Tidy comments.
6247
6248 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
6249
6250         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
6251
6252 2006-02-08  Jason Merrill  <jason@redhat.com>
6253
6254         PR c++/25979
6255         * tree.def: Elaborate on difference from MODIFY_EXPR.
6256         * doc/c-tree.texi (INIT_EXPR): Likewise.
6257         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
6258         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
6259         (gimplify_target_expr): Likewise.
6260         (gimplify_cond_expr): Remove target handling.
6261         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
6262         (gimplify_expr): Clobber it here.
6263         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
6264         Do return slot optimization if we have an INIT_EXPR.
6265
6266         PR tree-opt/24365
6267         * tree-inline.c (declare_return_variable): Also clear
6268         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
6269
6270         PR c++/16405
6271         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
6272
6273         PR middle-end/22439
6274         * gimplify.c (gimplify_one_sizepos): Fix typo.
6275
6276 2006-02-08  Jeff Law  <law@redhat.com>
6277
6278         PR tree-optimization/21417
6279         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
6280         across a backedge if the control statement at the end of the
6281         block is data dependent on other statements in the same block.
6282         (record_temporary_equivalences_from_stmts): Remove over-conservative
6283         test for threading across backedges.
6284
6285         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
6286         control statement, handle all three special cases in the same
6287         manner as they all have the same desired solution.  No longer
6288         special case edge flag updating when the post dominator is
6289         the exit block.
6290
6291 2006-02-08  Roger Sayle  <roger@eyesopen.com>
6292
6293         * tree.def (CHAR_TYPE): Remove.
6294         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
6295         * dwarf2out.c (base_type_die, is_base_type): Likewise.
6296         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
6297         (gen_string_type_die): Delete unreachable function.
6298
6299         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
6300         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
6301         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
6302         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
6303         * builtins.c (type_to_class): Likewise.
6304         * fold-const.c (fold_convert, build_range_check,
6305         merge_ranges): Likewise.
6306         * expr.c (count_type_elements): Likewise.
6307         * c-pretty-print.c (pp_c_type_specifier): Likewise.
6308         * stor-layout.c (layout_type): Likewise.
6309         * ipa-type-escape.c (type_to_consider): Likewise.
6310         * gimplify.c (omp_firstprivatize_type_sizes,
6311         gimplify_type_sizes): Likewise.
6312         * explow.c (promote_mode): Likewise.
6313         * tree-sra.c (is_sra_scalar_type): Likewise.
6314         * varasm.c (output_constant): Likewise.
6315         * tree-inline.c (remap_type_1): Likewise.
6316         * convert.c (convert_to_pointer, convert_to_real,
6317         convert_to_integer, convert_to_complex): Likewise.
6318
6319 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
6320
6321         * df-scan.c (df_def_record_1): A set destination may
6322         be a parallel regardless of mode.
6323
6324 2006-02-08  Roger Sayle  <roger@eyesopen.com>
6325
6326         PR target/22209
6327         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
6328         * config/mips/_tilib.c: Remove.
6329         * config/fixtfdi.c: New libgcc source file.
6330         * config/fixunstfdi.c: New source file.
6331         * config/floatditf.c: New source file.
6332         * config/floatunditf.c: New souce file.
6333         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
6334         files above instead of config/mips/_tilib.c.
6335         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
6336
6337 2006-02-08  Jeff Law  <law@redhat.com>
6338
6339         PR tree-optimization/26169
6340         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
6341         threading jumps.
6342
6343 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
6344
6345         * df.h (DF_REG_SIZE): Return the length of the initialized
6346         part of the array.
6347
6348 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
6349
6350         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
6351         __muldf3): Return a correctly signed zero.
6352
6353 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
6354
6355         * passes.c (register_one_dump_file): Accept the current properties
6356         instead of pass number.  Adjust call to dump_register.  Remove
6357         duplicated code.
6358         (register_dump_files): Now a wrapper around...
6359         (register_dump_files_1): ... this one.  Do not modify the pass
6360         structure.
6361         (next_pass_1): Cosmetic fix.
6362         (execute_todo): Keep second parameter only.  Use curr_properties
6363         instead of fetching it from the pass structure.  Check and set
6364         last_verified.
6365         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
6366         instead of fetching it from the pass structure.  Fix calls to
6367         execute_todo.  Update curr_properties and initialize .vcg RTL dump
6368         after running the pass.  Reset last_verified.
6369         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
6370         at the beginning.
6371         (FIRST_AUTO_NUMBERED_DUMP): New.
6372         (dump_register): Remove "num" parameter, assign it within the
6373         function.
6374         (get_dump_file_name): Modify template for dumps.
6375         * tree-dump.h (dump_register): Adjust prototype.
6376         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
6377         (PROP_trees): Add PROP_gimple_lomp.
6378         (TODO_set_props): New.
6379         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
6380         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
6381         * cfgexpand.c (pass_expand): Destroy PROP_trees.
6382
6383 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
6384
6385         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6386         (sparc64-*-linux*): Likewise.
6387         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
6388         * config/sparc/t-linux: New file.
6389         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
6390         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
6391         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
6392         -m32 -mlong-double-128.
6393
6394         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
6395         * config/alpha/t-linux: New file.
6396         * config/alpha/libgcc-alpha-ldbl.ver: New file.
6397
6398         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
6399         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
6400         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
6401         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
6402         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
6403         (CPP_ARCH32_SPEC): Remove.
6404
6405 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
6406
6407         PR tree-optimization/26145
6408         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
6409         bbs pointer.
6410
6411 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6412
6413         PR target/26109
6414         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
6415         >= 240000 when generating code for SOM runtime.
6416         (output_indirect_call): Don't use "b,l" instruction for indirect calls
6417         to $$dyncall when generating code for SOM runtime..
6418
6419 2006-02-07  Dirk Mueller  <dmueller@suse.com>
6420
6421         PR c++/18150
6422         * doc/invoke.texi (-Wsequence-point): Update documentation
6423         that -Wsequence-point is implemented for C++ as well.
6424
6425 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6426
6427         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
6428         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
6429         (LIB_SPEC): Likewise.
6430         * doc/invoke.texi (SPARC options): Document -pthread.
6431
6432 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
6433
6434         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
6435         PIC addresses.
6436
6437 2006-02-07  Roger Sayle  <roger@eyesopen.com>
6438
6439         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
6440         Correct comment describing BOOLEAN_TYPE.
6441
6442 2006-02-07  Dirk Mueller  <dmueller@suse.com>
6443
6444         * c.opt: C++ frontend supports -Wdiv-by-zero.
6445         * c-opts.c (c_common_handle_option): Remove dead case.
6446
6447 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6448
6449         * configure.ac (TLS assembler check): Do not enable TLS by
6450         default on SPARC/Solaris before version 10.
6451         * configure: Regenerate.
6452
6453 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
6454
6455         * doc/invoke.texi (xl-compat): Document conversion and support
6456         routine names.
6457
6458 2006-02-07  Jeff Law  <law@redhat.com>
6459
6460         * tree-vrp.c (find_conditional_asserts): Update comments.
6461         (simplify_stmt_for_jump_threading): New.
6462         (identify_jump_threads, finalize_jump_threads): New.
6463         (vrp_finalize): Call identify_jump_threads.
6464         (execute_vrp): Call finalize_jump_threads.
6465         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
6466         (vrp_element, vrp_data, vrp_element_p): Remove.
6467         (vrp_hash_elt, vrp_variables_stack): Remove.
6468         (vrp_hash, vrp_eq, record_range): Remove.
6469         (simplify_cond_and_lookup_avail_expr): Remove.
6470         (extract_range_from_cond): Remove.
6471         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
6472         (simplify_stmt_for_jump_threading): New.
6473         (dom_thread_across_edge): New wrapper.
6474         (tree_ssa_dominator_optimize): No longer initialize or
6475         finalize any of the VRP datastructures.  Remove iteration
6476         step and simplify as a result of removal of iteration step.
6477         (pass_dominator): Perform a cfg cleanup after DOM.
6478         (dom_opt_finalize_block): Use the new common routines
6479         for threading jumps.  Simplify stack management slightly.
6480         No longer need to unwind VRP state.
6481         (record_equivalences_from_incoming_edge): No longer record
6482         VRP information.
6483         (eliminate_redundant_computations): No longer call
6484         simplify_cond_and_lookup_avail_expr.
6485         * tree-flow.h (potentially_threadable_block): Prototype.
6486         (thread_across_edge): Likewise.
6487         * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
6488         (tree-ssa-threadedge.o): Add dependencies.
6489         * tree-ssa-threadedge.c: New file.
6490         * passes.c (init_optimization_passes): Merge PHIs before
6491         calling VRP.  Run VRP again late in the SSA optimization pipeline.
6492
6493 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6494
6495         * df-core.c (df_set_blocks): Do not dereference function pointers.
6496         (df_finish1): Likewise.
6497         (df_hybrid_search_forward): Likewise.
6498         (df_hybrid_search_backward): Likewise.
6499         (df_iterative_dataflow): Likewise.
6500         (df_analyze_problem): Likewise.
6501         (df_compact_blocks): Likewise.
6502         (df_dump): Likewise.
6503         * df-scan.c (df_rescan_blocks): Likewise.
6504         (df_record_entry_block_defs): Likewise.
6505
6506         * genconditions.c (write_conditions): Guard the definition of
6507         'insn_conditions' with the check on GCC version.
6508         (write_writer): Guard the traversal 'insn_conditions' with
6509         the check on GCC version.
6510
6511 2006-02-07  Richard Guenther  <rguenther@suse.de>
6512
6513         PR c++/26140
6514         Revert
6515         2006-01-30  Richard Guenther  <rguenther@suse.de>
6516         PR c++/23372
6517         * gimplify.c (gimplify_target_expr): Handle easy cases
6518         without creating a temporary.
6519
6520 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
6521
6522         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
6523         use of float in probability computations.  Use edge probabilities
6524         in place of statically computed probabilities.
6525         (min_spec_prob): New static variable.
6526         (schedule_insns): Initialize it.
6527         (GET_SRC_PROB): Removed.
6528         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
6529
6530 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
6531
6532         PR debug/24444
6533         * config/ia64/unwind-ia64.c: Revert last change.
6534         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
6535         (INCOMING_FRAME_SP_OFFSET): Define.
6536
6537 2006-02-06  Roger Sayle  <roger@eyesopen.com>
6538
6539         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
6540
6541 2006-02-07  Ben Elliston  <bje@au.ibm.com>
6542
6543         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
6544         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
6545         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
6546         (ix86_return_in_memory): Handle TDmode.
6547         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
6548         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
6549
6550 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
6551
6552         * reorg.c (dbr_schedule): Use dump_file instead of file.
6553
6554 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
6555
6556         PR target/25917
6557         * config/ia64/predicates.md (extr_len_operand): New predicate.
6558         * config/ia64/ia64.md (extv): Tighten constraints.
6559         (extzv): Ditto.
6560         (*tbit_and_2): Ditto.
6561         (*tbit_and_3): Ditto.
6562         (*tbit_or_2): Ditto.
6563         (*tbit_or_3): Ditto.
6564         (*bit_zero): Ditto.
6565         (*bit_one): Ditto.
6566
6567 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
6568
6569         PR target/23359
6570         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
6571
6572 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
6573
6574         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
6575         loop_optimizer_init and loop_optimizer_finalize
6576         * tree-ssa-sink.c (execute_sink_code): Ditto.
6577         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
6578         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
6579         tree_ssa_loop_done): Ditto.
6580         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
6581         * sched-ebb.c: Include output.h.
6582         (schedule_ebbs): Do not use dump argument.
6583         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
6584         * loop.c (loop_dump_stream): Removed.
6585         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
6586         argument.
6587         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
6588         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
6589         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
6590         loop_iterations, strength_reduce, record_biv, record_giv,
6591         final_giv_value, check_final_value, check_ext_dependent_givs,
6592         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
6593         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
6594         dump_file instead of loop_dump_stream.
6595         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
6596         argument dump_file.
6597         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
6598         dump argument.
6599         * flow.c (life_analysis, rest_of_handle_life): Ditto.
6600         * haifa-sched.c: Include output.h
6601         (schedule_insns, sched_init): Do not use dump argument.
6602         * mode-switching.c (optimize_mode_switching): Ditto.
6603         * modulo-sched.c (stats_file): Removed.
6604         (print_node_sched_params): Do not call argument dump_file.
6605         (sms_schedule_by_order, loop_canon_p, sms_schedule,
6606         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
6607         of stats_file.
6608         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
6609         use dump argument.
6610         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
6611         rtl_loop_init, rtl_loop_done): Ditto.
6612         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
6613         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
6614         Ditto.
6615         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
6616         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
6617         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
6618         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
6619         * emit-rtl.c (renumber_insns): Ditto.
6620         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
6621         expand_gimple_basic_block, tree_expand_cfg): Ditto.
6622         * regclass.c (regclass): Ditto.
6623         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
6624         remove_ssa_form, rewrite_out_of_ssa): Ditto.
6625         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
6626         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
6627         Ditto.
6628         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
6629         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
6630         to regclass.
6631         * gcse.c (gcse_file, debug_stderr): Removed.
6632         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
6633         rest_of_handle_gcse): Do not use dump argument.
6634         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
6635         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
6636         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
6637         compute_code_hoist_vbeinout, compute_code_hoist_data,
6638         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
6639         compute_store_table, build_store_vectors, insert_insn_start_bb,
6640         insert_store, remove_reachable_equiv_notes, replace_store_insn,
6641         store_motion): Use dump_file instead of gcse_file.
6642         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
6643         * profile.c (profile_dump_file): Removed.
6644         (branch_prob): Use dump_file instead of profile_dump_file.
6645         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
6646         dump_file.
6647         * tree-ssa-copy.c (dump_copy_of): Ditto.
6648         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
6649         dump file to life_analysis.
6650         * bt-load.c (branch_target_load_optimize): Ditto.
6651         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
6652         renumber_insns.
6653         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
6654         regclass, dbr_schedule): Declaration changed.
6655         * sched-int.h (sched_init): Declaration changed.
6656         * tree-profile.c (tree_profile_dump_file): Removed.
6657         (tree_profile_hooks): Removed profile_dump_file hook.
6658         * rtl-profile (rtl_profile_dump_file): Removed.
6659         (rtl_profile_hooks): emoved profile_dump_file hook.
6660         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
6661         changed.
6662         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
6663         * tree-cfg.c (build_tree_cfg): Ditto.
6664         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
6665         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
6666         Declaration changed.
6667         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
6668         life_analysis and schedule_insns.
6669         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
6670         life_analysis.
6671         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
6672         dbr_schedule.
6673         * config/mips/mips.c (mips_reorg): Ditto.
6674         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
6675         schedule_ebbs.
6676
6677 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
6678
6679         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
6680         (s390_mangle_fundamental_type): New.
6681         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
6682         Define.
6683
6684         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
6685         (alpha_mangle_fundamental_type): New.
6686         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
6687         Define.
6688
6689         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
6690         Define.
6691         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
6692         Define.
6693         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
6694         (sparc_mangle_fundamental_type): New.
6695
6696 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
6697
6698         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
6699         (s390x-*-linux*): Likewise.
6700         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
6701         * config/s390/t-linux: New file.
6702
6703 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
6704
6705         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
6706         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
6707
6708 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
6709
6710         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
6711         (ANTIC_SAFE_LOADS): New macro.
6712         (find_or_generate_expression): Add prototype.
6713         (set_contains_value): Allow null set for sake of not always having
6714         to allocate ANTIC_SAFE_LOADS.
6715         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
6716         Allow COMPONENT_REF too.
6717         (valid_in_set): Allow COMPONENT_REF.
6718         Check ANTIC_SAFE_LOADS too.
6719         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
6720         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
6721         rename.
6722         (can_PRE_operation): Add COMPONENT_REF.
6723         (create_component_ref_by_pieces): New function.
6724         (create_expression_by_pieces): Use create_component_ref_by_pieces.
6725         (insert_aux): Move AGGREGATE_TYPE_P check here.
6726         (compute_avail): Set bb local stmt uids.
6727         (pass_pre): Use TODO_update_ssa_only_virtuals.
6728
6729 2006-02-06  Ben Elliston  <bje@au.ibm.com>
6730
6731         * configure.ac: Unconditionally disable decimal float by default.
6732         * configure: Regenerate.
6733
6734 2006-02-06  Ben Elliston  <bje@au.ibm.com>
6735
6736         * read-rtl.c (read_name): Terminate reading on EOF.
6737
6738 2006-02-06  Ben Elliston  <bje@au.ibm.com>
6739
6740         * dfp.c (decimal_real_arithmetic): Change second argument type
6741         from int to enum tree_code. Do not always return true, but now
6742         return result of any call to decimal_do helper functions.
6743         * dfp.h (decimal_real_arithmetic): Update prototype.
6744
6745 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6746
6747         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
6748
6749 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
6750
6751         PR tree-opt/25251
6752         * tree-cfg.c (cleanup_dead_labels): Also don't remove
6753         forced labels.
6754
6755 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
6756
6757         * tree-vrp.c (cfg_loops): Removed.
6758         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
6759         Use current_loops instead of cfg_loops.  Pass flags to
6760         loop_optimizer_init.
6761         * cfgloopmanip.c (fix_loop_structure): Update only available
6762         information.
6763         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
6764         loop_optimizer_init.
6765         * modulo-sched.c (build_loops_structure): Removed.
6766         (sms_schedule): Use loop_optimizer_init.
6767         * loop-init.c (loop_optimizer_init): Use flags to determine
6768         which properties of loops to prepare.
6769         (rtl_loop_init): Pass flags to loop_optimizer_init.
6770         * tree-ssa-sink.c (execute_sink_code): Ditto.
6771         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
6772         * tree-ssa-pre.c (init_pre): Ditto.
6773         * cfgloop.h (LOOPS_NORMAL): New.
6774         (loop_optimizer_init): Declaration changed.
6775
6776 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6777
6778         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
6779         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
6780         pa/t-pa.
6781         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
6782         pa/t-pa.
6783         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
6784         pa/x-ada.
6785         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
6786         * pa/t-pa64: Delete quadlib.c rule.
6787         * pa/x-ada: Revert last change.
6788         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
6789
6790 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
6791
6792         PR rtl-optimization/26087
6793         * rtlanal.c (canonicalize_condition): Do not cross basic block
6794         boundaries.
6795
6796 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
6797
6798         PR debug/24444
6799         * config/ia64/ia64.c: Include debug.h.
6800         (MAX_ARTIFICIAL_LABEL_BYTES): New.
6801         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
6802         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
6803         (process_epilogue, process_set, process_for_unwind_directive):
6804         Output unwind info only if requested.  Add CFA info if requested.
6805         Add new arguments as needed.  Adjust callers.
6806         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
6807         incorrect default.
6808         (DWARF2_FRAME_INFO): Define to zero.
6809         * config/ia64/unwind-ia64.c: Remove code that compensated for
6810         the CFA offset error fixed above.
6811         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
6812         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
6813         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
6814         -funwind-tables and -fexceptions to enable frame info.
6815         (dwarf2out_frame_init): Define initial CFA even if
6816         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
6817         DWARF2_UNWIND_INFO is nonzero, not just defined.
6818         (dwarf2out_frame_finish): Output non-EH call frame info only
6819         if DWARF2_FRAME_INFO is nonzero.
6820         (convert_cfa_to_loc_list,
6821         compute_frame_pointer_to_cfa_displacement): Define even if
6822         unwind info is not supported.
6823         (gen_subprogram_die): Use the above unconditionally.  Remove
6824         legacy alternate code.
6825         * toplev.c (compile_file): Compile in call to
6826         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
6827         (lang_dependent_init): Ditto for dwarf2out_frame_init.
6828
6829 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
6830             Jakub Jelinek  <jakub@redhat.com>
6831
6832         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
6833         IBM extended float format long double as "g" on powerpc*-linux.
6834
6835 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6836
6837         PR target/25926
6838         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
6839         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
6840
6841 2006-02-03  Jason Merrill  <jason@redhat.com>
6842
6843         PR c++/25979
6844         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
6845
6846         PR middle-end/25977
6847         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
6848         on the return slot if it's an NRV.
6849
6850 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
6851
6852         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
6853         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
6854         rewrite_use): Do not handle USE_OUTER.
6855         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
6856         add_iv_outer_candidates, may_replace_final_value,
6857         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
6858         (find_interesting_uses_op): Functionality of
6859         find_interesting_uses_outer_or_nonlin moved here.
6860         (find_interesting_uses_outside): Use find_interesting_uses_op.
6861
6862 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
6863
6864         PR target/25960
6865         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
6866
6867 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
6868             Ulrich Weigand  <uweigand@de.ibm.com>
6869
6870         PR target/25864
6871         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
6872         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
6873         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
6874         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
6875         and dxr fields.
6876         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
6877         (s390_rtx_costs): Use the new fields to calculate rtx costs.
6878         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
6879         Define secondary reloads for TFmode moves.
6880         (constant_modes): Add TFmode.
6881         (NR_C_MODES): Set to 8.
6882         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
6883         builtin define.
6884         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
6885         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
6886         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
6887         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
6888         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
6889         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
6890         (FPR mode macro): Add TFmode.
6891         (DSF mode macro): New.
6892         (<de>, <dee> mode attributes): Removed.
6893         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
6894         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
6895         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
6896         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
6897         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
6898         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
6899         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
6900         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
6901         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
6902         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
6903         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
6904         "*negabs<mode>2", "sqrt<mode>2"):
6905         Changed <de> to <xde>. R constraint replaced by <Rf>.
6906         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
6907         <Rf>.
6908         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
6909         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
6910         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
6911         splitters.
6912         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
6913         "extenddftf2", "extendsftf2"): New expanders.
6914         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
6915         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
6916         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
6917         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
6918         New options.
6919         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
6920         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
6921         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
6922         __floatditf): Add a GCC_4.1.0 symbol version tag.
6923         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
6924         the new options.
6925
6926 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
6927
6928         PR target/25377
6929         * config/i386/i386.c (ix86_function_ok_for_sibcall):
6930         Use targetm.binds_local_p instead of TREE_PUBLIC.
6931
6932 2006-02-02  Roger Sayle  <roger@eyesopen.com>
6933
6934         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
6935         on INTEGER_TYPEs to indicate that it denotes a character type.
6936         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
6937         signed_char_type_node, unsigned_char_type_node and char_type_node.
6938         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
6939         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
6940         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
6941
6942 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
6943             Daniel Berlin  <dberlin@dberlin.org>
6944
6945         * tree-tailcall.c (arg_needs_copy_p): New function.
6946         (eliminate_tail_call): Use arg_needs_copy_p.
6947         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
6948         (add_virtual_phis): New function.
6949
6950 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
6951
6952         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
6953         #ignore instead of #scratch for %g7 .register directive.
6954
6955 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
6956
6957         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
6958         object files.
6959
6960 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
6961
6962         * flow.c (calculate_global_regs_live): Assert that there aren't any
6963         EDGE_FAKE edges.
6964
6965 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
6966
6967         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
6968         what its name says.
6969         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
6970         bsi_after_labels iterator.
6971         * tree-if-conv.c (find_phi_replacement_condition,
6972         replace_phi_with_cond_modify_expr): Likewise.
6973         * tree-scalar-evolution.c (scev_const_prop): Likewise.
6974         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
6975
6976 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
6977
6978         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
6979
6980 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
6981
6982         PR 25990
6983         * tree-cfg.c (move_block_to_fn): Clear out the basic block
6984         array after growing it.
6985
6986 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
6987
6988         PR middle-end/24901
6989         * fold-const.c (fold_checksum_tree): Change type of buf.
6990
6991 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
6992
6993         * reload.c (push_secondary_reload): Initialize t_icode.
6994
6995 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
6996
6997         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
6998         -msoft-float -mlong-double-128 only issue a warning, but don't
6999         swich to DFmode long double.
7000
7001 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
7002
7003         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
7004         has a constant equivalent, iterate over equivalents for arg0,
7005         calling simplify_relational_operation and if there's a result
7006         cheaper than X, apply fold_rtx and return the result.
7007
7008 2006-02-01  Jan Hubicka  <jh@suse.cz>
7009
7010         * opts.c (no_unit_at_a_time_default): New global variable.
7011         (decode_options): Use it.
7012         * opts.h (no_unit_at_a_time_default): Declare.
7013
7014 2006-02-01  Paul Brook  <paul@codesourcery.com>
7015
7016         * function.c (assign_parm_setup_reg): Use function argument promotion
7017         rules.
7018         * expr.c (expand_expr_real_1): Use function argument promotion rules
7019         for PARM_DECLs.
7020
7021 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
7022
7023         * gcc.c (process_command): Change j to 'unsigned int'.
7024
7025 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
7026
7027         PR middle-end/26001
7028         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
7029         Use the corrected index for the character
7030         out of the string constant.
7031
7032 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
7033
7034         * mode-switching.c (optimize_mode_switching): Fix size
7035         allocated for bb_info[n_entities].
7036
7037 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
7038
7039         * gcc.c (main): Correct type that is allocated for
7040         explicit_link_files.
7041
7042 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
7043
7044         * config/s390/s390.c (init_alignment_context): Set
7045         ALIAS_SET_MEMORY_BARRIER on the MEM.
7046         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
7047
7048 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
7049
7050         PR middle-end/25933
7051         * loop-unroll.c (unroll_loop_runtime_iterations): Free
7052         dom_bbs pointer.
7053         * tree-ssa-live.c (type_var_init): Allocate bitmap after
7054         call to tpa_init.
7055
7056 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
7057
7058         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
7059         * regrename.c: Ditto.
7060         * tree-ssa-loop-im.c: Ditto.
7061         * tree-dump.c: Ditto.
7062         * tree-complex.c: Ditto.
7063         * genrecog.c: Ditto.
7064         * tree-ssa-threadupdate.c: Ditto.
7065         * tracer.c: Ditto.
7066         * java/class.c: Ditto.
7067         * java/jcf-parse.c: Ditto.
7068         * java/resource.c: Ditto.
7069         * java/except.c: Ditto.
7070         * java/jvspec.c: Ditto.
7071         * java/jcf-write.c: Ditto.
7072         * java/jcf-path.c: Ditto.
7073         * java/gjavah.c: Ditto.
7074         * java/zextract.c: Ditto.
7075         * java/jcf-io.c: Ditto.
7076         * java/jcf.h: Ditto.
7077         * java/buffer.c: Ditto.
7078         * java/lang.c: Ditto.
7079         * java/parse-scan.y: Ditto.
7080         * java/lex.c: Ditto.
7081         * java/lex.h: Ditto.
7082         * cfgloopmanip.c: Ditto.
7083         * postreload-gcse.c: Ditto.
7084         * tree-ssa-loop-manip.c: Ditto.
7085         * postreload.c: Ditto.
7086         * tree-ssa-loop-ch.c: Ditto.
7087         * loop.c: Ditto.
7088         * ipa-cp.c: Ditto.
7089         * cppspec.c: Ditto.
7090         * diagnostic.c: Ditto.
7091         * final.c: Ditto.
7092         * genoutput.c: Ditto.
7093         * gcc.c: Ditto.
7094         * cfghooks.c: Ditto.
7095         * cfgloopanal.c: Ditto.
7096         * objc/objc-act.c: Ditto.
7097         * gcov.c: Ditto.
7098         * genextract.c: Ditto.
7099         * genautomata.c: Ditto.
7100         * pretty-print.c: Ditto.
7101         * genemit.c: Ditto.
7102         * cgraphunit.c: Ditto.
7103         * flow.c: Ditto.
7104         * df-scan.c: Ditto.
7105         * haifa-sched.c: Ditto.
7106         * dominance.c: Ditto.
7107         * dbxout.c: Ditto.
7108         * tree-ssa-loop-ivopts.c: Ditto.
7109         * df-core.c: Ditto.
7110         * mode-switching.c: Ditto.
7111         * modulo-sched.c: Ditto.
7112         * graph.c: Ditto.
7113         * ipa-pure-const.c: Ditto.
7114         * cse.c: Ditto.
7115         * fix-header.c: Ditto.
7116         * web.c: Ditto.
7117         * tree-stdarg.c: Ditto.
7118         * ipa-utils.c: Ditto.
7119         * loop-init.c: Ditto.
7120         * ipa-inline.c: Ditto.
7121         * cfganal.c: Ditto.
7122         * global.c: Ditto.
7123         * alloc-pool.c: Ditto.
7124         * dwarf2out.c: Ditto.
7125         * opts.c: Ditto.
7126         * genattrtab.c: Ditto.
7127         * tree-ssa-loop-ivcanon.c: Ditto.
7128         * predict.c: Ditto.
7129         * timevar.c: Ditto.
7130         * lcm.c: Ditto.
7131         * fortran/gfortranspec.c: Ditto.
7132         * regmove.c: Ditto.
7133         * local-alloc.c: Ditto.
7134         * langhooks.c: Ditto.
7135         * function.c: Ditto.
7136         * tree-vectorizer.c: Ditto.
7137         * gcse.c: Ditto.
7138         * ipa-type-escape.c: Ditto.
7139         * alias.c: Ditto.
7140         * tree-if-conv.c: Ditto.
7141         * profile.c: Ditto.
7142         * ipa.c: Ditto.
7143         * tree-data-ref.c: Ditto.
7144         * loop-unroll.c: Ditto.
7145         * treelang/treetree.c: Ditto.
7146         * calls.c: Ditto.
7147         * bt-load.c: Ditto.
7148         * ggc-common.c: Ditto.
7149         * except.c: Ditto.
7150         * coverage.c: Ditto.
7151         * cselib.c: Ditto.
7152         * tree-cfgcleanup.c: Ditto.
7153         * tree-ssa-pre.c: Ditto.
7154         * cfgcleanup.c: Ditto.
7155         * loop-invariant.c: Ditto.
7156         * loop-iv.c: Ditto.
7157         * ipa-prop.c: Ditto.
7158         * print-tree.c: Ditto.
7159         * conflict.c: Ditto.
7160         * ggc-page.c: Ditto.
7161         * sched-deps.c: Ditto.
7162         * regclass.c: Ditto.
7163         * tree-object-size.c: Ditto.
7164         * combine.c: Ditto.
7165         * bb-reorder.c: Ditto.
7166         * resource.c: Ditto.
7167         * var-tracking.c: Ditto.
7168         * cfgloop.c: Ditto.
7169         * df-problems.c: Ditto.
7170         * reg-stack.c: Ditto.
7171         * tlink.c: Ditto.
7172         * gccspec.c: Ditto.
7173         * sched-rgn.c: Ditto.
7174         * tree-ssa-structalias.c: Ditto.
7175         * tree-ssa-reassoc.c: Ditto.
7176         * config/darwin-c.c: Ditto.
7177         * config/darwin.c: Ditto.
7178         * config/arm/arm.c: Ditto.
7179         * cfgrtl.c: Ditto.
7180         * collect2.c: Ditto.
7181         * reload1.c: Ditto.
7182
7183 2006-01-31  Nicolas Pitre  <nico@cam.org>
7184
7185         * arm.md (smaxsi3): Make aware of smax_m1.
7186         (smax_m1): New.
7187
7188 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
7189
7190         * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
7191
7192 2006-01-31  Richard Guenther  <rguenther@suse.de>
7193
7194         * doc/invoke.texi (-msselibm): Document.
7195         * target.h (expand_library_builtin): New target hook.
7196         * builtins.c (expand_builtin): Use expand_library_builtin.
7197         (default_expand_library_builtin): New function.
7198         * gcc.c (LINK_GCC_MATH_SPEC): Define.
7199         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
7200         (link_gcc_math_spec): Declare.
7201         (static_specs): Add link_gcc_math_spec.
7202         * expr.h (default_expand_library_builtin): Declare.
7203         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
7204         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
7205         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
7206         * config/i386/i386.opt (msselibm): New target option.
7207         * config/i386/i386.c (ix86_builtin_function_variants): New array.
7208         (ix86_init_sse_abi_builtins): New function.
7209         (ix86_expand_library_builtin): Likewise.
7210         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
7211         (override_options): Handle error conditions wrt -msselibm.
7212         (ix86_builtins): Add function codes for SSE2 ABI builtins.
7213         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
7214         * doc/extend.texi (__builtin_sse2_*): Document new target specific
7215         builtins.
7216
7217 2006-01-31  Richard Guenther  <rguenther@suse.de>
7218         Paolo Bonzini  <bonzini@gnu.org>
7219
7220         * doc/install.texi (--disable-libgcc-math): Document.
7221
7222 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
7223
7224         * expr.h (expand_normal): new inline function.
7225         * builtins.c: use it, use EXPAND_NORMAL explicitely.
7226         * dojump.c: use it.
7227         * dwarf2out.c: use it.
7228         * expr.c: use it.
7229         * calls.c: use it.
7230         * expmed.c: use it.
7231         * except.c: use it.
7232         * config/sparc/sparc.c: use it.
7233         * config/i386/i386.c: use it.
7234         * config/rs6000/rs6000.c: use it.
7235         * config/arm/arm.c: use it.
7236         * config/mips/mips.c: use it.
7237         * stmt.c: use it, use EXPAND_NORMAL explicitely.
7238
7239 2006-01-30  Roger Sayle  <roger@eyesopen.com>
7240
7241         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
7242         argv to the appropriate type.
7243
7244 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
7245
7246         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
7247         unreachable code.
7248
7249 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
7250
7251         PR target/26018
7252         * config/s390/s390.c (struct machine_function): New flag
7253         decomposed_literal_pool_addresses_ok_p.
7254         (s390_reorg): Set it before final stage of literal pool transforms.
7255         (s390_decompose_address): Only accept displacements of the form
7256         (minus (label_ref ...) (label_ref ...)) if that flag is set.
7257
7258 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
7259
7260         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
7261         the comparison routine return.
7262
7263 2006-01-30  Michael Matz  <matz@suse.de>
7264
7265         * global.c (find_reg): Only evict for global regs.
7266         Take n_refs into account and dump more info.
7267
7268 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
7269
7270         PR target/14798:
7271         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
7272         (pragma_trap, pragma_nosave_low_regs): Likewise.
7273         (current_function_anonymous_args): Likewise.
7274         (sh_deferred_function_attributes): New variable.
7275         (sh_deferred_function_attributes_tail): Likewise.
7276         (print_operand): For '@', look up trap_exit attribute.
7277         (calc_live_regs): Look up trapa_handler attribute.  For trapa
7278         handlers, save/restore fpscr, but don't do any other
7279         interrupt-specific saves.
7280         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
7281         Fix check for partially saved registers to check for SHmedia.
7282         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
7283         (sh_output_function_epilogue): Don't clear any of the removed
7284         variables.
7285         (sh_insert_attributes): Don't check pragma_interrupt.
7286         Insert deferred attributes.  Check that interrupt attribute is
7287         present for other attributes that require its presence.
7288         (sh_attribute_table): Add new attributes trapa_handler and
7289         nosave_low_regs.
7290         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
7291         Don't check for pragma_interrupt.  Don't store argument.
7292         * sh.h (pragma_interrupt, sp_switch): Don't declare.
7293         (sh_deferred_function_attributes): Declare.
7294         (sh_deferred_function_attributes_tail): Likewise.
7295         * sh.md (sp_switch_1): Add operand.  Change generator caller.
7296         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
7297         (*return_i): Don't use when trap_exit attribute is in effect.
7298         (*return_trapa): New insn pattern.
7299         * sh-c.c: New file.
7300         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
7301         setting c_target_objs and cxx_target_objs.
7302         * t-sh: Add rule for sh-c.o.
7303
7304 2006-01-30  Richard Guenther  <rguenther@suse.de>
7305
7306         PR c++/23372
7307         * gimplify.c (gimplify_target_expr): Handle easy cases
7308         without creating a temporary.
7309
7310 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
7311
7312         * vec.h (safe_grow): Remove duplicated line.
7313
7314 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
7315
7316         PR 25874
7317         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
7318         (expand_omp): ... here.
7319         (expand_omp_parallel): Only remove barriers for combined
7320         parallel+workshare constructs.
7321
7322 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
7323
7324         Revert
7325
7326         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
7327         * tree.c (build_qualified_type): Chain the new type to the original
7328         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
7329         a POINTER_TYPE or a REFERENCE_TYPE respectively.
7330         (build_pointer_type_for_mode): Only return unqualified types.
7331         (build_reference_type_for_mode): Likewise.
7332
7333 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
7334
7335         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
7336         * Makefile.in (CXX_COMPAT_WARN): Define.
7337         * configure: Regenerate.
7338
7339 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
7340
7341         PR tree-opt/25911
7342         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
7343         to an if check.
7344
7345 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7346
7347         * toplev.c: Fix thinko.
7348
7349 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7350             Marcin Dalecki  <martin@dalecki.de>
7351
7352         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
7353         (push_srcloc): Use XNEW.
7354         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
7355
7356 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
7357
7358         * df-core.c (df_set_blocks): Deleted all variable.
7359
7360 2006-01-28  Ian Lance Taylor  <ian@airs.com>
7361
7362         * cgraphunit.c (cgraph_assemble_pending_functions): Call
7363         cgraph_output_pending_asms.
7364
7365 2006-01-28  Zack Weinberg  <zackw@panix.com>
7366
7367         * c.opt: Add -W(no-)overlength-strings.
7368         * doc/invoke.texi: Document it.
7369         * c-opts.c (c_common_handle_option): -pedantic implies
7370         -Woverlength-strings, if not explicitly disabled already.
7371         (c_common_post_options): -Woverlength-strings defaults to off, and
7372         is always off for C++.
7373         * c-common.c (fix_string_type): Issue warning about strings longer
7374         than is portable only if warn_overlength_strings.  Rearrange code
7375         a little for clarity.
7376         * configure.in: Check for -Wno-overlength-strings as well before
7377         enabling -pedantic in stage 1.
7378         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
7379         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
7380
7381         * genconditions.c (write_header, write_one_condition)
7382         (write_conditions, write_writer): Consolidate very long strings
7383         that were broken up to fit in C89 portable limit.  Don't use
7384         printf when fputs will do.
7385
7386 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
7387
7388         * combine.c (simplify_comparison <AND>): Check
7389         TRULY_NOOP_TRUNCATION before start using a subreg.
7390
7391         * config/mips/mips.md (*branch_zero<mode>,
7392         *branch_zero<mode>_inverted, *branch_equality<mode>,
7393         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
7394         Remove mode check from comparisons.
7395
7396 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
7397
7398         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
7399
7400 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
7401
7402         * expmed.c (const_mult_add_overflow_p): Remove.
7403         * expr.h: Remove the prototype for const_mult_add_overflow_p.
7404
7405         * recog.c (validate_replace_rtx_subexp): Remove.
7406         * recog.h: Remove the prototype for
7407         validate_replace_rtx_subexp.
7408
7409         * integrate.h: Remove the prototype for
7410         copy_decl_for_inlining.
7411         * rtl.h: Remove the prototype for mark_constant_function.
7412         * tree-vectorizer.h: Remove the prototype for
7413         vect_strip_conversion.
7414
7415         * modulo-sched.c (create_partial_schedule,
7416         free_partial_schedule, reset_partial_schedule): Make them
7417         static.
7418
7419         * hooks.c (hook_bool_rtx_int_false): Remove.
7420         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
7421
7422 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
7423
7424         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
7425         and -mlong-double-128 are incompatible.
7426         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7427         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
7428         (TARGET_LIBGCC2_CFLAGS): Define.
7429         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
7430         (TARGET_LIBGCC2_CFLAGS): Same.
7431         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
7432
7433 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
7434
7435         PR c/19606.
7436         * c-typeck.c (build_binary_op): Perform implicit casts of
7437         operands before shortening them.
7438
7439         * cfgloopmanip.c (split_loop_bb): Remove.
7440         * cfgloop.h: Remove the prototype for split_loop_bb.
7441
7442         * cfgloop.c (flow_loop_outside_edge_p): Remove.
7443         * cfgloop.h: Remove the prototype for
7444         flow_loop_outside_edge_p.
7445
7446         * emit-rtl.c (init_virtual_regs): Make it static.
7447         * function.h: Remove the prototype for init_virtual_regs.
7448
7449         * recog.c (peephole2_optimize): Make it static.
7450         * recog.h: Remove the prototype for peephole2_optimize.
7451
7452 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
7453
7454         * df-scan.c (df_record_entry_block_defs): Check if
7455         INCOMING_RETURN_ADDR_RTX is defined.
7456
7457 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
7458             Kenneth Zadeck <zadeck@naturalbridge.com>
7459
7460         PR rtl-optimization/24762
7461         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
7462         * targhooks.c (hook_void_bitmap): New hook prototype.
7463         * targhoohs.h (hook_void_bitmap): Ditto.
7464         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
7465         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
7466         * target.h (live_on_entry): New function pointer.
7467         * df-scan.c (df_all_hard_regs): Removed.
7468         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
7469         (df_scan_free_internal): Added df->entry_block_defs.
7470         (df_scan_alloc): Ditto.
7471         (df_scan_dump): Ditto.
7472         (df_uses_record): Plumbed flag field properly thru calls.
7473         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
7474         This part fixes PR24762.
7475         (df_bb_refs_record): Added code to make the frame and arg
7476         pointers live in EH blocks.
7477         (df_refs_record): Added call to df_record_entry_block_defs.
7478         (df_record_entry_block_defs): New function.
7479         * df-core.c: Added comments to describe new artifical defs.
7480         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
7481         (entry_block_defs): New field in struct df.
7482         (df_all_hard_regs): Deleted.
7483         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
7484         * df-problems.c (df_ru_bb_local_compute_process_def):
7485         Added code to handle artifical defs in the entry to a function.
7486         (df_ru_bb_local_compute): Ditto.
7487         (df_rd_bb_local_compute_process_def):  Ditto.
7488         (df_rd_bb_local_compute): Ditto.
7489         (df_lr_bb_local_compute): Ditto.
7490         (df_ur_bb_local_compute): Ditto.
7491         (df_urec_bb_local_compute):  Ditto.
7492         (df_chain_create_bb):  Ditto.
7493         (df_ur_local_finalize): Removed entry.
7494         (df_urec_init): Ditto.
7495         (df_urec_local_finalize): Ditto.
7496         (df_ri_bb_compute): Added detection of last use of pseudos.
7497         * Makefile.in (df-scan.o): Updated dependencies.
7498         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
7499         * config/mips/mips.c (mips_set_live_on_entry): Added.
7500         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
7501         for target hook.
7502         * dce.c (marked_insn_p): Added code to handle artifical defs.
7503
7504 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
7505
7506         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
7507         intrinsic.
7508         (_mm_cvtsi128_si64): Likewise.
7509         (_mm_cvtsd_si64): Likewise.
7510         (_mm_cvttsd_si64): Likewise.
7511         (_mm_cvtsi64_sd): Likewise.
7512         (_mm_cvtsi64_si128): Likewise.
7513         * config/i386/mmintrin.h (_m_from_int64): Likewise.
7514         (_mm_cvtsi64_m64): Likewise.
7515         (_m_to_int64): Likewise.
7516         (_mm_cvtm64_si64): Likewise.
7517         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
7518         (_mm_cvttss_si64): Likewise.
7519         (_mm_cvtsi64_ss): Likewise.
7520         (_mm_cvtss_f32): Likewise.
7521
7522 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
7523
7524         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
7525         for pragma redefine_extname.
7526
7527 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
7528
7529         PR target/25864
7530         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
7531         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
7532         -mno-minimal-toc to previous content.
7533         (bispecs): Remove goal.
7534         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
7535         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
7536         compatibility aliases on powerpc-*-*gnu*.
7537         * config/rs6000/libgcc-ppc-glibc.ver: New file.
7538         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
7539         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
7540         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
7541         (ldblspecs): New goal.
7542         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
7543         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
7544         _df_to_tf.
7545         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
7546         L_sf_to_tf or L_df_to_tf is defined.
7547
7548 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
7549             Alan Modra  <amodra@bigpond.net.au>
7550
7551         PR target/25864
7552         * config/rs6000/linux.h (POWERPC_LINUX): Define.
7553         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
7554         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
7555         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
7556         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
7557         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
7558         (rs6000_override_options): Initialize rs6000_ieeequad.
7559         Initialize TFmode format to ibm_extended_format if not
7560         TARGET_IEEEQUAD.
7561         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
7562         ieeelongdouble.
7563         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
7564         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
7565         (function_arg_advance): IBM long double passed in two FPRs, not
7566         split.
7567         (function_arg): IBM long double passed in FPRs.
7568         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
7569         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
7570         Only multireg GPR aligned.
7571         (rs6000_init_libfuncs): Enable IBM long double functions if not
7572         IEEEQUAD.
7573         (rs6000_generate_compare): Use IBM long double compare if not
7574         TARGET_IEEEQUAD.
7575         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
7576         (TARGET_IEEEQUAD): Define.
7577         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
7578         not TARGET_IEEEQUAD.
7579         * config/rs6000/rs6000.md: Enable TFmode patterns if
7580         !TARGET_IEEEQUAD.
7581         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
7582         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
7583         and -mlong-double-128 are incompatible.
7584         * doc/invoke.texi (-mabi): Collect options together.  Add
7585         ibmlongdouble and ieeelongdouble.
7586
7587 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
7588
7589         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
7590         opaque type.
7591         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
7592         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
7593         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
7594         * rtl.h (rtunion_def): Remove rt_ptr.
7595         (X0PTR): Delete.
7596         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
7597         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
7598         * config/i386/winnt.c (i386_pe_mark_dllexport)
7599         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
7600
7601 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
7602
7603         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
7604
7605 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
7606
7607         PR other/24829
7608         PR target/24831
7609         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
7610         pthread_key_delete.  From John David Anglin.  gthrw-ify
7611         pthread_getunique_np only if it it's not a macro.  Delete
7612         UNUSED macro.
7613         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
7614         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
7615         __gthread_objc_condition_signal, __gthread_key_delete): Add
7616         "__attribute__ ((__unused__))" to unused arguments.
7617         (__gthread_recursive_mutex_init_function): Add missing return.
7618         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
7619         gthr-posix95.h: Use macro-based approach for name redirection
7620         on targets missing weakref.
7621
7622 2006-01-26  Zack Weinberg  <zackw@panix.com>
7623
7624         * genconditions.c (write_header): In generated code, #ifdef out
7625         all includes and fake declarations, except includes of bconfig.h
7626         and system.h, unless GCC_VERSION >= 3001.  Do not include
7627         gensupport.h in any case.
7628         (write_conditions): Generate a definition of struct c_test.  Add
7629         a comment to the generated #endif.
7630         (write_one_condition): Escape backslashes in string too.
7631         (write_writer): Generated code must escape backslashes and quote
7632         marks (but not newlines) in the strings it writes.
7633         * Makefile.in (build/gencondmd.o): Update dependencies.
7634
7635 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
7636
7637         PR target/25961
7638         * Makefile.in (insn-automata.o): Add header file dependencies.
7639         * genautomata.c: Add includes.
7640
7641 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
7642
7643         PR target/25961
7644         * Makefile.in (insn-automata.o): Add -Wno-error flag.
7645
7646 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
7647
7648         * configure.ac: Expect target tools paths to be passed from the toplevel
7649         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
7650         AS_SET_VAR_IF.
7651         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
7652
7653 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
7654
7655         PR c/25892
7656         * c.opt (Wpointer-sign): Init to -1.
7657         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
7658         OPT_pedantic, to 0 otherwise.
7659         * doc/invoke.texi: Update.
7660
7661 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
7662
7663         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
7664         constants provided by 80387 instructions in the destination mode.
7665
7666 2006-01-26  Richard Guenther  <rguenther@suse.de>
7667             Andrew Pinski  <pinskia@physics.uc.edu>
7668
7669         PR tree-opt/21470
7670         partial PR tree-opt/17064
7671         * tree-ssa-structalias.c (intra_create_variable_infos):
7672         Create heap variables for incoming parameters if
7673         flag_argument_noalias > 1.
7674         (find_what_p_points_to): Look through default defs of
7675         parameter decls.
7676
7677 2006-01-26  Jeff Law  <law@redhat.com>
7678
7679         PR ada/25900
7680         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
7681         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
7682         within the VR_RANGE, use the VR_RANGE as the result, not the
7683         VR_ANTI_RANGE.
7684         (adjust_range_with_scev): Reject ranges from SCEV which are out of
7685         bounds for the type.
7686
7687 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
7688
7689         * tree-ssa-alias.c (maybe_create_global_var): Change
7690         subvar walking to an assertion that we don't have subvar'd variables.
7691
7692 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
7693
7694         PR C/25861
7695         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
7696         Use a new variable, inner.  PARM_DECLs are always non-weak.
7697
7698 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
7699
7700         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
7701         --disable-checking.
7702
7703 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
7704
7705         * config/mips/mips.md (*clear_upper32): New combiner pattern.
7706
7707 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
7708
7709         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
7710         (smax_insn, smin_insn, smax_0, smin_0): New.
7711
7712 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
7713
7714         PR target/25947
7715         * config/cris/cris.c (cris_order_for_addsi3): New function.
7716         * config/cris/cris-protos.h: Prototype it.
7717         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
7718         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
7719         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
7720         (split for "op.S1 [rx=rx+i],ry (swapped)")
7721         (split for "op(s|u).S1 [rx=rx+i],ry")
7722         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
7723         Apply cris_order_for_addsi3 when generating addsi3 insns.
7724
7725 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
7726
7727         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
7728         (TREE_BLOCK): Add call to EXPR_CHECK.
7729
7730 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
7731
7732         PR 25886
7733         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
7734         * tree-pretty-print.c (dump_omp_clause): Extract from ...
7735         (dump_omp_clauses): ... here.
7736         (dump_generic_node): Handle OMP_CLAUSE.
7737         * tree.c (omp_clause_num_ops): New.
7738         (omp_clause_code_name): New.
7739         (tree_code_size): Handle OMP_CLAUSE.
7740         (tree_size): Likewise.
7741         (make_node): Document handling of OMP_CLAUSE.
7742         (tree_node_structure): Handle OMP_CLAUSE.
7743         (omp_clause_check_failed): New.
7744         (omp_clause_range_check_failed): New.
7745         (omp_clause_operand_check_failed): New.
7746         (build_omp_clause): New.
7747         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
7748         * tree.h (enum omp_clause_code): Declare.
7749         (OMP_CLAUSE_SUBCODE_CHECK): Define.
7750         (OMP_CLAUSE_RANGE_CHECK): Define.
7751         (OMP_CLAUSE_ELT_CHECK): Define.
7752         (omp_clause_check_failed): Declare.
7753         (omp_clause_operand_check_failed): Declare.
7754         (omp_clause_range_check_failed): Declare.
7755         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
7756         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
7757         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
7758         (OMP_CLAUSE_LASTPRIVATE): Likewise.
7759         (OMP_CLAUSE_IF_EXPR): Likewise.
7760         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
7761         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
7762         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
7763         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
7764         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
7765         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
7766         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
7767         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
7768         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
7769         (OMP_CLAUSE_CODE): Define.
7770         (OMP_CLAUSE_SET_CODE): Define.
7771         (OMP_CLAUSE_CODE): Define.
7772         (OMP_CLAUSE_OPERAND): Define.
7773         (struct tree_omp_clause): Declare.
7774         (union tree_node): Add field 'omp_clause'.
7775         * treestruct.def (TS_OMP_CLAUSE): Define.
7776         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
7777         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
7778         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
7779         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
7780         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
7781         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
7782         (OMP_CLAUSE): Define.
7783         * print-tree.c (print_node): Handle OMP_CLAUSE.
7784         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
7785         * c-typeck.c: Likewise.
7786         * gimplify.c: Likewise.
7787         * c-omp.c: Likewise.
7788         * tree-nested.c: Likewise.
7789         * tree-inline.c: Likewise.
7790         * c-parser.c: Likewise.
7791         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
7792         clauses.
7793
7794 2006-01-25  Roger Sayle  <roger@eyesopen.com>
7795
7796         PR rtl-optimization/25703
7797         * combine.c (try_combine): Handle zero_extract and strict_low_part
7798         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
7799
7800 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
7801
7802         * global.c: Fix comment typos.
7803
7804 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
7805
7806         PR target/25758
7807         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
7808         Use output_addr_const instead of assemble_name.
7809
7810 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
7811
7812         * Makefile.in (sched-vis.o): Update dependencies.
7813         * haifa-sched.c (sched_finish): Clear current_sched_info.
7814         * cfg.c (dump_bb_info): New, split from dump_flow_info.
7815         (dump_flow_info): Call it.
7816         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
7817         a slim RTL dump.
7818         * basic-block.h (dump_bb_info): Declare.
7819         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
7820         option, and apply options only for dump files whose TDF_RTL,
7821         TDF_TREE, or TDF_IPA bits match.
7822         * rtl.h: Declare new functions exported from sched-vis.c.
7823         * sched-vis.c: Enable also if scheduling is not used.
7824         (print_value): Print the mode of registers if not inside scheduling.
7825         (print_insn): Make it work outside the scheduler.  Beautify the output
7826         a bit.
7827         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
7828
7829 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
7830
7831         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
7832         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
7833         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
7834         depending on the value of CONSTANT_POOL_ADDRESS_P.
7835         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
7836         SYMBOL_REF_DECL.
7837         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
7838         rather than SYMBOL_REF_DECL.
7839         (rtx_constant_pool): Remove const_rtx_sym_htab.
7840         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
7841         (init_varasm_status): Don't initialize const_rtx_sym_htab.
7842         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
7843         Remove handling of const_rtx_sym_htab.
7844         (find_pool_constant): Delete.
7845         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
7846         rather than find_pool_constant.
7847         (get_pool_constant_for_function): Delete.
7848         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
7849         find_pool_constant.
7850         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
7851         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
7852         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
7853         (SYMBOL_REF_CONSTANT): New macro.
7854         (get_pool_constant_for_function): Delete.
7855         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
7856         rather than SYMBOL_REF_DECL.
7857         (i386_pe_mark_dllimport): Likewise.
7858         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
7859         rather than SYMBOL_REF_DECL.
7860         * config/darwin.c (machopic_indirect_data_reference): Likewise.
7861         (machopic_indirect_call_target): Likewise.
7862
7863 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
7864
7865         * flow.c (delete_noop_moves): Add missing EOL to dump message.
7866
7867 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
7868
7869         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
7870
7871 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7872
7873         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
7874
7875 2006-01-24  David Daney  <ddaney@avtrex.com>
7876
7877         PR java/25816
7878         * configure.ac (enable_tls): New enable option.
7879         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
7880         * configure: Regenerate.
7881         * doc/install.texi (--enable-tls): Document new option.
7882         (--disable-tls): Ditto.
7883
7884 2006-01-24  Richard Henderson  <rth@redehat.com>
7885
7886         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
7887         * alias.c (true_dependence): Respect it.
7888         (canon_true_dependence, write_dependence_p): Likewise.
7889         * builtins.c (get_builtin_sync_mem): Set it.
7890
7891 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
7892
7893         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
7894         efficient way.
7895
7896 2006-01-24  DJ Delorie  <dj@redhat.com>
7897
7898         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
7899         for storing constants in single-bit bitfields.
7900
7901 2006-01-25  Ben Elliston  <bje@au.ibm.com>
7902
7903         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
7904
7905 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
7906
7907         PR tree-opt/25860
7908         * tree-ssa-pre.c (phi_translate): Return NULL
7909         for AGGREGATE_TYPE's.
7910
7911 2006-01-24  Zack Weinberg  <zackw@panix.com>
7912
7913         * genautomata.c (process_state_for_insn_equiv_partition):
7914         Use xcalloc for insn_arcs_array.
7915         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
7916         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
7917
7918 2006-01-24  Richard Henderson  <rth@redhat.com>
7919
7920         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
7921         update all callers.
7922
7923 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
7924
7925         PR rtl-optimization/25890
7926         PR rtl-optimization/25905
7927         * combine.c (expand_compound_operation, expand_field_assignment):
7928         Fail if the bitfield's final position is out of bounds.
7929
7930 2006-01-24  Ian Lance Taylor  <ian@airs.com>
7931
7932         PR middle-end/25930
7933         * cgraphunit.c (cgraph_output_in_order): Don't clear
7934         cgraph_asm_nodes until after asm strings have been output.
7935
7936 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
7937
7938         * fix-header.c (read_scan_file): Add new parameter imultilib when
7939         calling register_include_chains.
7940
7941 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
7942
7943         * omp-low.c: Update documentation.
7944
7945 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
7946             Daniel Berlin  <dberlin@dberlin.org>
7947
7948         PR tree-opt/25315
7949         PR tree-opt/25857
7950         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
7951         return from the function.
7952
7953 2006-01-22  Zack Weinberg  <zackw@panix.com>
7954
7955         * rtl.def (match_code): Add second argument.
7956         * genpreds.c (write_extract_subexp): New function.
7957         (write_match_code): Add path argument.  Use write_extract_subexp.
7958         (write_predicate_expr): Pass path to write_match_code.
7959         (mark_mode_tests): MATCH_CODE applied to a subexpression does
7960         not perform a mode test.
7961         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
7962         a subexpression does not constrain the top-level code set.
7963         * read-rtl.c (read_rtx_variadic): New function.
7964         (read_rtx_1): Use it; allow AND and IOR to be variadic.
7965         * doc/md.texi: Document new notation.
7966         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
7967         (cmpsi_operand): ... here, using new notation.
7968
7969 2006-01-22  Zack Weinberg  <zackw@panix.com>
7970
7971         * varray.c: Remove GENERATOR_FILE #ifdefs.
7972
7973 2006-01-22  Zack Weinberg  <zackw@panix.com>
7974
7975         * genautomata.c (output_reserved_units_table): Emit nothing if
7976         description->query_units_num is zero.  Remove extra blank line.
7977         (output_cpu_unit_reservation_p): Short circuit
7978         if description->query_units_num is zero.
7979
7980 2006-01-22  Zack Weinberg  <zackw@panix.com>
7981
7982         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
7983         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
7984         nor any of the random handful of variables that used to be necessary
7985         when this program was linked with rtlanal.o.  Prune set of forward
7986         function declarations.
7987         (struct attr_desc): Remove static_p field.
7988         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
7989         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
7990         (attr_string): Do not read the character one past the length of
7991         the string.
7992         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
7993         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
7994         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
7995         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
7996         (make_automaton_attrs): New.
7997         (main): Do not call into genautomata.  Call local gen_bypass
7998         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
7999         Remove special case for insn_alts.
8000         * genautomata.c: Include gensupport.h; not genattrtab.h nor
8001         varray.h (leftover from previous change).  Prune set of forward
8002         function declarations.  Remove state_alts fields from all
8003         structures.  Remove state_alts_table from struct automaton.
8004         Make everything except main static.  Do not maintain num_dfa_decls.
8005         Do not maintain state_alts fields of various structures.
8006         (process_decls): Don't validate condexp for dm_insn_reserv decls.
8007         (add_arc): Remove state_alts argument.  All callers updated.
8008         (output_reserved_units_table): Emit #ifdef here...
8009         (output_tables): ...not here.  Don't generate state_alts tables.
8010         (expand_automata): Don't generate attributes.
8011         (write_automata): Don't generate state_alts functions.
8012         (main): New function.
8013         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
8014         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
8015         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
8016         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
8017         (BYPASS_P_FUNC_NAME, output_state_alts_table)
8018         (output_automata_list_state_alts_code, output_internal_state_alts_func)
8019         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
8020         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
8021         Delete.
8022         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
8023         * genattrtab.h: Delete file.
8024         * Makefile.in (OBJS-common): Add insn-automata.o.
8025         (insn-automata.o): New rule.
8026         (simple_generated_c): Add insn-automata.c.
8027         (build/genattrtab.o, build/genautomata.o): Update dependencies.
8028         (genprogmd): Add automata.
8029         (build/genattrtab): Needs no extra objects nor libraries.
8030         (build/genautomata): Needs build/vec.o and -lm.
8031
8032 2006-01-22  Zack Weinberg  <zackw@panix.com>
8033
8034         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
8035         (output_dfa_max_issue_rate, locked_states_num): Delete.
8036         (struct automaton): Add locked_states field.
8037         (output_dead_lock_vect): Save number of locked states in
8038         automaton->locked_states.  If it is zero, don't print anything.
8039         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
8040         (output_internal_dead_lock_func): Only test the dead_lock_vect
8041         for automata that have locked states.
8042         (output_statistics): Always print the number of locked states for
8043         each automaton.  Calculate total number of locked states here.
8044         (write_automata): Don't call output_dfa_max_issue_rate.
8045         * genattrtab.c: Define length_unit_log as a const variable.
8046         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
8047         max_insn_queue_index const.
8048         * final.c (length_unit_log): Declare const.
8049         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
8050
8051 2006-01-22  Zack Weinberg  <zackw@panix.com>
8052
8053         * genautomata.c:  Include vec.h, not varray.h.
8054         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
8055         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
8056         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
8057         VEC_* macros operating on appropriately typed vectors, or to
8058         malloced arrays when the size is known in advance.  Const-ify
8059         many char* variables and function arguments.  No functional changes.
8060         * Makefile.in (build/varray.o): Delete rule.
8061         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
8062         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
8063
8064 2006-01-22  Zack Weinberg  <zackw@panix.com>
8065
8066         * gensupport.c: Define get_insn_name and record_insn_name here.
8067         (read_md_rtx): Call record_insn_name as appropriate.
8068         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
8069         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
8070         * genpreds.c, genrecog.c: Don't define get_insn_name nor
8071         record_insn_name.
8072         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
8073         (BUILD_VARRAY): Delete.
8074         (genprognormal): Rename genprogmd.  Fold in all programs from
8075         genprognoprint; also attrtab.
8076         (build/genattrtab): Just mention genautomata.o and varray.o.
8077         Reorganize a bit, add comments to make the categories clearer.
8078
8079 2006-01-22  Zack Weinberg  <zackw@panix.com>
8080
8081         * genconditions.c (condition_table, add_condition): Delete.
8082         (write_conditions): Don't emit n_insn_conditions nor
8083         insn_elision_unavailable.  Issue the gcc version #ifdef here,
8084         inside the table, with no #else clause ...
8085         (write_header): ...not here.
8086         (write_writer): New function.
8087         (main): Don't initialize condition_table.  Use add_c_test.
8088         Call write_writer.
8089         * gensupport.c (init_md_reader_args_cb): Handle multiple input
8090         files on the command line.
8091         (maybe_eval_c_test): Don't check insn_elision_unavailable.
8092         Return -1 if there is no entry in the table, don't abort.
8093         (add_c_test, traverse_c_tests): New functions.
8094         * gensupport.h (insn_elision_unavailable, insn_conditions)
8095         (n_insn_conditions): Delete declarations.
8096         (add_c_test, traverse_c_tests): Declare.
8097         * read-rtl.c: Include gensupport.h.
8098         (read_conditions): New function.
8099         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
8100         (read_rtx_1): If we get EOF when we were looking for an initial
8101         open paren, return 0.  Call read_conditions when appropriate.
8102         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
8103         dummy-conditions.o.  Eliminate references to insn-conditions.o,
8104         or change them to build/gencondmd.o, as appropriate.  Remove
8105         insn-constants.h from $(simple_generated_h) and insn-conditions.c
8106         from $(simple_generated_c).  For all files remaining in those
8107         two lists, add insn-conditions.md to the generator command line.
8108         Give insn-constants.h/s-constants their own rules.  Add rules
8109         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
8110         (build/read-rtl.o): Depend on gensupport.h.
8111         (genprognormal): Include preds.
8112         (genprogearly): Rename genprognoprint; only difference is now that
8113         they don't link with $(BUILD_PRINT).
8114         * dummy-conditions.c: Delete.
8115
8116 2006-01-22  Zack Weinberg  <zackw@panix.com>
8117
8118         * genextract.c: Don't include insn-config.h.  Do include vec.h.
8119         Declare vectors of int, char, and locstr.
8120         (locstr): New typedef.
8121         (struct extraction): Make all array fields into bare pointers.
8122         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
8123         (insn_code_number): Delete.
8124         (accum_extract): New struct.
8125         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
8126         (gen_insn): Take insn_code_number as an argument.  Use an
8127         accum_extract structure instead of loading data directly into
8128         a struct extraction, and having to know how big it might get.
8129         (walk_rtx): Operate entirely on an accum_extract structure.
8130         (print_path): Avoid unnecessary use of printf.
8131         (print_header): New function, split out of main.  Distinguish
8132         more carefully between an unrecognizable insn and an insn that
8133         has the code number of a define_expand.
8134         (main): Pass insn_code_number to gen_insn.  Call print_header
8135         only after parsing.  Avoid unnecessary use of printf.
8136         * Makefile.in (build/vec.o): New rule.
8137         (build/genextract): Depend on build/vec.o.
8138         (build/genextract.o): Don't depend on insn-config.h.
8139
8140 2006-01-22  Zack Weinberg  <zackw@panix.com>
8141
8142         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
8143         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
8144         practical.  Eliminate per-generator-program link rules.
8145
8146 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
8147
8148         PR middle-end/24437
8149         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
8150         with a call expr to ...
8151         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
8152
8153 2006-01-23  Richard Guenther  <rguenther@suse.de>
8154
8155         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
8156         before make_edge with conditional EDGE_TRUE_VALUE.
8157
8158 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
8159         Jan Hubicka  <jh@suse.cz>
8160         Richard Guenther  <rguenther@suse.de>
8161
8162         PR rtl-optimization/25654
8163         * cfgexpand.c (aggregate_contains_union_type): New function.
8164         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
8165         for structure variables that contain a union type.
8166
8167 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
8168
8169         * gengtype.c (new_structure): Return the structure.
8170         (create_option): Add an extra "next" argument.
8171         (create_field): New function.
8172         (adjust_field_rtx_def): Use create_option and create_field.
8173         Remove a now-unnecessary call to find_structure.
8174         (adjust_field_tree_def): Likewise.
8175         (note_yacc_type): Remove an unnecessary call to find_structure.
8176         * gengtype.h (new_structure): Return the structure.
8177         (create_option): Add an extra argument.
8178         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
8179         (option): Adjust calls to create_option.
8180
8181 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
8182
8183         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
8184
8185 2006-01-22  Paul Brook  <paul@codesourcery.com>
8186         Peter Barada  <peter@the-baradas.com>
8187
8188         * config/m68k/m68k.md: Add Coldfire FPU support.
8189         Define FP mode macro and associated attributes.
8190         Use it for float mode patterns.
8191         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
8192         (LIBCALL_VALUE): Use m68k_libcall_value.
8193         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
8194         (m68k_function_value): Ditto.
8195         (emit_move_sequence): Ditto.
8196         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
8197         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
8198         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
8199         (MULTILIB_EXCEPTIONS): Ditto.
8200         * config/m68k/m68k.opt: Add mcfv4e.
8201         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
8202         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
8203         (m68k_output_function_prologue): Save ColdFire FPU registers.
8204         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
8205         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
8206         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
8207         ColdFire FPU registers.
8208         (m68k_libcall_value, m68k_function_value): New functions.
8209         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
8210         (LIBCALL_VALUE): Use m68k_libcall_value.
8211         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
8212         (MASK_COLDFIRE): Add MASK_CFV4E.
8213         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
8214         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
8215         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
8216         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
8217         (GO_IF_LEGITIMATE_ADDRESS): Use it.
8218         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
8219         * doc/invoke.tex: Document -mcfv4e on m68k.
8220
8221 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
8222
8223         * doc/contribute.texi: Change CVS to SVN and update the corresponding
8224         URL.
8225
8226 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8227
8228         PR c++/16190
8229         * c-opts.c (c_common_handle_option): Don't include
8230         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
8231         * doc/invoke.texi (C++ Dialect Options): Document that
8232         -Wnon-virtual-dtor is no longer included in -Wall.
8233
8234 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
8235
8236         * gcov.c (print_version), gcov-dump.c (print_version),
8237         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
8238         dates.
8239
8240 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
8241
8242         * df-scan.c (problem_SCAN): Added NULL reset function.
8243         (df_scan_reset_blocks): Added code to call reset block function
8244         (df_bb_refs_delete) Fixed comment.
8245         (df_insn_refs_delete): Made tolerant of deleting non existent info
8246         for dataflow problems that need to be reset.
8247         * df-core.c (df_set_blocks): Ditto.
8248         * df.h (struct df_problem): Added reset_fun.
8249         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
8250         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
8251         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
8252         functions to clear out all references to def-use or use-def chains.
8253
8254 2006-01-21  Ben Elliston  <bje@au.ibm.com>
8255
8256         * varasm.c (assemble_real): Initialise data array.
8257
8258 2006-01-20  Paul Brook  <paul@codesourcery.com>
8259
8260         Merge from csl-arm-branch.
8261         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
8262         * config/arm/arm.md (movdi): Force operands[1] to a register
8263         if we have a non-register source.
8264         (*arm_movdi, *movdf_soft_insn): Require that one of the
8265         operands be a register.
8266         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
8267         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8268
8269 2006-01-20  DJ Delorie  <dj@redhat.com>
8270
8271         * varasm.c (initialize_constant_valid_p): Allow pointers
8272         initialized from integer constants of lesser precision.
8273         (output_constant): Allow non-int-sized pointer modes to be
8274         initialized from integer constants.
8275
8276 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
8277
8278         PR libstdc++/25524
8279         * cppdefault.h (struct default_include): Add multilib flag.
8280         * cppdefault.c (cpp_include_defaults): Set it.
8281         * c.opt (-imultilib): New option.
8282         * c-opts.c (imultilib): New.
8283         (c_common_handle_option): Handle -imultilib.
8284         (c_common_post_options): Likewise.
8285         * c-incpath.c (add_standard_paths, register_include_chains):
8286         Likewise.
8287         * c-incpath.h (register_include_chains): Add extra parameter.
8288         * gcc.c (do_spec_1): Generate -imultilib option.
8289         (The Specs Language): Update %I description.
8290         (process_command): Update copyright notice.
8291         * doc/cppopts.texi (-imultilib): Document.
8292         * doc/invoke.texi (-imultilib): Include in option summary.
8293         (%I): Update specs documentation.
8294
8295 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
8296
8297         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
8298
8299 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
8300
8301         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
8302         label numbers.
8303
8304 2006-01-20  Richard Guenther  <rguenther@suse.de>
8305         Steven Bosscher <stevenb.gcc@gmail.com>
8306
8307         PR rtl-optimization/24626
8308         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
8309         EDGE_TRUE_VALUE if in RTL mode.
8310
8311         Revert
8312         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
8313         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
8314
8315 2006-01-20  Dirk Mueller  <dmueller@suse.com>
8316
8317         PR c++/5520
8318         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
8319         instead of a special NOP marker.
8320         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
8321         NOP marker handling.
8322         * c-common.h (empty_body_warning): Add forward declaration.
8323         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
8324         Now uses IS_EMPTY_STMT() instead of special NOP markers.
8325
8326 2006-01-20  Paul Brook  <paul@codesourcery.com>
8327
8328         * Makefile.in (lang_checks): Keep going if mkdir fails.
8329
8330 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
8331
8332         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
8333         be able to clean out basic block when not necessary.
8334         (df_scan_free): Fixed to properly delete information if df is
8335         unused before calling df_finish.
8336         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
8337         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
8338         or comment typos.
8339         (df_bb_refs_delete): New function.
8340         (df_refs_delete): Moved per block code to df_bb_refs_delete.
8341         * df-core.c (df_set_blocks): Added code to properly clean out
8342         unused blocks if they are not part of the blocks to consider.
8343         Added additional null check.
8344         (df_compact_blocks): Added basic block parameter to free_bb_fun to
8345         be able to clean out basic block when not necessary
8346         * df.h (df_free_bb_function): Ditto.
8347         (df_bb_refs_delete): New function.
8348         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
8349         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
8350         basic block parameter to be able to clean out basic block when not
8351         necessary.
8352         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
8353         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
8354         Fixed to properly delete information if df is unused before
8355         calling df_finish.
8356
8357 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
8358
8359         PR rtl-optimization/25799
8360         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
8361         Corrected confluence operator to remove bits from op2 before oring
8362         with op1 rather than removing bits from op1.
8363         (df_ru_transfer_function): Corrected test on wrong bitmap which
8364         caused infinite loop.  Both of these problems were introduced in
8365         the dataflow rewrite.
8366
8367 2006-01-19  DJ Delorie  <dj@redhat.com>
8368
8369         * reload1.c (find_reload_regs): Note the details of reload
8370         failures in the dump file.
8371         (spill_failure): Likewise.
8372
8373 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
8374
8375         * loop-iv.c: Include df.h and hashtab.h.
8376         (enum iv_grd_result): New enum.
8377         (DF_REF_IV, DF_REF_IV_SET): New macros.
8378         (struct biv_entry): New.
8379         (df, bivs): New global variables.
8380         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
8381         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
8382         Removed.
8383         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
8384         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
8385         analyzed_for_bivness_p, record_biv): New functions.
8386         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
8387         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
8388         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
8389         UD chains.
8390         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
8391         analysed.
8392         (iv_number_of_iterations): Use new interface to iv analysis.
8393         * loop-unroll.c: Do not include varray.h.
8394         (analyze_iv_to_split_insn): Use new interface to iv
8395         analysis.
8396         * loop-unswitch.c (may_unswitch_on): Ditto.
8397         * df.c (df_bitmaps_free): Only work for bbs for that structures are
8398         allocated.
8399         (df_bb_modify): Realloc tables to the new index.
8400         (df_find_use): New function.
8401         * df.h (df_find_use): Declare.
8402         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
8403         outmode.
8404         * cfgloop.h (struct rtx_iv): Remove analysed field.
8405         (iv_get_reaching_def): Removed.
8406         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
8407         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
8408         (loop-iv.o): Add df.h and hashtab.h dependency.
8409         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
8410
8411 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
8412
8413         PR target/25668
8414         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
8415         Double TFmode.
8416         (__floatundisf, __floatundidf): Likewise.
8417         * libgcc2.h (IS_IBM_EXTENDED): Define.
8418
8419 2006-01-19  DJ Delorie  <dj@redhat.com>
8420
8421         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
8422
8423 2006-01-19  Paul Brook  <paul@codesourcery.com>
8424
8425         * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
8426         as nothrow when unwinding tables are disabled.
8427
8428 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8429
8430         PR testsuite/25171
8431         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
8432         of bit-field" when in system header.
8433
8434 2006-01-19  DJ Delorie  <dj@redhat.com>
8435
8436         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
8437         the 16 bit shift limit of the m16c.
8438
8439 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
8440
8441         PR target/22099
8442         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
8443         * config/i386/i386.c (output_set_got): Output the label if we have one
8444         for the TARGET_DEEP_BRANCH_PREDICTION case.
8445
8446 2006-01-19  Jan Hubicka  <jh@suse.cz>
8447             H.J. Lu  <hongjiu.lu@intel.com>
8448             Evandro Menezes <evandro.menezes@amd.com>
8449
8450         * invoke.texi (generic): Document
8451         (i686) Update.
8452         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
8453         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
8454         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
8455         (x86_use_incdec, x86_pad_returns): New variables
8456         (TARGET_CPU_DEFAULT_generic): New constant
8457         (TARGET_CPU_DEFAULT_NAMES): Add generic.
8458         (enum processor_type): Add generic32 and generic64.
8459         * i386.md (cpu attribute): Add generic32/generic64
8460         (movhi splitter): Behave sanely when both partial_reg_dependency and
8461         partial_reg_stall are set.
8462         (K8 splitters): Enable for generic as well.
8463         * predicates.md (incdec_operand): Use TARGET_INCDEC
8464         (aligned_operand): Avoid memory mismatch stalls.
8465         * athlon.md: Enable for generic64, new patterns for 128bit moves.
8466         * ppro.md: Enable for generic32
8467         * i386.c (generic64_cost, generic32_cost): New.
8468         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
8469         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
8470         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
8471         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
8472         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
8473         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
8474         x86_partial_reg_dependency, x86_memory_mismatch_stall,
8475         x86_accumulate_outgoing_args, x86_prologue_using_move,
8476         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
8477         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
8478         Enable for generic.
8479         (x86_use_incdec, x86_pad_returns): New.
8480         (override_options): Add generic32 and generic64, translate "generic"
8481         to generic32/generic64 and "i686" to "generic32", refuse
8482         "generic32"/"generic64" as arch target.
8483         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
8484         (ix86_reorg): Honor PAD_RETURNS.
8485
8486 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
8487
8488         * tree-pretty-print.c (dump_generic_node): Handle
8489         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
8490         * cgraph.c (cgraph_expand_queue): Rename from
8491         cgraph_analyze_queue.  Update all users.
8492         * cgraphunit.c (cgraph_assemble_pending_functions): Process
8493         cgraph_expand_queue.
8494         (cgraph_expand_all_functions): Likewise.
8495         (cgraph_finalize_pending_functions): Remove.  Update callers.
8496
8497         * tree.h (OMP_DIRECTIVE_P): Define.
8498         (OMP_PARALLEL_FN): Define.
8499         (OMP_PARALLEL_DATA_ARG): Define.
8500         (OMP_SECTIONS_SECTIONS): Define.
8501         * tree-pass.h (pass_expand_omp): Declare.
8502         * omp-low.c (struct omp_region): Declare.
8503         (struct omp_context): Remove fields 'parallel_type',
8504         'parallel_start_ix' and 'parallel_start_additional_args'.
8505         Update all users.
8506         (struct omp_for_data): Rename from struct expand_omp_for_data.
8507         (omp_regions): New static variable.
8508         (root_omp_region): New static variable.
8509         (find_omp_clause): Make static.
8510         (is_in_combined_parallel_ctx): Remove.
8511         (is_combined_parallel): New.
8512         (extract_omp_for_data): Move earlier in the file.
8513         (workshare_safe_to_combine_p): New.
8514         (get_ws_args_for): New.
8515         (determine_parallel_type): Move earlier in the file.
8516         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
8517         child function.
8518         (omp_copy_decl): Likewise.
8519         (create_omp_child_function): Likewise.
8520         (lookup_omp_region): New.
8521         (dump_omp_region): New.
8522         (debug_omp_region): New.
8523         (debug_all_omp_regions): New.
8524         (new_omp_region): New.
8525         (scan_omp_parallel): If parallel_nesting_level > 1, the
8526         directive is nested within another parallel directive.
8527         Set OMP_PARALLEL_FN.
8528         (scan_omp_for): Do not try to handle combined parallel+for
8529         cases.
8530         Remove FIXME comment.
8531         (scan_omp_nested): Remove.
8532         (scan_omp_1): Do not call scan_omp_nested when
8533         parallel_nesting_level is > 1.
8534         Do not change the DECL_CONTEXT of local variables found.
8535         (lookup_decl_in_outer_ctx): New.
8536         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
8537         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
8538         (lower_reduction_clauses): Rename from expand_reduction_clauses.
8539         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
8540         If CTX is nested, lookup VAR in the outer context when
8541         building copy assignment.
8542         (lower_send_clauses): Rename from expand_send_clauses.
8543         If CTX is nested, lookup VAR in the outer context when
8544         building copy assignments.
8545         (lower_send_shared_vars): Rename from expand_send_shared_vars.
8546         If CTX is nested, lookup VAR in the outer context when
8547         building copy assignments.
8548         (expand_parallel_call): Rename from build_parallel_call.
8549         Handle combined parallel+workshare cases.
8550         Re-implement to emit code into the CFG.
8551         (list2chain): New.
8552         (expand_omp_parallel): Re-implement to emit code into the CFG.
8553         Call move_sese_region_to_fn to outline the sub-graph
8554         containing the parallel region.
8555         (expand_omp_for_1): Remove.
8556         (expand_omp_for_generic): Re-implement to emit code into the
8557         CFG.
8558         (expand_omp_for_static_nochunk): Likewise.
8559         (expand_omp_for_static_chunk): Likewise.
8560         (expand_omp_for): Likewise.
8561         (expand_omp_sections): Likewise.
8562         (remove_exit_barriers): New.
8563         (expand_omp_synch): New.
8564         (expand_omp): New.
8565         (build_omp_regions_1): New.
8566         (build_omp_regions): New.
8567         (execute_expand_omp): New.
8568         (gate_expand_omp): New.
8569         (pass_expand_omp): Define.
8570         (lower_omp_sections): Rename from expand_omp_sections.
8571         Set OMP_SECTIONS_SECTIONS.
8572         (lower_omp_single_simple): Rename from expand_omp_single_simple.
8573         (lower_omp_single_copy): Rename from expand_omp_single_copy.
8574         (lower_omp_single): Rename from expand_omp_simple.
8575         (lower_omp_master): Rename from expand_omp_master.
8576         (lower_omp_ordered): Rename from expand_omp_ordered.
8577         (lower_omp_critical): Rename from expand_omp_critical.
8578         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
8579         (lower_omp_for): Re-implement.
8580         (lower_omp_parallel): Re-implement.
8581         (lower_regimplify): Rename from expand_regimplify.
8582         (lower_omp_1): Rename from expand_omp_1.
8583         If there are syntax errors in the program, replace every
8584         OpenMP directive with NOP.
8585         Call lower_omp_* instead of expand_omp_*.
8586         (lower_omp): Rename from expand_omp.
8587
8588         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
8589         * tree-gimple.h (enum omp_parallel_type): Remove.
8590         (gimple_boolify): Declare extern.
8591         (find_omp_clause, determine_parallel_type): Remove.
8592
8593         * gimple-low.c (lower_omp_directive): New.
8594         (lower_stmt): Call it.
8595         (record_vars_into): Move from ...
8596         (record_vars): ... here.
8597         Call record_vars_into with current_function_decl.
8598
8599         * gimplify.c (struct gimplify_ctx): Remove fields
8600         combined_pre_p and combined_ctxp.  Update users.
8601         (get_formal_tmp_var): Add documentation.
8602         (gimple_boolify): Make extern.
8603         (gimplify_expr_in_ctx): Remove.  Update callers.
8604         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
8605         will always be a BIND_EXPR.
8606         (gimplify_expr): Handle OMP_RETURN_EXPR.
8607         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
8608         (OMP_PARALLEL): Add 3 operands.
8609         (OMP_SECTIONS): Add 1 operand.
8610         (OMP_RETURN_EXPR): Define.
8611
8612         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
8613         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
8614         * tree-iterator.c (alloc_stmt_list): Assert that we are not
8615         creating a circular free list.
8616         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
8617
8618         * tree-flow.h (move_sese_region_to_fn): Declare.
8619         (record_vars_into): Declare.
8620         * tree-cfg.c (make_omp_sections_edges): New.
8621         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
8622         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
8623         OMP_SECTIONS and OMP_SECTION.
8624         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
8625         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
8626         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
8627         (gather_blocks_in_sese_region): New.
8628         (struct move_stmt_d): Declare.
8629         (move_stmt_r): New.
8630         (move_block_to_fn): New.
8631         (move_sese_region_to_fn): New.
8632
8633         * passes.c (init_optimization_passes): Schedule
8634         pass_expand_omp after pass_init_datastructures.
8635
8636         * tree-ssa-operands.c (get_expr_operands): Handle
8637         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
8638         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
8639
8640 2006-01-19  Jeff Law  <law@redhat.com>
8641
8642         * tree-vrp.c (extract_range_from_assert): Refine the result range
8643         if the variable referenced by the ASSERT_EXPR has a range and
8644         either the tentative result range or the previous range is a
8645         VR_ANTI_RANGE.
8646
8647 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
8648
8649         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
8650
8651 2006-01-19  Jan Hubicka  <jh@suse.cz>
8652
8653         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
8654
8655 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
8656
8657         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
8658         (expand_compound_operation, expand_field_assignment): Fail if the
8659         bit lengths of an extract operation are out of range.
8660         (make_extraction): Compute wanted_inner_mode based on the position
8661         and length of the extraction.  Make it extraction_mode for non-constant
8662         positions, and do not modify offset in that case.  When generating a
8663         new MEM, use a mode that can hold the extraction while keeping correct
8664         alignment.  Remove code that supported MEMs wrapped by USEs.
8665         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
8666
8667 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
8668
8669         * config/s390/s390.md ("Y", "y"): New mode attribute.
8670         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
8671         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
8672         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
8673         "*addsi3_imm_cc", "*addsi3_carry1_cc",
8674         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
8675         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
8676         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
8677         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
8678         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
8679         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
8680         "addsi3", "subsi3"): Insn patterns removed.
8681         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
8682         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
8683         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
8684         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
8685         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
8686         "*sub<mode>3_cconly2"): New insn patterns.
8687         ("addsi3", "subsi3"): New expanders.
8688
8689 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
8690
8691         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
8692         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
8693         existing STMT_VINFO_VECTYPE if available.
8694         (vect_mark_relevant): Add special handling for stmts that are
8695         marked as STMT_VINFO_IN_PATTERN_P.
8696         (vect_analyze_loop): Call vect_pattern_recog.
8697         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
8698         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
8699         stmt_info.
8700         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
8701         (vect_recog_func_ptr): New function-pointer type.
8702         * tree-vect-patterns.c: New file.
8703         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
8704         (vect_recog_dot_prod_pattern, vect_pattern_recog):
8705         (vect_pattern_recog_1): New functions.
8706         (vect_pattern_recog_funcs): New array of function pointers.
8707
8708         * tree-vectorizer.h (ternary_op): New enum value.
8709         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
8710         declaration. Revised documentation. Removed redundant dump prints.
8711         Removed redundant argument. Added support for reduction patterns.
8712         (vectorizable_reduction): Added support for reduction patterns.
8713         (vect_transform_stmt): Added support for patterns.
8714
8715         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
8716         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
8717         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
8718         (expand_widen_pattern_expr): New function.
8719         (init_optabs): Initialize new optabs udot_prod_optab,
8720         sdot_prod_optab.
8721         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
8722         (sdot_prod_optab, udot_prod_optab): Define new optabs.
8723         (expand_widen_pattern_expr): New function declaration.
8724         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
8725         tree-codes.
8726         * tree-inline.c (estimate_num_insns_1): Added cases for new
8727         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
8728         * tree-pretty-print.c (dump_generic_node): Likewise.
8729         (op_prio): Likewise.
8730         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
8731         * tree-ssa-operands.c (get_expr_operands): Added case for
8732         DOT_PROD_EXPR.
8733         * tree-vect-patterns.c (widened_name_p): New function.
8734         (vect_recog_dot_prod_pattern): Added function implementation.
8735         * tree-vect-transform.c (get_initial_def_for_reduction): Added
8736         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
8737         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
8738         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
8739
8740         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
8741         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
8742         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
8743         (init_optabs): Initialize new optabs widen_ssum_optab,
8744         widen_usum_optab.
8745         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
8746         (widen_ssum_optab, widen_usum_optab): Define new optabs.
8747         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
8748         use instead of type of def.
8749         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
8750         function implementation.
8751         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
8752         widen_ssumv8hi): New.
8753
8754         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
8755         patterns.
8756
8757 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
8758
8759         PR c/25805
8760         * c-decl.c (add_flexible_array_elts_to_size): New function.
8761         (finish_decl): Use it.
8762
8763 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
8764
8765         * diagnostic.h: Include options.h.
8766         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
8767         dependancies for diagnostic.h.
8768         * Makefile.in (DIAGNOSTIC_H): Add options.h.
8769
8770 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
8771
8772         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
8773         (ssa_ro_call_cache_valid): Ditto.
8774         * tree-ssa-alias.c (sort_tags_by_id): New function.
8775         (init_transitive_clobber_worklist): Ditto.
8776         (add_to_worklist): Ditto.
8777         (mark_aliases_call_clobbered): Ditto.
8778         (compute_tag_properties): Ditto.
8779         (set_initial_properties): Ditto.
8780         (compute_call_clobbered): Ditto.
8781         (compute_may_aliases):  Call compute_call_clobbered and grouping.
8782         (compute_flow_sensitive_aliasing): Remove clobbering related code.
8783         (compute_flow_insensitive_aliasing): Grouping now happens in our
8784         caller.
8785         (setup_pointers_and_addressables): Remove clobbering related code.
8786         (add_may_alias): Ditto.
8787         (replace_may_alias): Ditto.
8788         (get_nmt_for): Ditto.
8789         (create_global_var):
8790         (is_escape_site): Return an escape_type enumeration.
8791         * tree-flow-inline.h (is_call_clobbered):  Global var does not
8792         imply call clobbered.
8793         (mark_call_clobbered): Take a reason for marking this. Remove
8794         marking of globalness, and cache invalidation.
8795         (clear_call_clobbered): Remove cache invalidation code.
8796         * tree-dfa.c (dump_variable): If details is on, dump the reason
8797         for escaping.
8798         * tree-outof-ssa.c (create_temp): Copy escape mask from original
8799         variable.
8800         * tree-flow.h (struct ptr_info_def): Add escape mask member.
8801         (struct var_ann_d): Ditto.
8802         (enum escape_type): New.
8803         (mark_call_clobbered): Adjust prototype.
8804         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
8805         are never call clobbered.
8806         Record reasons for escaping.
8807         * tree-ssa-structalias.h (is_escape_site): Update prototype.
8808         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
8809         (ssa_ro_call_cache_valid): Ditto.
8810         (clobbered_v_may_defs): Ditto.
8811         (clobbered_vuses): Ditto.
8812         (ro_call_vuses): Ditto.
8813         (clobber_stats): New.
8814         (init_ssa_operands): Zero out clobber stats.
8815         (fini_ssa_operands): Print out clobber stats.
8816         (get_call_expr_operands): Pass callee fndecl to
8817         add_call_read_ops).
8818         (add_call_clobber_ops): Remove use of cache.
8819         Add use of PURE_CONST information.
8820         (add_call_read_ops): Remove use of cache.
8821         Add use of static not_read information.
8822
8823 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
8824
8825         Introduce TLS descriptors for i386 and x86_64.
8826         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
8827         (TARGET_ANY_GNU_TLS): New macro.
8828         (enum tls_dialect): Added TLS_DIALECT_GNU2.
8829         (struct machine_function): Add tls_descriptor_call_expanded_p.
8830         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
8831         (ix86_current_function_calls_tls_descriptor): Likewise.
8832         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
8833         (override_options): Introduce gnu2 tls dialect.
8834         (ix86_frame_pointer_required): Functions containing TLSCALLs are
8835         not leaves.
8836         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
8837         Likewise.
8838         (legitimize_tls_address): Adjust logic for GNU2 TLS.
8839         (ix86_init_machine_status): Initialize new field.
8840         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
8841         (ix86_tls_module_base): New.
8842         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
8843         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
8844         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
8845         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
8846         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
8847         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
8848         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
8849         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
8850         * config/i386/predicates.md (tls_modbase_operand): New.
8851         (tp_or_register_operand): New.
8852
8853 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
8854
8855         * ipa-reference.c (check_operand):  Allow FUNCTION_DECL.
8856         (look_for_address_of): Ditto.
8857         (ipa_init): Walk the function decls.
8858         (static_execute): Don't set readonly on FUNCTION_DECL's.
8859
8860 2006-01-18  Roger Sayle  <roger@eyesopen.com>
8861
8862         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
8863         for shifts where the source and destination registers are different.
8864
8865 2006-01-18  Paul Brook  <paul@codesourcery.com>
8866
8867         Merge from csl-arm-branch.
8868         2005-03-14  Julian Brown  <julian@codesourcery.com>
8869         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
8870         (aeabi_llsl): Likewise.
8871         (ashrdi3): Likewise.
8872         (aeabi_lasr): Likewise.
8873         (lshrdi3): Likewise.
8874         (aeabi_llsr): Likewise.
8875         2005-03-10  Julian Brown  <julian@codesourcery.com>
8876         * config.gcc: Disable shared libgcc for SymbianOS.
8877         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
8878
8879 2006-01-18  DJ Delorie  <dj@redhat.com>
8880
8881         * c-pragma.c (handle_pragma_diagnostic): New.
8882         (init_pragma): Register it.
8883         * doc/extend.texi: Document it.
8884
8885         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
8886         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
8887         (diagnostic_context): Add classify_diagnostic[].
8888         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
8889         as errors if they're overridden to DK_WARNING.
8890         (diagnostic_initialize): Initialize classify_diagnostic[].
8891         (diagnostic_set_kind_override): New.
8892         (diagnostic_report_diagnostic): Check for kind changes.
8893         * opts.c (common_handle_option): Take lang_mask.  Update callers.
8894         Handle OPT_Werror_.
8895         * common.opt (Werror=): New.
8896         * doc/invoke.texi: Document -Werror=*
8897
8898 2006-01-18  Jeff Law  <law@redhat.com>
8899
8900         * tree-vrp.c (test_for_singularity): Correct test for new
8901         min limit.  Use operand_equal_p rather than pointer equality
8902         for testing if new min/max values are equal.
8903
8904         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
8905         using range information until after propagation and folding.
8906
8907 2006-01-18  Richard Henderson  <rth@redhat.com>
8908             Aldy Hernandez  <aldyh@redhat.com>
8909             Jakub Jelinek  <jakub@redhat.com>
8910             Diego Novillo  <dnovillo@redhat.com>
8911
8912         * omp-low.c: New file.
8913         * c-omp.c: New file.
8914
8915 2006-01-18  Richard Henderson  <rth@redhat.com>
8916             Jakub Jelinek  <jakub@redhat.com>
8917             Diego Novillo  <dnovillo@redhat.com>
8918
8919         * doc/invoke.texi: Document -fopenmp.
8920         * tree-dump.h (debug_function): Declare.
8921         * hooks.c (hook_bool_tree_bool_false): New function.
8922         (hook_tree_tree_null): Remove.
8923         (hook_tree_tree_tree_null): New.
8924         * hooks.h: Update to match.
8925         * tree-pretty-print.c (debug_tree_chain): New.
8926         (print_generic_expr): Handle TDF_CHAIN.
8927         (dump_generic_node): Handle BLOCK.
8928         Do not abort with incomplete SWITCH_EXPRs.
8929         Do not dump body of an OpenMP directive if TDF_SLIM is given.
8930         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
8931         print space after directive name.
8932         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
8933         Handle OMP_MASTER and OMP_ORDERED.
8934         Handle printing of OMP_BODY just in one place, goto
8935         dump_omp_body in the rest of OMP_* nodes that have
8936         OMP_BODY.
8937         Don't handle clause nodes here.  Update omp statements to
8938         use dump_omp_clauses.
8939         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
8940         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
8941         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
8942         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
8943         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
8944         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
8945         Adjust output for GOMP_PARALLEL.
8946         (dump_omp_clauses): New.
8947         (print_declaration): Dump DECL_VALUE_EXPR.
8948         (op_symbol_1): Split out of op_symbol.
8949         (dumping_stmts): Remove.  Update all users.
8950         * cgraph.c (cgraph_analyze_queue): New.
8951         (cgraph_add_new_function): New.
8952         * cgraph.h (cgraph_analyze_queue): Declare.
8953         (cgraph_add_new_function): Declare.
8954         (cgraph_lower_function): Remove.
8955         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
8956         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
8957         and TYPE_P nodes in its default clause.
8958         (empty_body_p): New.
8959         (tree_range_check_failed): New.
8960         (build5_stat): New.
8961         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
8962         OMP_CLAUSE_REDUCTION_MERGE,
8963         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
8964         OMP_CLAUSE_PRIVATE_DEBUG,
8965         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
8966         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
8967         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
8968         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
8969         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
8970         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
8971         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
8972         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
8973         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
8974         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
8975         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
8976         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
8977         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
8978         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
8979         (TREE_RANGE_CHECK): New.
8980         (empty_body_p): Declare.
8981         (enum omp_clause_default_kind): New.
8982         (build_string_literal): Declare.
8983         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
8984         (build5_stat, build5): Declare.
8985         * tree-pass.h (TDF_CHAIN): Define.
8986         * tree-pass.h (PROP_gimple_lomp): Define.
8987         (pass_lower_omp): Declare.
8988         * diagnostic.h (debug_tree_chain): Declare.
8989         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
8990         mode_for_size.
8991         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
8992         * builtins.c (build_string_literal): Make extern.
8993         * gcc.c (include_spec_function): New.
8994         (static_spec_functions): Add it.
8995         (main): Move load of libgomp.spec ...
8996         (LINK_COMMAND_SPEC): ... here.
8997         (link_gomp_spec): New.
8998         (static_specs): Include it.
8999         (LINK_COMMAND_SPEC): Add link_gomp.
9000         (GOMP_SELF_SPECS): New.
9001         (driver_self_specs): Include it.
9002         (switch_matches): Don't mark inline.
9003         (main): Load libgomp.spec.
9004         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
9005         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
9006         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
9007         * tree-gimple.h (enum omp_parallel): Declare.
9008         (determine_parallel_type): Declare.
9009         (omp_firstprivatize_variable): Declare.
9010         (omp_reduction_init): Declare.
9011         (diagnose_omp_structured_block_errors): Declare.
9012         (struct walk_stmt_info): Add want_return_expr.
9013         (struct walk_stmt_info): Add want_bind_expr, want_locations.
9014         (find_omp_clause): Declare.
9015         (insert_field_into_struct): Declare.
9016         (struct walk_stmt_info): Move from tree-nested.c
9017         (walk_stmts): Declare.
9018         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
9019         to 200505.
9020         * cgraphunit.c (cgraph_lower_function): Make static.
9021         (cgraph_finalize_pending_functions): New.
9022         (cgraph_finalize_function): Call it.
9023         (cgraph_finalize_compilation_unit): Likewise.
9024         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
9025         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
9026         (BT_FN_UINT_UINT): New.
9027         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
9028         DEF_FUNCTION_TYPE_VAR_4): Document.
9029         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
9030         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
9031         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
9032         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
9033         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
9034         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
9035         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
9036         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
9037         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
9038         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
9039         into separate files.
9040         (DEF_GOMP_BUILTIN): New.
9041         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
9042         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
9043         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
9044         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
9045         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
9046         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
9047         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
9048         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
9049         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
9050         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
9051         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
9052         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
9053         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
9054         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
9055         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
9056         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9057         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9058         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9059         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9060         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
9061         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
9062         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
9063         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
9064         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
9065         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
9066         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
9067         * sync-builtins.def: New file, moved from builtins.def.
9068         * omp-builtins.def: New file, moved from builtins.def.
9069         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
9070         * gimple-low.c (lower_function_body): Clear data.
9071         (lower_stmt): Do not handle COMPOUND_EXPR.
9072         Remove call to print_node_brief.
9073         * c-tree.h (c_finish_omp_clauses): New prototype.
9074         (C_DECL_THREADPRIVATE_P): Define.
9075         (lookup_name_no_remap, c_omp_remap_private): Remove
9076         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
9077         (check_for_loop_decls): Update decl.
9078         (lookup_name_no_remap, c_omp_remap_private): Declare.
9079         (build_indirect_ref, build_modify_expr, pushdecl,
9080         pushdecl_top_level): Move to c-common.h.
9081         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
9082         before the switch, but just in the 2 places that need it.
9083         * c-decl.c (diagnose_mismatched_decls): Do not check for
9084         mismatched thread-local attributes when OLDDECL is marked
9085         threadprivate and NEWDECL has no thread-local attributes.
9086         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
9087         (c_gimple_diagnostics_recursively): Rename from
9088         c_warn_unused_result_recursively.  Invoke
9089         diagnose_omp_structured_block_errors.
9090         (check_for_loop_decls): Return a singular decl found.
9091         * langhooks.c (lhd_omp_predetermined_sharing): Return
9092         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
9093         (lhd_omp_firstprivatize_type_sizes): New.
9094         (lhd_omp_assignment): New.
9095         (lhd_omp_predetermined_sharing): New.
9096         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
9097         (struct lang_hooks_for_types): Add
9098         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
9099         omp_predetermined_sharing, omp_disregard_value_expr,
9100         omp_private_debug_clause, omp_clause_default_ctor,
9101         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
9102         (c_finish_omp_clauses): New.
9103         (c_finish_bc_stmt): Diagnose break within omp for.
9104         (c_begin_omp_parallel, c_finish_omp_parallel): New.
9105         (build_unary_op): Return error_mark after reporting
9106         a readonly_error.
9107         (build_modify_expr): Likewise.
9108         * gimplify.c: Include optabs.h and pointer-set.h.
9109         (enum gimplify_omp_var_data): Declare.
9110         (struct gimplify_omp_ctx): Declare.
9111         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
9112         and combined_ctxp.
9113         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
9114         (push_gimplify_context, pop_gimplify_context): Allow nesting.
9115         (splay_tree_compare_decl_uid): New.
9116         (new_omp_context): New.
9117         (delete_omp_context): New.
9118         (gimple_add_tmp_var): Call omp_add_variable.
9119         (gimplify_bind_expr): Likewise.
9120         (gimplify_var_or_parm_decl): If omp_notice_variable returned
9121         true, disregard DECL_VALUE_EXPR on the decl if any.
9122         (gimplify_expr_in_ctx): New.
9123         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
9124         omp_add_variable, omp_notice_variable, omp_is_private
9125         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
9126         gimplify_adjust_omp_clauses, gimplify_omp_parallel
9127         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
9128         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
9129         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
9130         gimplify_omp_atomic): New.
9131         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
9132         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
9133         OMP_CRITICAL and OMP_ATOMIC.
9134         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
9135         * c-pragma.h (enum pragma_kind): Add
9136         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
9137         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
9138         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
9139         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
9140         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
9141         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
9142         PRAGMA_OMP_THREADPRIVATE.
9143         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
9144         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
9145         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
9146         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
9147         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
9148         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
9149         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
9150         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
9151         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
9152         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
9153         * tree-ssa-dce.c (find_control_dependence): Do not assume that
9154         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
9155         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
9156         OpenMP directives.
9157         (struct nesting_info): Add field_map,
9158         suppress_expansion, debug_var_chain.
9159         (create_nesting_tree): Initialize them.
9160         (lookup_field_for_decl): Use field_map.
9161         (get_nonlocal_debug_decl, get_local_debug_decl): New.
9162         (convert_local_omp_clauses): New.
9163         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
9164         (walk_body): Split out of walk_function.
9165         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
9166         (convert_nonlocal_reference): Handle omp statements.
9167         (convert_local_reference): Likewise.
9168         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
9169         (unnest_nesting_tree): New.
9170         (lower_nested_functions): Call it.
9171         (insert_field_into_struct): Make extern.
9172         (struct walk_stmt_info): Move to tree-gimple.h.
9173         (walk_stmts): Make extern.
9174         * omp-builtins.def: New file.
9175         * tree-iterator.c (expr_only): Clarify comment.
9176         * c-common.h (pushdecl_top_level, pushdecl,
9177         build_modify_expr, build_indirect_ref,
9178         c_finish_omp_master, c_finish_omp_critical,
9179         c_finish_omp_ordered, c_finish_omp_barrier,
9180         c_finish_omp_atomic, c_finish_omp_flush,
9181         c_finish_omp_for, c_split_parallel_clauses,
9182         omp_clause_default_kind, c_omp_sharing_predetermined,
9183         c_omp_remap_decl): Declare.
9184         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
9185         (OBJS-common): Add omp-low.o.
9186         (c-omp.o, omp-low.o): Add.
9187         (gimplify.o): Add dependency on $(OPTABS_H).
9188         (GTFILES): Add omp-low.c.
9189         (gt-stringpool.h): Add.
9190         * tree-cfg.c (set_bb_for_stmt): Do not update the
9191         block-to-labels map if we are currently expanding to RTL.
9192         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
9193         checks.
9194         Handle IDENTIFIER_NODE.
9195         (tree_verify_flow_info): Do not ICE when emitting error
9196         messages about invalid labels.
9197         (dump_function_to_file): Reset CFUN before emitting the body
9198         of the function.
9199         (debug_function): New.
9200         * passes.c (init_optimization_passes): Schedule
9201         pass_lower_omp.
9202         * langhooks-def.h (lhd_omp_predetermined_sharing,
9203         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
9204         Declare.
9205         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
9206         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
9207         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
9208         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
9209         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
9210         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
9211         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
9212         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
9213         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
9214         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
9215         (LANG_HOOK_DECLS): Use them.
9216
9217 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
9218             Richard Henderson  <rth@redhat.com>
9219             Jakub Jelinek  <jakub@redhat.com>
9220             Diego Novillo  <dnovillo@redhat.com>
9221
9222         * c-parser.c (pragma_omp_clause): Define.
9223         (c_parser_declaration_or_fndef): Document OpenMP syntax.
9224         (c_parser_compound_statement): Likewise.
9225         (c_parser_statement): Likewise.
9226         (c_parser_pragma): Handle omp pragmas.
9227         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
9228         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
9229         (c_parser_omp_clause_name, check_no_duplicate_clause,
9230         c_parser_omp_variable_list,
9231         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
9232         c_parser_omp_clause_copyprivate,
9233         c_parser_omp_clause_default,
9234         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
9235         c_parser_omp_clause_lastprivate,
9236         c_parser_omp_clause_nowait,
9237         c_parser_omp_clause_num_threads,
9238         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
9239         c_parser_omp_clause_reduction,
9240         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
9241         c_parser_omp_all_clauses, c_parser_omp_structured_block,
9242         c_parser_omp_atomic, c_parser_omp_barrier,
9243         c_parser_omp_critical, c_parser_omp_flush,
9244         c_parser_omp_for_loop, c_parser_omp_for,
9245         c_parser_omp_master, c_parser_omp_ordered,
9246         c_parser_omp_sections_scope, c_parser_omp_sections,
9247         c_parser_omp_parallel, c_parser_omp_single,
9248         c_parser_omp_construct, c_parser_omp_threadprivate): New.
9249         * c-pragma.c (init_pragma): Do omp pragma registration here.
9250         * c.opt (fopenmp): New flag.
9251
9252 2006-01-18  Eric Christopher  <echristo@apple.com>
9253
9254         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
9255         * config/darwin.h (GOMP_SELF_SPECS): Define.
9256
9257 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
9258
9259         * rtl.h: Remove the prototype for reg_alloc.
9260
9261 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9262
9263         PR target/25731
9264         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
9265         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
9266         sjlj and dwarf2 exception handling.
9267         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
9268         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
9269         * pa/pa.c (function_value): Treat complex and vector types as
9270         aggregates.
9271         (function_arg): Likewise.  Only pass scalar floats in the floating
9272         point argument registers.
9273         * pa/t-slibgcc-dwarf-ver: New file.
9274         * pa/t-slibgcc-sjlj-ver: New file.
9275         * pa/t-slibgcc-elf-ver: Delete file.
9276
9277 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
9278
9279         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
9280         unlikely_test_section_p test.
9281
9282 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
9283
9284         * mode-switching.c (optimize_mode_switching): Make it static.
9285         * basic-block.h: Remove the prototype for
9286         optimize_mode_switching.
9287
9288         * modulo-sched.c (sms_schedule): Make it static.
9289         * rtl.h: Remove the prototype for sms_schedule.
9290
9291         * postreload-gcse.c (gcse_after_reload_main): Make it static.
9292         * rtl.h: Remove the prototype for gcse_after_reload_main.
9293
9294         * reg-stack.c (reg_to_stack): Make it static.
9295         * rtl.h: Remove the prototype for reg_to_stack.
9296
9297         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
9298         Make them static.
9299         * rtl.h: Remove the prototypes for regrename_optimize and
9300         copyprop_hardreg_forward.
9301
9302 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
9303
9304         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
9305         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
9306         Test against the appropriate null constant for the mode.
9307         If 'fixup_overlap' is true, swap the operands if they overlap.
9308         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
9309         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
9310         alpha_split_tmode_pair and adjust for above change.
9311         * config/alpha/alpha.md (movtf_internal): Adjust call to
9312         alpha_split_tfmode_pair and rely on it to swap the operands.
9313         (movti_internal): New insn and post-reload splitter.
9314         (movti): New expander.
9315
9316 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
9317
9318         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
9319         operands.
9320
9321 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
9322
9323         * rtlanal.c (global_reg_mentioned_p_1,
9324         global_reg_mentioned_p): Remove.
9325         * rtl.h: Remove the prototype for global_reg_mentioned_p.
9326
9327         * flow.c (initialize_uninitialized_subregs): Make it static.
9328         * rtl.h: Remove the prototype for
9329         initialize_uninitialized_subregs.
9330
9331         * function.c (instantiate_virtual_regs): Make it static.
9332         * function.h: Remove the prototype for
9333         instantiate_virtual_regs.
9334
9335         * regmove.c (regmove_optimize, combine_stack_adjustments):
9336         Make them static.
9337         * rtl.h: Remove the prototypes for regmove_optimize and
9338         combine_stack_adjustments.
9339
9340 2006-01-17  Roger Sayle  <roger@eyesopen.com>
9341
9342         * config/i386/i386.c (COSTS_N_BYTES): New macro.
9343         (size_cost): Encode costs in bytes so that a reg-reg addition is
9344         equivalent to COSTS_N_INSNS(1).
9345         (override_options): Use the size_cost.branch_cost as the default
9346         ix86_branch_cost when optimizing for size.
9347
9348 2006-01-18  Ben Elliston  <bje@au.ibm.com>
9349
9350         * Makefile.in (D32PBIT_FUNCS): New.
9351         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
9352         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
9353         D64PBIT_FUNCS and D128PBIT_FUNCS.
9354         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
9355         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
9356         D128PBIT are set.
9357         (decnumber_dep): Define.
9358         * doc/libgcc.texi (Decimal float library routines): New node.
9359         * config/dfp-bit.h, config/dfp-bit.c: New files.
9360
9361 2006-01-18  Ben Elliston  <bje@au.ibm.com>
9362
9363         * expr.c (emit_move_change_mode): Always adjust addresses, not
9364         just during reload.  Copy replacements only during reload.
9365         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
9366         emit_move_via_integer.
9367
9368 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
9369
9370         * Makefile.in (check-%, check-consistency): Use $${srcdir}
9371         instead of $(srcdir) and ${srcdir}.
9372
9373 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
9374
9375         PR target/592
9376         PR middle-end/11135
9377         * arm.h (struct machine_function): Add pic_reg.
9378         * arm.c (arm_pic_register): Make unsigned.
9379         (arm_override_options): Only set arm_pic_register if
9380         TARGET_SINGLE_PIC_BASE.
9381         (use_return_insn): Only test for a pic register if it is fixed.
9382         (arm_compute_save_reg0_reg12_mask): Likewise.
9383         (thumb_compute_save_reg_mask): Likewise.
9384         (legitimate_pic_operand): Factor out some known invariants.
9385         (legitimize_pic_address): If we don't have a fixed pic register,
9386         then set up a pseudo in the function entry sequence.  Handle the
9387         pic base being in a pseudo.
9388         (arm_load_pic_register): Handle the pic register being in a pseudo.
9389         (arm_expand_prologue): Only set up the pic register if it is fixed.
9390         (thumb_expand_prologue): Likewise.
9391         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
9392         (pic_load_addr_based_insn): Likewise.
9393         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
9394         fixed.
9395
9396 2006-01-18  Ben Elliston  <bje@au.ibm.com>
9397
9398         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
9399         decimal float modes for all floating point registers.
9400
9401         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
9402         match_code "mem" with match_test "macho_lo_sum_memory_operand".
9403
9404 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
9405
9406         PR c/25682
9407         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
9408         even when the pointer is not NULL.
9409
9410 2006-01-16  Ian Lance Taylor  <ian@airs.com>
9411
9412         * common.opt (ftoplevel-reorder): New option.
9413         * cgraph.c (cgraph_asm_nodes): New global variable.
9414         (cgraph_asm_last_node): New static variable.
9415         (cgraph_order): New global variable.
9416         (cgraph_create_node): Set new order field.
9417         (cgraph_varpool_node): Likewise.
9418         (decide_is_variable_needed): Return true if not
9419         flag_toplevel_reorder.
9420         (cgraph_add_asm_node): New function.
9421         * cgraph.h (struct cgraph_node): Add order field.
9422         (struct cgraph_varpool_node): Add order field.
9423         (struct cgraph_asm_node): Define.
9424         (cgraph_asm_nodes, cgraph_order): Declare.
9425         (cgraph_add_asm_node): Declare.
9426         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
9427         function.
9428         (cgraph_varpool_assemble_pending_decls): Call it.
9429         (cgraph_output_pending_asms): New static function.
9430         (cgraph_finalize_compilation_unit): Call it.
9431         (struct cgraph_order_sort): Define.
9432         (cgraph_output_in_order): New static function.
9433         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
9434         !flag_toplevel_reorder case.
9435         * c-parser.c: Include "cgraph.h".
9436         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
9437         assemble_asm.
9438         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
9439         than -fno-unit-at-a-time.
9440         * doc/invoke.texi (Option Summary): Mention
9441         -fno-toplevel-reorder.
9442         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
9443         -funit-at-a-time documentation.
9444
9445 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
9446             Kazu Hirata  <kazu@codesourcery.com>
9447
9448         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
9449
9450 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
9451
9452         * Makefile.in (FUNCTION_H): New.  Use it instead of
9453         function.h throughout the file.
9454         * function.h: Include tree.h.
9455
9456 2006-01-17  Ben Elliston  <bje@au.ibm.com>
9457
9458         * recog.c: Separate some functions with whitespace.
9459
9460 2006-01-16  Richard Henderson  <rth@redhat.com>
9461
9462         Merge from gomp branch:
9463         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
9464         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
9465         and rename from struct inline_data.  Rename callee* to dst*;
9466         caller* to src*; add copy_decl hook, transform_call_graph_edges,
9467         transform_new_cfg, transform_return_to_modify, and
9468         transform_lang_insert_block flags; remove cloning_p, versioning_p,
9469         update_clones_p.
9470         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
9471         (copy_decl_for_dup): Remove.
9472         * tree-inline.c (struct inline_data): Move to header.
9473         (insert_decl_map): Export.
9474         (remap_decl): Update for member name changes.  Use copy_decl hook.
9475         Allow for replacement to be a non-decl.  Remove dead code.
9476         (remap_type_1): Check for existing mapping.
9477         (remap_type): Export.
9478         (remap_decls): Update for member name changes.
9479         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
9480         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
9481         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
9482         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
9483         (tree_function_versioning, build_duplicate_type): Likewise.
9484         (copy_body_r): Likewise.  Export.
9485         (copy_decl_for_dup): Split into ...
9486         (copy_decl_for_dup_finish, copy_decl_to_var,
9487         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
9488         (replace_ref_tree, inlining_p): Remove.
9489
9490 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
9491
9492         * ifcvt.c (if_convert): Make it static.
9493         * rtl.h: Remove the prototype for if_convert.
9494
9495         * local-alloc.c (local_alloc): Make it static.
9496         * rtl.h: Remove the prototype for local_alloc.
9497
9498         * loop.c (loop_optimize): Make it static.
9499         * cfgloop.h: Remove the prototype for loop_optimize.
9500         * rtl.h: Likewise.
9501
9502 2006-01-16  DJ Delorie  <dj@redhat.com>
9503
9504         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
9505         mems.
9506
9507 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9508
9509         * pa.md: Disparage copies between general and floating-point registers
9510         in 32-bit move patterns.
9511
9512 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
9513
9514         PR testsuite/25741
9515         * Makefile.in (check-%): Depend on site.exp instead of
9516         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
9517         directories.
9518
9519 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
9520
9521         * global.c (global_alloc): Make it static.
9522         * rtl.h: Remove the prototype for global_alloc.
9523
9524 2006-01-16  Richard Guenther  <rguenther@suse.de>
9525
9526         * tree-ssa-alias.c (struct used_part): Add write_only field.
9527         (get_or_create_used_part_for): Initialize it to true.
9528         (create_overlap_variables_for): Don't create structure variables
9529         for structures that only are written to.
9530         (find_used_portions): Handle MODIFY_EXPR to track whether a
9531         structure is only written to.
9532
9533 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
9534
9535         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
9536         static.
9537         * basic-block.h: Remove the prototype for
9538         partition_hot_cold_basic_blocks.
9539
9540 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
9541
9542         * cppspec.c (lang_specific_spec_functions): Remove.
9543         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
9544         * gcc.h (lang_specific_spec_functions): Remove.
9545         * gccspec.c (lang_specific_spec_functions): Remove.
9546
9547 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
9548
9549         * combine.c (record_value_for_reg): Invalidate registers
9550         if INSN is null.
9551         (record_dead_and_set_regs_1): Likewise, by passing them to
9552         record_value_for_reg.
9553         (record_dead_and_set_regs): Invalidate stores made by a
9554         call.  We do not combine across a call, but we still
9555         relied on equivalences.
9556
9557 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
9558
9559         * tree-vrp.c (extract_range_from_binary_expr): Cope with
9560         vrp_int_const_binop returning non-constant nodes.
9561
9562 2006-01-16  Paul Brook  <paul@codesourcery.com>
9563
9564         * config/m68k/m68k.c (output_move_const_into_data_reg):
9565         Output correct mnemonic for mvz and mvs.
9566
9567 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
9568
9569         * rtl-factoring.c: Add sequence abstraction algorithm.
9570         * cfgcleanup.c (outgoing_edges_match): Extra checks.
9571         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
9572         ABNORMAL edges.
9573         (block_has_preserve_label): New function.
9574         * common.opt: Register new pass.
9575         * Makefile.in: Ditto.
9576         * passes.c: Ditto.
9577         * timevar.def: Ditto.
9578         * tree-pass.h: Ditto.
9579         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
9580         * rtl.h (make_jump_insn_raw): Add forward decl.
9581         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
9582
9583 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
9584             Roger Sayle  <roger@eyesopen.com>
9585
9586         * fold-const.c (fold_minmax): New static function.
9587         (fold_binary) <MIN_EXPR>: Call it.
9588         <MAX_EXPR>: Likewise.
9589         * stor-layout.c (place_field): Use DECL_SIZE consistently
9590         in the computation of the new record size.
9591
9592 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
9593
9594         * cse.c (cse_condition_code_reg): Make it static.
9595         * rtl.h: Remove the prototype for cse_condition_code_reg.
9596
9597         * combine.c (combine_instructions): Make it static.
9598         * rtl.h: Remove the prototype for combine_instructions.
9599
9600 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9601
9602         PR target/25168
9603         * tree.c (get_file_function_name_long): Concatenate the first global
9604         object name with a string derived from the input filename of the object
9605         for type "F".
9606
9607 2006-01-16  Ben Elliston  <bje@au.ibm.com>
9608
9609         * config/i386/winnt-stubs.c: Update FSF address.
9610         * config/xtensa/ieee754-df.S: Ditto.
9611         * config/xtensa/ieee754-sf.S: Ditto.
9612
9613 2006-01-14  Ian Lance Taylor  <ian@airs.com>
9614
9615         * ifcvt.c (noce_init_if_info): New static function, broken out of
9616         noce_process_if_block.
9617         (noce_process_if_block): Call noce_init_if_info.
9618         (check_cond_move_block): New static function.
9619         (cond_move_process_if_block): New static function.
9620         (process_if_block): Call cond_move_process_if_block.
9621
9622 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
9623
9624         * cselib.c (hash_table): Rename to cselib_hash_table.
9625         (cselib_clear_table, discard_useless_values,
9626         remove_useless_values, cselib_lookup_mem, cselib_lookup,
9627         cselib_init, cselib_finish): Adjust uses of hash_table.
9628
9629 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
9630
9631         PR tree-optimization/25485
9632         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
9633         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
9634         is known to be false and true, respectively.
9635
9636 2006-01-14  Richard Guenther  <rguenther@suse.de>
9637
9638         PR tree-optimization/22548
9639         PR tree-optimization/22555
9640         PR tree-optimization/22501
9641         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
9642         * params.def (salias-max-array-elements): New parameter.
9643         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
9644         * doc/invoke.texi (salias-max-array-elements): Document.
9645         * tree-flow-inline.h (var_can_have_subvars): We also handle
9646         arrays now.
9647         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
9648         COMPONENT_REF.
9649         * tree-ssa-structalias.c (params.h): Include.
9650         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
9651         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
9652         (get_constraint_for): For ADDR_EXPR operating on something
9653         containing an ARRAY_REF, add all subvars to the solution.
9654         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
9655         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
9656         for creating MUST_DEFs.
9657         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
9658
9659 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
9660
9661         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
9662         functions.
9663         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
9664         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
9665         number_of_iterations_le): New functions.
9666         (number_of_iterations_special): Removed.
9667         (number_of_iterations_exit): Do not use number_of_iterations_special.
9668         * tree.c (unsigned_type_for): Always return integer type.
9669
9670 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
9671         Richard Guenther  <rguenther@suse.de>
9672
9673         PR rtl-optimization/24257
9674         * gcse.c (find_moveable_store): Only consider a store movable
9675         when the SET_SRC of the insn can be assigned to a register.
9676
9677 2006-01-14  Ian Lance Taylor  <ian@airs.com>
9678
9679         * tree.c (tree_not_class_check_failed): New function.
9680         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
9681         (tree_not_class_check_failed): Declare.
9682
9683 2006-01-13  Ian Lance Taylor  <ian@airs.com>
9684
9685         * reload1.c (do_output_reload): Add assertion rejecting a
9686         CALL_INSN.
9687
9688 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
9689
9690         * combine.c (struct reg_stat): Add new fields truncation_label and
9691         truncated_to_mode.
9692         (record_value_for_reg): Reset truncated_to_mode.
9693         (record_truncated_value): New function.
9694         (check_promoted_subreg): Call it.  Rename to check_conversions.
9695         (combine_instructions): Rename check_promoted_subreg to
9696         check_conversions.
9697         (reg_truncated_to_mode): New function.
9698         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
9699         (gen_lowpart_or_truncate): New function.
9700         (force_to_mode): Use it instead of gen_lowpart.
9701
9702 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
9703
9704         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
9705         VAR is a tag, not its type tag.
9706
9707 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
9708
9709         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
9710         alternatives to match style of other entries.
9711         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
9712
9713 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
9714
9715         PR tree-optimization/25771
9716         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
9717         SSA_NAMES.
9718
9719 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
9720
9721         PR tree-opt/24365
9722         * tree-inline.c (declare_return_variable): If the return variable
9723         was marked as a non gimple complex, set the return slot variable
9724         to be a non gimple comple variable.
9725
9726 2006-01-13  Richard Guenther  <rguenther@suse.de>
9727
9728         * builtins.c (expand_builtin_sincos): New function.
9729         (expand_builtin_mathfn_3): Remove dead code, sin and cos
9730         do not set errno.
9731         (expand_builtin): Expand sincos using expand_builtin_sincos.
9732
9733 2006-01-12  DJ Delorie  <dj@redhat.com>
9734
9735         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
9736         shift counts, separate SI shifts for m32c vs m16c, pass shift type
9737         so that constant shifts can be split.
9738         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
9739         (m32c_valid_pointer_mode): Make static.
9740         (shift_gen_func_for): New.
9741         (m32c_prepare_shift): Use it.  Split large const shifts into
9742         multiple shifts.
9743         * config/m32c/predicates.md (shiftcount_operand): Allow more
9744         general operands.
9745         (longshiftcount_operand): New.
9746         * doc/md.texi (Machine Constraints): Document In6.
9747
9748 2006-01-13  Ben Elliston  <bje@au.ibm.com>
9749
9750         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
9751         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
9752         documentation.
9753
9754 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
9755
9756         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
9757         to try to avoid clobbering pieces of structures when we know
9758         something about the whole structure.
9759         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
9760
9761 2006-01-13  Ben Elliston  <bje@au.ibm.com>
9762
9763         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
9764         return in memory, as this is no limitation is no longer present.
9765
9766 2006-01-12  DJ Delorie  <dj@redhat.com>
9767
9768         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
9769         mova with fb, and for fb+0 -> An.
9770
9771         * config/m32c/mov.md (peephole2): Fix enabling logic.
9772
9773         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
9774         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
9775         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
9776         FINI_ARRAY_SECTION_ASM_OP): Define.
9777
9778         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
9779         variable.
9780         (m32c_legitimize_reload_address): New logic to reload FB to An.
9781         (m32c_output_reg_push): Add newline.
9782         (m32c_output_reg_pop): Likewise.
9783
9784 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
9785
9786         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
9787
9788 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
9789
9790         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
9791
9792 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
9793
9794         * config/sh/predicates.md (sh_rep_vec): Add parallel to
9795         match_code.
9796
9797 2006-01-11  Ben Elliston  <bje@au.ibm.com>
9798
9799         * rtlanal.c (find_reg_note): Assert insn is not null.
9800
9801 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
9802
9803         * df-scan.c (df_hard_reg_init): Move declaration of i outside
9804         ifdef.
9805
9806 2006-01-11  Jeff Law  <law@redhat.com>
9807
9808         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
9809         hold edge pairs.
9810         (mark_threaded_blocks, register_jump_thread): New functions.
9811         (thread_through_all_blocks): Remove unwanted argument.  No
9812         longer rely on e->aux to communicate thread target info.
9813         Call mark_threaded_blocks.  Release the threaded_blocks
9814         bitmap and threaded_edges vector when complete.
9815         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
9816         (threaded_blocks): Remove.
9817         (tree_ssa_dominator_optimize): Remove initialization and
9818         finalization of threaded_blocks.  Simplify call to
9819         thread_through_all_blocks.
9820         (thread_across_edge): Call register_jump_thread rather than
9821         storing thread information into e->aux.
9822         (free_all_edge_infos): Simplify now that e->aux is no longer
9823         used to communicate with thread_through_all_blocks.
9824         * tree-flow.h (thread_through_all_blocks): Update prototype.
9825         (register_jump_thread): Prototype.
9826
9827 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
9828
9829         * df-core.c (df_compact_blocks, df_bb_replace): Use
9830         SET_BASIC_BLOCK instead of BASIC_BLOCK.
9831
9832 2006-01-11  Richard Guenther  <rguenther@suse.de>
9833
9834         PR tree-optimization/25734
9835         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
9836         stop propagation after successful propagation to the LHS.
9837
9838 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
9839
9840         * basic-block.h (control_flow_graph): Change the type of
9841         x_basic_block_info to VEC(basic_block,gc) *.
9842         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
9843         basic_block_info.
9844         (SET_BASIC_BLOCK): New.
9845         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
9846         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
9847         * cfgbuild.c (find_basic_blocks): Likewise.
9848         * cfglayout.c (fixup_reorder_chain): Likewise.
9849         * cfgrtl.c (create_basic_block_structure,
9850         rtl_create_basic_block): Likewise.
9851         * ifcvt.c (find_if_case_1): Likewise.
9852         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
9853         Likewise.
9854
9855 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
9856
9857         * Makefile.in: Removed rotted odf.c entry.
9858
9859 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
9860
9861         PR target/25706
9862         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
9863         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
9864         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
9865         output pattern modifier, not %e.
9866         * config/cris/cris.c (cris_op_str): Update comment about pattern
9867         modifier.
9868         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
9869         before falling through into...
9870         <case 'E'>: Redefined from old 'e' case.
9871
9872 2006-01-11  Jan Hubicka  <jh@suse.cz>
9873
9874         PR target/25042
9875         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
9876
9877 2006-01-11  Jan Hubicka  <jh@suse.cz>
9878
9879         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
9880         * i386.c (x86_decompose_lea): Kill.
9881         (ix86_rtx_costs): Kill.
9882
9883 2006-01-11  Jan Hubicka  <jh@suse.cz>
9884
9885         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
9886         * cgraph.h (cgraph_node): Add inline_decl.
9887         (cgraph_insert_node_to_hashtable): Declare.
9888         (save_inline_function_body): Declare.
9889         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
9890         clones.
9891         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
9892         (cgraph_function_versioning): Update call of tree_function_versioning.
9893         (save_inline_function_body): New function.
9894         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
9895         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
9896         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
9897         (cgraph_default_inline_p): Likewise.
9898         (cgraph_decide_inlining_incrementally): Likewise.
9899         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
9900         (copy_bb): Kill saving; do updating of clones.
9901         (copy_cfg_body): Kill saving.
9902         (initialize_inlined-parameters): Likewise.
9903         (expand_call_inline): Likewise.
9904         (save_body): Kill.
9905         (tree_function_versioning): New parameter "update_clones".
9906         (inlining_p): Kill saving.
9907         * tree-inline.h (tree_function_versioning): Update prototype.
9908         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
9909         saving.
9910
9911 2006-01-11  Ian Lance Taylor <ian@airs.com>
9912
9913         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
9914         Allow undoing set of machine mode.
9915         (do_SUBST): Use enums instead of is_int.
9916         (do_SUBST_MODE): New function.
9917         (SUBST_MODE): New macro.
9918         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
9919         reg and trying to replace reg_regno_rtx with a new register.
9920         (undo_all): Use new enums, handle undoing a PUT_MODE change.
9921         (simplify_set): Use SUBST_MODE.
9922         (distribute_notes): Remove code that tried to update reg notes
9923         for regno_reg_rtx changes.
9924
9925 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
9926
9927         PR tree-optimization/23109
9928         PR tree-optimization/23948
9929         PR tree-optimization/24123
9930
9931         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
9932         * tree-cfg.c (single_noncomplex_succ): New.
9933         * tree-flow.h (single_noncomplex_succ): Declare it.
9934         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
9935         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
9936         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
9937         insert_bb, register_division_in, insert_reciprocals,
9938         replace_reciprocal, free_bb): New.
9939         (execute_cse_reciprocals_1): Rewritten.
9940         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
9941         Do not commit any edge insertion.  Always compute dominators and
9942         create the allocation pool.
9943         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
9944         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
9945         * targhooks.c (default_min_divistions_for_recip_mul): New.
9946         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
9947         * passes.c (init_optimization_passes): Run recip after tree loop
9948         optimizations.
9949         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
9950
9951 2006-01-11  Danny Berlin <dberlin@dberlin.org>
9952             Kenneth Zadeck <zadeck@naturalbridge.com>
9953
9954         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
9955         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
9956         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
9957         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
9958         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
9959         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
9960         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
9961         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
9962         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
9963         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
9964         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
9965         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
9966         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
9967         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
9968         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
9969         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
9970         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
9971         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
9972         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
9973         DF_SCAN_POST_ALLOC): New macros.
9974         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
9975         df_free_bb_function, df_local_compute_function, df_init_function,
9976         df_dataflow_function, df_confluence_function_0,
9977         df_confluence_function_n, df_transfer_function,
9978         df_finalizer_function, df_free_function, df_dump_problem_function,
9979         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
9980         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
9981         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
9982         df_urec_bb_info, ) New types.
9983         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
9984         variables.
9985         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
9986         df_analyze_simple_change_some_blocks,
9987         df_analyze_simple_change_one_block, df_compact_blocks,
9988         df_bb_replace, df_bb_regno_last_use_find,
9989         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
9990         df_insn_regno_def_p, df_find_def, df_find_use,
9991         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
9992         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
9993         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
9994         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
9995         debug_df_chain, df_get_dependent_problem, df_chain_create,
9996         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
9997         df_grow_bb_info, df_chain_dump, df_print_bb_index,
9998         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
9999         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
10000         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
10001         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
10002         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
10003         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
10004         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
10005         df_ref_remove, df_insn_refs_delete, df_refs_delete,
10006         df_reorganize_refs, df_set_state, df_hard_reg_init,
10007         df_read_modify_subreg_p) New public functions.
10008         * df-core.c: The core dataflow solver and glue routines for rtl
10009         dataflow.
10010         (df_init, df_add_problem, df_set_blocks, df_finish,
10011         df_hybrid_search_forward, df_hybrid_search_backward,
10012         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
10013         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
10014         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
10015         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
10016         df_reg_defined, df_find_use, df_reg_used, df_dump,
10017         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
10018         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
10019         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
10020         debug_df_useno, reset_df_after_reload): New functions.
10021         * df-scan.c: The scanning fuctions, once in df.c, completely
10022         rewritten so that they now fully model the functionality of
10023         register usage at the backend.
10024         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
10025         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
10026         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
10027         df_grow_insn_info, df_rescan_blocks, df_ref_create,
10028         df_get_artificial_defs, df_get_artificial_uses,
10029         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
10030         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
10031         df_refs_delete, df_reorganize_refs, df_set_state,
10032         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
10033         df_def_record_1, df_defs_record, df_uses_record,
10034         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
10035         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
10036         df_record_exit_block_uses, df_hard_reg_init): New functions.
10037
10038         * df-problems.c: Seven concrete dataflow problems that use the
10039         scanning in df-scan.c and are solved by the engine in df-core.c.
10040         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
10041         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
10042         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
10043         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
10044         df_ru_free_bb_info, df_ru_alloc,
10045         df_ru_bb_local_compute_process_def,
10046         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
10047         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
10048         df_ru_transfer_function, df_ru_free, df_ru_dump,
10049         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
10050         df_rd_free_bb_info, df_rd_alloc,
10051         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
10052         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
10053         df_rd_transfer_function, df_rd_free, df_rd_dump,
10054         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
10055         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
10056         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
10057         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
10058         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
10059         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
10060         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
10061         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
10062         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
10063         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
10064         df_urec_mark_reg_change, df_urec_check_earlyclobber,
10065         df_urec_mark_reg_use_for_earlyclobber,
10066         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
10067         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
10068         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
10069         df_urec_dump, df_urec_add_problem, df_chain_alloc,
10070         df_chain_create_bb_process_use, df_chain_create_bb,
10071         df_chain_finalize, df_chain_free, df_chains_dump,
10072         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
10073         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
10074         df_reg_lifetime): New functions.
10075         * df.c: Deleted file.
10076         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
10077         consistent with new df api.
10078         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
10079         rest_of_handle_sms): Ditto.
10080         * web.c (unionfind_union, union_defs, entry_register, web_main):
10081         Ditto.
10082         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
10083         invariant_expr_equal_p, find_defs, check_dependencies,
10084         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
10085         free_inv_motion_data, move_loop_invariants): Ditto.
10086         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
10087         Update dependencies.
10088         (odf.c): Added defective entry that was deleted later in day.
10089         * sched-deps.c (sched_analyze_1): Ditto.
10090
10091 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
10092
10093         * tree-ssa-operands.c (get_expr_operands): Record addressable
10094         variables directly.  Do not call add_stmt_operands for CONST_DECLs
10095         and ARRAY_DECLs.
10096         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
10097         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
10098
10099 2006-01-11  Ben Elliston  <bje@au.ibm.com>
10100
10101         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
10102         function returns true in the positive case.
10103
10104 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10105
10106         PR target/20754
10107         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
10108         for SI, DI, SF and DF modes.  Add alternatives to copy between
10109         general and floating point registers to the 32-bit patterns.
10110         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
10111         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
10112         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
10113         generating 64-bit code.
10114         * config/pa/pa.c (output_move_double): Handle copies between general
10115         and floating registers.
10116
10117 2006-01-10  Stuart Hastings  <stuart@apple.com>
10118
10119         * config/i386/i386.md (set_got): Update.
10120         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
10121         (builtin_setjmp_receiver): Mach-O support.
10122         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
10123         (GOT_SYMBOL_NAME): Define.
10124         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
10125         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
10126         * config/i386/i386.c (override_options): Revise for Darwin.
10127         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
10128         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
10129         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
10130         * config/i386/i386-protos.h (output_set_got): Likewise.
10131         * config/darwin.c (machopic_legitimize_pic_address): Update
10132         regs_ever_live[].
10133
10134 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10135
10136         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
10137         when MODE isn't BLKmode.
10138
10139 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
10140
10141         PR rtl-optimization/25367
10142         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
10143
10144 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
10145
10146         PR target/25718
10147         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
10148         for a negative bound.
10149
10150 2006-01-10  Richard Guenther  <rguenther@suse.de>
10151
10152         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10153         Never override with anything constraint.
10154
10155 2006-01-10  Jan Beulich  <jbeulich@novell.com>
10156
10157         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
10158         256 bits when optimize_size.
10159
10160 2006-01-10  Jan Beulich  <jbeulich@novell.com>
10161
10162         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
10163         MASK_ALIGN_DOUBLE.
10164         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
10165         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
10166         arguments.
10167
10168 2006-01-10  Ben Elliston  <bje@au.ibm.com>
10169
10170         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
10171         float modes.
10172         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
10173         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10174         (USE_FP_FOR_ARG): Reject decimal float modes.
10175         (function_arg_advance): Likewise.
10176         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
10177         (rs6000_handle_altivec_attribute): Do not permit decimal floating
10178         point types in AltiVec vectors.
10179         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
10180         (rs6000_libcall_value): Likewise.
10181
10182 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
10183
10184         * config/xtensa/ieee754-df.S: New file.
10185         * config/xtensa/ieee754-sf.S: New file.
10186         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
10187         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
10188         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
10189
10190 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
10191
10192         * config/sh/predicates.md (binary_float_operator,
10193         binary_logical_operator, commutative_float_operator,
10194         equality_comparison_operator, greater_comparison_operator,
10195         less_comparison_operator, logical_operator,
10196         noncommutative_float_operator, shift_operator,
10197         symbol_ref_operand, unary_float_operator): Remove redundant
10198         conditionals.
10199
10200 2006-01-09  Jeff Law  <law@redhat.com>
10201
10202         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
10203         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
10204         now unused arguments.  Callers updated.
10205         (eliminate_redundant_computations): Remove now unused arguments,
10206         callers updated.
10207         (local_fold): Remove, no longer used.
10208         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
10209         and moved to...
10210         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
10211         (simplify_cond): New function.
10212         (forward_propagate_into_cond): Call simplify_cond.
10213
10214 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
10215
10216         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
10217         (*vec_extractv2di_1_sse): New.
10218
10219 2006-01-09  Ben Elliston  <bje@au.ibm.com>
10220
10221         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
10222
10223 2006-01-08  Richard Guenther  <rguenther@suse.de>
10224
10225         * tree-ssa-structalias.c (get_constraint_for): Remove
10226         anyoffset argument.
10227         (get_constraint_for_component_ref): Likewise.
10228         (do_deref): Likewise.
10229         (get_constraint_for): Likewise.
10230         (do_structure_copy): Likewise.
10231         (handle_ptr_arith): Likewise.
10232         (find_func_aliases): Likewise.  Remove unused need_anyoffset
10233         variable.
10234
10235 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
10236             Kaz Kojima  <kkojima@gcc.gnu.org>
10237
10238         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
10239         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
10240         (EXTRA_CONSTRAINT_C16): Remove.
10241         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
10242         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
10243         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
10244         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
10245         constants of SHmedia.  Handle nested constant expressions of
10246         SHmedia correctly.
10247         (andcosts): Fix the costs for SHmedia constants.
10248         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
10249         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
10250         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
10251         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
10252         (movv4hi_i, movv2si_i): Likewise.
10253         (movsi_const): Adjust the second operand of ior so to match with
10254         the Csu constraint.
10255         (movdi_const, movdi_const_32bit): Likewise.
10256         (movdi_const_16bit+1): Don't sign-extend LOW.
10257         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
10258         step.
10259         (*double_shori): Fix the split condition.  Use GEN_INT instead
10260         of get_int_mode calls.  Mask lower 16-bit of the argument of
10261         the last GEN_INT.
10262         (sym2GOTPLT): Remove.
10263         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
10264         gen_rtx_UNSPEC.
10265         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
10266         instead of EXTRA_CONSTRAINT_C16.
10267
10268 2006-01-07  Ian Lance Taylor  <ian@airs.com>
10269             David Edelsohn  <edelsohn@gnu.org>
10270
10271         PR rtl-optimization/25662
10272         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
10273         for constant operands instead of simplify_gen_binary.
10274         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
10275         after trying simplify_binary_operation
10276
10277 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
10278
10279         * tree.c (iterative_hash_expr): Hash decls based on UID.
10280
10281 2006-01-06  Eric Christopher  <echristo@apple.com>
10282
10283         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
10284         (TARGET_UNWIND_EMIT): Fix spelling.
10285         * target.h (gcc_target): Add except_table_label.
10286         * except.c (output_function_exception_table): Use.
10287         * varasm.c (default_emit_except_table_label): New.
10288         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
10289         define.
10290         (asm_out): Add here.
10291         * output.h (default_emit_except_table_label): Prototype.
10292         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
10293         * config/darwin.c (darwin_emit_except_table_label): Define.
10294         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
10295
10296 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
10297
10298         PR tree-optimization/18527
10299         * tree-ssa-loop-niter.c (number_of_iterations_cond,
10300         number_of_iterations_special, number_of_iterations_exit):
10301         Move base and step of an iv to a single structure.  Add
10302         no_overflow flag, and use it in # of iterations analysis.
10303         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
10304         folded_casts argument.
10305         (simple_iv): Pass base and step in a structure.  Set no_overflow
10306         flag.
10307         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
10308         Evaluate expensiveness of computing # of iterations instead of
10309         the final expression.
10310         * tree-scalar-evolution.h (affine_iv): New structure.
10311         (simple_iv): Declaration changed.
10312         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
10313         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
10314         find_givs_in_stmt): Changed due to simple_iv change.
10315
10316 2006-01-06  Jeff Law  <law@redhat.com>
10317
10318         PR ada/24994
10319         * tree-cfg.c (bsi_replace): Rename final argument from
10320         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
10321         change (stmt -> orig_stmt).
10322         * tree-eh.c (verify_eh_throw_stmt_node): New function.
10323         (bsi_remove): Add new argument.  Remove EH information
10324         if requested.
10325         (verify_eh_throw_table_statements): New function.
10326         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
10327         updated.
10328         * tree-optimize.c (execute_free_cfg_annotations): Verify
10329         the EH throw statement table after removing annotations.
10330         * except.h (verify_eh_throw_table_statements): Prototype.
10331         * tree-flow.h (bsi_remove): Update prototype.
10332         * tree-vrp.c (remove_range_assertions): Add new argument to
10333         bsi_remove call.
10334         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
10335         * tree-complex.c (expand_complex_div_wide): Likewise.
10336         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
10337         * tree-tailcall.c (eliminate_tailcall): Likewise.
10338         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
10339         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
10340         * tree-nrv.c (tree_nrv): Likewise.
10341         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
10342         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
10343         (combine_blocks): Likewise.
10344         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
10345         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
10346         (cleanup_control_flow): Likewise.
10347         (remove_forwarder_block): Likewise.
10348         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
10349         * tree-sra.c (sra_replace): Likewise.
10350         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
10351         (forward_propagate_single_use_vars): Likewise.
10352         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
10353         * tree-inline.c (expand_call_inline): Likewise.
10354         * tree-vect-transform.c (vect_transform_loop): Likewise.
10355         * tree-outof-ssa.c (rewrite_trees): Likewise.
10356         * tree-cfg.c (make_goto_expr_edges): Likewise.
10357         (cleanup_dead_labels): Likewise.
10358         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
10359         (bsi_move_before, bsi_move_after): Likewise.
10360         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
10361         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
10362
10363 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
10364
10365         PR tree-opt/25528
10366         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
10367         and IMAGPART_EXPR.
10368         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
10369         on non gimple variables.  Also add checks at the top for decls and
10370         mtags.
10371         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
10372         complex types.
10373         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
10374         and IMAGPART_EXPR for creating MUST_DEFs.
10375         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
10376         and NAME_MEMORY_TAG separately from the DECLs.
10377
10378 2006-01-06  Richard Guenther  <rguenther@suse.de>
10379
10380         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
10381         annotation, if necessary.
10382         * tree-ssa-pre.c (create_expression_by_pieces): Remove
10383         redundant calls to update_stmt.
10384         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
10385         Likewise.
10386
10387 2006-01-05  Richard Henderson  <rth@redhat.com>
10388
10389         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
10390
10391 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
10392
10393         * c-typeck.c: Update copyright date.
10394
10395 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
10396
10397         * c-typeck.c (build_c_cast): Always warn when casting
10398         from a pointer to an integer of different size, even if
10399         the node was constant.
10400
10401 2006-01-05  Richard Guenther  <rguenther@suse.de>
10402
10403         PR tree-optimization/22555
10404         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
10405         if one structure field is an array.
10406         * tree-ssa-operands.c (get_expr_operands): Continue scanning
10407         operands even if we found a subvar, but ignore VOPs in this
10408         case.
10409         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
10410         for renaming.
10411         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
10412
10413 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
10414
10415         PR middle-end/24998
10416         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
10417
10418 2006-01-05  Richard Guenther  <rguenther@suse.de>
10419             Diego Novillo  <dnovillo@redhat.com>
10420
10421         * tree-pass.h (TODO_remove_unused_locals): Define.
10422         * gimple-low.c (expand_var_p, remove_useless_vars,
10423         pass_remove_useless_vars): Remove.  Update all users.
10424         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
10425         (remove_unused_locals): New function.
10426         * tree-flow.h (remove_unused_locals): Declare.
10427         * passes.c (execute_todo): Call remove_unused_locals if
10428         TODO_remove_unused_locals is set.
10429         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
10430         * tree-ssa-dce.c (pass_dce): Likewise.
10431         * tree-outof-ssa.c (pass_del_ssa): Likewise.
10432
10433 2006-01-05  Richard Guenther  <rguenther@suse.de>
10434
10435         * tree-flow.h (struct fieldoff): Decompose field to
10436         type, size and decl.
10437         * tree-ssa-alias.c (create_sft): Take type as parameter.
10438         (create_overlap_variables_for): Store type, size and decl
10439         in the fieldoff structure.
10440         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
10441         of struct fieldoff.
10442         (push_fields_onto_fieldstack): Likewise.
10443         (create_variable_info_for): Likewise.  Use offset for the
10444         SFT name if the decl is not available.
10445
10446 2006-01-04  Paul Brook  <paul@codesourcery.com>
10447
10448         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
10449
10450 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
10451
10452         * lambda-code.c (can_put_in_inner_loop): Relax
10453         restrictions.
10454         (can_put_after_inner_loop): New function.
10455         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
10456         (perfect_nestify): Change to make copies and modify uses.
10457
10458 2006-01-04  Richard Henderson  <rth@redhat.com>
10459
10460         Merge from gomp branch:
10461         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
10462         via integer constant.
10463         (pragma_lex): Remove.
10464         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
10465         rather than parsing it.
10466         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
10467         handle_pragma_extern_prefix): Add %< %> quotes.
10468         (registered_pragmas): New.
10469         (c_register_pragma_1): New.
10470         (c_register_pragma): Use it.
10471         (c_register_pragma_with_expansion): Likewise.
10472         (c_invoke_pragma_handler): New.
10473         (init_pragma): Use cpp_register_deferred_pragma directly for
10474         pch_preprocess.
10475         * c-pragma.h (enum pragma_kind): New.
10476         (pragma_handler): New.
10477         (c_invoke_pragma_handler): Declare.
10478         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
10479         CPP_PRAGMA_EOL.
10480         * c-common.h (c_common_pch_pragma): Update decl.
10481         * Makefile.in (c-parser.o): Update dependencies.
10482         (GTFILES): Add c-pragma.h.
10483         * c-parser.c (struct c_token): Add pragma_kind.
10484         (struct c_parser): Add in_pragma.
10485         (c_lex_one_token): Always initialize keyword and pragma_kind.
10486         Extract data for CPP_PRAGMA.
10487         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
10488         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
10489         Don't allow CPP_PRAGMA_EOL if in_pragma.
10490         (c_parser_consume_pragma): New.
10491         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
10492         (c_parser_skip_to_end_of_parameter): Likewise.
10493         (c_parser_skip_to_end_of_block_or_statement): Likewise.
10494         (c_parser_skip_to_pragma_eol): New.
10495         (c_parser_external_declaration): Handle CPP_PRAGMA.
10496         (c_parser_compound_statement_nostart): Likewise.
10497         (c_parser_statement_after_labels): Likewise.
10498         (c_parser_pragma): New.
10499         (pragma_lex): Likewise.
10500         (c_parser_pragma_pch_preprocess): New.
10501         (c_parser_new): Merge into ...
10502         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
10503
10504 2006-01-04  Jeff Law  <law@redhat.com>
10505
10506         PR ada/24994
10507         * tree-cfg.c (bsi_replace): Remove the original statement
10508         from the EH throw statement table.
10509
10510 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
10511
10512         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
10513         make the prototype extern "C" and add throw ().
10514
10515         PR target/25554
10516         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
10517         and pos non-negative and pos + len <= 32.
10518         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
10519         drop pos + len < HOST_BITS_PER_WIDE_INT test.
10520         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
10521
10522         PR c/25559
10523         * c-common.c (handle_vector_size_attribute): Reject zero vector size
10524         as well as sizes not multiple of component size.
10525
10526         PR debug/25562
10527         * function.c (instantiate_expr): New function.
10528         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
10529         walk its DECL_VALUE_EXPR with instantiate_expr.
10530
10531         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
10532         DW_OP_deref{,_size} if address isn't going to be added.
10533
10534 2006-01-04  Ben Elliston  <bje@au.ibm.com>
10535
10536         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
10537         * config/fp-bit.c: Likewise.
10538
10539 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
10540
10541         * dominance.c: Add comment about why we use DFS numbering
10542         of dominance tree.
10543
10544 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
10545             Richard Henderson  <rth@redhat.com>
10546
10547         Merge from gomp-branch:
10548         * varasm.c (assemble_variable): Handle thread-local COMMON data.
10549         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
10550
10551 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
10552
10553         PR rtl-optimization/25578
10554         * combine.c (combine_simplify_rtx, force_to_mode): Don't
10555         pass a parameter to simplify_shift_const if changing ASHIFTRT
10556         to LSHIFTRT.
10557
10558 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
10559
10560         * builtins.c (get_builtin_sync_mem): New function.
10561         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
10562         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
10563         Call get_builtin_sync_mem to generate mem rtx.
10564
10565 2006-01-03  Richard Guenther  <rguenther@suse.de>
10566
10567         PR c/25183
10568         * stmt.c (add_case_node): Make sure to clear overflow flags
10569         from ranges.
10570
10571 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
10572
10573         Merge from gomp-branch.
10574         * config/sparc/sync.md: New file.
10575         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
10576         UNSPECV_LDSTUB): New constants.
10577         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
10578         * config/sparc/predicates.md (memory_reg_operand): New predicate.
10579         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
10580         prototype.
10581
10582 2006-01-03  Roger Sayle  <roger@eyesopen.com>
10583
10584         * combine.c (reg_subword_p): New predicate to test whether the
10585         destination of a set refers to a subword/piece of a register.
10586         (try_combine): Generalize the code to merge the setting of a
10587         pseudo to a constant followed by a set of a subword of that
10588         register to a constant.
10589
10590 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
10591
10592         * basic-block.h (control_flow_graph): Change the type of
10593         x_label_to_block_map to VEC(basic_block,gc) *.
10594         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
10595         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
10596
10597         * tree-ssa-propagate.c (cfg_blocks): Change the type to
10598         VEC(basic_block,heap) *.
10599         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
10600         ssa_prop_fini): Adjust the uses of cfg_blocks.
10601
10602 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
10603
10604         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
10605         COMPONENT_REFs.
10606         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
10607         hashing trees instead of a pointer hash.
10608         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
10609         compare for MEM_EXPR.
10610
10611         PR rtl-optimization/25130
10612         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
10613         when comparing MEMs for GCSE
10614
10615 2006-01-03  Ben Elliston  <bje@au.ibm.com>
10616
10617         * targhooks.h (default_decimal_float_supported_p): Declare.
10618         * targhooks.c (default_decimal_float_supported_p): Define.
10619         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
10620         `default_decimal_float_supported_p'.
10621         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
10622
10623 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
10624
10625         * combine.c (apply_distributive_law <SUBREG>): Check
10626         TRULY_NOOP_TRUNCATION.
10627
10628 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
10629
10630         * dwarf2out.c (have_switched_text_section): Delete.
10631         (have_multiple_function_sections): New.
10632         (have_location_lists): Make 'bool'.
10633         (add_AT_loc_list): Use 'true' not '1'.
10634         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
10635         (output_loc_list): Use have_multiple_function_sections.
10636         (output_ranges): Likewise.
10637         (dwarf2out_begin_function): Set have_multiple_function_sections if
10638         necessary.
10639         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
10640         Check function_section rather than DECL_SECTION_NAME.
10641         (dwarf2out_finish): Use have_multiple_function_sections.
10642         Don't clear have_location_lists.
10643
10644 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
10645             Jan Hubicka  <jh@suse.cz>
10646
10647         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
10648         case of conditional jump jumping to the next instruction.
10649         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
10650         cases of conditional jump jumping to the next instruction.
10651
10652 2006-01-02  Jan Hubicka  <jh@suse.cz>
10653
10654         * i386.c (*_cost): Add COSTS_N_INSNS.
10655         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
10656
10657 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
10658
10659         PR target/25259
10660         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
10661
10662 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10663
10664         * config/arm/arm.c (all_fpus): Fix comment typo.
10665         * config/darwin.c: Likewise.
10666         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
10667         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
10668         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
10669
10670 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
10671
10672         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
10673         (rs6000_split_compare_and_swapqhi): New.
10674         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
10675         (sync_compare_and_swapqhi_internal): New.
10676         * config/rs6000/rs6000-protos.h: Declare.