OSDN Git Service

159b82c4999cfa487066b3c04ba45c55f42b3837
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-11-21  Stan Shebs  <shebs@apple.com>
2
3         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
4         UNION_TYPE case.
5         (function_arg): Move darwin test up, sniff mode first for
6         efficiency, test for union type.
7
8 2004-11-21  Dale Johannesen  <dalej@apple.com>
9
10         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
11
12 2004-11-21  Jeff Law  <law@redhat.com>
13
14         * tree-ssa.c (verify_use): Fix comment.
15         (verify_phi_args): Check that the number of incoming edges matches
16         the number of PHI arguments.  Check that each PHI argument is
17         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
18         dead or duplicated edges.  Clear e->aux earlier and avoid separate
19         loop to clear e->aux and test for missed edges.
20         (verify_ssa): Remove first walk over statements.  Move checking
21         of PHI args into verify_phi_args.  Move checking of statements
22         with aliased stores and V_MAY_DEFS into the remaining loop over
23         the statements.  Register defs by walking through the formal
24         SSA_NAME table.
25
26 2004-11-21  Roger Sayle  <roger@eyesopen.com>
27
28         PR middle-end/18520
29         * dojump.c (compare_from_rtx): Clarify mode argument in function
30         description.  Correct order of mode/cmp_mode arguments in call to
31         simplify_relational_operation.  Check "tem" for COMPARISON_P.
32
33 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
34             David Edelsohn  <edelsohn@gnu.org>
35
36         PR target/17836
37         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
38         synthetic vectors in memory.
39         (function_arg_boundary): Align large synthetic vectors.
40         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
41
42 2004-11-21  Jeff Law  <law@redhat.com>
43
44         * cfg.c (update_bb_profile_for_threading): Do not rescale the
45         successor probabilities if they are not going to change.  Pull
46         division out of loop if we do need to rescale successor probabilities.
47
48         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
49         index of the destination block for the hash value rather than
50         hashing a pointer.
51
52 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
53
54         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
55         checks for neither argument being an array or pointer (swapping
56         the arguments if necessary), the array argument being a pointer to
57         or array of functions and for -Wchar-subscripts warnings upfront.
58
59 2004-11-20  Jeff Law  <law@redhat.com>
60
61         * regrename.c (copyprop_hardreg_forward): Only search for a
62         previously processed block if the current block only has one
63         predecessor.
64
65 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
66
67         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
68         typos.
69         * config/arm/arm.c: Follow spelling conventions.
70
71 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
72
73         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
74         a bit in tune_flags.
75         (const_double_needs_minipool): Likewise.  Split most of the code out
76         into ...
77         (arm_const_double_inline_cost): ... new function here.
78         * arm-protos.h (arm_const_double_inline_cost): Add prototype.
79         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
80         word constants of length 2, 3 and 4 insns respectively.
81         (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
82         * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
83         constraints.  Set insn lenghts accordingly.
84
85 2004-11-19  Jeff Law  <law@redhat.com>
86
87         * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
88         a hash table.  Extensive modifications throughout to support
89         that change.
90         (struct el): New.
91         (struct local_info): New.
92         (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
93         fields.
94         (redirection_data): Now a hashtable.
95         (redirection_data_hash, redirection_data_eq): New.
96         (lookup_redirection_data, create_duplicates): New.
97         (create_edge_and_update_destionation_phis): New.
98         (fixup_template_block, redirect_edges): New.
99         (thread_block): Use hash table traversals instead of loops over
100         varray entries or incoming edge vectors.
101
102 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
103
104         * basic-block.h (edge_def): Add dest_idx.
105         * cfg.c (unchecked_make_edge): Initialize dest_idx.
106         (remove_edge): Simplify the disconnection of an edge from its
107         destination.
108         (redirect_edge_succ): Likewise.
109         * cfghooks.c (verify_flow_info): Check the consistency of
110         dest_idx for each edge.
111
112 2004-11-19  Aldy Hernandez  <aldyh@redhat.com>
113
114         * simplify-rtx.c (simplify_ternary_operation): Use
115         gen_int_mode.
116
117 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
118
119         * tree-cfg.c (reinstall_phi_args): New.
120         (tree_split_edge): Use it after redirecting an edge.  Don't
121         modify PHI_ARG_EDGE.
122
123 2004-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
124
125         * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
126         if checking is enabled.
127
128 2004-11-19  Joseph S. Myers  <joseph@codesourcery.com>
129
130         * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
131         too many nested scopes.
132
133 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
134
135         PR tree-opt/18181
136         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
137         changed to suppoer uses-after-loop and to void creating flow paths
138         that shouldn't exist.
139         (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
140         Modified to fit the new peeling scheme. Avoid quadratic behavior.
141         (slpeel_add_loop_guard): Takes additional argument.
142         (slpeel_verify_cfg_after_peeling): New function.
143         (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
144         documentation. Use 'exit-bb' instead of creating 'new-bb'.
145         (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
146         the new peeling scheme.
147         (copy_phi_nodes): Function removed. Its functionality moved to
148         update_phis_for_duplicate_loop.
149         (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
150         moved here. Added documentation. Modified to fit the new peeling scheme.
151         (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
152         needed - done in slpeel_tree_peel_loop_to_edge.
153         (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
154         (vect_do_peeling_for_loop_bound): Add documentation. Call
155         slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
156         with additional argument.
157         (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
158
159         (vect_finish_stmt_generation): Avoid 80 column oveflow.
160
161 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
162
163         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
164         arguments removed.
165         (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
166         without last two arguments. Update single_exit of loops.
167         (vect_update_niters_after_peeling): Removed. Its functionality was
168         moved to vect_do_peeling_for_alignment. 
169         (vect_do_peeling_for_loop_bound): New name for function previously
170         called vect_transform_for_unknown_loop_bound.
171         (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
172         instead of code that duplicates the same functionality.
173         (vect_do_peeling_for_alignment): Functionality of   
174         vect_update_niters_after_peeling moved here.
175         (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
176         previously named vect_transform_for_unknown_loop_bound - for both known
177         and unknown loop bound cases.
178
179 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
180
181         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
182         previously called verify_loop_for_duplication. All conditions compacted
183         into one compound condition. Removed debug dumps.
184         (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
185         functionality moved to vect_can_advance_ivs_p, and some to
186         vect_analyze_loop_form.
187         (vect_can_advance_ivs_p): New function. Contains functionality that was
188         taken out of vect_analyze_loop_with_symbolic_num_of_iters.
189         (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
190         (vect_analyze_operations): Call vect_can_advance_ivs_p and
191         slpeel_can_duplicate_loop_p.
192         (vect_get_loop_niters): Added documentation.
193         (vect_analyze_loop_form): Check the loop entry always - not only in case
194         of unknown loop bound. Create preheader and exit bb if necessary. Apply
195         a check that used to take place in
196         vect_analyze_loop_with_symbolic_num_of_iters.
197         (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
198         Remove redundant call to rewrite_into_loop_closed_ssa.
199         (vect_compute_data_refs_alignment): Removed obsolete comment.
200
201 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
202
203         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
204         function previously called tree_duplicate_loop_to_edge.
205         (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
206         previously called tree_duplicate_loop_to_edge_cfg.
207         (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
208         function name.
209         (slpeel_update_phi_nodes_for_guard): Likewise.
210         (slpeel_make_loop_iterate_ntimes): Likewise.
211         (slpeel_add_loop_guard): Likewise.
212         (allocate_new_names, free_new_names): Function declaration moved to top
213         of file.
214         (rename_use_op, rename_def_op): Likewise.
215         (rename_variables_in_bb, rename_variables_in_loop): Likewise.
216         (vect_generate_tmps_on_preheader): Function declaration moved.
217         (vect_transform_for_unknown_loop_bound): Added missing function
218         declaration.
219
220 2004-11-19  Andrew Pinski  <pinskia@physics.uc.edu>
221
222         PR tree-opt/18507
223         * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
224         Define a VEC(tree_on_heap) for head.
225         (register_new_def): Change second argument to be a VEC(tree_on_heap).
226         * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
227         (tree_ssa_dominator_optimize): Initialize block_defs_stack with
228         the VEC(tree_on_heap) function.  Also free it before returning.
229         (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
230         for block_defs_stack.
231         (restore_currdefs_to_original_value): Use VEC_length instead of
232         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
233         (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
234         for block_defs_stack.
235         * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
236         (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
237         for block_defs_stack.
238         (ssa_register_new_def): Likewise.
239         (ssa_rewrite_initialize_block): Likewise.
240         (rewrite_finalize_block): Use VEC_length instead of
241         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
242         (ssa_rewrite_finalize_block): Likewise.
243         (register_new_def): Change second argument to be a VEC(tree_on_heap).
244         Use VEC_safe_push instead of VARRAY_PUSH_TREE.
245         (rewrite_blocks): Initialize block_defs_stack with
246         the VEC(tree_on_heap) function.  Also free it before returning.
247         (rewrite_ssa_into_ssa): Likewise.
248
249 2004-11-19  Fariborz Jahanian <fjahanian@apple.com>
250
251         * config/darwin.c (machopic_data_defined_p): return 1 for
252         MACHOPIC_DEFINED_FUNCTION.
253
254 2004-11-19  Jeff Law  <law@redhat.com>
255
256         * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
257         arguments.
258
259 2004-11-19  Paul Brook  <paul@codesourcery.com>
260
261         PR target/17735
262         * varasm.c (default_assemble_integer): Allow pointer-sized values.
263         Expand comment.
264
265 2004-11-19  Nick Clifton  <nickc@redhat.com>
266
267         * config/stormy16/stormy16.c (combine_bnp): Add code to handle
268         zero_extension and lshiftrt insns.
269         Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
270         where appropriate.
271         * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
272         to handle bp and bn insn patterns with a zero_extend rtx
273         inside them.
274
275 2004-11-19  Ian Lance Taylor  <ian@wasabisystems.com>
276
277         * config/arm/arm.md (generic_sched): Make const.
278
279 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
280
281         * emit-rtl.c (classify_insn): Make it static.
282         * rtl.h: Remove the corresponding prototype.
283
284         * integrate.c (has_func_hard_reg_initial_val,
285         get_func_hard_reg_initial_val): Make them static.
286         * integrate.h: Remove the corresponding prototypes.
287
288 2004-11-19  Ben Elliston  <bje@au.ibm.com>
289
290         * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
291         (dw2_asm_output_delta_sleb128): Likewise.
292         * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
293         (dw2_asm_output_delta_sleb128): Likewise.
294
295 2004-11-19  Adam Nemet  <anemet@lnxw.com>
296
297         * tree-ssa-alias.c: Fix comment.
298
299 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
300
301         * tree-outof-ssa.c: Fix a comment typo.
302
303 2004-11-19  Ben Elliston  <bje@au.ibm.com>
304
305         * predict.h (predict_insn): Remove extern declaration.
306         * predict.c (predict_insn): Make static.
307
308 2004-11-19  Alan Modra  <amodra@bigpond.net.au>
309
310         * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
311
312 2004-11-18  Nicolas Pitre <nico@cam.org>
313
314         * config/arm/arm.c (const_double_needs_minipool): New function to
315         determine if a CONST_DOUBLE should be pushed to the minipool.
316         (note_invalid_constants): Use it.
317
318 2004-11-18  Paul Brook  <paul@codesourcery.com>
319
320         * config/arm/arm.c (target_float_switch): New variable..
321         (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
322         target_float_switch.
323         * config/arm/arm.h (target_float_switch): Declare.
324         (ARM_FLAG_SOFT_FLOAT): Remove.
325         (TARGET_SWITCHES): Remove hard-float and soft-float.
326         (TARGET_OPTIONS): Add hard-float and soft-float.
327         (TARGET_DEFAULT_FLOAT_ABI): Define.
328         * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
329         (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
330         * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
331         * config/arm/netbsd-elf.h: Ditto.
332         * config/arm/netbsd.h: Ditto.
333         * config/arm/pe.h: Ditto.
334         * config/arm/unknown-elf.h: Ditto.
335         * config/arm/wince-pe.h: Ditto.
336         * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
337         * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
338         * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
339
340 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
341
342         * config/rs6000/altivec.md (VI, VF, V): New mode macros.
343         (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
344         altivec_lvx_4sf): Rename and replace with ...
345         (altivec_lvx_<mode>): ... mode macro version.
346         (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
347         altivec_stvx_4sf): Rename and replace with ... 
348         (altivec_stvx_<mode>): ... mode macro version.
349         (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
350         (mov<mode>): ... mode macro version.
351         (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
352         *movv4sf_internal1): Replace with ...
353         (*mov<mode>_internal): ... mode macro version.
354         (get_vrsave_internal, *set_vrsave_internal, *save_world,
355         *restore_world): Unquote output statements.
356         * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
357         altivec_expand_st_builtin): Adjust insn names.
358
359 2004-11-18  Aldy Hernandez  <aldyh@redhat.com>
360
361         * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
362         previous change.
363         (rs6000_override_options): Likewise.
364         (spe_build_register_parallel): Handle complex doubles on e500v2.
365         (rs6000_spe_function_arg): Likewise.
366         (function_arg): Likewise.
367         (rs6000_function_value): Likewise.
368         (rs6000_libcall_value): Likewise.
369
370 2004-11-18  Andrew Pinski  <pinskia@physics.uc.edu>
371
372         * ifcvt.c (find_if_block): Move the check for the number of edges
373         above the loops checking for complex edges.
374         Remove the counting of edges as we use EDGE_COUNT now.
375
376 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
377
378         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
379         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
380
381 2004-11-18  Andreas Schwab  <schwab@suse.de>
382
383         * config/i386/i386.md (define_peephole2): Revert last change.
384
385 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
386
387         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
388         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
389
390 2004-11-18  Diego Novillo  <dnovillo@redhat.com>
391
392         * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
393         of FOR_EACH_BB.
394
395 2004-11-18  Jon Grimm <jgrimm2@us.ibm.com>
396
397         * Makefile.in (macro_list): Depend on s-macro_list.
398         (s-macro_list): New target.
399
400 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
401
402         PR target/17107
403         * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
404         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
405         (fold_range_test): Adjust.
406         (fold_truthop): Use it.
407         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
408         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
409
410 2004-11-18  Uros Bizjak  <uros@kss-loka.si>
411
412         * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
413         insn split constraint.
414         (define_peephole2): Remove unneeded "&& 1" from peephole2
415         constraints.
416
417 2004-11-18  Ben Elliston  <bje@au.ibm.com>
418
419         * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
420         element for bsi_prev; use @findex instead.
421
422 2004-11-18  Ben Elliston  <bje@au.ibm.com>
423
424         * opts.h (add_input_filename): Remove extern declaration.
425         * opts.c (add_input_filename): Make static.
426
427 2004-11-17  Mark Mitchell  <mark@codesourcery.com>
428
429         * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
430         ATTRIBUTE_UNUSED.
431   
432 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
433
434         * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
435         * system.h: Poison it.
436         * doc/tm.texi: Delete its documentation.
437
438 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
439             Mark Mitchell  <mark@codesourcery.com>
440
441         * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
442         * config/i386/i386.c (i386_solaris_elf_named_section): New
443         function.
444         * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
445         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
446         64-bit.
447         (ASM_QUAD): Don't undefine for biarch targets.
448         * config/i386/t-sol2: Introduce multilib support.
449
450 2004-11-18  Ben Elliston  <bje@au.ibm.com>
451
452         * cgraphunit.c: Replace "it's" with "its" and fix a typo.
453
454 2004-11-18  Ben Elliston  <bje@au.ibm.com>
455
456         * cgraph.h: Replace "it's" with "its" throughout.
457
458 2004-11-18  Ben Elliston  <bje@au.ibm.com>
459
460         * doc/rtl.texi (Flags): Grammar fix.
461
462 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
463
464         * expmed.c (alg_code): Add alg_unknown.
465         (alg_hash_entry): New.
466         (NUM_ALG_HASH_ENTRIES): Likewise.
467         (alg_hash): Likewise.
468         (synth_mult): Cache the result into alg_hash.
469
470 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
471
472         * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
473         config/rs6000/libgcc-ppc64.ver.
474
475 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
476
477         * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
478         checking if an unconditional return is followed by a barrier.
479
480         * jump.c (condjump_p): Remove unreachable code.
481
482         * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
483         tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
484         tree-ssa-live.h, tree.h: Remove unused prototypes.
485
486 2004-11-17  Jeff Law  <law@redhat.com>
487
488         * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
489         (edge_to_cases_elt): Renamed from edge_to_case_leader.
490         (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
491         (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
492         (edge_to_cases_cleanup, recording_case_labels_p): New functions.
493         (get_cases_for_edge): New function.
494         (start_recording_case_labels, end_recording_case_labels): Similarly.
495         (record_switch_edge): Don't muck with the CASE_LABEL.  Instead
496         chain equivalent CASE_LABEL_EXPRs together.
497         (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
498         (make_switch_expr_edges): Do not record edge/cases here.
499         (cleanup_tree_cfg): Record cases around the call to thread_jumps.
500         (split_critical_edges): Record cases around the edge splitting code.
501         (cleanup_dead_labels): Use CASE_LABEL again.
502         (tree_redirect_edge_and_branch): If we have a mapping from edge
503         to cases, use it to handle redirections.  Else do it the slow way.
504         * tree.h (CASE_LEADER_OR_LABEL): Kill.
505         (CASE_LABEL): Revert to just looking at the tree's second operand.
506         * tree.c (get_case_label): Kill.
507
508 2004-11-17  Diego Novillo  <dnovillo@redhat.com>
509
510         PR tree-optimization/18307
511         * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
512         'orig' are the same node.
513         (collect_points_to_info_r): Do not call merge_pointed_to_info
514         when the PHI argument is identical to the LHS.
515
516 2004-11-17  Steven Bosscher  <stevenb@suse.de>
517
518         * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying
519         to insert the exit or entry block.
520         (ssa_prop_init): Use add_control_edge to seed the algorithm.
521
522 2004-11-16  Zack Weinberg  <zack@codesourcery.com>
523
524         * mkmap-flat.awk, mkmap-symver.awk: If the last version
525         assigned to a symbol was '%exclude', do not emit it anywhere.
526         If leading_underscore is true, prefix all symbols from the
527         version scripts with a leading underscore before comparing
528         them with nm output or emitting them.  Remove support for dot
529         symbols.
530         * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk.
531         (SHLIB_MAPFILES): Use libgcc-std.ver.
532         (SHLIB_MKMAP_OPTS): Enable leading-underscore mode.
533         (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP).
534         * config/sh/t-linux: Use the normal libgcc-std.ver, plus
535         libgcc-excl.ver and libgcc-glibc.ver.
536
537         * config/sh/libgcc-excl.ver: New file.
538         * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete.
539
540 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
541
542         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap
543         the test when the edge has the opposite meaning, not when
544         the first argument is invariant.
545
546 2004-11-16  Aldy Hernandez  <aldyh@redhat.com>
547
548         * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2
549         doubles.
550         (rs6000_complex_function_value): Handle e500 v2 variant.
551
552 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
553
554         Fix PR tree-optimization/18519
555
556         * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
557         * tree-pass.h: Add TODO_cleanup_cfg.
558         * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
559         (ccp_finalize): Remove call to cleanup_cfg.
560         * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
561         (pass_cd_dce): Ditto.
562         (perform_tree_ssa_dce): Remove call to cleanup_cfg,
563         dump_function_to_file.
564         * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
565         to cleanup_cfg.
566         (pass_ch): Add TODO_cleanup_cfg.
567         * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
568         cleanup_cfg.
569         (pass_loop_done): Add TODO_cleanup_cfg.
570         * tree-ssa-phiopt.c (pass_phiopt): Ditto.
571         (tree_ssa_phiopt): Remove call to cleanup_cfg.
572
573 2004-11-16  Devang Patel  <dpatel@apple.com>
574
575         * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use.
576
577 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
578
579         * expmed.c, ra-colorize.c: Fix comment typos.
580
581         * doc/tm.texi: Fix typos.
582
583 2004-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
584             Mark Mitchell  <mark@codesourcery.com>
585
586         PR target/6123
587         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and
588         __pic__ if PIC.
589
590 2004-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
591
592         * regmove.c (regmove_optimize): Use lowpart_subreg instead of
593         gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
594
595 2004-11-16  Devang Patel  <dpatel@apple.com>
596
597         * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.
598
599 2004-11-16  Eric Christopher  <echristo@redhat.com>
600
601         * config/mips/mips.c: Use rtl _P predicates.
602         * config/mips/mips.h: Ditto.
603         * config/mips/mips.md: Ditto.
604
605 2004-11-16  Fariborz Jahanian <fjahanian@apple.com>
606
607         * config/rs6000/altivec.md (altivec_vandc): Canonicalize
608         the pattern.
609
610 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
611
612         * config/s390/s390.c (s390_cc_modes_compatible): New function.
613         (TARGET_CC_MODES_COMPATIBLE): Target macro defined.
614
615 2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>
616
617         PR target/18447
618         * config/sh/sh.c (prepare_move_operands): Emit blockage insns
619         before and after the insns for getting GOT address in non-PIC
620         TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling
621         is enabled.
622
623 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
624
625         * gcc/cse.c (struct change_cc_mode_args): New structure.
626         (cse_change_cc_mode_insn): New function.
627         (cse_change_cc_mode): Use validate_change to perfom changes.
628         (cse_change_cc_mode_insns, cse_condition_code_reg):
629         Call cse_change_cc_mode_insn.
630
631 2004-11-16  Steven Bosscher  <stevenb@suse.de>
632
633         * stack.h: Remove.
634
635 2004-11-16  Steven Bosscher  <stevenb@suse.de>
636
637         * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8.
638
639 2004-11-15  Dale Johannesen  <dalej@apple.com>
640
641         * tree-flow.h (add_referenced_temp_var):  Remove name from prototype.
642
643 2004-11-15  Dale Johannesen  <dalej@apple.com>
644
645         * profile.c (compute_branch_probabilities):  Prevent
646         crash with EH in RTL-based profiling.
647
648 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
649
650         * tree-cfg.c (verify_expr): Replace TREE_OPERAND with
651         COND_EXPR_COND.
652         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
653         * tree-ssa-dom.c (thread_across_edge): Likewise.
654         * tree-vectorizer.c (vect_transform_loop_bound): Replace
655         TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or
656         COND_EXPR_ELSE.
657
658         * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.
659         (tree_flow_call_edges_add): Update the call to
660         bsi_commit_edge_inserts.
661         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
662         * profile.c (branch_prob): Likewise.
663         * tree-mudflap.c (mf_decl_cache_locals): Likewise.
664         * tree-sra.c (scalarize_function): Likewise.
665         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
666         * tree-ssa-pre.c (fini_pre): Likewise.
667         * tree-flow.h: Update the prototype for
668         bsi_commit_edge_inserts.
669
670 2004-11-15  Eric Christopher  <echristo@redhat.com>
671
672         * sched-deps.c (set_sched_group_p): Delete.
673         (delete_all_dependencies): New function.
674         (fixup_sched_groups): Use. New function.
675         (sched_analyze_insn): Use.
676
677 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
678
679         * c-common.c (binary_op_error): Don't allow LROTATE_EXPR,
680         RROTATE_EXPR or unknown code.
681         * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR,
682         LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR,
683         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR
684         or unknown code.
685
686 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
687
688         PR c/18498
689         * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
690         after processing the declarator.
691
692 2004-11-15  Aldy Hernandez  <aldyh@redhat.com>
693
694         * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with
695         vec_duplicate.
696         (altivec_vspltb): Same.
697         (altivec_vspltw): Same.
698         (altivec_vspltisb): Same.
699         (altivec_vspltish): Same.
700         (altivec_vspltisw): Same.
701         (altivec_vspltisw_v4sf): Same.
702         (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW,
703         UNSPEC_VSPLTISH.
704         Move "End of vector xor's" comment to the right place.
705
706 2004-11-15  Steve Ellcey  <sje@cup.hp.com>
707
708         * config/ia64/ia64.md (*movtf_internal):  Use destination_operand
709         instead of nonimmediate_operand.
710
711 2004-11-15  Mark Mitchell <mark@codesourcery.com>
712
713         * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
714         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
715         * config/sol2.c (solaris_output_init_fini): Update calls to
716         ASM_OUTPUT_CALL.  Include "rtl.h".
717
718 2004-11-15  Mark Mitchell <mark@codesourcery.com>
719
720         * config/sol2-c.c (cmn_err_char_table): Add "p".
721
722 2004-11-15  Mark Mitchell <mark@codesourcery.com>
723
724         * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove.
725         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here.
726
727 2004-11-15  Mark Mitchell <mark@codesourcery.com>
728
729         * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely
730         within the multilib directory.
731
732 2004-11-15  Nick Clifton  <nickc@redhat.com>
733
734         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add
735         builtin assert of cpu=xstormy16.
736
737 2004-11-15  Nathan Sidwell  <nathan@codesourcery.com>
738
739         * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized
740         variable.
741
742 2004-11-14  Richard Henderson  <rth@redhat.com>
743
744         PR 18480
745         * calls.c (struct arg_data): Add parallel_value.
746         (precompute_register_parameters): Set it.
747         (load_register_parameters): Use it.
748         (store_one_arg): Also set it here.
749
750 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
751
752         PR tree-optimization/18431
753         * fold-const.c (associate_trees): Do not produce x + 0.
754         (fold_widened_comparison, fold_sign_changed_comparison): New functions.
755         (fold): Use them.
756         * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type):
757         Moved ...
758         * tree.c (upper_bound_in_type, lower_bound_in_type): Here.
759         * tree.h (upper_bound_in_type, lower_bound_in_type): Declare.
760
761 2004-11-14  Eric Botcazou <ebotcazou@libertysurf.fr>
762
763         * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example.
764
765 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
766
767         * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c,
768         value-prof.c: Fix comment typos.
769
770 2004-11-14  Stan Shebs  <shebs@apple.com>
771
772         Basic ABI changes for passing structs by value in 64-bit Darwin.
773         * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
774         (rs6000_override_options): Set it for 64-bit Darwin.
775         (rs6000_parse_abi_options): Add testing options to change it.
776         (rs6000_return_in_memory): Test whether the type is one
777         that can be passed in registers.
778         (darwin64_function_arg_advance): New.
779         (function_arg_advance): Call it, plus add recursion depth
780         argument and test when counting off arguments.
781         (rs6000_darwin64_function_arg): New.
782         (function_arg): Call it.
783         (setup_incoming_varargs): Add argument to function_arg_advance.
784         (rs6000_darwin64_function_value): New.
785         (rs6000_function_value): Call it.
786         * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
787         * config/rs6000/rs6000-protos.h: Update decl of
788         function_arg_advance.
789
790 2004-11-14  Andrew Pinski  <pinskia@physics.uc.edu>
791
792         PR c/17279
793         * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we
794         support TImode before adding __int128_t and __uint128_t types.
795
796 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
797
798         PR tree-opt/18400
799         * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
800         (vect_transform_loop_bound): Set loop->nb_iterations.
801
802 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
803             Andrew Pinski  <pinskia@physics.uc.edu>
804
805         PR tree-opt/18425
806         * tree-vectorize.c (vect_build_loop_niters): Do not insert
807         NULL into the instruction stream. Initialize new_bb to NULL.
808         (vect_update_ivs_after_vectorizer): Likewise.
809         (vect_gen_niters_for_prolog_loop): Likewise.
810
811 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
812
813         PR tree-optimization/18431
814         * tree-flow.h (stmt_references_memory_p): Declare.
815         * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p.
816         * tree-ssa.c (stmt_references_memory_p): New function.
817
818 2004-11-14  Andreas Schwab  <schwab@suse.de>
819
820         * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on
821         $(EXPR_H).
822
823 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
824
825         * c-common.c (walk_stmt_tree): Remove.
826         * c-common.h: Remove the corresponding prototype.
827
828         * emit-rtl.c (push_to_full_sequence): Remove.
829         * rtl.h: Remove the corresponding prototype.
830
831         * cselib.c, expr.c: Fix comment typos.
832
833 2004-11-13  Richard Henderson  <rth@redhat.com>
834
835         * calls.c (precompute_register_parameters): Force all PARALLELs
836         into pseudo registers.
837         (load_register_parameters): Copy PARALLELs into hard registers.
838         * function.c (assign_parm_setup_block): Copy PARALLELS into
839         pseudo registers.  Do emit_group_store in conversion_insns.
840         * expr.c (emit_group_load_1): Rename from emit_group_load, take
841         tmps as an argument.  Move final copy loop ...
842         (emit_group_load): ... here.  New function.
843         (emit_group_load_into_temps, emit_group_move_into_temps): New.
844         * expr.h: Declare them.
845
846 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
847
848         * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,
849         tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN
850         with PHI_CHAIN where appropriate.
851
852 2004-11-13  Dale Johannesen  <dalej@apple.com>
853
854         * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype.
855         (tree_block_label): Ditto.
856         (flush_pending_stmts): Ditto.
857         (insert_edge_copies): Ditto.
858         (expr_invariant_in_loop_p): Ditto.
859         (TDF_USE_OPS): Parenthesize definition.
860         (TDF_USE_VOPS): Ditto.
861
862 2004-11-13  David Edelsohn  <edelsohn@gnu.org>
863
864         * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5.
865         * config/rs6000/aix52.h (ASM_CPU_SPEC): Same.
866         (atoll): Declare.
867         * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define.
868
869 2004-11-14  Joseph Myers  <joseph@codesourcery.com>
870
871         * config/i386/i386.c (override_options): Move loop to set default
872         tuning to correct place.
873
874 2004-11-13  Zak Kipling  <zak@transversal.com>
875
876         PR target/18300
877         * config/i386/i386.c (classify_argument): Fix infinite loop when
878         passing object with 3 or more base classes by value.
879
880 2004-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
881
882         * doc/md.texi (constraints) <% modifier>: Mention that it is
883         useless when the two alternatives are strictly identical.
884
885 2004-11-13  Richard Henderson  <rth@redhat.com>
886
887         * expmed.c (extract_split_bit_field): Temporarily disable call to
888         extract_force_align_mem_bit_field.
889
890 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
891
892         * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment
893         formatting.
894
895         * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,
896         lambda-code.c, postreload.c, predict.c, tree-sra.c,
897         tree-ssa-loop-manip.c, tree.c: Fix comment typos.
898
899 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
900
901         * doc/install.texi (automake): Correctly document that everything now
902         will use automake 1.9.3.
903
904 2004-11-13  Hans-Peter Nilsson  <hp@bitrange.com>
905
906         PR target/18347
907         * config/mmix/mmix.c (mmix_function_outgoing_value): Handle
908         TImode.  Sorry for other non-complex larger-than-64-bit modes.
909         * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define.
910
911 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
912
913         * doc/install.texi (automake): Document that everything now uses 1.9.
914
915 2004-11-13  Bernd Schmidt  <bernd.schmidt@analog.com>
916
917         * cse.c (cse_insn): Stores in a libcall sequence can invalidate
918         previous loads.
919
920 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
921
922         * tree.h: Fix comment typos.
923
924 2004-11-13  Steven Bosscher  <stevenb@suse.de>
925
926         * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
927         HARD_REGISTER_NUM_P.
928
929         * cselib.c (new_cselib_val): Make comment correct and more detailed.
930         * flow.c (mark_set_1): Likewise.
931
932         * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
933         duplicate_eh_regions): Remove.
934         * except.h (duplicate_eh_regions): Remove prototype.
935         * integrate.c (get_label_from_map, copy_rtx_and_substitute,
936         global_const_equiv_varray): Remove.
937         * integrate.h (get_label_from_map, copy_rtx_and_substitute,
938         global_const_equiv_varray, set_label_in_map): Remove prototypes,
939         extern declaration, and #define.
940         (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove.
941         (struct inline_remap): Remove.
942         * varray.c (struct element): Remove entry for const_equiv_data.
943         * varray.h (struct const_equiv_data): Remove.
944         (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove.
945         (union varray_data_tag) <const_equiv>: Remove.
946         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV,
947         VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove.
948
949         * regstack.c (record_label_references): Remove unused function.
950
951         * rtl.def (VALUE): Update comment.
952         (LABEL_REF): Remove unused operand 2.
953         * rtl.h (struct rtx_def): Update for removed accessor macros.
954         (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN,
955         REG_LOOP_TEST_P): Remove.
956         (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments.
957         * web.c (entry_register): Don't copy REG_LOOP_TEST_P.
958         * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove.
959
960 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
961             Eric Botcazou  <ebotcazou@libertysurf.fr>
962
963         PR target/18230
964         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
965         patterns.
966         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
967         (V32I): New macro for 32-bit modes.
968         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
969         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
970         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
971         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
972         one_cmpldi_sp64): Use V64I instead of DI.
973         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
974         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
975         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
976         (nandv64i_vis, nandv32i_vis): New patterns.
977
978 2004-11-12  Mike Stump  <mrs@apple.com>
979
980         * Makefile.in: Add html support.
981         * java/Make-lang.in: Likewise.
982         * fortran/Make-lang.in: Likewise.
983         * treelang/Make-lang.in: Likewise.
984         * doc/install.texi: Likewise.
985         * doc/makefile.texi: Likewise.
986         * doc/sourcebuild.texi: Likewise.
987
988 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
989
990         * tree-ssa-loop-manip.c: Fix a comment typo.
991
992 2004-11-12  Mike Stump  <mrs@apple.com>
993
994         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
995         renaming this node to Concept Index.
996         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
997         to more closely match gcc.texi.
998
999 2004-11-12  Jeff Law  <law@redhat.com>
1000
1001         * tree-cfg.c (hashtab.h): Include.
1002         (struct edge_to_case_leader_elt): New structure.
1003         (edge_to_case_leader): New.
1004         (edge_to_case_leader_hash): New hashtable hasing function.
1005         (edge_to_case_leader_eq): New hashtable equality function.
1006         (record_switch_edge): New function.
1007         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
1008         (make_switch_expr_edges): Build the edge-to-case-leader
1009         hash table.  Tear down the hash table when we're done.
1010         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
1011         CASE_LABEL.
1012         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
1013         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
1014         to use new concept of case leaders to reduce overhead of
1015         redirecting outgoing edges from switch statements.
1016         * tree.c (get_case_label): New function.
1017         * tree.h (CASE_LABEL): Define in terms of get_case_label.
1018         (CASE_LEADER_OR_LABEL): Define.
1019
1020 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
1021
1022         * varasm.c (output_addressed_constants): For CONST_DECLs,
1023         output the initializer if present.
1024
1025 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
1026
1027         * config/rs6000/darwin.h: Fix confusing typo in comment.
1028
1029 2004-11-12  Devang Patel  <dpatel@apple.com>
1030
1031         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
1032
1033 2004-11-12  Devang Patel  <dpatel@apple.com>
1034
1035         * tree-if-conv.c (clean_predicate_lists): Use loop header
1036         and latch directly.
1037
1038 2004-11-12  Richard Henderson  <rth@redhat.com>
1039
1040         PR 17778
1041         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
1042         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1043         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
1044         * config/i386/i386-modes.def (XF): Use it.
1045
1046 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
1047
1048         * Makefile.in (macro_list): Use move-if-change to avoid spurious
1049         rebuilds.
1050
1051 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
1052
1053         PR c++/18416
1054         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
1055         when deciding whether to pass a variable to
1056         cgraph_varpool_finalize_decl or assemble_variable.
1057         * toplev.c (check_global_declarations): Do not clear DECL_RTL.
1058
1059 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
1060
1061         * tree-vectorizer.c: Fix a comment typo.
1062
1063 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1064
1065         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
1066
1067 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
1068
1069         * tree-scalar-evolution.c (analyzable_condition): Remove
1070         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
1071
1072 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
1073
1074         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
1075         Remove m505/roe multilib variant.
1076
1077 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1078
1079         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
1080         to load from the stack.
1081
1082 2004-11-12  Richard Henderson  <rth@redhat.com>
1083
1084         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
1085         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
1086         * toplev.h (FL2T__): Remove.
1087         (CLZ_HWI): Rename from FL2T_CLZ__.
1088         (CTZ_HWI): New.
1089         (floor_log2): Simplify.
1090         (exact_log2): New.
1091
1092 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
1093
1094         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
1095         compute the first overlapping iterations.
1096
1097 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
1098
1099         PR middle-end/18005
1100         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure
1101         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
1102
1103 2004-11-12  Steven Bosscher  <stevenb@suse.de>
1104
1105         PR tree-optimization/18419
1106         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
1107         pointer set instead of a bitmap.
1108         (walk_use_def_chains): Create, pass and clean up that pointer_set.
1109
1110         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
1111         field an sbitmap.
1112         (init_alias_info): Allocate and zero it here.
1113         (delete_alias_info): Delete it here.
1114         (collect_points_to_info_for): Use it.
1115
1116 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
1117
1118         * alias.c (record_alias_subset, addr_side_effect_eval):
1119         Make them static.
1120         * alias.h: Remove the prototype for record_alias_subset.
1121         * expr.h: Remove the commented-out prototype for
1122         record_alias_subset.
1123         * rtl.h: Remove the prototype for addr_side_effect_eval.
1124
1125         * cfglayout.c (choose_inner_scope): Make it static.
1126         * rtl.h: Remove the corresponding prototype.
1127
1128         * cfgloopmanip.c (update_single_exits_after_duplication,
1129         unloop): Make them static.
1130         * cfgloop.h: Remove the corresponding prototypes.
1131
1132         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
1133         Make them static.
1134         * c-tree.h: Remove the corresponding prototypes.
1135
1136         * explow.c (round_push): Make it static.
1137         * expr.h: Remove the corresponding prototype.
1138
1139         * varasm.c (get_named_section_flags, decl_tls_model): Make
1140         them static.
1141         * output.h: Remove the prototype for get_named_section_flags.
1142         * tree.h: Remove the prototype for decl_tls_model.
1143
1144 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
1145
1146         * function.c (expand_function_end): Remove an "if" statement
1147         that always triggers.
1148         * stmt.c (expand_null_return_1): Likewise.
1149
1150 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
1151
1152         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
1153         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
1154         CLASS_MAX_NREGS): Likewise.
1155
1156 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
1157
1158         PR tree-optimization/17742
1159         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
1160         MINUS_EXPR correctly.
1161
1162 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
1163
1164         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1165         Give up as soon as the evolution is known not computable.
1166
1167 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
1168
1169         PR target/16457
1170         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
1171         mask64_1or2_operand.
1172         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
1173         to spot rlwinm opportunities.
1174         (and64_2_operand): Use mask_1or2_operand.
1175         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
1176
1177 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
1178
1179         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
1180         (vect_update_ivs_after_vectorizer): Update function documentation.
1181         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
1182
1183 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
1184
1185         * config/arm/arm.c: Fix a comment typo.
1186
1187 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
1188
1189         * bitmap.h (nBITMAP_WORD_BITS): Remove.
1190         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
1191         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
1192         unnecessary casts.
1193         (bitmap_first_set_bit): Return unsigned, use ctzl.
1194         (bitmap_last_set_bit): Remove.
1195         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
1196         unsigned.
1197         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
1198         remove special case code for two word elements.
1199         (bitmap_last_set_bit): Remove.
1200         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
1201         bitmap_first_set_bit with bitmap_empty_p.
1202         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
1203         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
1204         bitmap_last_bit_set.
1205
1206 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
1207
1208         PR target/16796
1209         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
1210
1211         PR target/16458
1212         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
1213         unsigned equality compare when we know the operands are unsigned.
1214
1215 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
1216
1217         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
1218         __PIC__ and __pic__ only if TARGET_ABICALLS.
1219         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
1220         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
1221         -KPIC only if not -mno-abicalls.
1222
1223         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
1224         * config/sparc/linux.h, config/sparc/linux64.h
1225         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
1226
1227         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
1228         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
1229         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
1230         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
1231
1232 2004-11-11  Paul Brook  <paul@codesourcery.com>
1233
1234         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
1235         register if current_function_uses_pic_offset_table is set.
1236
1237 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
1238
1239         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
1240         Change multi-instruction sequences to new attribute.
1241         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
1242         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
1243         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
1244
1245 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
1246
1247         * tree-data-ref.c (build_classic_dist_vector): If either loop
1248         is outside of the nest we asked about, the dependence can't
1249         matter.
1250         (build_classic_dir_vector): Ditto.
1251
1252 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
1253
1254         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
1255         right order.
1256         (force_var_cost): Determine cost of addition and multiplication more
1257         precisely.
1258         (get_computation_cost_at): Add cost for computing address elements to
1259         the final cost.
1260
1261         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
1262         one of the arguments of MINUS_EXPR is an address.
1263         (split_address_to_core_and_offset): New function.
1264         (ptr_difference_const): Handle case when one of the operands is a
1265         pointer.
1266         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
1267         (ptr_difference_cost): Pass addresses instead of objects to
1268         ptr_difference_const.
1269
1270 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
1271
1272         * tree.c (tree_check_failed): Emit general error if the list of
1273         node types is empty.
1274
1275 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1276
1277         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
1278         argument.  When the union is passed in the 6th slot, build a
1279         PARALLEL with only one element.
1280         (function_arg): Adjust call to function_arg_union_value.
1281         (function_value): Likewise.
1282
1283 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
1284
1285         PR tree-optimization/17892
1286         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
1287         MINUS_EXPR operator.
1288
1289 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
1290
1291         PR target/18230
1292         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
1293         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
1294
1295 2004-11-10  Steven Bosscher  <stevenb@suse.de>
1296
1297         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
1298         (struct basic_block_def): Remove local_set and cond_local_set
1299         fields.  Update comment for global_live_at_start.
1300         * flow.c (calculate_global_regs_live): Allocate local_sets and
1301         cond_local_sets here as arrays of bitmaps previously stored in
1302         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
1303         obstack allocated bitmaps.
1304
1305 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
1306
1307         PR target/18380
1308         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
1309         hidden.
1310
1311         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
1312
1313 2004-11-09  Jeff Law  <law@redhat.com>
1314
1315         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
1316         argument holding last unvisited block.  Start search for
1317         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
1318         (connect_infinite_loops_to_exit): Supply last unvisited block
1319         to flow_dfs_compute_reverse_execute.
1320
1321 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
1322
1323         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
1324         doubles.
1325         (floatunssidf2): Same.
1326         (floatsidf2): Same.
1327         ("extendsfdf2"): New expander.
1328         (*extendsfdf2_fpr): Rename.
1329         (*truncdfsf2_fpr): Same.
1330         (*negdf2_fpr): Same.
1331         (*absdf2_fpr): Same.
1332         (*nabsdf2_fpr): Same.
1333         (*adddf3_fpr): Same.
1334         (*subdf3_fpr): Same.
1335         (*muldf3_fpr): Same.
1336         (*divdf3_fpr): Same.
1337
1338         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
1339         ("spe_fix_truncdfsi2"): Same.
1340         (spe_floatunssidf2): Same.
1341         (spe_floatsidf2): Same.
1342
1343 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
1344
1345         PR c/18322
1346         * c-common.c (fname_decl): Don't use line number of decl in
1347         diagnostic.
1348
1349 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
1350
1351         * config/s390/s390-protos.h (s390_pool_operand): Remove.
1352         * config/s390/s390.c (s390_pool_operand): Likewise.
1353         (s390_extra_constraint_str): Handle 'B' constraints.
1354         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
1355         * config/s390/s390.md: Document 'B' constraints.
1356         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
1357         s390_pool_operand to prevent insns with two literal pool
1358         references.  Make pattern commutative.
1359         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
1360         'B' constraint instead of s390_pool_operand.
1361
1362 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1363
1364         * tree-cfg.c (create_bb): Remove unnecessary memset.
1365
1366 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1367
1368         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
1369         (thread_block): Call flush_pending_stmt instead of
1370         copy_phis_to_block.
1371
1372 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1373
1374         * loop-iv.c (iv_number_of_iterations): Make it static.
1375         * cfgloop.h: Remove the corresponding prototype.
1376
1377 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1378
1379         * function.c (combine_temp_slots, assign_parms,
1380         expand_pending_sizes): Make them static.
1381         * tree.h: Remove the corresponding prototypes.
1382
1383 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1384
1385         * emit-rtl.c (copy_most_rtx): Remove.
1386         * rtl.h: Remove the corresponding prototype.
1387
1388 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1389
1390         * cfgloop.c (flow_loops_update): Remove.
1391         * cfgloop.h: Remove the corresponding prototype.
1392
1393 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1394
1395         * conflict.c (mark_reg, conflict_graph_compute): Remove.
1396         * basic-block.h: Remove the prototype for
1397         conflict_graph_compute.
1398
1399 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1400
1401         * tree-if-conv.c (add_to_dst_predicate_list): Change the
1402         second argument to basic_block.
1403         (tree_if_convert_cond_expr): Update call sites.
1404
1405 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1406
1407         * fold-const.c (pedantic_non_lvalue): Make it static.
1408         * tree.h: Remove the corresponding prototype.
1409
1410 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1411
1412         * optabs.c (prepare_operand): Make it static.
1413         * optabs.h: Remove the corresponding prototype.
1414
1415 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1416
1417         * reload1.c (reloads_conflict, gen_reload): Make them static.
1418         * reload.h: Remove the corresponding prototypes.
1419
1420 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1421
1422         * reload.c (refers_to_mem_for_reload_p,
1423         refers_to_regno_for_reload_p): Make them static.
1424         * reload.h: Remove the corresponding prototypes.
1425
1426 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
1427             Eric Botcazou  <ebotcazou@libertysurf.fr>
1428
1429         PR target/18230
1430         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
1431         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
1432         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
1433         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
1434         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
1435         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
1436         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
1437         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
1438         MODE_VECTOR_INT modes.
1439         (sparc_extra_constraint_check): Add new constraint 'Y'.
1440         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
1441         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
1442         (V64): New mode macro for 64-bit modes.
1443         (movsf): Use V32 for mode instead of SF.
1444         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
1445         alongside 'G' constraint.
1446         (movdf): Use V64 for mode instead of DF.
1447         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
1448         of DF.  Add 'Y' constraint alongside 'G' constraint.
1449         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
1450         instead of DF.
1451
1452 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
1453
1454         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
1455         integer NEG and ABS.
1456         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
1457         ("*negdi2_31"): Reimplement using a splitter.
1458         ("*negdi2_cc", "*negdi2_cconly"): New insns.
1459         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
1460         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
1461         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
1462         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
1463         ("*absdi2_cc", "*absdi2_cconly"): New insns.
1464         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
1465         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
1466         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
1467         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
1468         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
1469         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
1470         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
1471         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
1472         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
1473
1474 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
1475
1476         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
1477         when eliminating an UNSPEC_CMPINT.
1478         (s390_secondary_input_reload_class): Fix test for CC register reload.
1479         (s390_secondary_output_reload_class): Likewise.
1480         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
1481         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
1482         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
1483         insn patterns with splitters.
1484
1485 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
1486
1487         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
1488         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
1489
1490 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1491
1492         * tree-phinodes.c (phi_reverse): New.
1493         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
1494         Use it.
1495         * tree-flow.h: Add a prototype for phi_reverse.
1496
1497 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
1498
1499         * tree-ssa-loop-ivopts.c: Fix a comment typo.
1500
1501 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
1502
1503         PR pch/14940
1504         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
1505         definitions.
1506
1507 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
1508
1509         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
1510         instead of "arg" in diagnostics.
1511
1512 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
1513
1514         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
1515         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
1516         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
1517         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
1518         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
1519         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
1520         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
1521         config/iq2000/iq2000.c, config/m32r/m32r.c,
1522         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
1523         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
1524         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
1525         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
1526         config/sh/symbian.c, config/stormy16/stormy16.c,
1527         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
1528         and %> as appropriate.  Use %' as apostrophe in diagnostics where
1529         applicable.  Use %< and %> in place of '' quotes where applicable.
1530         Use %qs in place of %<%s%>.  Consistently quote __builtin function
1531         names.
1532
1533 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
1534
1535         * gdbinit.in (pbb, pbm): New macros.
1536
1537 2004-11-08 Jeff Law  <law@redhat.com>
1538
1539         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
1540         implementing it inline.
1541
1542         * cfganal.c (find_edge): Search pred->succs or succ->preds,
1543         whichever is shorter.
1544
1545 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1546
1547         * passes.c (rest_of_handle_jump): Remove dead code.
1548
1549 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1550
1551         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
1552         the last used element in the worklist.
1553
1554 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1555
1556         * tree-inline.c (remap_save_expr): Make it static.
1557         * tree-inline.h: Remove the corresponding prototype.
1558
1559 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1560
1561         * tree-ssa-loop-niter.c (upper_bound_in_type,
1562         lower_bound_in_type): Make them static.
1563         * tree.h: Remove the corresponding prototypes.
1564
1565 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1566
1567         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
1568         static.
1569         * tree-ssa-live.h: Remove the corresponding prototypes.
1570
1571 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1572
1573         * tree-if-conv.c (tree_if_conversion): Make it static.
1574         * tree-flow.h: Remove the corresponding prototype.
1575
1576 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1577
1578         * tree-ssa-operands.c (build_ssa_operands): Make it static.
1579         * tree-flow.h: Remove the corresponding prototype.
1580
1581 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
1582
1583         PR tree-opt/18299
1584         * tree-inline.c (copy_body_r): Change "t = t" to empty
1585         statement instead of "t".
1586
1587 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1588
1589         * modulo-sched.c (create_partial_schedule,
1590         free_partial_schedule, reset_partial_schedule,
1591         ps_add_node_check_conflicts, rotate_partial_schedule): Make
1592         them static.
1593
1594 2004-11-08  Richard Henderson  <rth@redhat.com>
1595
1596         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
1597         the end of a page.
1598
1599 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1600
1601         * sched-deps.c (add_insn_mem_dependence): Make it static.
1602         * sched-int.h: Remove the corresponding prototypes.
1603
1604 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1605
1606         * flow.c (allocate_bb_life_data): Make it static.
1607         * basic-block.h: Remove the corresponding prototype.
1608
1609 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1610
1611         * calls.c (split_complex_values, split_complex_types): Make
1612         them static.
1613         * expr.h: Remove the corresponding prototypes.
1614
1615 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
1616
1617         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
1618         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
1619
1620 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1621
1622         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
1623         statements that always trigger.
1624
1625 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1626
1627         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
1628         tree-scalar-evolution.c, tree-ssa-loop-im.c,
1629         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
1630         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
1631         appropriate.
1632
1633 2004-11-08  Ben Elliston  <bje@au.ibm.com>
1634
1635         * cgraph.h (cgraph_calls_p): Remove.
1636         * cgraph.c (cgraph_calls_p): Likewise.
1637
1638         * varray.h (varray_copy): Remove.
1639         * varray.c (varray_copy): Likewise.
1640
1641 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
1642
1643         PR target/18269
1644         * config/darwin.c (machopic_indirect_data_reference):
1645         Call gen_macho_high and gen_macho_low instead of
1646         checking the mode and calling gen_macho_high_di directly.
1647         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1648         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
1649         to darwin.md.
1650         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
1651         load_macho_picbase, macho_low, macho_high): Removed.
1652         (builtin_setjmp_receiver): Call gen_macho_high and
1653         gen_macho_low instead of checking the mode and calling
1654         gen_macho_high_di directly.
1655         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
1656         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
1657         Moved from rs6000.md.
1658         (macho_high): New expander.
1659         (macho_high_si): Renamed version of macho_high from rs6000.md.
1660         (macho_low): New expander.
1661         (macho_low_si): Renamed version of macho_low from rs6000.md.
1662         (load_macho_picbase): New expander.
1663         (load_macho_picbase_si): Renamed version of load_macho_picbase
1664         from rs6000.md.
1665         (macho_correct_pic): New expander.
1666         (macho_correct_pic_si): Renamed version of macho_correct_pic
1667         from rs6000.md.
1668
1669 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
1670
1671         * c-decl.c (finish_struct): Use complete sentences for diagnostic
1672         for structures or unions with no members or named members.
1673
1674 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
1675
1676         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
1677         taking address of bit-field by assertion.
1678
1679 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1680
1681         * config/s390/s390.md (attribute "op_type"): Default to "NN".
1682         (attribute "atype"): Default to "agen".
1683         (attribute "length"): Default to 6.
1684         (define_asm_attibutes): Remove.
1685         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1686         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
1687         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
1688         Do not set type attribute to "cs" where already default.
1689         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
1690         "*negdi2_31"):
1691         Do not set type attribute to "other" where already default.
1692         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
1693         "*strlendi", "*strlensi",
1694         "*movmem_long_64", "*movmem_long_31",
1695         "*clrmem_long_64", "*clrmem_long_31",
1696         "*cmpmem_long_64", "*cmpmem_long_31",
1697         "*cmpint_si", "*cmpint_di",
1698         "addti3", "*adddi3_31z", "*adddi3_31",
1699         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
1700         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
1701         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
1702         "*pool_entry", "pool_align", "pool_section_start",
1703         "pool_section_end", "main_pool", "reload_base_31", "pool"):
1704         Do not set op_type attribute to "NN" where already default.
1705         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
1706         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
1707         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
1708         Do not set atype attribute to "agen" where already default.
1709         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
1710
1711 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
1712
1713         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
1714
1715 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
1716
1717         PR target/16830
1718         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
1719         R3000 and R4000 macros on IRIX.
1720
1721 2004-11-06  Andreas Schwab  <schwab@suse.de>
1722
1723         PR target/16286
1724         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
1725         __pixel.
1726
1727 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1728
1729         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
1730
1731 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1732
1733         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
1734         matches no insns already matched by other reservations.
1735         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
1736         matches no insns already matched by other reservations.
1737         ("x_ss"): Remove, replace by ...
1738         ("x_cs"): ... this new reservation.  Check type instead of op_type.
1739         Update bypasses to use x_cs instead of x_ss.
1740         ("x_nn"): Remove, replace by ...
1741         ("x_other"): ... this new reservation.  Check type instead of op_type.
1742         Add x_other and x_branch to bypasses.
1743         ("x_vs"): New reservation.
1744         * config/s390/s390.md (attribute "type"): Default according to op_type.
1745         ("*execute"): Set type to "cs".
1746
1747 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1748
1749         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
1750         if we are in GIMPLE.
1751
1752 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
1753
1754         PR rtl-optimization/17933
1755         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
1756         (covers_regno_p): New function.  Handle SETs of PARALLEL,
1757         and defer the rest to...
1758         (covers_regno_no_parallel_p): New function.
1759
1760 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1761
1762         * config/sparc/sparc.c (function_arg_record_value_1): Skip
1763         fields with zero length.
1764         (function_arg_record_value_2): Likewise.
1765         (function_arg_record_value_3): Use smallest_mode_for_size
1766         instead of mode_for_size.
1767         (function_arg_union_value): Return naked register for unions
1768         with zero length.
1769
1770 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1771
1772         * config/sparc/sparc.c (scan_record_type): Handle vector types.
1773         (function_arg_slotno): Handle vector types specially.
1774         (function_arg_record_value_1): Split fields with vector type and
1775         BLKmode into their subparts.
1776         (function_arg_record_value_2): Likewise.  Be prepared to handle
1777         more than 2 registers per field.
1778         (function_arg_union_value): Increment regno inside the loop.
1779         (function_arg_vector_value): New function.
1780         (function_arg): Use it to split fields with vector type and
1781         BLKmode into their subparts and build a PARALLEL.  Treat
1782         other vector types like floats.
1783         (function_value): Likewise.
1784         (sparc_pass_by_reference): Handle vector types.
1785         (sparc_return_in_memory): Likewise.
1786
1787 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1788
1789         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
1790         statement that never triggers.
1791
1792 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1793
1794         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
1795         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
1796         ("x_fdivd"): Use also for fsqrtd type.
1797         ("x_fdivs"): Use also for fsqrts type.
1798         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
1799         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
1800         ("fix_truncdfsi2_ibm"): Set type to "other".
1801         ("floatdidf2", "floatdisf2"): Do not clobber CC.
1802         ("floatsidf2", "floatsidf2_ieee"): Likewise.
1803         ("floatsisf2", "floatsisf2_ieee"): Likewise.
1804         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
1805         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
1806         instead of LRER.
1807         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
1808         ("sqrtdf2"): Set type to "fsqrtd".
1809         ("sqrtsf2"): Set type to "fsqrts".
1810
1811 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1812
1813         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
1814         pointer to the last PHI node in the new PHI chain.
1815
1816 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
1817
1818         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
1819         for non-PIC TLS_MODEL_INITIAL_EXEC case.
1820
1821 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1822
1823         * expmed.c: Fix a comment typo.
1824
1825 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1826
1827         PR target/18106
1828         * config/i386/cygming.h
1829         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
1830
1831 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1832
1833         * config/sh/sh4a.md: Fix copyright.
1834
1835 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1836
1837         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
1838         with GCC.
1839
1840 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
1841
1842         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
1843         when carry not used.  Suggested by Torbjorn Granlund.
1844
1845         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
1846         operand[1] unnecessarily.  Suggested by Eric Christopher.
1847         (rs6000_adjust_cost): Increase latency of store to wider load.
1848         (rs6000_rtx_costs): mulli only allows 16-bit constants.
1849
1850 2004-11-05  Stan Shebs  <shebs@apple.com>
1851
1852         * config/rs6000/rs6000.c (machopic_output_stub): Output
1853         ldu instead of lwzu for 64-bit stubs.
1854
1855 2004-11-05  Richard Henderson  <rth@redhat.com>
1856
1857         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
1858         size 2 with BWX.
1859         (alpha_expand_unaligned_store): Likewise.
1860
1861 2004-11-05  Richard Henderson  <rth@redhat.com>
1862
1863         * expmed.c (extract_force_align_mem_bit_field): New.
1864         (extract_split_bit_field): Call it.
1865
1866 2004-11-05  Richard Henderson  <rth@redhat.com>
1867
1868         * ia64.md (UNSPEC_SHRP): New.
1869         (dshift_count_operand): New.
1870         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
1871         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
1872
1873 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
1874
1875         * c-typeck.c (output_init_element): Return early if value is
1876         error_mark_node.
1877
1878 2004-11-05  James E Wilson  <wilson@specifixinc.com>
1879
1880         * invoke.texi (-fno-guess-branch-probability): Rewrite.
1881
1882         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
1883         1 to UNSPEC_GR_SPILL.
1884
1885 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
1886
1887         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
1888         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
1889
1890 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
1891
1892         * bitmap.h (enum bitmap_bits): Remove.
1893         (bitmap_operation): Remove.
1894         (bitmap_and, bitmap_and_into, bitmap_and_compl,
1895         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
1896         bitmap_xor_into): Prototype.
1897         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
1898         (bitmap_operation): Remove.
1899         (bitmap_and, bitmap_and_into, bitmap_and_compl,
1900         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
1901         bitmap_xor_into): New.
1902         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
1903
1904         PR tree-optimization/18307
1905         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
1906         and ORIG being the same node.
1907
1908 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
1909
1910         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
1911         (install-mkheaders): Install the version built for the
1912         host, not for the build machine.
1913         * configure.ac: Always run fixincludes.
1914         (all_outputs): Remove mkheaders.
1915         * configure: Regenerate.
1916         * fixinc.in: Move to fixincludes/.
1917         * mkfixinc.sh: Likewise.
1918         * mkheaders.in: Likewise.
1919         * README-fixinc: Likewise.
1920
1921 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
1922
1923         PR target/18263
1924         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
1925         equivalent on the A4.
1926
1927 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
1928
1929         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
1930         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
1931         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
1932         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
1933         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
1934         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
1935         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
1936         doc/trouble.texi: Correct end-of-sentence markup and markup of
1937         "etc.", "e.g." and "i.e.".  Use @code in various places where
1938         appropriate.
1939
1940 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
1941
1942         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
1943         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
1944         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
1945         whitespace.
1946
1947 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
1948
1949         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
1950         * doc/extend.texi: Document "notshared" attribute.
1951
1952 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1953
1954         * tree-phinodes.c (make_phi_node): Make it static.
1955         * tree.h: Remove the prototypes for make_phi_node.
1956
1957 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1958
1959         * stmt.c (expand_asm, expand_asm_operands): Make them static.
1960         * tree.h: Remove the prototypes for expand_asm and
1961         expand_asm_operands.
1962
1963 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1964
1965         * passes.c (rest_of_compilation): Make it static.
1966         * toplev.h: Remove the prototype for rest_of_compilation.
1967
1968 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1969
1970         * jump.c (cleanup_barriers): Use delete_insn instead of
1971         delete_barrier.
1972         (delete_barrier): Remove.
1973         * rtl.h: Remove the corresponding prototype.
1974
1975 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1976
1977         * expr.c (mostly_zero_p): Make it static.
1978         * tree.h: Remove the prototype for mostly_zeros_p.
1979
1980 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1981
1982         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
1983
1984 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1985
1986         * builtins.c (expand_builtin_return_addr,
1987         expand_builtin_longjmp, expand_builtin_trap): Make them static.
1988         * expr.h: Remove the prototypes for expand_builtin_longjmp and
1989         expand_builtin_trap.
1990         * tree.h: Remove the prototype for expand_builtin_return_addr.
1991
1992 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1993
1994         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
1995         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
1996         with VAL being NULL.
1997
1998 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1999
2000         * cfghooks.c (delete_basic_block): Remove code to truncate
2001         edge vectors.
2002
2003 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
2004
2005         * flow.c (init_propagate_block_info): Change the type of i to
2006         unsigned.
2007
2008 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
2009
2010         PR tree-optimization/18184
2011         * c-typeck.c (comptypes): Do not treat pointers of different
2012         modes or alias-all flags as equivalent.
2013         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
2014
2015 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
2016
2017         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
2018         reference specific C parser files in examples.
2019
2020 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
2021
2022         PR target/15342
2023         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
2024         as OP_INOUT if the instruction is predicated.
2025
2026 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
2027
2028         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
2029         * tree-vectorizer.c: Fix a comment typo.
2030
2031 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
2032
2033         * sdbout.c (SDB_GENERATE_FAKE): Remove.
2034         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
2035         * system.h: Poison SDB_GENERATE_FAKE.
2036         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
2037
2038 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
2039
2040         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
2041
2042 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2043
2044         PR other/18277
2045         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
2046         2004-10-29 patch
2047
2048 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
2049
2050         * predict.c (propagate_freq): Make bitno unsigned. Move
2051         npredecessors update out of loop.
2052
2053         * bitmap.h (bitmap_iterator): Remove word_bit and bit
2054         fields. Rename others.
2055         (bmp_iter_common_next_1, bmp_iter_single_next_1,
2056         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
2057         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
2058         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
2059         bmp_iter_and_next): Remove.
2060         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
2061         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
2062         New.
2063         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
2064         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
2065
2066         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
2067         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
2068         bitmap_and_into, bitmap_ior_into as appropriate.
2069         * except.c (remove_eh_handler): Likewise.
2070         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
2071         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
2072         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
2073         * tree-ssa-live.h (live_merge_and_clear): Likewise.
2074         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
2075         Likewise.
2076
2077         * bitmap.c (bitmap_print): Make bitno unsigned.
2078         * bt-load.c (clear_btr_from_live_range,
2079         btr_def_live_range): Likewise.
2080         * caller-save.c (save_call_clobbered_regs): Likewise.
2081         * cfganal.c (compute_dominance_frontiers_1): Likewise.
2082         * cfgcleanup.c (thread_jump): Likewise.
2083         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
2084         * conflict.c (conflict_graph_compute): Likewise.
2085         * ddg.c (add_deps_for_use): Likewise.
2086         * df.c (df_refs_update): Likewise.
2087         * except.c (remove_eh_handler): Likewise.
2088         * flow.c (verify_local_live_at_start, update_life_info,
2089         initialize_uninitialized_subregs, propagate_one_insn,
2090         free_propagate_block_info, propagate_block, find_use_as_address,
2091         reg_set_to_hard_reg_set): Likewise.
2092         * gcse.c (clear_modify_mem_tables): Likewise.
2093         * global.c (global_conflicts, build_insn_chain): Likewise.
2094         * ifcvt.c (dead_or_predicable): Likewise.
2095         * local-alloc.c (update_equiv_regs): Likewise.
2096         * loop.c (load_mems): Likewise.
2097         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
2098         Likewise.
2099         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
2100         Likewise.
2101         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
2102         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
2103         * sched-rgn.c (propagate_deps
2104         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
2105         * tree-dfa.c (dump_dfa_stats
2106         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
2107         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
2108         Likewise.
2109         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
2110         free_temp_expr_table, find_replaceable_exprs): Likewise.
2111         * tree-sra.c (scan_function, scalarize_parms): Likewise.
2112         * tree-ssa-alias.c (init_alias_info,
2113         compute_points_to_and_addr_escape,
2114         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
2115         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
2116         * tree-ssa-live.c (new_tree_live_info, live_worklist,
2117         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
2118         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
2119         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
2120         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
2121         add_call_read_ops): Likewise.
2122         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
2123         * tree-ssa-live.h (num_var_partitions): Return unsigned.
2124
2125 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
2126
2127         PR tree-optimization/18009
2128         * tree-vectorizer.h (enum dr_alignment_support): New type.
2129         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
2130         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
2131         single data_reference (instead of a varray of references).
2132         * tree-vectorizer.c (new_loop_vec_info): Likewise.
2133         (vect_gen_niters_for_prolog_loop): Likewise.
2134         (vect_update_inits_of_drs): Likewise.
2135
2136         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
2137         vect_enhance_data_refs_alignment.
2138         (vect_do_peeling_for_alignment): Likewise.
2139         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
2140         this functionality used to be in vect_analyze_data_refs_alignment.
2141         Also update DR_MISALIGNMENT due to peeling; this functionality used to
2142         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
2143         (vect_analyze_data_refs_alignment): Decision on whether and by how much
2144         to peel moved to vect_enhance_data_refs_alignment. Call
2145         vect_supportable_dr_alignment.
2146
2147         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
2148         (vect_compute_data_refs_alignment): Return bool. Consider return value
2149         of vect_compute_data_ref_alignment and return true/false accordingly.
2150         (vect_enhance_data_refs_alignment): Consider return value of
2151         vect_compute_data_refs_alignment and return true/false accordingly.
2152
2153         (vect_supportable_dr_alignment): New function.
2154         (vectorizable_store): Call vect_supportable_dr_alignment.
2155         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
2156         support checks moved from here to vect_supportable_dr_alignment.
2157
2158         (vect_transform_loop): Avoid 80 columns overflow.
2159
2160 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2161
2162         * timevar.c (timevar_enable): Change from
2163         static.
2164         (timevar_push): Rename to ...
2165         (timevar_push_1): this and remove the
2166         enabled check.
2167         (timevar_pop): Rename to ...
2168         (timevar_pop_1): this and remove the
2169         enabled check.
2170         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
2171         (timevar_pop): New macro.
2172         (timevar_push): New macro.
2173         (timevar_enable): Declare.
2174
2175 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2176
2177         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
2178         libgcc for shared libraries.
2179
2180 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
2181
2182         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
2183         * config/s390/s390.c (s390_split_access_reg): New function.
2184         (regclass_map): Add access registers.
2185         (get_thread_pointer): Use access register instead of UNSPEC_TP.
2186         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
2187         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
2188         (TP_REGNUM): New define.
2189         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
2190         REG_ALLOC_ORDER): Add access registers.
2191         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
2192         CANNOT_CHANGE_MODE_CLASS): Support access registers.
2193         (enum reg_class): Add ACCESS_REGS.
2194         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
2195         (REG_CLASS_FROM_LETTER): Add 't' constraint.
2196         (REGISTER_NAMES): Add access registers.
2197         * config/s390/s390.md (UNSPEC_TP): Remove.
2198         ("*movdi_64"): Add access register alternatives.  Provide splitters
2199         to split DImode access register <-> GPR moves into SImode moves.
2200         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
2201         ("movstrictsi"): Likewise.
2202         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
2203         ("set_tp_64", "set_tp_31"): Likewise.
2204         ("*set_tp"): New insn.
2205
2206 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
2207
2208         * tree-phinodes.c (resize_phi_node): Copy only a portion of
2209         the PHI node currently in use.
2210
2211 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2212
2213         PR tree-opt/18231
2214         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
2215         also.
2216
2217 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
2218
2219         PR tree-optimization/18270
2220         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
2221         abnormal edges, commit all pending stmts on incoming edges.
2222
2223 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
2224
2225         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
2226         cause extra costs.  Generate canonical RTL.
2227
2228 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
2229
2230         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
2231         (lambda_compute_target_space). Ditto.
2232         * lambda.h (lambda_trans_matrix): Ditto.
2233         (lambda_linear_expression): Ditto.
2234         (lambda_body_vector): Ditto.
2235         (lambda_loopnest): Ditto.
2236         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
2237         update comments, and remove pointless addition of 0.
2238         (linear_transform_loops): Update comments.
2239
2240 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
2241
2242         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
2243         CEIL_MOD_EXPR.
2244
2245 2004-11-03 Jeff Law  <law@redhat.com>
2246
2247         * predict.c (struct block_info_def): Kill "tovisit" field.
2248         (propagate_freq): Accept new "tovisit" parameter.  Change
2249         read/write access methods for "tovisit" to check the "tovisit"
2250         bitmap instead of a bit in block_info_def.
2251         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
2252         it to propagate_freq.
2253
2254         * stmt.c (expand_case): Speed up code to detect duplicate case
2255         label targets and count unique case label targets.
2256
2257 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
2258
2259         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
2260
2261 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
2262
2263         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
2264
2265 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
2266
2267         * tree-cfg.c (find_taken_edge): Abort if we are given a
2268         statement that is neither COND_EXPR nor SWITCH_EXPR.
2269
2270 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
2271
2272         * fold-const.c (fold): Reassociate also (x - mult) + mult and
2273         (mult - x) + mult.  Cast operands of expression after applying
2274         distributive law to the correct types.  Apply distributive law
2275         to a * c - b * c for all non-float types.
2276
2277 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
2278
2279         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
2280         because we don't want to run them now; instead, set them to
2281         stmp-install-fixproto or stmp-install-fixinc.
2282         * Makefile.in (stmp-install-fixproto): New.
2283         (stmp-install-fixinc): New.
2284         * configure: Regenerate.
2285
2286 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
2287
2288         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
2289         of bitmap_xor.
2290
2291 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
2292
2293         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
2294         (c_types_compatible_p): Move function definition...
2295         * c-objc-common.c (c_types_compatible_p): ...here.
2296         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
2297         c-lang.c.
2298
2299 2004-11-02  Steven Bosscher  <stevenb@suse.de>
2300
2301         * cfgloop.h (struct loop): Update comment.
2302         * cse.c (cse_main): Remove obsolete comment.
2303
2304         * expr.h (gen_cond_trap): Move prototype under functions provided
2305         by optabs.c.
2306         (canonicalize_condition, get_condition): Move to...
2307         * rtl.h (canonicalize_condition, get_condition): ...here.
2308         (branch_target_load_optimize): Add comment that this function is
2309         in bt-load.c.
2310         * loop.c (canonicalize_condition, get_condition): Move to...
2311         * rtlanal.c (canonicalize_condition, get_condition): ...here.
2312         * sched-deps.c (get_condition): Rename to sched_get_condition.
2313         (add_dependence): Update this caller.
2314
2315 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
2316
2317         PR tree-opt/16808
2318         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
2319         that the vops get marked for renaming.
2320
2321 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
2322
2323         * config/s390/s390.md ("movcc"): Set type attribute.
2324
2325 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
2326
2327         * tree-phinodes.c (add_phi_arg): Add an assertion that the
2328         edge already exists.
2329
2330 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
2331
2332         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
2333         element that's being removed.
2334
2335 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
2336
2337         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
2338         arguments using PENDING_STMT.
2339         (thread_block): Call copy_phis_to_block after redirecting an
2340         edge.
2341
2342 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
2343
2344         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
2345         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
2346         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
2347         (bitmap_ior_and_compl_into): Produce bool.
2348         (bitmap_union_of_diff): Rename to ...
2349         (bitmap_ior_and_compl): ... here. Produce bool.
2350         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
2351         bitmap_operation directly.
2352         (bitmap_union_of_diff): Rename to ...
2353         (bitmap_ior_and_compl): ... here. Return bool, use
2354         bitmap_operation directly.
2355         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
2356         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
2357         * global.c (modify_bb_reg_pav): Likewise.
2358
2359         * bitmap.h (bitmap_equal_p): Return bool.
2360         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
2361         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
2362         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
2363         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
2364         bitmap_intersect_compl_p.
2365         * ifcvt (dead_or_predicable): Likewise.
2366
2367 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
2368
2369         PR rtl-optimization/17104
2370         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
2371         loads in zero_extend.
2372
2373 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
2374
2375         PR debug/18242
2376         * toplev.c (debug_type_names): Remove "dwarf-1".
2377
2378 2004-11-02  Ben Elliston  <bje@au.ibm.com>
2379
2380         * timevar.h (timevar_get): Remove.
2381         * timevar.c (timevar_get): Remove unused function.
2382
2383 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
2384
2385         * doc/include/texinfo.tex: Update from Texinfo CVS.
2386
2387 2004-11-02  Ben Elliston  <bje@au.ibm.com>
2388
2389         * cppdefault.h (cpp_SYSROOT): Remove.
2390         * cppdefault.c (cpp_SYSROOT): Likewise.
2391
2392 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
2393
2394         PR tree-optimization/16447
2395         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
2396         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
2397         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
2398         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
2399         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
2400         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
2401         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
2402         (identical_copies_p): New.  Return true is two copies are the same.
2403         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
2404         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
2405         for a basic block.
2406         (perform_edge_inserts): New.  Determine what to do with all stmts that
2407         have been inserted on edges.
2408         (remove_ssa_form):  Analyze and commit edges from here.
2409
2410 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
2411
2412         PR bootstrap/18232
2413         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
2414         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
2415         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
2416         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
2417
2418 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
2419
2420         PR c/18239
2421         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
2422         parameter declarations.
2423
2424 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
2425
2426         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
2427         (s390_secondary_input_reload_class)
2428         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
2429         register.
2430         (s390_expand_cmpmem): Enable cmpmem implementation.
2431         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
2432         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
2433         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
2434         * config/s390/s390.md ("movcc"): New insn pattern.
2435         * doc/md.texi: Document 'c' constraint for s390.
2436
2437 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
2438
2439         PR c++/18064
2440         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
2441         extension.
2442
2443 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
2444
2445         Fix PR tree-optimization/17672
2446         Fix PR tree-optimization/18168
2447
2448         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
2449         assert test.
2450         (gcc_tree_to_linear_expression): Add extra to existing constant.
2451         (depth_of_nest): Factor out function used in various places.
2452         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
2453         functional changes.
2454         (find_induction_var_from_exit_cond): Stop guessing, and just
2455         get the right answer :).
2456         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
2457         Print out message about result of attempt to create perfect nest.
2458         (lbv_to_gcc_expression): Add type argument, use it to do math
2459         and induction variable creation.
2460         (lle_to_gcc_expression): Ditto.
2461         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
2462         oldiv. Pass type argument to lle_to_gcc_expression and
2463         lbv_to_gcc_expression.
2464         Reset number of iterations after transformation.
2465         (perfect_nestify): Remove useless pre-allocation, and cleanup
2466         a small amount.
2467
2468         * tree-data-ref.c (build_classic_dist_vector): Return false for
2469         dependences completely outside of the loop nest we asked about.
2470         (build_classic_dir_vector): Ditto.
2471         (compute_data_dependences_for_loop): Only add dependence relations
2472         inside the loop we asked about.
2473
2474         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
2475         Compute immediate uses.
2476
2477         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
2478
2479 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
2480
2481         * tree-cfg.c (thread_jumps): Fix a comment typo.
2482
2483 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
2484
2485         * tree-cfg.c (thread_jumps): Fix a comment typo.
2486
2487 2004-10-31  Nicolas Pitre <nico@cam.org>
2488
2489         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
2490         values smaller than 2^32.
2491
2492 2004-10-31 Jeff Law  <law@redhat.com>
2493
2494         * cfgloop.h (struct loop): Remove unused "nodes" field.
2495         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
2496         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
2497         instead of calling flow_bb_inside_loop_p for every basic block
2498         in the function.
2499         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
2500
2501 2004-10-31  Graham Stott <graham.stott@btinternet.com>
2502
2503         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
2504         INT_5_BITS instead of VAL_5_BITS_P.
2505
2506 2004-10-31  Roger Sayle  <roger@eyesopen.com>
2507
2508         PR middle-end/14521
2509         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
2510         for consistent quoting in diagnostic messages.
2511         (expand_call_inline): Likewise.
2512         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2513         * tree-ssa.c (warn_uninitialized_var): Likewise.
2514         (warn_uninitialized_phi): Likewise.
2515
2516 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
2517
2518         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
2519         mode check.
2520
2521 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
2522
2523         * c-common.c: Fix a comment typo.
2524
2525 2004-10-31  Jason Merrill  <jason@redhat.com>
2526
2527         PR middle-end/17526
2528         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
2529         aggregate types that are not BLKmode.
2530
2531 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
2532
2533         * c-common.h (objc_lookup_ivar): Add second parameter to
2534         prototype.
2535         * c-typeck.c (build_external_ref): After looking up symbol,
2536         pass it to objc_lookup_ivar() to decide whether it or the
2537         ivar should be used, rather than deciding the issue locally.
2538         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
2539         which is simply returned in the non-ObjC case.
2540
2541 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
2542
2543         * sdbout.c (sdbout_symbol): Do not output type .def statements
2544         for builtin types.
2545
2546 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2547
2548         * c-common.c (catenate_strings): New.
2549         (c_parse_error): Use it.  Don't over-escape.
2550
2551 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
2552
2553         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
2554         modify the for loop expressions for it.  Remove unnecessary casts.
2555         (sh_expand_prologue): Declare reg as unsigned.
2556         (sh_gimplify_va_arg_expr): Initinalize lab_over.
2557         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
2558
2559 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
2560
2561         * doc/invoke.texi (Darwin Options): Improve description of
2562         how the subtype is chosen.
2563
2564 2004-10-30  Roger Sayle  <roger@eyesopen.com>
2565
2566         PR middle-end/18096
2567         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
2568         the stack adjustment, "size", is valid for Pmode.  If the stack
2569         frame is too large, generate a trap insn and issue a warning.
2570
2571 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
2572
2573         * tree-ssa-dom.c: Fix comment typos.
2574
2575 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
2576
2577         * config/sh/sh.c (prepare_move_operands): Use operands[0]
2578         for the output rtl if no_new_pseudos is set.  Remove redundant
2579         line.
2580
2581 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
2582
2583         PR c/16666
2584         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
2585         determining whether to copy parameter types from a previous
2586         prototype declaration.
2587
2588 2004-10-29  Roger Sayle  <roger@eyesopen.com>
2589
2590         PR rtl-optimization/17581
2591         * cselib.c (cselib_process_insn): The last instruction of a libcall
2592         block, with the REG_RETVAL note, should be considered in the libcall.
2593         * gcse.c (do_local_cprop): Allow constants to be propagated outside
2594         of libcall blocks.
2595         (adjust_libcall_notes): Use simplify_replace_rtx instead of
2596         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
2597
2598 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
2599
2600         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
2601
2602 2004-10-29 Jeff Law  <law@redhat.com>
2603
2604         * tree-ssa-dom.c (struct edge_info): New structure holding
2605         edge equivalences and edge redirection information.
2606         (get_eq_expr_value, record_dominating_conditions): Kill.
2607         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
2608         Call record_edge_info.
2609         (allocate_edge_info, free_edge_info): New.
2610         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
2611         rather than cprop_into_phis.  Free all edge infos before threading
2612         jumps.
2613         (thread_across_edge): Allocate new edge info structures as needed
2614         and store the redirection target into the edge info structure
2615         instead of the edge's AUX field.
2616         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
2617         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
2618         Revamp code which finds and records equivalences associated with
2619         edges to use saved data in the edge_info structure.
2620         (record_equivalencs_from_phis): Similarly.
2621         (dom_opt_finalize_block): Revamp code which finds and records
2622         equivalences associated with edges to use saved data in the
2623         edge_info structure.
2624         (build_and_record_new_cond): New function.
2625         (record_conditions): Use build_and_record_new_cond to record
2626         dominating conditions.
2627         (record_edge_info): New function.
2628         (record_range): Tighten test for conditions which create
2629         useful range records.
2630
2631 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
2632
2633         * config/i386/darwin.h (ASM_SPEC): Simplify.
2634         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
2635         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
2636         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
2637         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
2638         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
2639         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
2640         (ASM_SPEC): Handle -force_cpusubtype_ALL.
2641         * doc/invoke.texi (Darwin Options): Improve documentation for
2642         Darwin linker (and libtool) switches.
2643
2644         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
2645
2646 2004-10-29  Stan Shebs  <shebs@apple.com>
2647
2648         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
2649
2650 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
2651
2652         * tree-phinodes.c (allocate_phi_node): New.
2653         (make_phi_node, resize_phi_node): Use it.
2654
2655 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
2656
2657         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
2658         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
2659
2660 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
2661
2662         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
2663         the whole PHI node.
2664         * tree.h (tree_phi_node): Tell the garbage collector to chase
2665         num_args arguments.
2666
2667 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
2668
2669         * opts.c (decode_options): Lower the crossjump threshold for -Os.
2670
2671 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
2672
2673         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
2674
2675 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
2676
2677         * bitmap.h (bitmap_empty_p): New.
2678         (bitmap_and, bitmap_and_into, bitmap_and_compl,
2679         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
2680         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
2681         operation macros.
2682         (bitmap_ior_and_compl): Rename to ...
2683         (bitmap_ior_and_compl_into): ... here.
2684         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
2685         (bitmap_ior_and_compl): Rename to ...
2686         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
2687         flag.
2688         (bitmap_union_of_diff): Use renamed bitmap functions.
2689         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
2690         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
2691         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
2692         * df.c (df_bb_rd_local_compute)
2693         * flow.c (calculate_global_regs_live,
2694         init_propagate_block_info): Likewise.
2695         * ifcvt.c (find_if_case_1, find_if_case_2,
2696         dead_or_predicable): Likewise.
2697         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
2698         reset_conflicts, conflicts_between_webs): Likewise.
2699         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
2700         detect_web_parts_to_rebuild): Likewise.
2701         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
2702         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
2703         * tree-sra.c (decide_instantiations): Likewise.
2704         * tree-ssa-alias.c (create_name_tags,
2705         merge_pointed_to_info): Likewise.
2706         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2707         * tree-ssa-loop-im.c (move_computations): Likewise.
2708         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
2709         * tree-ssa-pre.c (fini_pre): Likewise.
2710         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
2711         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
2712         * tree-vectorizer.c (vectorize_loops): Likewise.
2713
2714 2004-10-29  Nick Clifton  <nickc@redhat.com>
2715
2716         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
2717         adding the PIC register to the fixed_regs array, also add it
2718         to the call_used_regs array.
2719
2720 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
2721
2722         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
2723         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
2724
2725 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
2726
2727         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
2728         (rewrite_blocks): Modify argument, and use it to decide which
2729         function to call.
2730         (rewrite_def_def_chains): Call rewrite_blocks with true here.
2731         (rewrite_into_ssa): and call it with false here.
2732
2733 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
2734
2735         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
2736         triggers into gcc_assert.
2737
2738 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
2739
2740         PR tree-optimization/16728
2741         * tree-flow.h (get_ptr_info): Declare.
2742         * tree-ssa-alias.c (get_ptr_info): Make extern.
2743         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
2744         alias information.
2745
2746 2004-10-28  Stan Shebs  <shebs@apple.com>
2747
2748         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
2749         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
2750         case.
2751
2752 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
2753
2754         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
2755         prevent their later unnecessary registration.
2756         (mf_build_check_statement_for): Remove "addr" argument, and
2757         related "__mf_value" generated code.  Update callers.
2758         (mf_decl_eligible_p): New function, factored from mx_register_decls.
2759         (mx_register_decls): Call it.
2760         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
2761         to restore support for complex nested expressions.
2762         (mudflap_enqueue_decl): Simplify.  Move registration call emission
2763         out ...
2764         (mudflap_finish_file): ... to here.
2765         (mudflap_enqueue_constant): Remove dump code.
2766
2767 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
2768
2769         PR 18199
2770         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
2771         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
2772         (dbxout_finish_complex_stabs): Update to match.
2773         (dbxout_symbol_location): Call emit_pending_bincls_if_required
2774         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
2775         dbxout_begin_complex_stabs_noforcetext.
2776         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
2777         N_GSYM, using new SYM parameter.  Correct logic for special
2778         cases for N_FUN.
2779
2780         * varasm.c (function_section): If DECL is NULL_TREE, don't try
2781         to do anything else.  Do not call get_insns if cfun or
2782         cfun->emit are NULL.
2783
2784 2004-10-28  Adam Nemet  <anemet@lnxw.com>
2785
2786         PR middle-end/18160
2787         * c-typeck.c (c_mark_addressable): Issue error if address of a
2788         register variable is taken.  Use "%qD" to print DECL_NAME.
2789
2790 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
2791
2792         * opts.c (decode_options): Don't run PRE at -Os.
2793
2794 2004-10-28  Richard Henderson  <rth@redhat.com>
2795
2796         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
2797         zero in the conditional.
2798         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
2799
2800 2004-10-28  Richard Henderson  <rth@redhat.com>
2801
2802         * cse.c (memory_extend_rtx): Remove.
2803         (cse_main): Don't set it.
2804         (cse_insn): Use a local buffer instead.
2805
2806 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2807
2808         * profile.c (branch_prob): Call to init_edge_profiler added.
2809         * rtl-profile.c (rtl_init_edge_profiler): New function.
2810         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
2811         call to safe_insert_insn_on_edge.
2812         (rtl_profile_hooks): rtl_init_edge_profiler added.
2813         * tree-profile.c (tree_init_edge_profiler): New function.
2814         (tree_profile_hooks): tree_init_edge_profiler added.
2815         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
2816
2817 2004-10-28  Nick Clifton  <nickc@redhat.com>
2818
2819         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
2820         emit_jump_insn() to generate the return instruction.
2821
2822 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
2823
2824         * tree-phinodes.c: Remove trailing whitespace.
2825
2826 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
2827
2828         * tree-ssa-loop-ivopts.c: Fix a comment typo.
2829         * doc/invoke.texi: Fix a typo.
2830
2831 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
2832
2833         * Makefile.in (OBJS-common): Remove duplicates.
2834
2835 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
2836
2837         * lambda-code.c (nestify_update_pending_stmts): Remove.
2838         (perfect_nestify): Use flush_pending_stmts instead of
2839         nestify_update_pending_stmts.
2840         * tree-cfg.c (tree_make_forwarder_block): Use
2841         flush_pending_stmts.
2842         * tree-flow.h: Add a prototype for flush_pending_stmts.
2843         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
2844         Use flush_pending_stmts.
2845         (lv_update_pending_stmts): Remove.
2846         (tree_ssa_loop_version): Use flush_pending_stmts instead of
2847         lv_update_pending_stmts.
2848         * tree-ssa.c (flush_pending_stmts): New.
2849
2850 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
2851
2852         PR target/15286
2853         * final.c (alter_subreg): Compute correct offset to use with
2854         paradoxical SUBREGs of memory operands.
2855         * recog.c (general_operand): Allow paradoxical SUBREGs of
2856         memory operands after reload.
2857         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
2858         has failed when passed a hard register.
2859
2860 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
2861
2862         * function.c (assign_parm_setup_block): Handle parallels correctly.
2863
2864 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2865
2866         * final.c (shorten_branches): Initialize flags structure.
2867
2868 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
2869
2870         * tree.c (int_cst_node, int_cst_hash_table): New variables.
2871         (init_ttree): Initialize them.
2872         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
2873         (build_int_cst_wide): Use hash table for oversized integers.
2874
2875 2004-10-28  Nick Clifton  <nickc@redhat.com>
2876
2877         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
2878         begin_label.
2879
2880 2004-10-27  Richard Henderson  <rth@redhat.com>
2881
2882         PR middle-end/18163
2883         * expr.c (emit_group_load): Don't go force temporary for memory
2884         or concat source.
2885         (emit_group_store): Similarly.
2886
2887 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
2888
2889         PR other/18186
2890         * common.opt (--param): Fix spelling of parameter.
2891
2892 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
2893
2894         PR tree-opt/17529
2895         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
2896         Don't fold statement.
2897         <case ASM_EXPR>: Fold the statement.
2898
2899 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
2900
2901         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
2902         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
2903
2904 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2905
2906         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
2907         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
2908         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
2909         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
2910
2911 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2912
2913         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
2914         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
2915         punctuation outside quotes.
2916
2917 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
2918             James E Wilson  <wilson@specifixinc.com>
2919
2920         PR target/13158
2921         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
2922         sibcall alloc instruction.
2923         (process_set): Handle sibcall alloc instruction.
2924
2925 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
2926
2927         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
2928         SUBTARGET_ATTRIBUTE_TABLE.
2929         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
2930         (SUBTARGET_ATTRIBUTE_TABLE): Define.
2931         * config/darwin.c (darwin_handle_weak_import_attribute): New.
2932         (HAVE_DEAD_STRIP): Delete.
2933         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
2934         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
2935         Prototype.
2936
2937         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
2938
2939         * config/darwin.h (GTHREAD_USE_WEAK): Define.
2940
2941 2004-10-28  Ben Elliston  <bje@au.ibm.com>
2942
2943         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
2944         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
2945         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
2946         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
2947         * tree-sra.c: Include "params.h".
2948         (decide_block_copy): Use new parameters.
2949         * doc/invoke.texi (Optimize Options): Document new SRA pass
2950         parameters sra-max-structure-size and sra-field-structure-ratio.
2951
2952 2004-10-27  Nicolas Pitre <nico@cam.org>
2953
2954         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
2955
2956 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
2957
2958         PR tree-optimization/18048
2959         * fold-const.c (try_move_mult_to_index): New function.
2960         (fold): Use try_move_mult_to_index.
2961         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
2962         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
2963         an all-ones unsigned constant without extra bits.
2964         * tree.c (build_low_bits_mask): New function.
2965         * tree.h (build_low_bits_mask): Declare.
2966
2967 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
2968
2969         PR target/17956
2970         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
2971         final condition.
2972         (minsf3): Same.
2973         (maxdf3): Same.
2974         (mindf3): Same.
2975
2976 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2977
2978         * tree-cfg.c (thread_jumps): Speed up by reordering the two
2979         conditions for entering basic blocks into worklist.
2980
2981 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2982
2983         * tree-cfg.c (thread_jumps): Speed up by pretending to have
2984         ENTRY_BLOCK_PTR in worklist.
2985
2986 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2987
2988         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
2989         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
2990
2991 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
2992
2993         Fix PR tree-optimization/17133
2994
2995         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
2996         def kill operand.
2997
2998         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
2999         (get_v_must_def_result_ptr): Modify for new structure of
3000         v_must_defs array.
3001         (get_v_must_def_kill_ptr): New.
3002         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
3003         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
3004         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
3005         (op_iter_init): Initialize new mustu members.
3006         (op_iter_next_mustdef): New function.
3007         (op_iter_init_mustdef): Ditto.
3008
3009         * tree-flow.h (rewrite_def_def_chains): New function.
3010
3011         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
3012         (ssa_mark_def_sites): Ditto.
3013         (rewrite_stmt): Ditto.
3014         (ssa_rewrite_stmt): Ditto.
3015         (rewrite_blocks): Factor out from rewrite_into_ssa.
3016         (mark_def_block_sites): Ditto.
3017         (rewrite_def_def_chains): New function, just rewrites def-def
3018         chains without phi node insertion.
3019
3020         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
3021
3022         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
3023
3024         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
3025         they include the rhs now.
3026
3027         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
3028         V_MUST_DEF_RESULT.
3029
3030         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
3031         Update callers.
3032         (mark_really_necessary_kill_operand_phis): New function.
3033         (perform_tree_ssa_dce): Call it.
3034         (pass_dce): Add TODO_fix_def_def_chains.
3035         (pass_cd_dce): Ditto.
3036
3037         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
3038         well.
3039         (rewrite_mem_refs): Ditto.
3040
3041         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
3042         as well.
3043
3044         * tree-ssa-operands.c (allocate_v_may_def_optype):
3045         v_may_def_operand_type_t became v_def_use_operand_type_t.
3046         (allocate_v_must_def_optype) Ditto.
3047         (finalize_ssa_v_must_defs): Update for new operand type, as well
3048         as setting the use portion as well.
3049         (copy_virtual_operands): Copy the kill operand as well.
3050         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
3051         V_MUST_DEF_RESULT.
3052
3053         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
3054         v_def_use_operand_type.
3055         (v_must_def_optype_d): Use v_def_use_operand_type.
3056         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
3057         (V_MUST_DEF_KILL_*): New macros.
3058         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
3059         members.
3060         Rename existing must_i and num_v_must members to mustd_i and
3061         num_v_mustd.
3062         (SSA_OP_VMUSTDEFKILL): New flag.
3063         (SSA_OP_VIRTUAL_KILLS): New flag.
3064         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
3065         (SSA_OP_ALL_KILLS): New flag.
3066         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
3067
3068         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
3069
3070         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
3071         became V_MUST_DEF_RESULT.
3072         (rename_variables_in_bb): Rename kill pointer as well.
3073
3074         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
3075         immediate uses.
3076
3077 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
3078
3079         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
3080         the block that needs it.
3081
3082 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
3083
3084         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
3085         ATTRIBUTE_UNUSED.
3086
3087 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
3088
3089         * c-lex.c (cb_def_pragma): Clean up code for making location
3090         palatable to diagnostic.c.
3091
3092 2004-10-27  Steven Bosscher  <stevenb@suse.de>
3093
3094         PR tree-optimization/17757
3095         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
3096         without any PHI arguments left.  Make sure the argument that
3097         we're supposed to remove exists at all.
3098
3099 2004-10-27  Paul Brook  <paul@codesourcery.com>
3100
3101         * configure.ac: Don't test for [build] __cxa_atexit when building a
3102         cross compiler.
3103         * configure: Regenerate.
3104
3105 2004-10-27  Paul Brook  <paul@codeosurcery.com>
3106
3107         * configure.ac: Use build_exeext not host_exeext when lookin for
3108         target tools.
3109         * configure: Regenerate.
3110
3111 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3112
3113         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
3114
3115 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3116             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
3117
3118         PR middle-end/14684
3119         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
3120         to match -fprofile-use.
3121
3122 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
3123
3124         * config/rs6000/rs6000.c: Fix a comment typo.
3125
3126 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
3127
3128         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
3129         counter.
3130
3131 2004-10-27  Andreas Schwab  <schwab@suse.de>
3132
3133         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
3134         unused.
3135         (default_stabs_asm_out_constructor): Likewise.
3136
3137 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
3138
3139         * builtins.c (fold_builtin_unordered_cmp): Always bring both
3140         operands to the same type.
3141
3142 2004-10-26  James E Wilson  <wilson@specifixinc.com>
3143
3144         PR target/18010
3145         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
3146
3147 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
3148
3149         * dbxout.c: Include obstack.h.
3150         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
3151         default definition.
3152         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
3153         Default-define here.
3154         (DBX_CONTIN_LENGTH): Move definition with others.
3155         (DBX_FINISH_STABS): New target macro.
3156         (current_sym_code, current_sym_value, current_sym_addr)
3157         (current_sym_nchars, CHARS, dbxout_continue)
3158         (print_int_cst_octal, print_octal, print_wide_int)
3159         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
3160         (stabstr_ob, stabstr_last_contin_point): New variables.
3161         (NUMBER_FMT_LOOP): New improper macro.
3162         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
3163         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
3164         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
3165         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
3166         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
3167         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
3168         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
3169         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
3170         New functions and/or proper function-like macros.
3171         (CONTIN): Use stabstr_continue, unconditionally.
3172         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
3173         (dbxout_init): Initialize stabstr_ob.  Check
3174         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
3175         if it was used.  Use the new interfaces.
3176         (dbxout_source_file): Remove file argument; always write to
3177         asm_out_file.  Use the new interfaces.
3178         (dbxout_type_method_1): Remove second argument which is always
3179         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
3180         (dbxout_type_methods): Remove write-only variables.  Use the
3181         new interfaces.
3182         (dbxout_parms): Refactor to remove code duplicated in each of
3183         several successive if-else-if blocks.  Use the new interfaces.
3184         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
3185         (dbxout_source_line, dbxout_finish, dbxout_type_index)
3186         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
3187         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
3188         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
3189         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
3190         Use the new interfaces.
3191         * Makefile.in (dbxout.o): Update dependencies.
3192
3193         * defaults.h: Don't define ASM_STABD_OP.
3194         * output.h: Prototype new dbxout_* interfaces.
3195         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
3196         * varasm.c: Don't define ASM_STABS_OP.
3197         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
3198         Use the new dbxout.c interfaces.  Call sorry if neither
3199         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
3200
3201         * xcoffout.h: Don't define ASM_STABS_OP.
3202         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
3203         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
3204         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
3205         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
3206         do { ... } while (0) idiom.
3207
3208         * config/alpha/alpha.c (num_source_filenames): Export.
3209         * config/alpha/alpha.h (num_source_filenames): Declare.
3210         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
3211         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
3212         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
3213         Always use .debugsym.  Update commentary.
3214         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
3215         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
3216         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
3217         Use new interfaces.
3218         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
3219         (macho_branch_islands): Use new interfaces.
3220
3221         * doc/tm.texi: Update.
3222
3223 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
3224
3225         * expr.c (emit_group_store): Do not treat floats as BLKmode.
3226         (emit_group_load): Same.
3227
3228 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
3229
3230         * c-parse.in (datadef): Use pedwarn rather than error and warning
3231         for diagnostic in case of no declaration specifiers.
3232
3233 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
3234
3235         PR bootstrap/15747
3236         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
3237         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
3238         can be used to work around this.
3239
3240 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
3241
3242         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
3243         doubles.
3244
3245 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
3246
3247         * stmt.c (expand_case): Update a comment.
3248
3249 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
3250
3251         * stmt.c (expand_case): Put an assertion that index_expr is
3252         never INTEGER_CST.  Don't special case for constant
3253         index_expr.
3254
3255 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
3256
3257         PR 18162
3258         * c-parse.in (designator): Finish with a semi-colon.
3259
3260 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
3261
3262         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
3263         into rotlsi3.
3264
3265 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
3266
3267         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
3268         a default case only.
3269
3270 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
3271
3272         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
3273         e500 doubles.
3274         (spe_build_register_parallel): New.
3275         (rs6000_spe_function_arg): Handle e500 doubles.
3276         (function_arg): Same.
3277         (spe_func_has_64bit_regs_p): Same.
3278         (rs6000_function_value): Same.
3279         (rs6000_libcall_value): Same.
3280         (legitimate_lo_sum_address_p): Return false for e500 doubles.
3281
3282         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
3283         doubles.
3284         (DATA_ALIGNMENT): Same.
3285         (CANNOT_CHANGE_MODE_CLASS): Same.
3286
3287 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
3288
3289         * expr.c (emit_group_load): Handle floats.
3290         (emit_group_store): Same.
3291
3292 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
3293
3294         * c-lex.c (get_nonpadding_token): Remove.
3295         (c_lex_with_flags): Push timevar and eat padding here.  Improve
3296         stray token diagnostic.
3297         (lex_string): Replace logic with switch statement, eat padding
3298         token here.
3299
3300 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
3301
3302         PR 18149
3303         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
3304
3305 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
3306
3307         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
3308         to 'non-weak'.
3309         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
3310         (ASM_MAKE_LABEL_LINKONCE): Delete.
3311         (ASM_WEAKEN_DECL): New.
3312         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
3313         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3314         (TEXT_SECTION_ASM_OP): Add a tab.
3315         (DATA_SECTION_ASM_OP): Likewise.
3316         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
3317         data_section on every section change.
3318         (EXTRA_SECTIONS): Add a bunch of new extra sections.
3319         (EXTRA_SECTION_FUNCTIONS): Likewise.
3320         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
3321         (JCR_SECTION_NAME): Define.
3322         (TARGET_SECTION_TYPE_FLAGS): Don't define.
3323         * config/darwin.c (darwin_encode_section_info): A symbol is defined
3324         in this file if it is not weak.
3325         (textcoal_section): Delete.
3326         (datacoal_section): Delete.
3327         (darwin_make_decl_one_only): Delete.
3328         (machopic_select_section): Handle functions.
3329         (darwin_asm_named_section): Add a tab.
3330         (darwin_section_type_flags): Delete.
3331         (darwin_unique_section): Delete contents.
3332         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
3333         DECL_WEAK is set.
3334         * config/darwin-protos.h (darwin_section_type_flags): Delete.
3335         (darwin_make_decl_one_only): Delete.
3336         (text_coal_section): New.
3337         (text_unlikely_section): New.
3338         (text_unlikely_coal_section): New.
3339         (const_coal_section): New.
3340         (data_coal_section): New.
3341         (const_data_coal_section): New.
3342         * varasm.c (function_section): Honour
3343         USE_SELECT_SECTION_FOR_FUNCTIONS.
3344         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
3345         TARGET_USES_WEAK_UNWIND_INFO is in effect.
3346         * dbxout.c (dbxout_source_file): Don't change sections while
3347         a function is being output.
3348
3349 2004-10-25  David Ayers  <d.ayers@inode.at>
3350
3351         * c-common.h: Remove RID_ID.
3352         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
3353         (typespec_reserved_attr): Add rule for TYPENAME
3354         non_empty_protocolrefs.
3355         (yylexname): Remove special handling of RID_ID.
3356
3357 2004-10-25  James E Wilson  <wilson@specifixinc.com>
3358
3359         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
3360
3361 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3362
3363         PR c/16667
3364         * c-parse.in (array_designator): New.
3365         (designator): Use it.
3366         (initelt): Only permit array_designator without '=', not ".foo".
3367
3368 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
3369         * gcc/Makefile.in: removed ggc for cgraphunit.
3370         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
3371         * gcc/cgraph.h: removed static var analysis data structures and calls.
3372         * gcc/cgraphunit.c:
3373         cgraph_mark_local_and_external_functions:changed name to
3374                 cgraph_mark_local_functions
3375         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
3376         cgraph_reset_static_var_maps,get_global_static_vars_info,
3377         get_global_statics_not_read,get_global_statics_not_written,searchc,
3378         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
3379         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
3380         scan_for_static_refs,cgraph_characterize_statics_local,
3381         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
3382         removed.
3383         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
3384         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
3385         analysis
3386         * gcc/tree-flow.h static_vars_info: removed
3387         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
3388         removed calls to static vars analysis.
3389         get_call_expr_operands: removed callee variable.
3390
3391 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
3392
3393         * cfg.c (unchecked_make_edge, redirect_edge_succ,
3394         redirect_edge_pred): Use VEC_safe_push instead of
3395         VEC_safe_insert.
3396         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
3397
3398 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
3399
3400         * cfgloopmanip.c (loopify): Take two more arguments true_edge
3401         and false_edge.
3402         * cfgloop.h: Adjust the corresponding prototype.
3403         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
3404         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
3405
3406 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
3407
3408         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
3409         DECL_INCOMING_RTL is NULL.
3410
3411 2004-10-25  Steven Bosscher  <stevenb@suse.de>
3412
3413         * timevar.def (TV_FIND_REFERENCED_VARS): New.
3414         * tree-dfa.c (pass_referenced_var): Use it.
3415
3416 2004-10-25  Roger Sayle  <roger@eyesopen.com>
3417             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3418
3419         * cse.c: Change encoding of quantity numbers to avoid undefined
3420         pointer arithmetic on qty_table.
3421         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
3422         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
3423         (new_basic_block): Assign "real" quantity numbers from zero.
3424         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
3425         REG_QTY to its unique negative value.
3426         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
3427         (cse_main): Don't include max_reg when determining max_qty.
3428         (cse_basic_block): Avoid subtracting a large offset from qty_table,
3429         which causes undefined C99 behaviour.  Only allocate needed memory.
3430
3431 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
3432
3433         * stmt.c (expand_case): Remove an obsolete comment.
3434
3435 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
3436
3437         PR middle-end/17407
3438         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
3439         layout_type as it is already done by build_array_type.
3440         * tree.c (build_array_type): Layout the type even
3441
3442 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
3443
3444         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
3445
3446 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
3447
3448         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
3449         with wider-than-32-bit HOST_WIDE_INTs.
3450
3451 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
3452
3453         * config/mips/mips.c(mips_output_filename): Remove unused
3454         array ltext_label_name
3455
3456 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
3457
3458         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
3459
3460 2004-10-25  Ben Elliston  <bje@au.ibm.com>
3461
3462         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
3463
3464 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
3465
3466         * predict.c (predict_loops): Call scev_finalize instead of
3467         scev_reset.
3468
3469 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
3470
3471         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
3472         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
3473         config/sh/ushmedia.h, config/sparc/elf.h,
3474         config/sparc/sp64-elf.h: Update copyright.
3475
3476 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
3477
3478         * stmt.c (expand_case): Handle the default label outside of
3479         the for loop.  Remove code to handle a missing default label.
3480
3481 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
3482
3483         * dbxout.c (dbxout_function_decl): Don't use
3484         DBX_OUTPUT_FUNCTION_END.
3485         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
3486         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
3487
3488 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
3489
3490         PR middle-end/17967
3491         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
3492
3493 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
3494
3495         * tree-ssa-dom.c (record_equality): Use loop depth to determine
3496         which way to record the equality as well.
3497         (loop_depth_of_name): New function.
3498
3499 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3500
3501         PR middle-end/17793
3502         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
3503         through the operand if it is a useless type conversion.
3504
3505 2004-10-23  Ben Elliston  <bje@au.ibm.com>
3506
3507         * cfg.c (remove_edge): Use VEC_unordered_remove.
3508         (redirect_edge_succ): Likewise.
3509         (redirect_edge_pred): Likewise.
3510         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
3511
3512 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3513
3514         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
3515         beyond its end.
3516
3517 2004-10-22  Eric Christopher  <echristo@redhat.com>
3518
3519         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
3520         saves.
3521
3522 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
3523
3524         * config/rs6000/spe.md (spe_extendsfdf2): New.
3525         (movdf_e500_double): New.
3526         (spe_truncdfsf2): New.
3527         (spe_absdf2): New.
3528         (spe_nabsdf2): New.
3529         (spe_negdf2): New.
3530         (sub_adddf3): New.
3531         (spe_subdf3): New.
3532         (spe_muldf3): New.
3533         (spe_floatsidf2): New.
3534         (spe_floatunssidf2): New.
3535         (fix_truncdfsi2): New.
3536         (spe_fixuns_truncdfsi2): New.
3537
3538         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
3539         (fpr_truncdfsf2): New.
3540         (negdf2): Change to expander.
3541         (fpr_negdf2): New.
3542         (fpr_nabsdf2): Name pattern.
3543         (adddf3): Change to expander.
3544         (fpr_adddf3): Nem.
3545         (subdf3): Change to expander.
3546         (fpr_subdf3): New.
3547         (muldf3): Change to expander.
3548         (fpr_muldf3): New.
3549         (divdf3): Change to expander.
3550         (fpr_divdf3): New.
3551         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
3552         (cmpdf): Allow for TARGET_E500_DOUBLE.
3553
3554 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3555
3556         * c-semantics.c (re_push_stmt_list): Remove.
3557         * c-common.h: Remove the corresponding prototype.
3558
3559 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3560
3561         * stmt.c (asm_op_is_mem_input): Remove.
3562         * tree.h: Remove the corresponding prototype.
3563
3564 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3565
3566         * tree-gimple.c (is_gimple_constructor_elt): Remove.
3567         * tree-gimple.h: Remove the corresponding prototype.
3568
3569 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3570
3571         * varasm.c (get_pool_mode_for_function, get_pool_offset):
3572         Remove.
3573         * rtl.h: Remove the corresponding prototypes.
3574
3575 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3576
3577         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
3578         edge information when we commit ourselves to threading a
3579         particular jump.
3580
3581 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3582
3583         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
3584         into worklist instead of their indexes.
3585
3586 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3587
3588         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
3589         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
3590         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
3591         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
3592         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
3593         tree-scalar-evolution.c, tree-ssa-dom.c,
3594         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
3595         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
3596         tree-vectorizer.c, vec.h: Fix comment formatting.
3597
3598 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3599
3600         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
3601         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
3602
3603 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
3604
3605         * config/ptx4.h, config/mcore/mcore-pe.h,
3606         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
3607
3608 2004-10-22  Peter Barada <peter@the-baradas.com>
3609
3610         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
3611         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
3612         renaming of non-live registers in interrupt functions.
3613         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
3614
3615 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
3616
3617         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
3618         Use integer for loop counter.
3619         (num_ending_zeros): New function.
3620         (number_of_iterations_cond): Use num_ending_zeros.
3621
3622 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
3623
3624         * config.gcc: Add support for --enable-e500_double.
3625
3626         * config/rs6000/e500-double.h: New file.
3627
3628         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
3629         TARGET_E500_DOUBLE.
3630
3631         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
3632         TARGET_E500_DOUBLE.
3633
3634         * config/rs6000/linuxspe.h: Same.
3635
3636         * doc/invoke.texi (Option Summary): Document new options for
3637         mfloat-gprs.
3638         (RS/6000 and PowerPC Options): Same.
3639
3640         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
3641         function.
3642         (rs6000_override_options): Use it.  Use
3643         SUB3TARGET_OVERRIDE_OPTIONS.
3644         Add 8548 to processor_target_table.
3645         (rs6000_legitimate_address): Handle e500 doubles.
3646         (rs6000_legitimize_address): Same.
3647         (rs6000_legitimize_reload_address): Same.
3648         (rs6000_hard_regno_nregs): Same.
3649         (spe_func_has_64bit_regs_p): Same.
3650         (emit_frame_save): Same.
3651         (gen_frame_mem_offset): Same.
3652         (rs6000_dwarf_register_span): Same.
3653         (rs6000_generate_compare): Same.
3654         (easy_fp_constant): Same.
3655         (legitimate_offset_address_p): Same.
3656
3657         * config/rs6000/spe.md: (cmdfeq_gpr): New.
3658         (tstdfeq_gpr): New.
3659         (cmpdfgt_gpr): New.
3660         (tstdfgt_gpr): New.
3661         (tstdfgt_gpr): New.
3662         (cmpdflt_gpr): New.
3663         (tstdflt_gpr): New.
3664         Add new constants.
3665
3666 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3667
3668         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
3669
3670 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
3671
3672         * dbxout.c: Remove unnecessary #undefs.
3673         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
3674         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
3675         definition into use sites.
3676         (cwd): Make local to dbxout_init.
3677         (dbxout_init): Restructure cwd-using logic for clarity.  Use
3678         IS_DIR_SEPARATOR.
3679         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
3680         STABS_GCC_MARKER folded in here.
3681         * system.h: Poison now-unused macros.
3682         * doc/tm.texi: Remove documentation of now-unused macros.
3683
3684 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3685
3686         PR c/17538
3687         * c-opts.c (push_command_line_include): Use the current file
3688         name instead of the main one.
3689
3690 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3691
3692         PR objc/17923
3693         * tree.c (staticp): A CONST_DECL has static storage if either
3694         TREE_STATIC or DECL_EXTERNAL is set.
3695         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
3696         have null names.
3697
3698 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
3699
3700         * expr.c (store_expr): Remove dont_store_target.
3701
3702 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
3703
3704         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
3705
3706 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
3707
3708         * tree-cfg.c (thread_jumps): Move a part of it to ...
3709         (thread_jumps_from_bb): ... here.
3710
3711 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
3712
3713         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
3714         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
3715
3716 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
3717
3718         * expr.c (store_expr): Clean up by renaming want_value to
3719         call_param_p.
3720
3721 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3722
3723         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
3724         fixup pc here.
3725
3726 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
3727
3728         PR 18004.
3729         * expmed.c (store_bit_field): Pass original 'value' before
3730         recursing.
3731
3732 2004-10-21  Nicolas Pitre <nico@cam.org>
3733
3734         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
3735         * config/arm/ieee754-df.S: Ditto.
3736
3737 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
3738
3739         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
3740         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
3741         Default to 0.
3742         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
3743         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
3744         an internal label and an N_SLINE .stabn whose value is the
3745         difference between that label and the function entry label.
3746         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
3747         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
3748         label and an N_SO stab with an empty string referring to it.
3749         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
3750         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
3751         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
3752         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
3753         macro is never defined.
3754         * sdbout.c (sdbout_source_line_counter): Delete.
3755         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
3756         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
3757         only two arguments.
3758         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
3759
3760         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
3761         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
3762         definitions (identical to default).
3763         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
3764         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
3765         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
3766         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
3767         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
3768         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
3769         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
3770         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
3771         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
3772         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
3773         (sym_lineno): Delete.
3774         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
3775         now-unused variable.
3776         (alpha_output_lineno): Delete.
3777         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
3778         * config/mips/mips.c (mips_output_filename): Don't use
3779         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
3780         (mips_output_lineno): Delete.
3781         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
3782         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
3783         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
3784         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
3785         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
3786         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
3787         * config/mmix/mmix.h: Likewise.
3788         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
3789         * config/mmix/mmix-protos.h: Don't prototype it.
3790         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
3791         no need to #undef ASM_OUTPUT_SOURCE_LINE.
3792         * config/arm/aout.h: Remove RISCiX-specific definition of
3793         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
3794         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
3795         ASM_OUTPUT_SOURCE_LINE.
3796         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
3797         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
3798         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
3799
3800         * doc/tm.texi: Update.
3801
3802 2004-10-20  Richard Henderson  <rth@redhat.com>
3803
3804         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
3805
3806 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
3807
3808         * configure.ac: Revert my previous patch.
3809         * configure: Regenerate.
3810
3811 2004-10-20  Ben Elliston  <bje@au.ibm.com>
3812
3813         * config/rs6000/rs6000.c
3814         (rs6000_va_start): Use build_va_arg_indirect_ref.
3815         (rs6000_gimplify_va_arg): Likewise.
3816
3817 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
3818
3819         PR java/15575
3820         * configure.ac: Declare AM_LANGINFO_CODESET.
3821         * aclocal.m4: Define AM_LANGINFO_CODESET.
3822         * configure, config.in: Rebuilt.
3823
3824 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
3825
3826         * expr.c (store_expr): Remove code that is run when
3827         want_value & 1 is nonzero.
3828
3829 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
3830
3831         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
3832         from function pointer to void *.
3833
3834 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3835
3836         PR target/18032
3837         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
3838         the frame pointer adjustment when exception handling is enabled.
3839
3840 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
3841
3842         * stor-layout.c: Fix a comment typo.
3843
3844 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
3845
3846         * expr.c (store_field): Remove two arguments value_mode and
3847         unsignedp.
3848         (expand_assignment, store_constructor_field,
3849         expand_expr_real_1): Adjust calls to store_field.
3850
3851 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
3852
3853         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
3854
3855         PR target/17317
3856         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
3857         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
3858         base and index register for loads.
3859
3860         * config/arc/t-arc: Fix multilib handling.
3861
3862 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
3863
3864         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
3865         don't inspect BLOCK_FOR_INSN for barriers.
3866         * emit-rtl.c (emit_barrier_before): Revert last change.
3867         (emit_barrier_after, emit_barrier): Ditto.
3868
3869         * doc/extend.texi (Extended Asm): Warn and provide example
3870         solution for using a call-clobbered asm register.
3871         (Local Reg Vars): Similar.  Cross-reference example.
3872
3873 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
3874
3875         * tree-cfg.c (group_case_labels): Look at the second to last
3876         case statement for combing with the default case.
3877
3878 2004-10-19  Richard Hendeson  <rth@redhat.com>
3879
3880         PR 17962
3881         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
3882
3883 2004-10-19  Richard Hendeson  <rth@redhat.com>
3884
3885         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
3886         succeeds, only expand the result.
3887
3888 2004-10-19  Richard Hendeson  <rth@redhat.com>
3889
3890         PR middle-end/17885
3891         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
3892         of INDIRECT_REF.
3893
3894 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
3895
3896         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
3897         loop with goto.
3898
3899 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
3900
3901         * expr.c (expand_assignment): Remove the last argument.
3902         Change the return type to void.
3903         * expr.h: Update the prototype of expand_assignment.
3904         * function.c (assign_parm_setup_reg): Update a call to
3905         expand_assignment.
3906         * stmt.c (expand_asm_expr): Likewise.
3907
3908 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
3909
3910         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
3911         unnecessary assignments to temp.  Return const0_rtx.
3912
3913 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3914
3915         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
3916
3917 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
3918
3919         * configure.ac (powerpc-*-darwin*): Require assembler to support
3920         .machine directive.
3921         * configure: Regenerate.
3922
3923 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3924
3925         * reload1.c (ior_hard_reg_set): Remove.
3926         (finish_spills): Use IOR_HARD_REG_SET instead of
3927         ior_hard_reg_set.
3928
3929 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3930
3931         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
3932         the currently visited word to right.
3933
3934 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3935
3936         PR middle-end/18045
3937         * expmed.c (expand_smod_pow2): Handle modes whose size
3938         is greater than that of HOST_WIDE_INT.
3939
3940 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
3941
3942         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
3943
3944 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3945             Roger Sayle  <roger@eyesopen.com>
3946
3947         PR middle-end/17813
3948         * dojump.c (discard_pending_stack_adjust): New function.
3949         (clear_pending_stack_adjust): Call it.
3950         * expr.h (discard_pending_stack_adjust): Declare it.
3951         * explow.c (emit_stack_save): Emit pending stack adjustments
3952         before saving the stack pointer.
3953         (emit_stack_restore): Discard pending stack adjustments before
3954         restoring the stack pointer.
3955
3956 2004-10-18  Richard Henderson  <rth@redhat.com>
3957
3958         * c-common.c (handle_mode_attribute): Allow scalar->vector
3959         type changes yet.
3960
3961 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3962
3963         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
3964         value to expand_assignment.
3965
3966 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3967
3968         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
3969         thread_jumps.
3970         (thread_jumps): Iterate until no new forwarder block arises.
3971
3972 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3973
3974         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
3975         (thread_jumps): Use forwardable as cache of
3976         tree_forwarder_block_p throughout the function.
3977
3978 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3979
3980         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
3981
3982 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
3983
3984         PR middle-end/15014
3985         PR middle-end/16973
3986         * tree-cfg.c (remove_bb): If we have a label expression in the
3987         basic block and the label we have taken the address, move the
3988         label expression to the basic block which is previous in the
3989         linked list.
3990         (tree_verify_flow_info): Fix printing out the label name of the
3991         problematic label expression.
3992
3993 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
3994
3995         PR rtl-optimization/18002
3996         * simplify-rtx.c (mode_signbit_p): Externalize function...
3997         * rtl.h (mode_signbit_p): ... to here.
3998         * combine.c (simplify_shift_const): Recognize PLUS signbit as
3999         canonical form of XOR signbit and move to outer op.
4000
4001 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
4002
4003         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
4004         Update all callers.
4005         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
4006         Don't call fold_stmt more than once, use bsi_replace.
4007
4008 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
4009
4010         PR tree-optimization/17656
4011         * tree-ssa.c (replace_immediate_uses): When replacing a
4012         constant, if the call to fold_stmt produced a different
4013         statement, get an appropriate statement pointer by scanning
4014         STMT's basic block.
4015
4016 2004-10-18  Richard Henderson  <rth@redhat.com>
4017
4018         * pointer-set.c (hash1): Don't use libm functions in fallback case.
4019
4020 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
4021
4022         PR bootstrap/17684
4023         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
4024         (stage1-start): Remove and copy libunwind.a and
4025         libunwind*$(SHLIB_EXT) instead of libunwind*.
4026         (stage2-start): Likewise.
4027         (stage3-start): Likewise.
4028         (stage4-start): Likewise.
4029         (stageprofile-start): Likewise.
4030         (stagefeedback-start): Likewise.
4031
4032         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
4033         the shared library to be created and don't remove the existing
4034         shared library.
4035         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
4036         * config/i386/t-nwld (SHLIB_LINK): Likewise.
4037         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
4038         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
4039         * config/sh/t-linux (SHLIB_LINK): Likewise.
4040         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
4041         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
4042         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
4043         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
4044
4045         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
4046         files.
4047
4048 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
4049
4050         * basic-block.h (reg_set_iterator): New.
4051         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
4052         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
4053         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
4054         * caller-save.c (save_call_clobbered_regs): Adjust to the new
4055         style.
4056         * cfgcleanup.c (thread_jump): Likewise.
4057         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4058         * conflict.c (conflict_graph_compute): Likewise.
4059         * flow.c (verify_local_live_at_start, update_life_info,
4060         initialize_uninitialized_subregs, propagate_one_insn,
4061         init_propagate_block_info, free_propagate_block_info,
4062         propagate_block, dump_regset): Likewise.
4063         * global.c (global_conflicts): Likewise.
4064         * graph.c (start_bb): Likewise.
4065         * local-alloc.c (update_equiv_regs): Likewise.
4066         * loop.c (load_mems): Likewise.
4067         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
4068         find_reg, finish_spills): Likewise.
4069         * resource.c (mark_target_live_regs): Likewise.
4070         * sched-deps.c (sched_analyze_insn): Likewise.
4071         * sched-rgn.c (sched-rgn.c): Likewise.
4072         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
4073
4074 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
4075
4076         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
4077         operand 1 instead of 2
4078
4079 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
4080
4081         * loop-unroll.c: Fix comment typos.
4082
4083 2004-10-18  Revital Eres  <eres@il.ibm.com>
4084
4085         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
4086         * loop-unroll.c: Include varray.h.
4087         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
4088         opt_info and expand it to support variable expansion.
4089         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
4090         expand it to support variable expansion.
4091         (pt_info_start_duplication): Rename si_info_start_duplication.
4092         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
4093         to the variable expansion optimization.
4094         (free_opt_info): Rename free_si_info.
4095         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
4096         expand_var_during_unrolling, insert_var_expansion_initialization,
4097         combine_var_copies_in_loop_exit, release_var_copies,
4098