* tree.c (get_set_constructor_bits,
[official-gcc.git] / gcc / ChangeLog
blob5acc17367d6966c587b8f6689359575ed0aed18e
1 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
3         * dominance.c (free_dominance_info): Speed up by freeing et
4         data structures without maintaining other nodes.
5         * et-forest.c (et_free_tree_force): New.
6         * et-forest.h: Add a prototype for et_free_tree_force.
8         * tree.c (get_set_constructor_bits,
9         get_set_constructor_bytes): Remove.
10         * tree.h: Remove the corresponding prototypes.
12 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
14         PR target/15491
15         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
16         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
17         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
18         PRE_DEC, NEG and NOT.
20 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
22         * fold-const.c: Convert uses of fold (build (...)) to
23         fold_buildN.
25 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
27         PR rtl-optimization/20249
28         * cse.c (insert_regs): Do not record equivalence of registers in
29         different modes.
31 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
33         * emit-rtl.c (reverse_comparison): Remove.
34         * rtl.h: Remove the corresponding prototype.
36 2005-03-24  James E Wilson  <wilson@specifixinc.com>
38         * doc/install.texi (--enable-altivec): Delete docs.
40 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
42         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
43         SFmode and DFmode before reload when
44         flag_unsafe_math_optimizations not enabled.
46 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
48         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
50         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
51         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
53 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
55         * configure.ac (enable-checking): Add 'runtime' option.
56         * doc/install.texi (enable-checking): Document 'runtime' checking.
57         * tsystem.h (gcc_assert, gcc_unreachable): Define.
58         * config.in: Regenerated.
59         * configure: Regenerated.
61 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
63         * optabs.h (enum optab_index): Remove OTI_llrint.
64         (llrint_optab): Remove macro.
65         * optabs.c (init_optabs): Remove llrint_optab initialization.
66         * genopinit.c (optabs): Remove llrint_optab implementation.
67         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
68         using lrint_optab.
70 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
72         PR rtl-optimization/20532
73         * simplify-rtx.c (simplify_binary_operation_1): Protect from
74         overflow when adding coefficients for PLUS or MINUS.
75         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
76         two as multiplier.
78 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
80         * langhooks.h (truthvalue_conversion): Remove.
81         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
82         LANG_HOOKS_TRUTHVALUE_CONVERSION.
83         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
84         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
85         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
87 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
89         * params.def: Fix a typo.
90         * config/mips/mips.c: Follow the spelling convensions.
91         * doc/invoke.texi: Fix typos.
93 2005-03-18  Dale Johannese  <dalej@apple.com>
95         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
97 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
99         Fix PR tree-optimization/20601
101         * tree-ssa-pre.c (insert_aux): Add missing condition to
102         constification.
104 2005-03-23  Ian Lance Taylor  <ian@airs.com>
106         * final.c (final_scan_insn): Don't remove no-op instructions.
107         * reload1.c (reload): Remove simple no-op instructions even when
108         not optimizing.
110 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
112         PR tree-optimization/20501
113         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
114         reporting that peeling for alignment is applied moved to...
115         * (vect_analyze_data_refs_alignment): Here.
117 2005-03-23  Ian Lance Taylor  <ian@airs.com>
119         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
121 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
123         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
124         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
126 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
128         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
129         imply that this is called once, independent of asms in code.
130         Adjust to now being pased output and input lists.  Mention helper
131         function decl_overlaps_hard_reg_set_p.
132         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
133         hook_tree_tree_identity and to take three trees, returning third.
134         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
135         prototype.
136         * stmt.c: include hard-reg-set.h before tree.h.
137         (decl_overlaps_hard_reg_set_p): New function, broken out from...
138         (decl_conflicts_with_clobbers_p): Call
139         decl_overlaps_hard_reg_set_p.
140         (expand_asm_operands): Pass output and input lists in call to
141         targetm.md_asm_clobbers.
142         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
143         hook_tree_tree_tree_tree_3rd_identity.
144         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
145         parameters.
146         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
147         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
148         parameters, first two unused.
149         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
150         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
151         in constraint letters and MOF is not mentioned as a asm-declared
152         register in neither of the input and output lists.
154 2005-03-23  DJ Delorie  <dj@redhat.com>
156         * optabs.c (expand_binop): Make sure the first subword's result
157         gets stored.
159 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
161         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
162         Call c_common_truthvalue_conversion rather than
163         lang_hooks.truthvalue_conversion.
164         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
165         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
166         c-typeck.c.
167         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
168         c_common_truthvalue_conversion.
169         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
170         c_parser_conditional_expression, c_parser_binary_expression): Call
171         c_objc_common_truthvalue_conversion.
172         * c-typeck.c (build_unary_op): Call
173         c_objc_common_truthvalue_conversion.
174         (build_conditional_expr): Do not call
175         lang_hooks.truthvalue_conversion.
176         (build_binary_op): Call c_common_truthvalue_conversion.
177         (c_objc_common_truthvalue_conversion): Moved from
178         c-objc-common.c.  Call default_function_array_conversion instead
179         of default_conversion.
181 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
183         * c-common.h (default_conversion): Remove.
184         (perform_integral_promotions): Add.
185         * c-tree.h (default_conversion): Add.
186         * c-typeck.c (perform_integral_promotions): New, split out from
187         default_conversion.
188         * c-common.c (check_case_value): Use perform_integral_promotions,
189         not default_conversion.
190         (c_add_case_label): Don't continue processing case label after
191         found to be pointer.
193 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
195         * gcc.c (do_spec_1): Do not add a -L path for a directory in
196         the prefix list if we have already added a multilib directory
197         based on that path.
198         (main): Do not add MD_EXEC_PREFIX to the list of directories to
199         search with -L.
201 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
203         * reload1.c (indirect_symref_ok, reload_obstack): Make them
204         static.
205         * reload.h: Remove the prototype for indirect_symref_ok.
207         * reload1.c (indirect_symref_ok): Make it global.
208         * reload.h: Add a prototype for indirect_symref_ok.
210 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
212         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
213         ashlhi3 expander.
215 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
217         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
219 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
221         * c-opts.c (c_common_parse_file): Only start/end main source file
222         if debug hooks says the writer wants it.
223         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
224         member.
225         (xcoff_debug_hooks): Ditto.
226         * debug.c (do_nothing_hooks): Ditto.
227         * debug.h (gcc_debug_hooks): Ditto.
228         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
229         * sdbout.c (sdb_debug_hooks): Ditto.
230         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
231         
232 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
234         * doc/extend.texi: Deprecate C++ min/max operators.
236 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
238         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
239         artificial original candidates.
241 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
242             Jan Hubicka  <jh@suse.cz>
243             Steven Bosscher <stevenb@suse.de
245         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
246         call cost based on argument sizes.
247         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
248         inlining.
249         * params.def: (max-inline-inssn-single): Set to 450.
250         (max-inline-insns-auto): Set to 90.
251         (max-inline-insns-recursive): Set to 450
252         (max-inline-insns-recursive-auto): Set to 450.
253         (large-function-insns): Set to 2700.
254         (inline-call-cost): New parameter.
255         * tree-inline.c (estimate_move_cost): New function.
256         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
257         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
258         based on arguments.
259         * tree-inline.h (estimate_move_cost): Declare.
260         * invoke.texi: (max-inline-inssn-single): Change default to 450.
261         (max-inline-insns-auto): Change default to 90.
262         (max-inline-insns-recursive): Change default to 450
263         (max-inline-insns-recursive-auto): Change default to 450.
264         (large-function-insns): Change default to 2700.
265         (inline-call-cost): Document new parameter.
267 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
269         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
270         (TARGET_DEFAULT): Delete.
271         * config/i860/i860.opt: New file.
273 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
275         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
276         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
277         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
278         (frv_sched_lookahead): Delete.
279         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
280         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
281         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
282         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
283         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
284         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
285         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
286         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
287         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
288         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
289         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
290         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
291         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
292         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
293         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
294         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
295         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
296         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
297         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
298         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
299         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
300         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
301         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
302         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
303         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
304         (frv_sched_lookahead): Delete.
305         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
306         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
307         (frv_handle_option): New function.  Move -mcpu= handling from...
308         (frv_override_options): ...here.  Remove handling of other
309         TARGET_OPTIONS.
310         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
311         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
312         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
313         and TARGET_NO_MULTI_CE.
314         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
315         !TARGET_VLIW_BRANCH.
316         * config/frv/frv.opt: New file.
318 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
320         * fold-const.c (fold_ternary): Take decomposed arguments of
321         CALL_EXPR.
322         (fold): Update a call to fold_ternary.
324         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
325         * tree.h: Add corresponding prototypes.
327 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
329         PR target/20561
330         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
331         between jump table and its label.
332         * final.c (shorten_branches): Handle notes in between ADDR_VEC
333         resp. ADDR_DIFF_VEC and the label preceeding it.
334         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
335         is emitted in the right section.
337 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
339         * fold-const.c (fold_unary, fold_binary): Update comments
340         about arguments.
342 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
344         PR rtl-optimization/20527
345         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
346         REG_INC note, test that the register also isn't mentioned in PRED
347         or SUCC.
349 2005-03-22  Ben Elliston  <bje@au.ibm.com>
351         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
352         and definition.
354 2005-03-21  Mike Stump  <mrs@apple.com>
356         * varasm.c (default_assemble_visibility): Remove extra ().
358 2005-03-21  Roger Sayle  <roger@eyesopen.com>
360         PR middle-end/20557
361         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
362         to determine whether a block can be duplicated, rather than test
363         whether the block contains noncopyable insns ourselves.
365 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
367         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
368         predicates.
370 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
372         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
374 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
376         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
377         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
378         * config/fr30/fr30.opt: New file.
380 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
381         
382         Fix PR tree-optimization/20542
384         * tree-flow-inline.h (overlap_subvar): Move to here.
385         * tree-ssa-operands.c: From here.
386         * tree-flow.h (overlap_subvar): Declare.
387         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
388         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
389         for variables with subvars.
390         
391 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
393         PR middle-end/20177
394         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
395         * modulo-sched.c (const_iteration_count): Return on NULL
396         pre-header.
397         (print_node_sched_params): Return on NULL dump_file.
398         (generate_reg_moves): Handle reg-anti dependencies and disregard
399         closing branch when generating register moves.
400         (sms_schedule): Mark the SMSed block dirty.
401         * passes.c (rest_of_handle_sms): Call update_life_info for all
402         basic-blocks.
403         * testsuite/gcc.dg/20050321-1.c: New test.
405 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
407         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
408         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
409         movqi_internal): Likewise.
411 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
413         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
414         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
415         xtensa_b4const): Delete prototypes.
416         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
417         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
418         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
419         xtensa_extra_constraint): New prototypes.
420         (add_operand, arith_operand, nonimmed_operand, mem_operand,
421         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
422         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
423         move_operand, const_float_1_operand, fpmem_offset_operand,
424         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
425         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
426         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
427         argument type to HOST_WIDE_INT.
428         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
429         xtensa_mask_immediate): Likewise.
430         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
431         Likewise.  Also make these functions static.
432         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
433         (xtensa_const_ok_for_letter_p): New.
434         (add_operand, arith_operand, nonimmed_operand, mem_operand,
435         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
436         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
437         move_operand, const_float_1_operand, fpmem_offset_operand,
438         branch_operator, ubranch_operator, boolean_operator): Move to
439         predicates.md.
440         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
441         (xtensa_mem_offset): Change return type to bool.
442         (xtensa_extra_constraint): New.
443         (gen_int_relational): Update type of const_range_p function pointer.
444         Use xtensa_b4const_or_zero.
445         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
446         xtensa_const_ok_for_letter_p.  Update comments.
447         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
448         (PREDICATE_CODES): Delete.
449         * config/xtensa/xtensa.md: Include predicates.md.
450         * config/xtensa/predicates.md: New file.
452 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
454         * config/v850/v850-protos.h: Remove the prototypes for
455         reg_or_int9_operand, reg_or_const_operand,
456         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
457         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
458         movsi_source_operand, power_of_two_operand,
459         not_power_of_two_operand, special_symbolref_operand,
460         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
461         register_is_ok_for_epilogue.
462         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
463         reg_or_int9_operand, reg_or_const_operand,
464         call_address_operand, special_symbolref_operand,
465         movsi_source_operand, power_of_two_operand,
466         not_power_of_two_operand, register_is_ok_for_epilogue,
467         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
468         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
469         predicates.md.
470         * config/v850/v850.h (PREDICATE_CODES): Remove.
471         * config/v850/v850.md: Include predicates.md.
472         * config/v850/predicates.md: New.
474 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
476         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
477         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
478         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
479         (itoolsdir, itoolsdatadir): Move definition above new first use.
480         (install-itoolsdirs): New rule.
481         (install-mkheaders): Depend on install-itoolsdirs, not
482         install-include-dir.
484 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
486         * tree-into-ssa.c: Remove obsolete comments.
488 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
490         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
491         unrolling if -fpeel-loops is specified, too.
492         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
493         Remove superfluous check for flag_unroll_loops.
495 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
497         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
498         (lrint_optab, llrint_optab): Define corresponding macros.
499         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
500         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
501         pattern and llrint_optab using llrintdi2 patterns.
502         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
503         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
504         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
505         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
506         flag_unsafe_math_optimizations is set.
508 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
510         * combine.c (combine_simplify_rtx, simplify_if_then_else,
511         simplify_logical, if_then_else_cond, known_cond,
512         simplify_comparison): Adjust calls to reverse_comparison.
513         Don't use combine_reversed_comparison_code).
514         (combine_reversed_comparison_code): Remove.
515         (reversed_comparison): Using reversed_comparison_code, move it...
516         * jump.c (reversed_comparison): ... here.
517         * rtl.h (reversed_comparison): Add prototype.
519 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
521         * builtins.c (fold_builtin): Take decomposed arguments of
522         CALL_EXPR.
523         * fold-const.c (fold_ternary): Update a call to fold_builtin.
524         * gimplify.c (gimplify_call_expr): Likewise.
525         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
526         * tree.h: Update the prototype of fold_builtin.
528 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
530         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
531         * rtlhooks.c (gen_lowpart_no_emit_general): New.
532         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
533         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
534         * simplify-rtx.c (simplify_binary_operation_1): Use it.
536 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
538         * builtins.c (fold_builtin_1): Take decomposed arguments of
539         CALL_EXPR.
540         (fold_builtin): Update a call to fold_builtin_1.
542 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
544         PR other/20564
545         * gcov.c (output_lines): Only output function block summary when
546         outputting branch information.
547         * doc/gcov.texi: Document format of preamble and additional block
548         information lines.
550 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
552         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
553         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
554         the defaults false if BITS_PER_UNIT != 8.
555         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
556         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
557         than BITS_PER_UNIT != 8.
558         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
559         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
560         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
561         #undefs.
562         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
563         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
565 2005-03-20  Roger Sayle  <roger@eyesopen.com>
567         PR middle-end/20539
568         * fold-const.c (fold_binary): Fix type mismatch between
569         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
570         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
571         for non-truth-valued expressions.
573         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
574         and FUNCTION_DECL in the main switch.
575         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
576         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
577         we also need to convert their operands to match.
578         <TRUTH_NOT_EXPR>: Likewise.
580 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
582         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
583         diagnostic without checking whether an lvalue.
584         * c-common.h (lvalue_p): Remove.
585         (enum lvalue_use): Update comment.
586         (lvalue_or_else): Replace by lvalue_error.
587         * c-typeck.c (lvalue_p): Make static.
588         (lvalue_or_else): New.  Call lvalue_error.
590 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
592         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
593         (function_arg_advance): Use rs6000_parm_start.
594         (function_arg, rs6000_arg_partial_bytes): Likewise.
596 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
598         * c-common.c (check_case_value): Adjust comment about stripping
599         NOPs.
600         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
601         * c-typeck.c (default_conversion, convert_arguments,
602         build_modify_expr, convert_for_assignment, store_init_value,
603         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
604         manually.  Remove inaccurate comments.
606 2005-03-20  Roger Sayle  <roger@eyesopen.com>
607             Joseph S. Myers  <joseph@codesourcery.com>
609         * varasm.c (do_assemble_alias): Restore comment describing function.
610         Annotate the target parameter as potentially unused.
612 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
614         PR target/18551
615         * config/avr/avr.c (avr_output_function_prologue): Do not use
616         current_function_name() in a label, use a local label instead.
618 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
620         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
621         flag_finite_math_only, not flag_unsafe_math_optimizations.
623 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
625         * builtins.c (fold_builtin_1): Update a call to
626         targetm.fold_builtin.
627         * hooks.c (hook_tree_tree_bool_null): Rename to
628         hook_tree_tree_tree_bool_null.  Take one more argument of type
629         tree.
630         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
631         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
632         hook_tree_tree_tree_bool_null.
633         * target.h (gcc_target): Update the prototype of fold_builtin.
634         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
635         arguments of CALL_EXPR.
636         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
637         new prototype.
639 2005-03-20  Jan Hubicka  <jh@suse.cz>
641         * cgraph.h (cgraph_node): Add prev_clone pointer.
642         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
643         (cgraph_clone_node): Produce doubly linked chain.
645 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
647         * c-common.c (handle_aligned_attribute, check_function_sentinel,
648         get_nonnull_operand, handle_sentinel_attribute,
649         check_function_arguments_recurse): Do not strip NOPS from
650         INTEGER_CSTs.
651         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
652         Likewise.
653         * c-format.c (get_constant): Likewise.
654         * c-parser.c (c_parser_postfix_expression): Likewise.
655         * c-typeck.c (set_init_index): Likewise.
656         (convert_arguments): Don't check for NOP_EXPR containing integer
657         constant.
659 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
661         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
662         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
663         Take decomposed arguments of CALL_EXPR.
664         (fold_builtin_1): Update calls to the functions mentioned
665         above.
667 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
669         * c-decl.c (check_bitfield_type_and_width): Require bit-field
670         width to have integer type.
671         (build_enumerator): Require enumerator value to have integer type.
673 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
675         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
676         to __builtin_inff.
678 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
680         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
681         std=iso9899:199x): Correct descriptions.
683 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
685         * config.gcc: Consistently use solaris2.1[0-9]* instead of
686         solaris2.1[0-9].
688 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
690         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
691         of CALL_EXPR.
692         (expand_builtin_memcpy, fold_builtin_1): Update calls to
693         fold_builtin_memcpy.
695         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
696         arguments of CALL_EXPR.
697         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
698         fold_builtin_found, fold_builtin_1): Update calls to
699         fold_trunc_transparent_mathfn.
701 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
703         PR middle-end/20493
704         * fold-const.c (fold_widened_comparison): Don't optimize casts of
705         function pointers on targets that require function pointer
706         canonicalization.
707         (fold_sign_changed_comparison): Likewise.
709 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
711         * combine.c (try_combine): When changing the mode of a hard reg, make
712         sure that doing so is valid.
714 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
716         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
717         (TARGET_HANDLE_OPTION): Override default.
718         (avr_handle_option): New function.
719         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
720         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
721         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
722         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
723         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
724         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
725         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
726         (TARGET_OPTIONS): Delete.
727         * config/avr/avr.opt: New file.
729 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
731         * config/m32r/m32r-protos.h: Remove the prototypes for
732         call_address_operand, symbolic_operand, seth_add3_operand,
733         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
734         reg_or_uint16_operand, reg_or_cmp_int16_operand,
735         two_insn_const_operand, move_src_operand,
736         move_double_src_operand, move_dest_operand,
737         eqne_comparison_operator, signed_comparison_operator,
738         large_insn_p, conditional_move_operand, carry_compare_operand,
739         m32r_block_immediate_operand, extend_operand,
740         reg_or_eq_int16_operand, int8_operand, and
741         reg_or_zero_operand.
742         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
743         seth_add3_operand, int8_operand, cmp_int16_operand,
744         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
745         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
746         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
747         move_double_src_operand, move_dest_operand,
748         eqne_comparison_operator, signed_comparison_operator,
749         extend_operand, small_insn_p, large_insn_p,
750         conditional_move_operand, carry_compare_operand,
751         m32r_block_immediate_operand): Move to predicates.md.
752         (MAX_MOVE_BYTES): Move to m32r.h.
753         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
754         * config/m32r/m32r.md: Include predicates.md.
755         * config/m32r/predicates.md: New.
757 2005-03-18  James E Wilson  <wilson@specifixinc.com>
759         PR c++/19769
760         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
761         origin.
763 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
765         * config/mn10300/mn10300-protos.h: Remove the prototypes for
766         call_address_operand, const_8bit_operand.
767         * config/mn10300/mn10300.c (call_address_operand,
768         const_8bit_operand, const_1f_operand): Move to predicates.md.
769         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
770         * config/mn10300/mn10300.md: Include predicates.md.
771         * config/mn10300/predicates.md: New.
773 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
775         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
776         declarations in diagnostics and %E for identifiers, not %s.
778 2005-03-18  Jan Hubicka  <jh@suse.cz>
779             Dale Johannesen  <dalej@apple.com>
781         * basic-block.h (scale_bbs_frequencies_int,
782         scale_bbs_frequencies_gcov_type): Declare.
783         * cfg.c (RDIV): New macro.
784         (update_bb_frequency_for_threading): Fix.
785         * basic-block.h (scale_bbs_frequencies_int,
786         scale_bbs_frequencies_gcov_type): New.
787         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
788         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
789         scale_bbs_frequencies_int.
790         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
792 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
794         * config/m32r/m32r-protos.h: Remove the prototypes for
795         call_address_operand, symbolic_operand, seth_add3_operand,
796         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
797         reg_or_uint16_operand, reg_or_cmp_int16_operand,
798         two_insn_const_operand, move_src_operand,
799         move_double_src_operand, move_dest_operand,
800         eqne_comparison_operator, signed_comparison_operator,
801         large_insn_p, conditional_move_operand, carry_compare_operand,
802         m32r_block_immediate_operand, extend_operand,
803         reg_or_eq_int16_operand, int8_operand, and
804         reg_or_zero_operand.
805         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
806         seth_add3_operand, int8_operand, cmp_int16_operand,
807         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
808         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
809         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
810         move_double_src_operand, move_dest_operand,
811         eqne_comparison_operator, signed_comparison_operator,
812         extend_operand, small_insn_p, large_insn_p,
813         conditional_move_operand, carry_compare_operand,
814         m32r_block_immediate_operand): Move to predicates.md.
815         (MAX_MOVE_BYTES): Move to m32r.h.
816         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
817         * config/m32r/m32r.md: Include predicates.md.
818         * config/m32r/predicates.md: New.
820         * config/pa/pa-protos.h: Add prototypes for magic_milli and
821         shadd_constant_p.
822         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
823         symbolic_operand, symbolic_memory_operand,
824         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
825         indexed_memory_operand, move_dest_operand, move_src_operand,
826         prefetch_cc_operand, prefetch_nocc_operand,
827         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
828         arith_operand, arith11_operand, pre_cint_operand,
829         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
830         ireg_operand, int5_operand, uint5_operand, int11_operand,
831         uint32_operand, arith5_operand, and_operand, ior_operand,
832         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
833         pc_or_label_operand, div_operand, plus_xor_ior_operator,
834         shadd_operand, movb_comparison_operator,
835         cmpib_comparison_operator): Move to predicates.md.
836         (magic_milli, shadd_constant_p): Make it extern.
837         * config/pa/pa.h (PREDICATE_CODES): Remove.
838         * config/pa/pa.md: Include predicates.md.
839         * config/pa/predicates.md: New.
841         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
842         predicate.
844 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
846         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
847         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
848         config/alpha/freebsd.h, config/alpha/linux.h,
849         config/alpha/netbsd.h, config/alpha/osf5.h,
850         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
851         config/h8300/h8300-protos.h, config/h8300/h8300.c,
852         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
853         doc/cppopts.texi: Update copyright.
855 2005-03-18  Jan Hubicka  <jh@suse.cz>
857         PR middle-end/20225
858         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
859         too late.
860         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
861         called too late.
863 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
865         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
866         VEC_safe_push.
868 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
870         * combine.c (gen_binary): Remove.
871         (known_cond, simplify_shift_const, find_split_point,
872         combine_simplify_rtx, simplify_if_then_else, simplify_set,
873         simplify_logical, expand_field_assignment, extract_left_shift,
874         force_to_mode, if_then_else_cond, apply_distributive_law,
875         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
876         simplify_comparison, reversed_comparison): Replace with
877         simplify_gen_binary, simplify_gen_relational or
878         distribute_and_simplify_rtx.
879         (distribute_and_simplify_rtx): New function.
881 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
882             Paolo Bonzini  <gcc.gnu.org>
884         * calls.c (setjmp_call_p, special_function_p): Update comments
885         at the head of the functions.
887 2005-03-18  Jan Hubicka  <jh@suse.cz>
889         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
891         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
892         function body should be released; do not proactively release function
893         bodies in non-unit-at-a-time mode.
895 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
897         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
898         mno-fp-ret-in-387 multilib variants.
900 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
902         * common.opt (m): Remove.
903         * opts.c (handle_option): Pass 'm' options to set_target_switch if
904         table lookup fails.
905         (common_handle_option): Remove OPT_m case.
907 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
909         * builtins.c (fold_builtin_bitop): Take decomposed arguments
910         of CALL_EXPR.
911         (fold_builtin_1): Update a call to fold_builtin_bitop.
913         * builtins.c (fold_builtin_signbit): Take decomposed arguments
914         of CALL_EXPR.
915         (fold_builtin_1): Update a call to fold_builtin_signbit.
917 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
919         PR tree-optimization/20474
920         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
921         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
923 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
925         * config/h8300/h8300-protos.h: Remove prototypes for
926         general_operand_src, general_operand_dst, single_one_operand,
927         single_zero_operand, call_insn_operand,
928         two_insn_adds_subs_operand, small_call_insn_operand,
929         jump_address_operand, bit_operand, bit_memory_operand,
930         stack_pointer_operand, const_int_gt_2_operand,
931         const_int_ge_8_operand, const_int_qi_operand,
932         const_int_hi_operand, incdec_operand, bit_operator,
933         nshift_operator, eqne_operator, gtle_operator,
934         gtuleu_operator, iorxor_operator.
935         Add prototypes for h8sx_shift_type h8sx_classify_shift and
936         h8300_ldm_stm_parallel.
937         * config/h8300/h8300.c (h8sx_shift_type,): Move to
938         h8300-protos.h.
939         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
940         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
941         (h8300_ldm_stm_parallel): Make it extern.
942         (h8300_ldm_parallel, h8300_stm_parallel,
943         h8300_return_parallel, general_operand_src,
944         general_operand_dst, h8300_dst_operand, h8300_src_operand,
945         nibble_operand, reg_or_nibble_operand, single_one_operand,
946         single_zero_operand, call_insn_operand,
947         two_insn_adds_subs_operand, small_call_insn_operand,
948         jump_address_operand, bit_operand, bit_memory_operand,
949         stack_pointer_operand, const_int_gt_2_operand,
950         const_int_ge_8_operand, const_int_qi_operand,
951         const_int_hi_operand, incdec_operand, eqne_operator,
952         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
953         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
954         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
955         nshift_operator): Move to predicates.md.
956         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
957         * config/h8300/h8300.md: Include predicates.md.
958         * config/h8300/predicates.md: New.
960 2005-03-17  Richard Henderson  <rth@redhat.com>
962         * config.gcc (ia64*-*-hpux*): Add extra_options.
963         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
964         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
965         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
966         (ia64_tls_size_string, ia64_tune_string): Remove.
967         (ia64_tune): Init to PROCESSOR_ITANIUM2.
968         (TARGET_DEFAULT_TARGET_FLAGS): New.
969         (TARGET_HANDLE_OPTION): New.
970         (ia64_override_options): Move options parsing ...
971         (ia64_handle_option): ... here.  New.
972         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
973         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
974         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
975         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
976         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
977         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
978         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
979         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
980         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
981         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
982         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
983         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
984         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
985         TARGET_EARLY_STOP_BITS): Remove.
986         (TARGET_ILP32): Default false.
987         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
988         (enum ia64_inline_type): New.
989         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
990         * config/ia64/ia64.md: Update for new definitions of
991         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
992         * config/ia64/ia64.opt: New file.
993         * config/ia64/ilp32.opt: New file.
995 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
997         PR target/18380
998         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1000 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1002         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1003         instead of MASK_H8300S.
1004         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1005         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1006         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1007         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1008         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1009         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1010         TARGET_SWITCHES): Remove.
1011         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1012         TARGET_H8300SX.
1013         * config/h8300/h8300.opt: New.
1015         * config/alpha/alpha.opt, config/arc/arc.opt,
1016         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1017         notices.
1019 2005-03-17  Ian Lance Taylor  <ian@airs.com>
1021         * gmon.c: Remove.
1023 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
1025         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
1026         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1027         (TARGET_HANDLE_OPTION): Override default.
1028         (arc_handle_option): New function.
1029         (arc_init): Remove code to set arch_cpu_string.
1030         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1031         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1032         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1033         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1034         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1035         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1036         (arc_rodata_string, TARGET_OPTIONS): Delete.
1037         * config/arc/arc.opt: New file.
1039 2005-03-17  Richard Henderson  <rth@redhat.com>
1041         * doc/extend.texi (Weak Pragmas): New section.
1042         (attribute alias): Clarify that target must be in the same
1043         translation unit.
1045 2005-03-17  Richard Henderson  <rth@redhat.com>
1047         * config/alpha/alpha.opt: New file.
1048         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
1049         of alpha_cpu.
1050         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1051         alpha_fprm_string, alpha_fptm_string): Make static.
1052         (alpha_tls_size_string): Remove.
1053         (alpha_handle_option): New.
1054         (override_options): Update for alpha_cpu/alpha_tune split.
1055         (alpha_file_start): Likewise.
1056         (TARGET_DEFAULT_TARGET_FLAGS): New.
1057         (TARGET_HANDLE_OPTION): New.
1058         * config/alpha/alpha.h (alpha_tune): Declare.
1059         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1060         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1061         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1062         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1063         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1064         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1065         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1066         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1067         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1068         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1069         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1070         (TARGET_DEFAULT): Remove MASK_FP.
1071         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1072         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1073         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1074         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1075         alpha_tls_size_string): Remove.
1076         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1077         (attribute tune): Rename from attribute cpu.
1078         * config/alpha/ev4.md: Update to match.
1079         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1080         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1081         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1082         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1083         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1084         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1086 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
1088         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1089         and return without creating new state if before_nops_num is nonzero.
1090         * config/ia64/ia64.md (first_insn): New attribute.
1091         (alloc): Set it to yes.
1093 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1095         * tree-vectorizer.c (new_vec_stmt_info): Initialize
1096         STMT_VINFO_SUBVARS to NULL.
1097         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1099 2005-03-16 Dale Johannesen  <dalej@apple.com>
1101         * rtlanal.c (find_first_parameter_load):  Rewrite to
1102         return actual first param load or the call if none,
1103         instead of first in block, when not all loads exist.
1105 2005-03-16  Roger Sayle  <roger@eyesopen.com>
1107         * optabs.c (expand_copysign_absneg): Make static.
1108         * optabs.h (expand_copysign_absneg): Delete prototype.
1109         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1111 2005-03-16  Richard Henderson  <rth@redhat.com>
1113         PR middle-end/15700
1114         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1115         (alias_pairs): Rename from output_defs.
1116         (find_decl_and_mark_needed): Split out from assemble_alias.
1117         (do_assemble_alias): New.
1118         (assemble_output_def): Remove.
1119         (finish_aliases_1, finish_aliases_2): New.
1120         (process_pending_assemble_output_defs): Remove.
1121         (assemble_alias): Defer aliases for which we don't yet have a
1122         non-external decl for the target symbol.
1123         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1124         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1125         * toplev.c (compile_file): Use finish_aliases_2 instead of
1126         process_pending_assemble_output_defs.
1127         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1128         (process_pending_assemble_output_defs): Remove.
1130 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1132         Fix PR tree-optimization/20489
1134         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1135         for empty structures.
1137 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1139         Fix PR tree-optimization/20490
1141         * tree-ssa-pre.c (create_expression_by_pieces): Use
1142         force_gimple_operand on result of fold.
1144 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
1146         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1147         of closing parenthesis.
1149 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
1151         * builtins.c (expand_movstr): Update a call to
1152         fold_builtin_strcpy.
1153         (expand_builtin_strncpy): Update a call to
1154         fold_builtin_strncpy.
1155         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1156         arguments of CALL_EXPR.
1157         (fold_builtin_1): Update calls to fold_builtin_strcpy and
1158         fold_builtin_strncpy.
1159         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1160         * tree.h: Update the prototypes of fold_builtin_strcpy and
1161         fold_builtin_strncpy.
1163 2005-03-16  Steven Bosscher  <stevenb@suse.de>
1164             Dorit Naishlos  <dorit@il.ibm.com>
1166         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1167         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1168         error.
1170 2005-03-16  Steven Bosscher  <stevenb@suse.de>
1172         * tree-inline.c (walk_type_fields, walk_tree,
1173         walk_tree_without_duplicates): Move from here...
1174         * tree.c: ...to here.
1176 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
1178         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1179         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1180         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1181         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1182         (version): Define using $(BASEVER_c).
1183         (Makefile, config.status, build/gcov-iov.o): No longer depends on
1184         version.c.
1185         (version.o): Depend on version files; add custom generation command.
1186         (prefix.o): Define BASEVER on command line.
1187         (s-iov): Depend on version files; adjust command.
1188         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1189         Add gcc-vers.texi.
1190         (gcc-vers.texi): New rule.
1191         (doc/%.info, doc/%.dvi): Add -I . to command line.
1192         (doc/gccinstall.dvi): Likewise.
1193         (PACKAGE): Delete.  All uses replaced with "gcc".
1194         * aclocal.m4: Do not include gcc-version.m4.
1195         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1196         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1197         Set is_release based on contents of DEV-PHASE.
1198         Set gcc_version based on contents of BASE-VER.
1199         Define WIN32_REGISTRY_KEY only if the user overrode the default.
1200         * config.in, configure: Regenerate.
1201         * gccbug.in: Determine version of GCC in use at runtime.
1202         * gcov-iov.c: Get version number and development phase from
1203         command line, not by including version.c.
1204         * intl.c: Replace all uses of PACKAGE with "gcc".
1205         * libada-mk.in: Delete unused "gcc_version" variable.
1206         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1207         * version.c: (VERSUFFIX): New hook for redistributors; adjust
1208         commentary to match.
1209         (version_string): Put together from pieces.
1210         * config/alpha/x-vms: Do not use $(gcc_version).
1211         * config/i386/t-nwld: Likewise.
1212         * doc/include/gcc-common.texi: Include gcc-vers.texi for
1213         version-GCC and DEVELOPMENT.
1215 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1217         PR tree-optimization/17454
1218         * tree.c (tree_size): Add case for TREE_BINFO.
1219         * fold-const.c (fold_checksum_tree): Only clear the overloaded
1220         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1222 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1224         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1225         op1 whilst expanding the signed widenening multiply variant.
1227 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
1229         * toplev.c (display_target_options): Avoid unused variable warning if
1230         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1231         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1232         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1233         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1234         (mips_isa_info): New variable.
1235         (mips_parse_cpu): Remove the first argument and leave the caller
1236         to report errors.
1237         (TARGET_HANDLE_OPTION): Override default.
1238         (mips_handle_option): New function.  Move option validation code from...
1239         (override_options): ...here.  Update calls to mips_parse_cpu.
1240         * config/mips/mips.h (mips_arch_string, mips_tune_string)
1241         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1242         (SUBTARGET_TARGET_OPTIONS): Delete.
1243         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1244         (mno-flush-func, mtune=): New options.
1246 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1247             Richard Henderson  <rth@redhat.com>
1249         * real.c (c4x_single_format, c4x_extended_format): Provide values
1250         for signbit_ro for c4x's single and extended floating point formats.
1251         * optabs.c (expand_copysign): Use the floating point format's
1252         signbit_ro for expanding via expand_copysign_absneg, and it's
1253         signbit_rw field for expanding via expand_copysign_bit.
1255 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
1257         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1258         known_alignment_for_access_p.
1259         (known_alignment_for_access_p): New.
1260         (do_peeling_for_alignment): Field made int instead of bool and renamed
1261         to peeling_for_alignment.
1262         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1263         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1264         functionality used to be in vect_analyze_operations.
1265         (vect_analyze_operations): Code to determine vectorization factor was
1266         moved to vect_determine_vectorization_factor.
1267         (vect_enhance_data_refs_alignment): Update to correct alignment when it
1268         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1269         factor.
1270         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1271         be part of vect_analyze_operations).
1272         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1273         creating the guard condition, as the number of iterations may be
1274         constant.
1275         (slpeel_tree_peel_loop_to_edge): Use new name of
1276         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1277         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1278         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1279         (vect_do_peeling_for_alignment): Use fold.
1280         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1282         (vect_update_inits_of_dr): Renamed to
1283         vect_update_init_of_dr.
1284         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1285         (vectorizable_store): Fix assertion to use == instead of =.
1287 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
1289         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1290         call_used_regs for wCG registers.
1292 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
1294         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1295         for non-offsettable memory references to cope with outstanding reload
1296         replacements, take 2.
1298 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
1300         PR target/18668
1301         * config/i386/i386.h (x86_fisttp): New.
1302         (TARGET_FISTTP): New macro.
1303         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1304         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
1305         instruction when fisttp flag is set.
1306         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1308         * config/i386/i386.md (type attribute): Add fisttp.
1309         (unit attribute): Set to i387 for fisttp type.
1310         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1311         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1312         TARGET_FISTTP.
1313         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1314         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1315         macros.
1316         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1317         patterns for TARGET_FISTTP.  Enable patterns for
1318         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1319         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1320         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1321         implement fisttp x87 insn.
1322         (fix_trunc*_i387_fisttp splitters): New patterns.
1323         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1324         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
1325         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
1326         clobber.
1327         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1328         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1329         Implement using mode macros. Disable patterns for TARGET_FISTTP.
1330         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1331         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1332         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1333         Disable patterns for TARGET_FISTTP.
1334         (fix_trunc*_i387 splitters): Implement usign mode macros.
1335         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1336         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1337         (fix_trunx*_sse peephole2s): Implement using mode macros.
1339 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
1341         PR rtl-optimization/20291
1342         * combine.c (try_combine): If splitting fails, re-try with
1343         original combined pattern, i.e. before clobber stripping.
1345 2005-03-14  Eric Christopher  <echristo@redhat.com>
1347         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1348         STACK_GROWS_DOWNWARD.
1350 2005-03-14  Roger Sayle  <roger@eyesopen.com>
1352         * real.h (struct real_format): Split the signbit field into two
1353         two fields, signbit_ro and signbit_rw.
1354         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1355         mips_double_format, ieee_extended_motorola_format,
1356         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1357         ieee_extended_intel_128_format, ibm_extended_format,
1358         mips_extended_format, ieee_quad_format, mips_quad_format,
1359         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1360         i370_double_format, c4x_single_format, c4x_extended_format,
1361         real_internal_format): Update initializers for new field.
1362         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1363         real_format structure.
1364         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1365         field of the real_format structure.
1367 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
1369         Fix PR tree-optimization/20458
1371         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1372         DECL_EXTERNAL on STRUCT_FIELD tags.
1373         (clear_call_clobbered): Ditto.
1374         * tree-ssa-operands.c (note_addressable): Make sure the original
1375         variable doesn't slip into the addressable list if we have
1376         subvars.
1377         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1378         tags too.
1380 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
1382         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1383         (-fwide-exec-charset): Likewise.
1384         (-finput-charset): Likewise.
1385         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1386         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1387         * c.opt (Wnormalized): New.
1389 2005-03-14  Devang Patel  <dpatel@apple.com>
1391         * doc/invoke.texi: Add reference to Visibility document.
1393 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1395         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1396         MASK_SPLIT_ADDRESSES.
1397         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1398         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1399         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1400         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1401         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1402         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1403         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1404         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1405         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1406         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1407         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1408         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1409         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1410         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1411         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1412         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1413         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1414         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1415         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1416         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1417         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1418         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1419         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1420         (TARGET_EXPLICIT_RELOCS): Delete.
1421         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1422         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1423         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1424         (override_options): Set MASK_LONG64 if -mint64 is given and no
1425         -mlongXX option is.  Complain about -mint64 -mlong32.
1426         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1427         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1428         * config/mips/mips.opt: New file.
1430 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1432         * config.gcc (extra_options): New variable for listing option files.
1433         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1434         * configure.ac (extra_opt_files): New AC_SUBST variable.
1435         (tm_file_list, tm_include_list): Include options.h first.
1436         * configure: Regenerate.
1437         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1438         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1439         (s-options-h): New rule.
1440         (options.h): Depend on it.
1441         (TEXI_GCCINT_FILES): Add options.texi.
1442         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1443         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1444         * target.h (gcc_target): Add default_target_flags and handle_option.
1445         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1446         (TARGET_HANDLE_OPTION): New macros.
1447         (TARGET_INITIALIZER): Include them.
1448         * opt-functions.awk (opt_args, nth_arg): New functions.
1449         (switch_flags): Handle the "Target" flag.
1450         (var_args): Delete.
1451         (var_name): Use opt_args and nth_arg.
1452         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
1453         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
1454         macros for the "Mask" and "InverseMask" options.
1455         * opts.h (cl_var_cond): New enum.
1456         (cl_option): Replace the "has_set_value" and "set_value" fields with
1457         "var_cond" and "var_value".
1458         (CL_TARGET): New macro.
1459         (option_enabled, print_filtered_help): Declare.
1460         (decode_options): Move definition.
1461         * opts.c (handle_option): Search for the original option before
1462         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
1463         var_cond and var_value fields.  Use targetm.handle_option to handle
1464         target options.
1465         (decode_options): Set target_flags to targetm.default_target_flags.
1466         (print_filtered_help): Make global.  Handle CL_TARGET.
1467         (option_enabled): New function.
1468         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1469         (display_target_options, set_target_switch, print_switch_values)
1470         (default_pch_valid_p): Guard uses of target_switches with
1471         #ifdef TARGET_SWITCHES.  Also...
1472         (display_target_options): Display the CL_TARGET entries in cl_options.
1473         (set_target_option): Don't complain about the "" option when
1474         TARGET_SWITCHES is undefined.
1475         (print_switch_values): Use option_enabled.
1476         (default_pch_valid_p): Check cl_options[] when looking for something
1477         that has changed the value of target_flags.
1478         * c.opt: Remove documentation from top of file.
1479         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
1480         * doc/sourecebuild.texi: Refer to the new options documentation
1481         instead of c.opt.  Document machine-specific .opt files.
1482         * doc/tm.texi (target_flags): Say that this variable is declared
1483         by options.h.
1484         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
1485         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
1486         an alternative.
1487         * doc/options.texi: New file.
1489 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
1491         PR middle-end/18628
1492         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
1493         register.
1495 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
1497         PR c++/20280
1498         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
1499         temporary variable of pointer type if an lvalues is required.
1500         (gimplify_modify_expr_rhs): Request an rvalue from it.
1501         (gimplify_expr): Pass fallback on.
1503 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1505         * cfgbuild.c: Update comments.
1507 2005-03-14  Roger Sayle  <roger@eyesopen.com>
1509         PR rtl-optimization/17236
1510         * optabs.c (expand_doubleword_mult): New helper function split out
1511         from expand_binop.  Permute the order in which instructions are
1512         emitted to minimize the number of simultaneously live registers.
1513         (expand_binop): Call expand_doubleword_mult to synthesize a double
1514         word multiplication.
1516 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1518         * basic-block.h: Update the prototypes of cached_make_edge and
1519         rtl_make_eh_edge.
1520         * cfg.c (cached_make_edge): Take edge_cache representing one
1521         row of the adjacency matrix of edges.
1522         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
1523         (make_edges): Initialize edge_cache to represent one row of
1524         the adjacency matrix of edges.
1526 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1528         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
1529         New functions.
1530         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
1531         Remove unused removed_phis variable.
1532         (conditional_replacement): Use build1/build2.
1533         (abs_replacement): Use last_and_only_stmt and build1/build2.
1535 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1537         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
1538         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
1539         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
1540         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
1541         * c-common.c (handle_novops_attribute): New function.
1542         (c_common_attribute_table): Add "no vops" entry.
1543         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
1544         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
1545         * tree-ssa-operands.c (get_call_expr_operands): Do not
1546         create virtual operands for calls with ECF_NOVOPS flag.
1547         * tree.h (DECL_IS_NOVOPS): New macro.
1548         (struct tree_decl): Add novops_flag.
1549         (ECF_NOVOPS): New constant.
1551 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
1553         PR target/17688
1554         * config/i386/i386.c (x86_use_himode_fiop): New.
1555         (x86_use_simode_fiop): Rename from x86_use_fiop.
1556         * config/i386/i386.h (x86_use_himode_fiop): Declare.
1557         (TARGET_USE_HIMODE_FIOP): New.
1558         (x86_use_simode_fiop): Rename from x86_use_fiop.
1559         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
1561         * config/i386/i386.md (X87MODEI12): New mode macro define.
1562         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
1563         to implement x87 FP compare with HImode input operands.
1564         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
1565         Use X87MODEI12 mode macro to handle HImode input operands.
1566         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
1567         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
1568         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
1569         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
1570         macro to implement x87 operators with HImode input operands.
1571         (fop splitters): Use X87MODEI12 mode macro to handle HImode
1572         input operands.
1574 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1576         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
1577         integer_zerop.
1578         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
1579         constants invariant.
1581 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1583         * basic-block.h (BB_VISITED): Removed.
1584         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
1586 2005-03-14  Falk Hueffner  <falk@debian.org>
1588         PR bootstrap/20424
1589         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
1591 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1593         * ggc-zone.c: Fix comment typos.
1595         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
1596         stringpool.c, config/mips/mips-protos.h: Update copyright.
1598 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
1600         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
1601         throughout with its typedef, "rtx".
1602         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
1603         (rs6000_tls_symbol_ref_1): Remove inline keyword.
1604         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
1605         regs in comment to match code.
1607 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
1609         * except.c (check_handled): Make it static.
1610         * except.h: Remove the corresponding prototype.
1612         * function.c (get_func_frame_size): Make it static.
1613         * function.h: Remove the corresponding type.
1615         * regclass.c (reg_class_superclasses, reg_class_subclasses):
1616         Make them static.
1617         * hard-reg-set.h: Remove the corresponding declarations.
1619         * tree-cfg.c (verify_stmts): Check that
1620         bb_for_stmt (stmt) == bb for every PHI node and statement.
1622 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
1624         * config.gcc: Remove excess indentation.
1625         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
1627 2005-03-13  Roger Sayle  <roger@eyesopen.com>
1629         PR middle-end/19331
1630         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
1631         * fold-const.c (fold_sign_changed_comparison): Likewise.
1632         (fold_binary): Optimize comparisons against widened operands if
1633         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
1635 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1637         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
1638         (sparc_override_options): Initialize it.
1639         (sparc_struct_value_rtx): Set it on the MEM to be returned.
1641 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
1643         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
1644         (reg_or_none500mem_operand): New predicate.
1645         (zero_reg_mem_operand): New predicate.
1646         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1647         to reg_or_none500mem_operand.
1648         (extendsfdf2_fpr): Add MEM alternative.
1649         (extenddftf2_internal): Change operand2 predicate to
1650         zero_reg_mem_operand.
1652 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1654         * ggc-zone.c: Rewritten.
1656         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
1657         if there are none.
1658         * configure.ac: Define GGC_ZONE for --with-gc=zone.
1659         * config.in: Regenerated.
1660         * configure: Regenerated.
1661         * gengtype.c (write_types_process_field, write_func_for_structure):
1662         Pass new argument to gt_pch_note_object.
1663         * ggc-common.c (struct ptr_data): Add TYPE.
1664         (gt_pch_note_object): Take TYPE argument and save it.
1665         (call_count): Update call to ggc_pch_count_object.
1666         (call_alloc): Update call to ggc_pch_alloc_object.
1667         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
1668         file.
1669         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
1670         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
1671         (ggc_alloc_zone_stat): Delete.
1672         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
1673         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
1674         (ggc_pch_alloc_object): Update prototypes.
1675         (garbage_zone): Delete.
1676         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
1677         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
1678         pointers.
1679         (tree_id_zone): New variable.
1680         (ggc_alloc_cleared_zone): Remove unused.
1681         (ggc_alloc_zone): Define.
1682         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
1683         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
1684         ggc_alloc_zone_stat.
1685         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
1686         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
1687         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
1688         (make_node_stat): Likewise.  Use tree_id_zone.
1690 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1691             Joseph S. Myers  <joseph@codesourcery.com>
1693         * configure.ac: Check for MIPS TLS.
1694         * configure: Regenerated.
1695         * config/mips/mips-protos.h (enum mips_symbol_type): Add
1696         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
1697         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
1698         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
1699         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1700         (mips_classify_symbol, mips_symbolic_constant_p)
1701         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
1702         (mips_tls_operand_p, mips_call_tls_get_addr)
1703         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
1704         (mips_tls_symbol_ref_1): New functions.
1705         (mips_legitimize_address, mips_legitimize_const_move): Call
1706         mips_legitimize_tls_address.
1707         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
1708         for MIPS16.
1709         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
1710         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
1711         (mips_char_to_class): Document V1_REG.
1712         (HAVE_AS_TLS): Provide default.
1713         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
1714         constants.
1715         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
1716         !TARGET_ABICALLS.
1717         (tls_get_tp_<mode>): New instruction.
1719 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1721         * configure.ac: Update checks for target tools.
1722         * configure: Regenerated.
1724 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
1726         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
1728 2005-03-13  Roger Sayle  <roger@eyesopen.com>
1730         * expmed.c (expand_mult): Use synthetic multiplication sequences for
1731         more classes of DImode multiplication by constant.  Allow both
1732         multiplication by small negative constants (by performing a
1733         multiplication by a positive constant and negating the result) and
1734         multiplications by large powers of two, by using a left shift.
1736 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
1738         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
1739         of basic blocks into work_stack.
1741         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
1742         config/mips/vr.h: Update copyright.
1744         * c-decl.c (c_init_decl_processing): Remove useless calls to
1745         build_function_type.
1747         * builtins.c (fold_trunc_transparent_mathfn,
1748         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
1749         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
1750         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
1751         fold_builtin_strcpy, fold_builtin_strncpy,
1752         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
1753         TREE_TYPE (exp).
1755         * builtins.c (expand_builtin_mathfn_3): Remove local variable
1756         before_call.
1758         * lambda-code.c (lambda_compute_auxillary_space): Remove local
1759         variable determinant.
1761         * tree-cfg.c (group_case_labels): Remove local variable type.
1763         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
1764         variable ann.
1766         * tree-ssa-phiopt.c (value_replacement): Remove local variable
1767         result.
1769 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
1771         PR target/18251
1772         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
1773         (*movmemqi_insn): Delete.
1774         (*movmemhi): Delete.
1776 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
1778         * builtins.c (fold_builtin_classify): Take decomposed
1779         arguments of CALL_EXPR.
1780         (fold_builtin_1): Update a call to fold_builtin_classify.
1782 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
1784         PR c/20402
1785         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
1786         through into call to parser_xref_tag after parse error.
1787         (c_parser_struct_declaration): Consistently return NULL_TREE on
1788         error.
1790 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
1792         * tree-flow-inline.h (ref_contains_array_ref): New function.
1793         (lookup_subvars_for_var): Ditto.
1794         (get_subvars_for_var): Ditto.
1795         (var_can_have_subvars): Ditto.
1797         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
1798         (struct subvar): New type.
1800         * tree-dfa.c (okay_component_ref_for_subvars): New function.
1802         * tree-optimize.c (init_tree_optimization_passes): Call
1803         pass_create_structure_vars.
1805         * tree-ssa-alias.c: Include vec.h.
1806         (init_alias_info): Don't auto-clear call clobbered on struct-field
1807         tags.
1808         (compute_flow_insensitive_aliasing): Handle subvars.
1809         (group_aliases): Handle STRUCT_FIELD aliases.
1810         (setup_pointers_and_addressables): Ditto.
1811         Don't mark variables non-addressable if they still have
1812         addressable subvars.
1813         Also mark subvars addressable when the real variable is marked
1814         addressable.
1815         (add_pointed_to_var): Try to prune the pointed-to set by only
1816         pointing to subvars when possible.
1817         Otherwise, make sure we set addresses_needed and pt_vars to
1818         properly include subvars.
1819         (bitpos_of_field): New function.
1820         (push_fields_onto_fieldstack): Ditto.
1821         (get_or_create_used_part_for): Ditto.
1822         (create_overlap_variables_for): Ditto.
1823         (find_used_portions): Ditto.
1824         (create_structure_vars): Ditto.
1825         (pass_create_structure_vars): New structure.
1827         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
1828         (get_expr_operands): Handle subvars.  Also try to turn
1829         COMPONENT_REF accesses into must-defs now that we can accurately
1830         portray it.
1831         (note_addressable): Try to only mark as addressable those subvars
1832         we know a COMPONENT_REF touches.
1833         (overlap_subvar): New function.
1835         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
1836         Handle subvar storing.
1837         (vect_address_analysis): Update caller of vect_object_analysis.
1839         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
1841         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
1842         (STMT_VINFO_SUBVARS): New macro.
1844         * common.opts: add flag_tree_salias.
1846         * opts.c (decode_options): flag_tree_salias defaults to on.
1848         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
1850         * doc/tree-ssa.texi: Document structural alias analysis.
1852 2005-03-12  Steven Bosscher  <stevenb@suse.de>
1854         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
1855         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
1856         * tree-ssa-operands.c (get_expr_operands): Likewise.
1857         (get_expr_operands): Likewise for ERROR_MARK.
1859 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
1861         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
1862         var.
1864         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
1865         removed_phis.
1867         * tree-ssa-pre.c (compute_avail): Remove local variable val.
1868         (mark_operand_necessary): Remove local variable ver.
1870         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
1871         variable prefix_len.
1873         * value-prof.c (mod_subtract_transform): Remove local variable
1874         value.
1876         * builtins.c (fold_builtin_exponent): Take decomposed
1877         arguments of CALL_EXPR.
1878         (fold_builtin_1): Update a call to fold_builtin_exponent.
1880         * builtins.c (fold_builtin_logarithm): Take decomposed
1881         arguments of CALL_EXPR.
1882         (fold_builtin_1): Update a call to fold_builtin_logarithm.
1884         * c-decl.c (c_init_decl_processing): Remove local variables
1885         ptr_ftype_void and ptr_ftype_ptr.
1887         * gimplify.c (gimplify_expr): Remove local variables r0 and
1888         r1.
1890         * reg-stack.c (move_for_stack_reg): Remove local variable
1891         push_insn.
1892         (compare_for_stack_reg): Remove local variable flags_user.
1893         (convert_regs_1): Remove local variable deleted.
1895         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
1896         variable new_cond.
1897         (combine_blocks): Remove local variables exits and new_e.
1899         * tree-inline.c (expand_call_inline): Remove local variable
1900         decl.
1902         * tree-ssa-live.c (create_ssa_var_map,
1903         calculate_live_on_entry): Remove local variable snn.
1905 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
1907         * c-lex.c (c_lex_with_flags): Add parameter to call to
1908         cpp_spell_token.
1910 2005-03-11  Per Bothner  <per@bothner.com>
1912         * c-tree.h (struct c_declarator): New id_loc field.
1913         * c-pragma.h (c_lex_with_flags): Take position reference.
1914         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
1915         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
1916         (c_lex): Pass dummy location to c_lex_with_flags.
1917         * c-parser.c (c_lex_one_token): Set c_token's location using
1918         c_lex_with_flags, instead of input_location, which might be "ahead".
1919         (c_parser_direct_declarator): Set declarator's id_loc from
1920         c_token's id_loc.
1921         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
1922         declarator's id_loc, rather than probably-imprecise input_location.
1923         (build_id_declarator): Initialize c_declarator's id_loc field.
1925 2005-03-11  Roger Sayle  <roger@eyesopen.com>
1927         PR middle-end/20419
1928         * builtins.c (expand_builtin_signbit): Force the signbit's word
1929         into an integer register to avoid SUBREGs of floating point modes.
1931 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
1933         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
1934         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
1935         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
1936         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
1938 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
1940         PR rtl-optimization/20306
1941         * expr.c (emit_move_complex): Set try_int false if mode is
1942         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
1943         emit_block_move if try_int is true.
1945 2005-03-11  Richard Henderson  <rth@redhat.com>
1947         PR target/20415
1948         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
1949         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
1950         to match.
1952 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
1954         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
1955         (TARGET_FIX_VR4130): New macro.
1956         (TARGET_OPTIONS): Add -mfix-vr4130.
1957         (ISA_HAS_MACCHI): New macro.
1958         (ASM_SPEC): Add -mfix-vr4130.
1959         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
1960         (override_options): Handle mips_fix_vr4130_string.
1961         (mips_avoid_hazards): Clear all_noreorder_p
1962         if we're working around VR4130 errata and the macc alternatives
1963         are not available.
1964         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
1965         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
1966         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
1967         (MULTILIB_DEFAULTS): Remove leading "march=".
1968         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
1969         if no architecture option is given.
1970         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
1971         VR4130 multilibs.
1972         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
1973         * doc/invoke.texi: Document -mfix-vr4130.
1975 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
1977         * config/mips/mips.c (override_options): Only warn about -mint64
1978         deprecation if TARGET_INT64.
1980 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1982         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
1983         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
1984         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
1985         are non-specific regarding the nonnull parameter positions.
1986         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
1987         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
1988         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
1989         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
1991         * builtins.def: Use the non-specific "nonnull" attibute lists.
1993 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
1995         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
1996         single_pred_edge, single_succ, single_pred): Improve comments.
1998 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2000         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2001         single_pred_edge, single_succ, single_pred): New inline functions.
2002         * bb-reorder.c (rotate_loop, find_traces_1_round,
2003         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2004         duplicate_computed_gotos): Use the single_succ/pred functions.
2005         * cfganal.c (forwarder_block_p): Ditto.
2006         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2007         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2008         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2009         merge_seq_blocks): Ditto.
2010         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2011         * cfglayout.c (fixup_reorder_chain): Ditto.
2012         * cfgloop.c (mark_single_exit_loops, update_latch_info,
2013         canonicalize_loop_headers, verify_loop_structure): Ditto.
2014         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2015         mfb_update_loops, create_preheader, force_single_succ_latches,
2016         create_loop_notes): Ditto.
2017         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2018         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2019         commit_one_edge_insertion, purge_dead_edges,
2020         cfg_layout_can_merge_blocks_p): Ditto.
2021         * except.c (sjlj_emit_function_enter): Ditto.
2022         * flow.c (init_propagate_block_info): Ditto.
2023         * function.c (thread_prologue_and_epilogue_insns): Ditto.
2024         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2025         insert_insn_end_bb): Ditto.
2026         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2027         find_if_case_2): Ditto.
2028         * lambda-code.c (perfect_nestify): Ditto.
2029         * lcm.c (optimize_mode_switching): Ditto.
2030         * loop-doloop.c (doloop_modify): Ditto.
2031         * loop-init.c (loop_optimizer_init): Ditto.
2032         * loop-iv.c (simplify_using_initial_values): Ditto.
2033         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2034         * loop-unswitch.c (unswitch_loop): Ditto.
2035         * modulo-sched.c (generate_prolog_epilog): Ditto.
2036         * predict.c (combine_predictions_for_insn, estimate_probability,
2037         tree_estimate_probability, last_basic_block_p,
2038         estimate_bb_frequencies): Ditto.
2039         * profile.c (branch_prob): Ditto.
2040         * regrename.c (copyprop_hardreg_forward): Ditto.
2041         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2042         * tracer.c (layout_superblocks): Ditto.
2043         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2044         cfg_remove_useless_stmts_bb, cleanup_control_flow,
2045         cleanup_control_expr_graph, disband_implicit_edges,
2046         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2047         tree_verify_flow_info, tree_make_forwarder_block,
2048         tree_forwarder_block_p, remove_forwarder_block,
2049         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2050         * tree-if-conv.c (tree_if_conversion): Ditto.
2051         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2052         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2053         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2054         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2055         copy_loop_headers): Ditto.
2056         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2057         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2058         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2059         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2060         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2061         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2062         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2063         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2064         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2065         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2066         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2067         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2068         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2069         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2070         slpeel_add_loop_guard): Ditto.
2072 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
2074         PR tree-optimization/15784
2075         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2076         and -1 - A to ~A.
2078         * stmt.c (expand_case): Don't change index_type.  Convert minval
2079         to the proper type.
2081         PR tree-optimization/20130
2082         * fold-const.c (fold): Fold x * -1 into -x.
2084 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2086         PR rtl-optimization/20331
2087         * rtlanal.c (modified_between_p): Check its address first for MEM.
2088         (modified_in_p): Likewise.
2090 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
2092         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2094 2005-03-10  Steven Bosscher  <stevenb@suse.de>
2096         * expr.c (expand_expr_real_1): If possible, use a conditional
2097         move for expanding MIN_EXPR and MAX_EXPR.
2098         Use temp for moving around rtx-en.
2100 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
2102         PR rtl-opt/20412
2103         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2104         correct mode.
2106 2005-03-10  Roger Sayle  <roger@eyesopen.com>
2108         * builtins.c (expand_builtin_signbit): Extend to handle floating
2109         point modes wider than the largest integer type, using the
2110         operand_subword_force function to obtain the signbit's word.
2112 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2114         PR target/20322
2115         * combine.c (try_combine): If recog_for_combine added CLOBBERs
2116         to NEWI2PAT, fail to combine if they are used by NEWPAT.
2118 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
2120         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2122 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
2124         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2125         type void.
2126         (perform_edge_inserts): Unconditionally call
2127         free_dominator_info.
2129         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2131 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
2133         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2135 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
2137         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2139         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2140         gcc_unreachable.
2141         (rtl_register_value_prof_hooks,
2142         tree_value_profile_transformations,
2143         tree_register_value_prof_hooks): Likewise.
2144         * var-tracking.c (stack_adjust_offset_pre_post,
2145         variable_htab_free, variable_union, dataflow_set_different_2,
2146         count_uses, variable_was_changed, set_frame_base_location,
2147         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2148         vt_add_function_parameters): Likewise.
2149         * varasm.c (named_section_real, named_section, make_decl_rtl,
2150         asm_emit_uninitialised, assemble_integer, decode_addr_const,
2151         const_hash_1, compare_constant, copy_constant, force_const_mem,
2152         output_constant_pool_2, output_constant_pool_1, output_constant,
2153         output_constructor, make_decl_one_only, decl_tls_model,
2154         default_no_named_section, default_elf_select_section_1,
2155         default_unique_section_1): Likewise.
2156         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2157         * vmsdbgout.c (addr_const_to_string): Likewise.
2159         PR c++/20375
2160         * function.c (struct assign_parm_data_one): Remove last_named
2161         field.
2162         (assign_parm_find_data_types): Don't determine last_named.
2163         Reorder named_parm determination.
2164         (assign_parms): Only setup varargs on the last non-varadic
2165         parameter.
2167 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
2169         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
2170         sda base address on medium model.
2172 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
2174         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2175         * cfgloop.c (flow_loop_nodes_find): Export.
2176         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2177         Declare.
2178         * cfgloopmanip.c (fix_loop_structure): New function.
2179         * predict.c (predict_loops): Clean up the loops information.
2180         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2181         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2182         loop structure.
2183         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2184         (rewrite_into_loop_closed_ssa): Declaration changed.
2185         * tree-loop-linear.c (linear_transform_loops): Add argument to
2186         rewrite_into_loop_closed_ssa call.
2187         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2188         * tree-ssa-loop-im.c (move_computations): Ditto.
2189         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2190         * tree-vectorizer.c (vectorize_loops): Ditto.
2191         * tree-optimize.c: Include cfgloop.h.
2192         (execute_todo): Choose whether to call cleanup_tree_cfg or
2193         cleanup_tree_cfg_loop.
2194         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2195         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2196         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2197         cleanup_tree_cfg_loop call.
2198         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2199         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2200         work on part of cfg.
2202 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2204         PR inline-asm/20314
2205         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2206         with multiple alternatives.
2208         * stmt.c (parse_output_constraint): Fix a typo.
2210 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
2212         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2213         assembly directive instead of deprecated "no-generics".
2215 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
2217         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2218         for non-offsettable memory references to cope with outstanding reload
2219         replacements.
2220         * config/s390/s390.md ("reload_outti"): Call find_replacement to
2221         avoid losing outstanding address reloads.
2222         ("reload_outdi", "reload_outdf"): Likewise.
2224 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2226         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2227         code.  Add more cbrt transformations.
2229 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2231         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2233 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2235         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2236         NULL_TREE when a given tree is not simplified.
2237         (fold): Return the original tree when any of the functions
2238         mentioned above NULL_TREE.
2240         * fold-const.c (fold_unary, fold_binary): Take decomposed
2241         arguments, code, type, op0, and op1 in case of fold_binary.
2242         (fold): Update calls to fold_unary and fold_binary.
2244 2005-03-09  Roger Sayle  <roger@eyesopen.com>
2246         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2247         a fndecl and an arglist instead of a CALL_EXPR, exp.
2249 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2251         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2253         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2255         * expr.c (expand_assignment): Remove orig_to_rtx.
2257         * fold-const.c (int_const_binop): Remove no_overflow.
2259         * ifcvt.c (noce_emit_move_insn): Remove inmode.
2261         * loop-iv.c (get_biv_step_1): Remove lhs.
2263         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2265         * real.c (real_nan): Remove neg.
2267         * function.c (thread_prologue_and_epilogue_insns): Remove i
2268         and newinsn.
2270         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2271         tb.
2273         * tree-eh.c (tree_could_trap_p): Remove idx.
2275         * tree-into-ssa.c (ann): Remove ann.
2277         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2279         * tree-sra.c (decide_block_copy): Remove inst_count.
2281         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2283         * tree-ssa-loop-im.c (lhs): Remove.
2285         * cfgbuild.c (state, STATE, SET_STATE,
2286         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2287         make_edges.
2288         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2289         (find_basic_blocks): Set the state of each basic block to
2290         BLOCK_NEW.
2292 2005-03-08  Jeff Law  <law@redhat.com>
2294         * tree-cfg.c (cleanup_control_flow): If removal of a computed
2295         goto results in the removal of edges in the CFG, then we need
2296         to recompute dominators.
2298 2005-03-09  Ben Elliston  <bje@au.ibm.com>
2300         * c-common.c (c_do_switch_warnings): Comment fix.
2302 2005-03-08  Julian Brown  <julian@codesourcery.com>
2304         * Patch from 2005-03-08 reverted for causing regressions and
2305         ppc-darwin bootstrap failure.
2307 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
2309         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2310         Define the real function for ppc-darwin.
2311         * c-typeck.c (convert_arguments): Check for target-specific
2312         invalid argument call to unprototyped function.
2313         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2314         New Macro.
2315         * target.h (invalid_arg_for_unprototyped_fn): New field
2316         in struct calls.
2317         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2318         default target hook.
2319         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2320         Declare.
2322 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2324         * c-typeck.c (constructor_stack, constructor_range_stack,
2325         initializer_stack): Make them static.
2327         * cfg.c (rbi_pool): Make it static.
2329         * gimple-low.c (lower_stmt_body): Make it static.
2330         * tree-flow.h: Remove the corresponding prototype.  Don't
2331         declare lower_data.
2333         * sched-deps.c (cache_size): Make it static.
2335         * stor-layout.c (lang_adjust_rli): Make it static.
2337 2005-03-08  Julian Brown  <julian@codesourcery.com>
2339         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2340         from being used for symbols with vague linkage when
2341         HAVE_GAS_COMDAT_GROUP is true.
2343 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
2345         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2346         nlabel == JUMP_LABEL (jump).
2348 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2350         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2351         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2352         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2353         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2355 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
2357         PR c/14411
2358         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2359         * c-common.c (handle_returns_twice): New function.
2360         (c_common_attribute_table): Declare eturns_twice' attribute.
2361         * doc/extend.texi: Document eturns_twice' attribute.
2362         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2363         (struct tree_decl): Add returns_twice_flag.
2365 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2367         * tree-ssa-phiopt.c: Fix a comment typo.
2369         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2370         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2371         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2372         copyright.
2374 2005-03-08  Richard Henderson  <rth@redhat.com>
2376         * config/alpha/alpha.c (code_for_builtin): Replace special-case
2377         builtin codes with ctzdi2, clzdi2, popcountdi2.
2378         (struct alpha_builtin_def): Add is_const.
2379         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2380         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2381         (alpha_init_builtins): Init them.  Set nothrow and const attributes
2382         on builtins.
2383         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2384         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2385         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2386         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2387         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2388         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2389         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2390         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2391         (TARGET_FOLD_BUILTIN): New.
2392         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2393         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2394         (ffsdi2): Use ctz.
2395         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2397 2005-03-08  Ira Rosen  <irar@il.ibm.com>
2399         PR tree-optimization/20122
2400         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2401         condition of access function instead of base.
2403 2005-03-07  Jeff Law  <law@redhat.com>
2404             Steven Bosscher  <stevenb@suse.de>
2406         * tree-cfg.c (find_taken_edge_computed_goto): New function.
2407         (find_taken_edge): Call find_taken_edge_computed_goto as
2408         appropriate.  Allow any gimple invariant rather than just
2409         INTEGER_CST for VAL.
2410         (cleanup_control_flow): Cleanup a computed goto which has turned
2411         into a simple goto.
2412         (tree_merge_blocks): If block B has any forced labels, move
2413         them to the start of block A.
2414         * tree-ssa-dom.c (thread_across_edge): Allow threading across
2415         computed gotos as well.
2416         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2417         removal of unnecessary computed gotos too.
2418         (lookup_redirection_data): Fix type of INSERT argument.  Callers
2419         updated.
2421 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2423         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
2424         Remove trailing spaces.
2426         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2427         unshare_all_trees): Make them static.
2428         * tree-gimple.h: Remove the corresponding prototypes.
2430         * diagnostic.h: Remove unused prototype
2431         debug_output_buffer.
2432         * modulo-sched.c: Remove unused prototype
2433         set_row_column_for_ps.
2435         * tree-ssa-phiopt.c (tree_ssa_phiopt,
2436         replace_phi_edge_with_variable): Remove unused variable i.
2438 2005-03-07  Per Bothner  <per@bothner.com>
2440         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2442 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
2444         PR tree-opt/17671
2445         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2446         bbs on the COND_EXPR instead of the PHI_NODEs.
2447         (candidate_bb_for_phi_optimization): Remove.
2448         (replace_phi_with_stmt): Rename to ...
2449         (replace_phi_edge_with_variable): this and change so that we
2450         replace the phi argument instead of removing the PHI.
2451         (conditional_replacement): Change so we deal with PHI with more
2452         than two arguments.
2453         (value_replacement): Likewise.
2454         (abs_replacement): Likewise.
2456 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
2458         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2459         output_e500_flip_gt_bit.
2461         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2462         as bit 31.
2463         (rs6000_generate_compare): Fix logic to look at the correct bits.
2464         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2465         Look at GT bit.
2466         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2467         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
2468         gen_move_from_CR_gt_bit.
2470         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2471         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2472         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2474         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2475         (E500_CR_IOR_COMPARE): New constant.
2477 2005-03-08  Earl Chew <earl_chew@agilent.com>
2478             David Billinghurst <David.Billinghurst@riotinto.com>
2480         * config/i386/host-cygwin.c: New file to support precompiled
2481         headers on cygwin
2482         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
2483         * config.host: Use above files for cygwin host.
2485 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
2487         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
2488         ordering ops from earlier change.
2490 2005-03-07  Per Bothner  <per@bothner.com>
2492         Various fixes to allow us to again build if --enable-mapped-location:
2493         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2494         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2495         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
2496         local variable loc. Change logic appropriately.
2497         * tree-vect-transform.c (vect_finish_stmt_generation): Use
2498         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
2499         * c-parser.c (c_parser_for_statement): Initialize loc variable.
2500         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
2501         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
2503 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
2505         PR rtl-optimization/19683
2506         * reload1.c (choose_reload_regs): Pass the number of bits, not the
2507         number of bytes, to smallest_int_for_mode.  Fix arguments to
2508         REG_CANNOT_CHANGE_MODE_P.
2510 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2512         * reorg.c (relax_delay_slots): Check that the jump is
2513         conditional before trying to invert it.
2515 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2517         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
2518         Make them static.
2520         * calls (stack_arg_under_construction): Make it static.
2522         * flow.c (regs_live_at_setjmp): Make it static.
2523         * flow.h: Remove the corresponding prototype.
2525         * reload1.c (reload_startobj, reload_firstobj,
2526         something_needs_operands_changed, reload_inherited,
2527         reload_inheritance_insn, reload_override_in,
2528         reload_spill_index): Make them static.
2530         * recog.c (verify_changes): Make it static.
2531         * recog.h: Remove the corresponding prototype.
2533         * cfgbuild.c (find_sub_basic_blocks): Remove.
2534         * basic-block.h: Remove the corresponding prototype.
2535         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
2536         in comments.
2537         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
2539         * tree-ssa-operands.c (check_build_stmt): Remove.
2541         * stor-layout.c (set_alignment): Remove.
2542         * tree.h: Remove the corresponding prototype.
2544         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
2546         * tree-ssa-dce.c (control_dependence_map,
2547         visited_control_parents): Make them static.
2549         * cfghooks.c (verify_flow_info): Remove local variable
2550         num_bb_notes.
2552         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
2553         last_bb_seen.
2555         * loop-unswitch.c (unswitch_loop): Remove local variable src.
2557 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
2559         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
2561 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
2563         * config/ia64/hpux.h (LINK_SPEC): Add -z.
2564         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
2565         PARALLEL for an empty structure.
2567 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2569         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
2571         * fold-const.c (fold_binary): Unroll the very first "for"
2572         loop.
2574 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
2576         * config/rs6000/predicates.md (branch_comparison_operator): Remove
2577         redundant match_code test.
2578         (scc_comparison_operator): Swap match_operand and match_code
2579         tests.
2580         (branch_positive_comparison_operator): Same.
2581         (trap_comparison_operator): Use comparison_operator and swap with
2582         match_code test.
2584 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2586         PR target/20288
2587         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
2588         (out_movhi_r_mr): Read low byte of volatile MEM first.
2589         (out_movhi_mr_r): Write high byte of volatile MEM first.
2591 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2593         * cselib.c (reg_values, reg_values_size): Make them static.
2595         * cse.c (cse_reg_info_table): Make it static.
2597         * fold-const.c (fold_unary): Use build1 instead of copy_node.
2599 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
2601         * cse.c (find_best_addr): Use canon_for_address.
2603 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
2605         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
2606         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
2607         SUBREG and MEM, respectively.
2609         * fold-const.c (fold_binary): Use code instead of t.
2611         * fold-const.c (optimize_minmax_comparison): Take decomposed
2612         arguments code, type, op0, and op1 instead of t.
2613         (fold_binary): Update a call to optimize_minmax_comparison.
2615         * fold-const.c (fold_range_test): Take decomposed arguments
2616         code, type, op0, and op1 instead of t.
2617         (fold_binary): Update a call to fold_range_test.
2619         * fold-const.c (fold_binary_op_with_conditional_arg): Take
2620         decomposed arguments code, type, op0, and op1 instead of t.
2621         (fold_binary): Update a call to fold_range_test.
2623 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
2625         * fold-const.c (fold_binary): Avoid directly using the original
2626         expression t as much as possible.
2628 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2630         * c-semantics.c (build_stmt): Use TYPE_P instead of
2631         IS_NON_TYPE_CODE_CLASS.
2632         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
2633         (NON_TYPE_CHECK): Use TYPE_P instead of
2634         IS_NON_TYPE_CODE_CLASS.
2636         * fold-const.c (fold): Remove handling of binary expressions.
2638 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
2640         * doc/c-tree.texi: Wrap comments in @r{}.
2641         * doc/cpp.texi: Likewise.
2642         * doc/cppinternals.texi: Likewise.
2643         * doc/extend.texi: Likewise.
2644         * doc/md.texi: Likewise.
2645         * doc/objc.texi: Likewise.
2646         * doc/sourcebuild.texi: Likewise.
2647         * doc/tm.texi: Likewise.
2648         * doc/tree-ssa.texi
2650 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2652         * predict.c (apply_return_prediction): Standardize PHI chain
2653         walking.
2654         * tree-ssa.c (ssa_redirect_edge): Likewise.
2656         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
2657         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
2658         Update copyright.
2660         * tree-phinodes.c (remove_phi_node): Drop the last argument.
2661         * tree-flow.h: Adjust the prototype for remove_phi_node.
2662         * lambda-code.c (perfect_nestify): Adjust a call to
2663         remove_phi_node.
2664         * tree-cfg.c
2665         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2666         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
2667         Likewise.
2668         * tree-ssa-dce.c (remove_dead_phis): Likewise.
2669         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
2670         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
2671         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
2673         * combine.c (simplify_and_const_int): Use gen_int_mode instead
2674         of GEN_INT (trunc_int_for_mode (...)).
2675         * loop-iv.c (iv_number_of_iterations): Likewise.
2676         * postreload.c (reload_cse_move2add): Likewise.
2677         * simplify-rtx.c (simplify_const_unary_operation,
2678         simplify_const_binary_operation): Likewise.
2679         * stor-layout.c (get_mode_bounds): Likewise.
2681         * fold-const.c (fold_binary): New.
2682         (fold): Call fold_binary on binary expressions.
2684 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
2686         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
2687         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
2688         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
2689         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
2690         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
2692 2005-03-04  Devang Patel  <dpatel@apple.com>
2694         PR tree-optimization/18815
2695         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2696         loops with zero exit edges.
2698 2005-03-04  Devang Patel  <dpatel@apple.com>
2700         * doc/invoke.texi: Remove reference to webpage that does not exist.
2702 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
2703             Joseph S. Myers  <joseph@codesourcery.com>
2705         PR c++/19797
2706         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
2707         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
2708         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
2709         * pa.c (get_plabel): Change argument to symbol_ref.  Call
2710         maybe_get_identifier instead of get_identifier.
2711         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
2712         (struct deferred_plabel): Replace name field with symbol field.
2713         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
2714         ASM_OUTPUT_EXTERNAL_REAL is defined.
2715         (output_global_address): Use output_addr_const for output of all
2716         symbol_refs.
2717         (output_deferred_plabels): Use symbol_ref instead of name for address
2718         output.
2719         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
2720         ASM_OUTPUT_SYMBOL_REF): New macros.
2721         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
2722         comment.
2723         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
2724         label.
2726 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
2728         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
2729         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
2731 2005-03-04  Jeff Law  <law@redhat.com>
2733         * basic-block.h (rediscover_loops_after_threading): Declare.
2734         * tree-ssa-dom.c: Include cfgloop.h.
2735         (tree_ssa_dominator_optimize): Discover loops and some basic
2736         properties.  Remove forwarder blocks recreated by loop header
2737         canonicalization.  Also mark backedges in the CFG.
2738         * tree-ssa-threadupdate.c: Include cfgloop.h
2739         (rediscover_loops_after_threading): Define.
2740         (struct local_info): New field, JUMP_THREADED.
2741         (prune_undesirable_thread_requests): New function.
2742         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
2743         then record that fact for the callers of redirct_edges.
2744         (thread_block): If BB has incoming backedges, then call
2745         prune_undesirable_thraed_requests.    Note when we are
2746         going to have to rediscover loop information.  Return a
2747         boolean indicating if any jumps were threaded.
2748         (thread_through_all_blocks): Bubble up boolean indicating
2749         if any jumps were threaded.
2750         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
2751         (tree-ssa-threadupdate.o): Similarly.
2753 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
2755         * fold-const.c (fold_ternary): Unroll the "for" loop to
2756         extract operands.
2758 2005-03-04  Andrew Haley  <aph@redhat.com>
2760         * unwind-dw2-fde-glibc.c (struct
2761         unw_eh_callback_data.check_cache): New field.
2762         (frame_hdr_cache): New.
2763         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
2764         Cache frame header info.
2766 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
2768         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2769         (print_c_condition): Declare.
2770         * read-rtl.c (ptr_loc): New structure.
2771         (ptr_locs, ptr_loc_obstack, joined_conditions)
2772         (joined_conditions_obstack): New variables.
2773         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
2774         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2775         (join_c_conditions, print_c_condition): New functions.
2776         (apply_macro_to_string): Associate the new string with the same
2777         source location as the old one.
2778         (add_condition_to_string): Use join_c_conditions.
2779         (read_string): Use set_rtx_ptr_loc to record a filename and line
2780         number for the string.
2781         (read_rtx): Initialize the new variables above.
2782         * genattrtab.c (write_test_expr, write_attr_value): Use
2783         print_c_condition.
2784         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
2785         comment above the GCC_VERSION check.
2786         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
2787         Inline the definition of MAYBE_EVAL.
2788         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
2789         * genoutput.c (process_template): Likewise.
2790         * genpreds.c (write_predicate_subfunction): Likewise.
2791         (write_predicate_expr): Use print_c_condition.
2792         * genrecog.c (write_cond): Likewise.
2793         * gensupport.c (process_rtx): Use join_c_conditions to join the
2794         conditions of a define_insn_and_split.  Record a source location
2795         for the string after the "&&".
2796         (alter_test_for_insn): Use join_c_conditions.
2798 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
2800         Revert for now:
2801         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
2802         PR tree-optimization/15784
2803         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2804         and -1 - A to ~A.
2806 2005-03-04  Ben Elliston  <bje@au.ibm.com>
2808         * gcc.c (option_map): Add --coverage.
2809         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
2810         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
2811         * config/darwin.h: Pass -lgcov for `coverage'.
2812         * doc/invoke.texi (Debugging Options): Document --coverage.
2814 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
2816         * gcse.c (bypass_block): Use find_edge wherever possible.
2818 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
2820         Fix PR debug/20253
2822         * c-opts.c (c_common_parse_file): Call start_source_file
2823         and end_source_file at the approriate times.
2825         * dwarf2out.c (dwarf2out_finish): Don't auto-end
2826         the main file, it will be done for us now.
2828 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
2830         * fold-const.c (fold_ternary): New.
2831         (fold): Call fold_ternary on ternary expressions.  Remove
2832         handling of ternary expressions.
2834 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
2836         PR tree-optimization/15784
2837         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2838         and -1 - A to ~A.
2840 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
2842         * config/rs6000/predicates.md (branch_comparison_operator):
2843         Convert from C block to conditional format.
2845 2005-03-03  Jan Hubicka  <jh@suse.cz>
2847         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
2848         and non-constant public variables.
2850 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
2852         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
2853         with LABEL_EXPR.
2855         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
2856         EDGE_I.
2858         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
2859         calls to release_ssa_name and release_phi_node.
2861         * fold-const.c (fold): Remove handling of unary expressions.
2863         * fold-const.c (fold_unary): Avoid directly using the original
2864         expression t as much as possible.
2866 2005-03-03  Roger Sayle  <roger@eyesopen.com>
2867             Andrew Pinski  <pinskia@physics.uc.edu>
2869         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
2870         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
2872 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
2874         Describe special registers SRP and MOF as allocatable registers.
2875         * config/cris/cris.c (cris_md_asm_clobbers): New function.
2876         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
2877         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
2878         TARGET_HAS_MUL_INSNS.
2879         (cris_print_operand) <case 'd'>: New case.
2880         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
2881         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
2882         define.
2883         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
2884         (REG_ALLOC_ORDER): Update for MOF.
2885         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
2886         SPECIAL_REGS.
2887         (GENERAL_REGS): No longer a define of ALL_REGS.
2888         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
2889         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
2890         Adjust accordingly.
2891         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
2892         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
2893         (SECONDARY_RELOAD_CLASS): Define.
2894         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
2895         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
2896         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
2897         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
2898         (REGISTER_MOVE_COST): Define.
2899         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
2900         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
2901         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
2902         (CRIS_MOF_REGNUM): New define_constants.
2903         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
2904         special registers.
2905         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
2906         New patterns.
2907         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
2908         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
2909         Adjust for MOF being properly described as a register.
2910         (indir_to_reg_split): Name this split.  Conditionalize on the
2911         destination register being a general register.
2912         (movei): Conditionalize on on operands 0 and 1 having the same
2913         register class.
2915 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
2917         PR target/20277
2918         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
2919         -mcpu to override any other explicitly given flags.
2921 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
2923         * recog.c (verify_changes, confirm_change_group): New functions,
2924         broken out of apply_change_group.
2925         (apply_change_group): Use them.
2926         * recog.h (verify_change, confirm_change_group): Declare.
2927         * rtl.h (redirect_jump_2): Declare.
2928         * jump.c (redirect_exp, invert_exp): Delete.
2929         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
2930         (redirect_jump_2): New function, broken out of redirect_jump.
2931         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
2932         (invert_jump): Use invert_jump_1 and redirect_jump_2.
2933         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
2935 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
2937         * varasm.c (named_section): Use xstrdup rather than doing it by
2938         hand.
2940         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2942 2005-03-02  Devang Patel  <dpatel@apple.com>
2944         Undo PR tree-optimization/18815 fix.
2946 2005-03-02  Devang Patel  <dpatel@apple.com>
2948         PR tree-optimization/18815
2949         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
2950         loops with zero exit edges.
2952 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
2954         * cfg.c (connect_src, connect_dest, disconnect_src,
2955         disconnct_dest): New.
2956         (unchecked_make_edge, remove_edge, redirect_edge_succ,
2957         redirect_edge_pred): Use the new functions.
2959         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
2960         free_dominance_info only when needed.
2962 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
2964         PR target/20276
2965         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
2966         (reg_or_sub_cint64_operand): Same.
2968 2005-03-02  Jeff Law  <law@redhat.com>
2970         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
2971         CFG_ALTERED in the main DOM iteration loop.
2973 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
2975         PR c++/19916
2976         * varasm.c (initializer_constant_valid_p): Allow conversions
2977         between OFFSET_TYPEs.  Tidy.
2979 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
2981         * config/cris/cris.md ("return"): Remove epilogue delay list
2982         sanity check.
2984 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
2986         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
2987         for Thumb.
2988         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
2990 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
2992         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
2993         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
2994         config/m68k/m68k.c, config/mips/mips.h,
2995         config/rs6000/rs6000-protos.h, doc/contrib.texi,
2996         doc/include/gcc-common.texi: Update copyright.
2998         PR middle-end/18029 and PR middle-end/18030
2999         * expr.c (optimize_bitfield_assignment_op): Add a special case
3000         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3002         * fold-const.c (fold_unary): New.
3003         (fold): Call fold_unary on unary expressions.
3005 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
3007         * cgraph.h (struct cgraph_edge): Add prev_caller and
3008         prev_callee fields.
3009         (cgraph_node_remove_callees): Export.
3010         * cgraph.c (cgraph_create_edge): Initialize prev_caller
3011         and prev_callee.
3012         (cgraph_edge_remove_callee): New function.
3013         (cgraph_edge_remove_caller): Likewise.
3014         (cgraph_remove_edge): Use.
3015         (cgraph_redirect_edge_callee): Likewise.
3016         (cgraph_node_remove_callees): New function.
3017         (cgraph_node_remove_callers): Likewise.
3018         (cgraph_remove_node): Use.
3019         * tree-optimize.c (tree_rest_of_compilation): Use
3020         cgraph_node_remove_callees instead of manual loop.
3021         * cgraphunit.c (cgraph_finalize_function): Likewise.
3022         (cgraph_expand_function): Likewise.
3023         (cgraph_remove_unreachable_nodes): Likewise.
3025 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
3027         PR c/8927
3028         * c-tree.h (undeclared_variable, build_external_ref): Add extra
3029         argument.
3030         * c-decl.c (undeclared_variable): Take location as argument.
3031         * c-typeck.c (build_external_ref): Likewise.
3032         * c-parser.c (c_parser_postfix_expression): Pass location of
3033         identifier to build_external_ref.
3035 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
3037         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
3038         CCEQ mode for branch_positive_comparison_operator test.
3039         * config/rs6000/predicates (branch_comparison_operator): Revert to
3040         define_predicate.
3041         (scc_comparison_operator): Same.
3042         (branch_positive_comparison_operator): Same.
3044 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
3046         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
3047         (cris_delay_slots_for_epilogue): Remove.
3048         (save_last): Move into cris_target_asm_function_epilogue.
3049         (cris_target_asm_function_epilogue): Remove tests for file being
3050         NULL.
3051         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
3052         (cris_delay_slots_for_epilogue): Remove prototypes.
3053         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
3054         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
3056 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
3058         * config/rs6000/predicates.md (branch_comparison_operator): Change
3059         to define_special_predicate.
3060         (scc_comparison_operator): Same.
3061         (branch_positive_comparison_operator): Same.
3063 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
3065         * Makefile.in (tree-ssa-sink.o): New.
3066         (OBJS-common): Add tree-ssa-sink.o.
3067         * common.opt: Add -ftree-sink
3068         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
3069         * timevar.def (TV_TREE_SINK): new timevar.
3070         * tree-flow.h (is_hidden_global_store): Prototype.
3071         * tree-optimize.c (init_tree_optimization_passes): Add
3072         pass_sink_code.
3073         * tree-pass.h (pass_sink_code): New.
3074         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
3075         for non-obvious global store store to is_hidden_global_store, and
3076         call that new function.
3077         * tree-ssa-sink.c: New file.
3078         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
3079         * doc/passes.texi: Document forward store motion.
3080         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
3081         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
3082         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
3083         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
3085 2005-03-01  Per Bothner  <per@bothner.com>
3087         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
3088         and we have a non-zero column-number, add it to the message.
3089         Also factor out the diagnostic_kind_text.
3091 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
3093         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3094         flow_loop_pre_header_scan, flow_loop_pre_header_find,
3095         flow_loop_scan): Removed.
3096         (flow_loop_dump): Do not dump removed fields.
3097         (flow_loop_free): Do not free removed fields.
3098         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
3099         (loop_exit_edge_p): New function.
3100         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
3101         num_pre_header_edges, entry_edges, num_entries, exit_edges,
3102         num_exits, exits_doms.
3103         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
3104         LOOP_EDGES, LOOP_ALL): Removed.
3105         (flow_loop_scan): Declaration removed.
3106         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
3107         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
3108         flow_loops_find.
3109         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
3110         (if_convert): Call flow_loops_find and flow_loops_free
3111         when calling mark_loop_exit_edges.
3112         * cfgloopanal.c (mark_loop_exit_edges): Moved from
3113         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
3114         free_dominance_info calls.
3115         * loop-init.c (flow_loops_find): Ditto.
3116         * passes.c (rest_of_handle_branch_prob): Ditto.
3117         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
3118         * loop-unroll.c (analyze_insns_in_loop): Do not use
3119         EDGE_LOOP_EXIT.
3120         * predict.c (predict_loops): Do not call flow_loop_scan.
3121         Use get_loop_exit_edges.
3122         (tree_estimate_probability): Do not pass flags to flow_loops_find.
3123         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
3124         Do not use EDGE_LOOP_EXIT.
3125         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
3126         to bb_with_exit_edge_p.
3127         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
3128         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
3129         to bb_with_exit_edge_p.
3130         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
3131         EDGE_LOOP_EXIT.
3132         * tree-loop-linear.c (linear_transform_loops): Do not call
3133         flow_loop_scan.  Use loop->single_exit.
3134         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
3135         (vect_analyze_loop_form): Do not call flow_loop_scan.
3136         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
3137         loop->single_exit.
3138         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
3139         loop->single_exit.
3140         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3141         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
3142         slpeel_tree_duplicate_loop_to_edge_cfg,
3143         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3144         Use loop_preheader_edge and loop->single_exit.  Do not call
3145         flow_loop_scan.
3147 2005-03-01  Nick Clifton  <nickc@redhat.com>
3149         * config/arm/arm.c (thumb_find_work_register): Check all of the
3150         argument registers to see if they are free, and a couple of
3151         special cases where the last argument register but can be proved
3152         to be available during the function's prologue.
3153         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
3154         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
3155         thumb_unexpanded_epilogue): Use unsigned long as the type for the
3156         register bit-mask.
3157         (thumb_compute_save_reg_mask): Likewise.  Also use
3158         thumb_find_work_register() to ensure that there is agreement about
3159         which work register is going to be used in the prologue.
3160         (thumb_output_function_prologue): Use unsigned long as the type
3161         for the register bit-mask.  Also delay pushing the link register if
3162         other high registers are going to be pushed.
3163         (thumb_compute_save_reg_mask, emit_multi_reg_push,
3164         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
3165         redundant prototypes.
3167 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
3169         PR target/19819
3170         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
3171         and after reload in REG+REG indexed addresses without REG_POINTER
3172         set in the base and not set in the index.
3174 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3176         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
3177         Don't undefine here.
3178         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
3179         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
3180         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3181         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
3182         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
3183         Delete.
3184         * config.gcc (sh*-*-linux*): Use config/linux.h.
3186 2005-02-28  Dale Johannesen  <dalej@apple.com>
3187             Stan Shebs  <shebs@apple.com>
3189         Rewrite of 64-bit Darwin structure-by-value pass/return.
3190         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
3191         intoffset, use_stack, named.
3192         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
3193         (rs6000_darwin64_record_arg_advance_flush):  New.
3194         (rs6000_darwin64_record_arg_advance_recurse): New.
3195         (rs6000_darwin64_record_arg_flush):  New.
3196         (rs6000_darwin64_record_arg_recurse):  New.
3197         (rs6000_darwin64_record_arg):  New.
3198         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
3199         (function_arg_boundary):  Handle 128-bit aligned structs.
3200         (function_arg_advance):  Rewrite darwin64 struct handling.
3201         (function_arg):  Call rs6000_darwin64_record_arg.
3202         (function_arg_partial_nregs):  Handle darwin64 structs.
3203         (rs6000_darwin64_function_value):  Remove.
3204         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
3206 2005-02-28  Roger Sayle  <roger@eyesopen.com>
3208         PR tree-optimization/20216
3209         * tree-chrec.c (tree_fold_factorial): Delete.
3210         (tree_fold_binomial): Change argument list to take a return type
3211         and change the type of K to unsigned int.  Rewrite to avoid explicit
3212         evaluation of factorials, and (recursively) calling fold to perform
3213         compile-time arithmetic.  Return NULL on (internal) overflow.
3214         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
3215         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
3216         if any intermediate calculation overflows.
3217         (chrec_apply): Update call to chrec_evaluate.
3219 2005-02-28  James E Wilson  <wilson@specifixinc.com>
3221         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
3223 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
3225         PR c/20245
3226         * c-parser.c (c_parser_compound_statement): Return error_mark_node
3227         instead of NULL_TREE on error.
3229 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
3231         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
3232         (EASY_VECTOR_15_ADD_SELF): Remove.
3233         (num_insns_constant_wide): Not static.
3234         (validate_condition_mode): Not static.
3235         (toc_relative_expr_p): Not static.
3236         (legitimate_indirect_address_p): Not static.
3237         (macho_lo_sum_memory_operand): Not static.
3238         (invalid_e500_subreg): Not static.
3239         (easy_vector_same): Not static.
3240         (easy_vector_splat_const): Not static.
3241         (RS6000_SYMBOL_REF_TLS_P): Remove.
3242         (any_operand): Delete.
3243         (any_parallel_operand): Delete.
3244         (count_register_operand): Delete.
3245         (altivec_register_operand): Delete.
3246         (xer_operand): Delete.
3247         (s8bit_cint_operand): Delete.
3248         (short_cint_operand): Delete.
3249         (u_short_cint_operand): Delete.
3250         (non_short_cint_operand): Delete.
3251         (exact_log2_cint_operand): Delete.
3252         (gpc_reg_operand): Delete.
3253         (cc_reg_operand): Delete.
3254         (cc_reg_not_cr0_operand): Delete.
3255         (reg_or_short_operand): Delete.
3256         (reg_or_neg_short_operand): Delete.
3257         (reg_or_aligned_short_operand): Delete.
3258         (reg_or_u_short_operand): Delete.
3259         (reg_or_cint_operand): Delete.
3260         (reg_or_arith_cint_operand): Delete.
3261         (reg_or_add_cint64_operand): Delete.
3262         (reg_or_sub_cint64_operand): Delete.
3263         (reg_or_logical_cint_operand): Delete.
3264         (got_operand): Delete.
3265         (got_no_const_operand): Delete.
3266         (easy_fp_constant): Delete.
3267         (easy_vector_constant): Delete.
3268         (easy_vector_constant_add_self): Delete.
3269         (zero_constant): Delete.
3270         (zero_fp_constant): Delete.
3271         (volatile_mem_operand): Delete.
3272         (offsettable_mem_operand): Delete.
3273         (mem_or_easy_const_operand): Delete.
3274         (add_operand): Delete.
3275         (non_add_cint_operand): Delete.
3276         (logical_operand): Delete.
3277         (non_logical_cint_operand): Delete.
3278         (mask_operand): Delete.
3279         (mask_operand_wrap): Delete.
3280         (mask64_operand): Delete.
3281         (mask64_2_operand): Delete.
3282         (and64_operand): Delete.
3283         (and64_2_operand): Delete.
3284         (and_operand): Delete.
3285         (reg_or_mem_operand): Delete.
3286         (lwa_operand): Delete.
3287         (symbol_ref_operand): Delete.
3288         (call_operand): Delete.
3289         (current_file_function_operand): Delete.
3290         (input_operand): Delete.
3291         (rs6000_nonimmediate_operand): Delete.
3292         (rs6000_tls_symbol_ref): Delete.
3293         (save_world_operation): Delete.
3294         (restore_world_operation): Delete.
3295         (load_multiple_operation): Delete.
3296         (store_multiple_operation): Delete.
3297         (vrsave_operation): Delete.
3298         (mfcr_operation): Delete.
3299         (mtcrf_operation): Delete.
3300         (lmw_operation): Delete.
3301         (stmw_operation): Delete.
3302         (branch_comparison_operator): Delete.
3303         (branch_positive_comparison_operator): Delete.
3304         (scc_comparison_operator): Delete.
3305         (trap_comparison_operator): Delete.
3306         (boolean_operator): Delete.
3307         (boolean_or_operator): Delete.
3308         (min_max_operator): Delete.
3309         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
3310         (EASY_VECTOR_15): Moved to here.
3311         (EASY_VECTOR_15_ADD_SELF): Move to here.
3312         (PREDICATE_CODES): Delete.
3313         * config/rs6000/rs6000-protos.h: Delete predicate functions.
3314         Declare functions no longer static.
3315         * config/rs6000/predicates.md: New.
3316         * config/rs6000/rs6000.md: Include predicates.md
3318 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
3320         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
3321         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
3322         REG_ALWAYS_RETURN.
3323         * cfgrtl.c (need_fake_edge_p): Likewise.
3324         * combine.c (distribute_notes): Likewise.
3325         * emit-rtl.c (try_split): Likewise.
3326         * recog.c (peephole2_opimize): Likewise.
3327         * reg-notes.def (ALWAYS_RETURN): Remove.
3328         * rtl.h (LCT_ALWAYS_RETURN): Remove.
3329         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
3330         * tree.h (ECF_ALWAYS_RETURN): Remove.
3332 2005-02-28  Roger Sayle  <roger@eyesopen.com>
3334         PR middle-end/19874
3335         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
3336         between different machine modes is never a "useless" conversion.
3338 2005-02-28  Geert Bosch  <bosch@gnat.com>
3340         PR ada/15977
3341         * doc/contrib.texi: List contributors for Ada front end
3343 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3345         * simplify-rtx.c (simplify_unary_operation_1,
3346         simplify_const_unary_operation): New, extracted from...
3347         (simplify_unary_operation): ... this one.
3348         (simplify_binary_operation_1,
3349         simplify_const_binary_operation): New, extracted from...
3350         (simplify_binary_operation): ... this one.
3351         * rtl.h (simplify_const_unary_operation,
3352         simplify_const_binary_operation): Add prototypes.
3354 2005-02-28  Julian Brown  <julian@codesourcery.com>
3356         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3357         building libjava and caused PR regression/20228.
3359 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
3361         PR bootstrap/17383
3362         * Makefile.in (host_subdir): New.
3363         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
3364         * configure: Regenerate.
3366 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
3368         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3369         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3370         installation directory first.
3372 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
3374         PR target/19065.
3375         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3376         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3377         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3378         * config/cris/cris.md: Tweak comments referring to Q.
3379         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3380         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3381         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3382         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3383         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3384         Insert spaces in constraints to align alternatives vertically for
3385         readability.
3386         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
3387         operand 1: "M".
3389 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3391         PR rtl-optimization/17728
3392         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3393         operand 0 from general_operand to move_dest_operand.
3395 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3397         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3398         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3399         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3400         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3402 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
3404         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3405         * configure: Regenerate.
3406         * libada-mk.in: Remove CC; rename
3407         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3409 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
3411         PR tree-opt/20188
3412         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3413         for the lhs, also walk over the tree.  Likewise for rhs.
3415 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
3417         * tree-ssa-dom.c (simple_iv_increment_p): New function.
3418         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3419         Do not propagate value of iv before increment over the increment.
3421 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
3423         * c-parser.c: New file.
3424         * c-parse.in: Remove.
3425         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3426         Remove.
3427         (c-parser.o): Add dependencies.
3428         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
3429         maintainer-clean, TAGS): Update.
3430         * c-config-lang.in (gtfiles): Update.
3431         * gengtype-lex.l: Don't handle "@@".
3432         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
3433         objc_build_synchronized, objc_begin_try_stmt,
3434         objc_begin_catch_clause, objc_finish_catch_clause,
3435         objc_build_finally_clause, objc_finish_try_stmt): New.
3436         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
3437         type_seen_p.
3438         (c_parse_init): Update comment.
3439         * c-decl.c (c_init_decl_processing): Update comment.
3440         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
3441         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
3442         new c_declspecs members.
3444 2005-02-25  Julian Brown  <julian@codesourcery.com>
3446         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3447         from being used for symbols with vague linkage when
3448         HAVE_GAS_COMDAT_GROUP is true.
3450 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
3452         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
3454 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
3456         PR target/19930
3457         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
3458         (LIBGCC2_HAS_DF_MODE): New.
3459         (LIBGCC2_HAS_XF_MODE): New.
3460         (LIBGCC2_HAS_TF_MODE): New.
3461         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3462         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3463         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
3464         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
3465         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
3466         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
3467         and add _fixtfdi, _fixunstfdi, _floatditf
3468         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
3469         L_fixunstfdi, L_floatditf.
3470         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
3471         (LIBGCC2_HAS_TF_MODE): Define.
3473 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
3475         PR tree-optimization/20204
3476         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
3477         REWRITE_THIS_STMT markers on PHI nodes.
3478         (rewrite_initialize_block): Likewise.
3480 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
3482         * version.c (version_string): Update to 4.1.
3484 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
3486         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
3487         Clarify that the alternative way doesn't work in GNU C++.
3489 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
3491         PR tree-optimization/19937
3492         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
3493         to the type of the induction variable.
3495 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3497         PR rtl-optimization/20117
3498         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
3499         the block including noncopyable insn.
3501 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
3503         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
3504         calls to find_reg_note.
3506 2005-02-24  Richard Henderson  <rth@redhat.com>
3508         PR tree-opt/20127
3509         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
3510         the type.
3512 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
3514         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
3515         vector types if to use base reg for misaligned non-word ld/std.
3517 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
3519         PR target/14619
3520         * config/cris/cris.c (cris_target_asm_function_prologue): Create
3521         dwarf2 label manually and put it after, not before the prologue.
3523 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
3525         PR target/19019
3526         * reload.c (operands_match_p): Only increment register number for
3527         SCALAR_INT_MODE_P modes in multiple hard registers.
3529         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
3530         Fix formatting.
3532 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3534         * ChangeLog.5: Fix log message typo(s).
3535         * ChangeLog.7: Likewise.
3536         * ChangeLog.tree-ssa: Likewise.
3537         * cfgexpand.c: Fix comment typo(s).
3538         * conflict.c: Likewise.
3539         * defaults.h: Likewise.
3540         * dwarf2out.c: Likewise.
3541         * gcse.c: Likewise.
3542         * ggc-page.c: Likewise.
3543         * tree-eh.c: Likewise.
3544         * tree-ssa-dom.c: Likewise.
3546 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
3548         PR target/19019
3549         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
3550         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
3551         if SHARED is defined.
3553         PR target/20196
3554         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
3555         allow splitting only if operands 0 and 3 don't overlap.
3557 2005-02-24  Richard Henderson  <rth@redhat.com>
3559         PR middle-end/19953
3560         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
3561         (fold_builtin_1): Call them.
3562         * fold-const.c (fold_complex_mult_parts): Split out from ...
3563         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
3564         (fold_complex_div_parts, fold_complex_div): New.
3565         (fold): Use them.
3566         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
3568 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3570         * tree-ssa-ccp.c (visit_assignment): Verify that result of
3571         VIEW_CONVERT_EXPR is_gimple_min_invariant.
3573         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
3574         (print_node): Likewise.
3575         Print TYPE_SIZES_GIMPLIFIED.
3577 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
3579         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
3580         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
3581         operands as commutative in constraints.
3583 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
3585         * tree-into-ssa.c: Re-organize internal functions.
3587 2005-02-24  Richard Henderson  <rth@redhat.com>
3589         PR middle-end/18902
3590         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
3591         for c99.
3592         * common.opt (fcx-limited-range): New.
3593         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
3594         * toplev.c (flag_complex_method): Initialize to 1.
3595         (process_options): Set flag_complex_method to 0 if
3596         flag_cx_limited_range.
3597         * doc/invoke.texi (-fcx-limited-range): New.
3599 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
3601         * cse.c (delete_trivially_dead_insns): Speed up by using
3602         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
3603         prev_real_insn.
3605 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
3607         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
3608         functions when -mid-shared-library is being used.
3610 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
3612         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
3613         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
3614         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
3615         * system.h: Poison LINK_LIBGCC_SPECIAL.
3617 2005-02-23  James E Wilson  <wilson@specifixinc.com>
3619         * gengtype.c (note_insn_name): Make 1 element larger.
3621 2005-02-23  Roger Sayle  <roger@eyesopen.com>
3623         PR target/20018
3624         PR rtl-optimization/20097
3625         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
3626         BImode SUBREGs of SImode registers which confuse the ia64 backend.
3628 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
3630         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
3631         * t-aix52 (SHLIB_INSTALL): Same.
3633 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
3635         * genpreds.c: Update copyright.
3637 2005-02-23  Michael Beach  <michaelb@ieee.org>
3639         PR target/20159
3640         * config/sparc/t-elf (startup files): Assemble with CPP.
3642 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
3644         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
3645         (write_predicate_expr): Likewise.
3647 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
3649         PR tree-optimization/20100
3650         PR tree-optimization/20115
3651         * tree-optimize.c (init_tree_optimization_passes): Remove
3652         pass_maybe_create_global_var.
3653         * tree-pass.h (pass_maybe_create_global_var): Remove.
3654         * tree-ssa-alias.c (aliases_computed_p): Declare.
3655         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
3656         (count_calls_and_maybe_create_global_var): Remove.
3657         (pass_maybe_create_global_var): Remove.
3658         (init_alias_info): Do not declare aliases_computed_p.
3659         (maybe_create_global_var): If the function contains no
3660         call-clobbered variables and a mix of pure/const and regular
3661         function calls, create .GLOBAL_VAR.
3662         Mark all call-clobbered variables for renaming.
3663         (merge_pointed_to_info): Update comment.
3664         (add_pointed_to_var): Likewise.
3665         (is_escape_site): Likewise.
3666         Accept struct alias_info * instead of size_t *.
3667         Update all users.
3668         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
3669         as necessary.
3670         * tree-ssa-operands.c (get_call_expr_operands): If
3671         ALIASES_COMPUTED_P is false, do not add call-clobbering
3672         operands.
3673         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
3674         (delete_tree_ssa): Likewise.
3676 2005-02-22  James E Wilson  <wilson@specifixinc.com>
3678         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
3679         (do_compile): Do call it here.
3681 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
3683         PR rtl-optimization/20017.
3684         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
3685         rest_of_handle_cse2, rest_of_handle_gcse): Call
3686         delete_dead_jumptables immediately before calling cleanup_cfg.
3688 2005-02-22  Devang Patel  <dpatel@apple.com>
3690         PR 19952
3691         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
3692         all labels
3694 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
3696         * config/rs6000/aix.h (WINT_TYPE): Define.
3698 2005-02-22  Stan Shebs  <shebs@apple.com>
3700         * config/rs6000/rs6000.c (rs6000_override_options): Default to
3701         natural alignment for 64-bit Darwin.
3702         (rs6000_parse_alignment_option): Warn about uses of -malign-power
3703         on 64-bit Darwin.
3704         * doc/invoke.texi: Document this.
3706 2005-02-22  DJ Delorie  <dj@redhat.com>
3708         * c-common.c (c_common_type_for_mode): Pass the mode's precision
3709         to make_[un]signed_type, not the mode itself.
3711 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
3713         * cfg.c (cached_make_edge): Call make_edge if edge cache is
3714         not available.  Use tail calls wherever possible.
3715         (make_edge): Call unchecked_make_edge to create an edge.
3717         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
3718         (coalesce_ssa_name): Don't check for
3719         SSANORM_USE_COALESCE_LIST.
3720         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
3722 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
3724         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
3725         (rewrite_into_ssa): ... here.
3727 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
3729         PR tree-optimization/19786
3730         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
3731         tag to another's may-alias bitmap when adding to the other's list.
3733 2005-02-21  DJ Delorie  <dj@redhat.com>
3735         * tree-ssa-loop-ivopts.c (computation_cost): Start register
3736         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
3737         registers in unsupported ways.
3738         * expmed.c (init_expmed): Likewise.
3740 2005-02-21  Stan Cox  <scox@redhat.com>
3742         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
3744 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
3746         * tree-cfg.c (fold_cond_expr_cond): New.
3747         (make_edges): Call fold_cond_expr_cond.
3748         (find_taken_edge): Accept nothing but INTEGER_CST.
3749         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
3750         and 1.
3751         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
3753         * flow.c (delete_dead_jumptables): Speed up by scanning insns
3754         that do not belong to any basic block.
3756 2005-02-21  Jeff Law  <law@redhat.com>
3758         * cfganal.c (find_unreachable_blocks): Manually CSE load of
3759         e->dest.
3761 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
3763         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
3764         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
3765         Adjust their definitions.
3766         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
3767         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
3769         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
3770         genautomata.c, langhooks.c, langhooks.h, system.h,
3771         config/arm/lib1funcs.asm: Update copyright.
3773 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
3775         * dbxout.c (dbxout_function_end): Emit Lscope label always.
3777 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
3779         PR bootstrap/13770
3780         * doc/install.texi: Document --with-gc.
3782 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
3784         * simplify-rtx.c (simplify_unary_operation): Add a missing
3785         "break" statement.
3787 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3789         PR tree-optimization/18663
3790         * tree-ssa-dom.c (extract_range_from_cond): Return 0
3791         if the type has variable bounds.
3793 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
3795         * gcse.c: Remove an obsolete comment.
3797         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
3799 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
3801         * doc/extend.texi (Function Attributes) <Attribute const>: The
3802         attribute "pure" is below this text, not above.
3804 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3806         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
3807         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
3808         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
3810 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
3812         PR 18785
3813         * langhooks.h (struct lang_hooks): Add to_target_charset.
3814         * langhooks.c (lhd_to_target_charset): New function.
3815         * langhooks-def.h: Declare lhd_to_target_charset.
3816         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
3817         (LANG_HOOKS_INITIALIZER): Update.
3818         * c-common.c (c_common_to_target_charset): New function.
3819         * c-common.h: Declare it.
3820         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
3821         c_common_to_target_charset.
3823         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
3824         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
3825         Delete definitions.
3826         * system.h: Poison them.
3827         * doc/tm.texi: Don't discuss them.
3828         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
3829         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
3830         (pp_c_char): Do not attempt to generate letter escapes for
3831         newline, tab, etc.
3832         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
3833         * config/mips/mips.c (mips_output_ascii): Likewise.
3835 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
3837         PR tree-optimization/19951
3838         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
3839         is abnormal.
3841 2005-02-19  Steven Bosscher  <stevenb@suse.de>
3843         PR middle-end/19698
3844         * function.h (struct function): New field `max_loop_depth'.
3845         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
3846         (flow_loops_find): Reset the max loop depth count before finding loops.
3847         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
3848         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
3849         (calculate_global_regs_live): Make sure the loop will terminate
3850         when the initial sets are not empty.
3852 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
3854         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
3855         object inside.
3856         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
3858 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
3860         PR other/19525
3861         * doc/invoke.texi: Remove documentation of %M spec.
3862         * gcc.c: Likewise.
3863         (init_spec): Remove %M suffix from -lgcc_s.
3864         (do_spec_1): Remove 'M' case.
3865         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
3866         to put shared libraries in the multilib directory.  Remove the
3867         shlib_so_soname substitution variable.  Don't add a multilib encoding
3868         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
3869         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
3870         SHLIB_INSTALL as well as SHLIB_LINK.
3871         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
3872         (SHLIB_NAME): Delete.
3873         (SHLIB_DIR): New macro.
3874         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
3875         (SHLIB_INSTALL): Adjust accordingly.
3876         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
3877         * config/t-slibgcc-sld: Likewise.
3878         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
3879         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
3880         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
3881         in $(SHLIB_DIR).
3882         (SHLIBUNWIND_INSTALL): Adjust accordingly.
3883         * config/i386/t-nwld (SHLIB_SONAME): Delete.
3884         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
3885         Use @shlib_base_name@ instead of @shlib_so_name@.
3886         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
3887         and @shlib_base_name@.so in @multilib_dir@.
3888         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
3889         to the install path.
3890         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
3891         (SHLIB_LINK): Remove previous workaround.
3892         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
3893         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
3894         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
3895         the install path.
3896         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
3897         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
3898         (SHLIB_INSTALL): Adjust accordingly.
3899         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
3900         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
3901         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
3902         config/t-slibgcc-elf-ver.
3904 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
3905             Jakub Jelinek  <jakub@redhat.com>
3907         PR tree-optimization/19828
3908         * tree-ssa-loop-im.c: Add a TODO comment.
3909         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
3910         without side-effects.
3912 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
3914         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
3915         call fold_convert.
3917 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
3919         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
3920         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
3921         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
3922         functions.
3923         (ia64_reorg): Delete fixup_errata call.
3924         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
3925         (TARGET_SWITCHES): Delete -mb-step entry.
3927 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
3929         PR c/20043
3930         * c-typeck.c (composite_type): Handle quals in transparent unions.
3931         (type_lists_compatible_p): Likewise.
3933 2005-02-18  Stan Shebs  <shebs@apple.com>
3935         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
3936         expressions in the .literal8 section.
3938 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
3940         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
3942 2005-02-18  Roger Sayle  <roger@eyesopen.com>
3944         * fold-const.c (constant_boolean_node): Always create values of the
3945         specified type, don't bother calling truthvalue_conversion.
3947 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
3949         * except.c (output_function_exception_table): Call
3950         assemble_external_libcall (eh_personality_libfunc).
3952 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
3954         PR target/19886
3955         * config/ia64/ia64.h (struct machine_function): Add state_num.
3956         * config/ia64/ia64.c (process_epilogue,
3957         process_for_unwind_directive): Use new unwind state numbers each
3958         time rather than state 1.
3960 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
3962         PR target/20054
3963         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
3964         before the "*llgt_didi" pattern.
3966 2005-02-18  Jason Merrill  <jason@redhat.com>
3968         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
3970 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
3972         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
3973         (div0): Use it in place of ARM_FUNC_ALIAS.
3974         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
3976 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
3978         PR middle-end/20030
3979         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
3980         access, the lower bound of the array type if it exists.
3982 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
3984         PR c++/20008
3985         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
3986         cases that are out-of-range for the index type.
3988 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
3990         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
3991         (estimate_case_costs): Don't call convert.
3992         * expmed.c (expand_shift): Likewise.
3993         (make_tree): Call fold_convert instead of convert.
3995 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
3997         PR c++/19813
3998         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
3999         that ref to be marked MEM_READONLY_P doesn't have base that needs
4000         constructing.
4002 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
4004         * genautomata.c (output_get_cpu_unit_code_func,
4005         output_cpu_unit_reservation_p): Don't generate old-style function
4006         definitions.
4008 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
4010         PR c++/20023
4011         PR tree-optimization/20009
4012         * convert.c (convert_to_integer): Revert 2005-02-16 change.
4014         PR tree-optimization/18947
4015         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
4016         inline, remove all nodes that are inlined into the extern inline
4017         being redefined.
4019 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
4021         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
4022         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
4023         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
4024         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
4025         Update copyright.
4027 2005-02-17  Roger Sayle  <roger@eyesopen.com>
4029         PR tree-optimization/19917
4030         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
4031         to be potentially trapping.
4033 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
4035         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
4037 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4039         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
4040         tem becomes a local variable which is set to the value of the
4041         back end defined INITIAL_FRAME_ADDRESS macro.
4042         (expand_builtin_frame_address): Omit the base parameter to
4043         expand_builtin_return_addr.
4044         (expand_builtin_profile_func): Likewise.
4045         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
4046         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
4047         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
4049 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
4051         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
4052         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
4053         * config/frv/frv.c (frv_function_epilogue): Likewise.
4055 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
4057         * lambda-code (perfect_nestify): Remove mark/unmark
4058         for rewriting hack.
4059         * tree-loop-linear.c (linear_transform_loops): Add
4060         rewrite_into_ssa call so that ssa is correct for
4061         rewriting into loop closed.
4063 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
4065         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
4066         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
4067         BITMAP_FREE.
4068         * bt-load.c (btr_def_live_range, combine_btr_defs,
4069         migrate_btr_def, migrate_btr_defs): Likewise.
4070         * cfgcleanup.c (thread_jump): Likewise.
4071         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
4072         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
4073         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
4074         df_rd_local_compute, df_reg_info_compute): Likewise.
4075         * dominance.c (init_dom_info, free_dom_info): Likewise.
4076         * flow.c (init_propagate_block_info,
4077         free_propagate_block_info): Likewise.
4078         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
4079         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
4080         modify_reg_pav): Likewise.
4081         * loop-invariant.c (find_defs, find_invariant_insn,
4082         find_invariants, free_inv_motion_data): Likewise.
4083         * predict.c (tree_predict_by_opcode,
4084         estimate_bb_frequencies): Likewise.
4085         * stmt.c (expand_case): Likewise.
4086         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
4087         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
4088         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
4089         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
4090         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
4091         rewrite_ssa_into_ssa): Likewise.
4092         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4093         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
4094         analyze_edges_for_bb, perform_edge_inserts): Likewise.
4095         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
4096         * tree-sra.c (tree_sra): Likewise.
4097         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
4098         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
4099         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
4100         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4101         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
4102         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
4103         Likewise.
4104         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
4105         calculate_live_on_entry, calculate_live_on_exit,
4106         build_tree_conflict_graph): Likewise.
4107         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
4108         record_important_candidates, set_use_iv_cost, find_depends,
4109         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
4110         tree_ssa_iv_optimize_finalize): Likewise.
4111         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
4112         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
4113         tree_duplicate_loop_to_header_edge): Likewise.
4114         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
4115         * tree-ssa.c (verify_flow_insensitive_alias_info,
4116         verify_name_tags, verify_ssa, init_tree_ssa,
4117         delete_tree_ssa): Likewise.
4118         * tree-ssanames.c (marked_ssa_names, init_ssanames,
4119         fini_ssanames): Likewise.
4120         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
4122 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
4124         * config/rs6000/t-rtems: Completely reworked.
4126 2005-02-17  Ira Rosen  <irar@il.ibm.com>
4128         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
4130 2005-02-17  Ira Rosen  <irar@il.ibm.com>
4132         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
4133         POINTER_TYPE_P when checking that type is a pointer.
4134         (vect_get_memtag): Remove.
4135         (vect_address_analysis): Use POINTER_TYPE_P. Call
4136         vect_object_analysis with dummy parameter for memtag.
4137         (vect_object_analysis): Extract memtag (functionality that
4138         used to be in vect_get_memtag and moved here). Fix printings.
4139         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
4140         with correct parameters. Remove call to vect_get_memtag.
4142 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
4144         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
4145         (tree-vectorizer.o): Added missing dependencies.
4147         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
4148         decleration.
4149         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
4150         declaration in tree-vectorizer.c, now has an extern declaration in
4151         tree-vectorizer.h).
4152         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
4153         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
4154         get_vectype_for_scalar_type, vect_is_simple_use,
4155         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
4156         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
4157         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
4158         vectorizable_store, vectorizable_operation, vectorizable_assignment,
4159         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
4160         find_loop_location): Likewise.
4162         * tree-vectorizer.c (langhooks.h): #include removed.
4163         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
4164         moved to tree-vectorized.h.
4165         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
4166         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
4167         get_vectype_for_scalar_type, vect_is_simple_use,
4168         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
4169         vect_supportable_dr_alignment, new_loop_vec_info,
4170         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
4171         vect_set_verbosity_level, find_loop_location): Likewise.
4173         (vect_analyze_loop): Function externalized. Declaration moved to
4174         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
4175         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
4176         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
4177         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
4178         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
4179         vect_enhance_data_refs_alignment, vect_analyze_operations,
4180         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
4181         vect_stmt_relevant_p, vect_get_loop_niters,
4182         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
4183         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
4184         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
4185         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
4186         vect_get_memtag): Likewise.
4188         (vectorizable_load): Function externalized. Declaration moved to
4189         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
4190         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
4191         vect_transform_loop): Likewise.
4192         (vect_transform_stmt): Moved to tree-vect-transform.c.
4193         (vect_align_data_ref, vect_create_destination_var,
4194         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
4195         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
4196         vect_get_vec_def_for_operand, vect_init_vector,
4197         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
4198         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
4199         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
4200         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
4201         vect_do_peeling_for_loop_bound): Likewise.
4203         * tree-vect-analyze.c: New file.
4204         * tree-vect-transform.c: New file.
4206 2005-02-17  Jason Merrill  <jason@redhat.com>
4208         PR mudflap/19319, c++/19317
4209         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
4210         slot explicit.
4212 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
4214         * doc/install.texi (Specific): Update link for Darwin-specific
4215         tool binary site.
4217 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
4219         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
4220         constant_boolean_node.
4222 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
4224         PR target/19019
4225         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
4226         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
4228 2005-02-16  Richard Henderson  <rth@redhat.com>
4230         PR 19920
4231         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
4232         with W_TYPE_SIZE.
4233         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
4234         replace uses with Wtype_MAXp1_F.
4235         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
4236         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
4237         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
4238         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
4239         and HAVE_TFMODE as appropriate.
4240         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
4241         (__floatdisf): Likewise.
4242         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
4243         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
4244         (Wtype_MAXp1_F): New.
4245         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
4246         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
4248 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
4250         * PR target/19162
4251         * arm.c (arm_apply_result_size): New function.
4252         * arm.h (APPLY_RESULT_SIZE): Define.
4253         * arm-protos.h (arm_apply_result_size): Add prototype.
4254         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
4255         (movxf): New expand.
4256         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
4257         (call_value_symbol): Remove predicate for operand 0.
4258         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
4259         (untyped_call): Rework to correclty return values for any type.
4260         (untyped_return): New expand.
4261         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
4263 2005-02-16  Stan Shebs  <shebs@apple.com>
4265         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
4266         * config/rs6000/t-darwin8: New, for 64-bit multilib.
4268 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
4270         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
4271         configure settings on Solaris 7 and later.
4273 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
4275         PR tree-optimization/19865
4276         * tree-optimize.c (init_tree_optimization_passes): Run
4277         pass_may_alias after pass_sra.
4279 2005-02-16  Richard Henderson  <rth@redhat.com>
4280             Stuart Hastings  <stuart@apple.com>
4282         PR debug/19521
4283         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
4284         Do nothing if debug info suppressed for this function.
4285         (dbxout_begin_function): Early exit if debug info suppressed for
4286         this function.
4288 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
4290         PR target/20007
4291         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
4292         find_basic_blocks.
4293         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4295         PR tree-optimization/19967
4296         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
4297         expand_builtin_strchr, expand_builtin_strrchr): Take a new
4298         argument TYPE.  Adjust calls to fold_builtin_XXX.
4299         (expand_builtin, fold_builtin_1): Adjust calls to
4300         expand_builtin_XXX.
4301         (fold_builtin_strchr, fold_builtin_strpbrk,
4302         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
4303         result to a requested type TYPE.
4305 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
4307         PR middle-end/19857
4308         * fold-const.c (fold): Don't optimize (T)(x & cst) to
4309         (T)x & (T)cst if (T)cst overflows.
4310         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
4311         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
4313 2005-02-15  Jeff Law  <law@redhat.com>
4315         * gcse.c (blocks_with_calls): New bitmap.
4316         (alloc_gcse_mem): Allocate it.
4317         (free_gcse_mem): Free it.
4318         (clear_modifY_mem_tables): Clear it.
4319         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
4320         when we encounter CALL_INSNs.
4321         (compute_transp, case MEM): Handle blocks with calls separate
4322         from blocks without calls.  Use bitmap iterators rather than
4323         FOR_EACH_BB.
4325 2005-02-15  Peter O'Gorman  <peter@pogma.com>
4327         PR bootstrap/18810
4328         * mklibgcc.in (vis_hide): Use a temporary object file, not
4329         -o /dev/null.
4331 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
4333         PR target/19924
4334         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
4335         access optimization.
4337 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
4338             Alan Modra  <amodra@bigpond.net.au>
4340         PR target/19019
4341         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
4342         (_xlqsub): Rename to __gcc_qsub.
4343         (_xlqmul): Rename to __gcc_qmul.
4344         (_xlqdiv): Rename to __gcc_qdiv.
4345         Provide versioned symbol aliases with old names.
4346         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
4347         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
4348         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
4349         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
4350         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
4352 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
4354         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
4355         Fold ~(A - 1) and ~(A + -1) to -A.
4357 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
4359         PR pch/14940
4360         PR target/19300
4361         * config/host-linux.c (linux_gt_pch_use_address): Copy from
4362         config/pa/pa-host.c:pa_gt_pch_use_address.
4364 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
4366         * tree-vn.c (get_value_handle): Make sure that given an
4367         is_gimple_min_invariant expression, we always return it.
4369 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
4371         * passes.c (rest_of_handle_gcse): Fix a comment.
4373 2005-02-15  Jeff Law  <law@redhat.com>
4375         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
4376         bitmap.
4377         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
4378         (canon_list_insert, record_last_mem_set_info): Similarly.
4379         (clear_modify_mem_tables): Similarly.
4381 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
4383         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
4384         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
4385         config/mips/mips.md, config/rs6000/aix.h,
4386         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
4388 2005-02-15  Richard Henderson  <rth@redhat.com>
4390         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
4391         call to be best_edge.
4393 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
4395         * basic-block.h: Adjust the prototype for find_basic_blocks.
4396         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
4397         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
4398         find_basic_blocks.
4400         * flow.c (recompute_reg_usage): Remove all arguments.
4401         * passes.c (rest_of_compilation): Adjust the call to
4402         recompute_reg_usage.
4403         * rtl.h: Adjust the prototype for recompute_reg_usage.
4405 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
4407         * tree-dump.c (dump_files): Update to reflect new member
4408         of dump_file_info.
4409         (dump_register): Add new argument.
4410         Set glob name.
4411         (dump_switch_p_1): Check against glob name if doglob was passed.
4412         (dump_switch_p): Check against regular first, then glob if
4413         we didn't have any hits on the dump name.
4414         * tree-optimize.c (register_one_dump_file):
4415         Pass in glob name as well.
4416         * tree-pass.h (struct dump_file_info): Add glob
4417         member.
4419 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
4421         PR preprocessor/16323
4422         * doc/invoke.texi: Document that -Wendif-labels is on by default.
4424 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
4426         PR target/19019
4427         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
4428         (trunctfdf2_internal1): New.
4429         (trunctfdf2_internal2): Renamed from trunctfdf2.
4431 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
4433         PR tree-optimization/19853
4434         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
4436 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
4438         * passes.c (rest_of_handle_loop_optimize): Remove calls to
4439         delete_dead_jumptables and cleanup_cfg.
4441 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
4443         * reload.c (find_reloads): Swap address_reloaded flags when
4444         swapping commutative operands.
4446 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
4448         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
4449         Use standard_iv_increment_position for computing the bsi position
4450         for create_iv.
4451         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
4452         the bsi position.
4454 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
4456         PR target/17428
4457         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
4458         life range of hard registers.
4459         * value-prof.c (insn_prefetch_values_to_profile): Only
4460         scan normal insns.
4462         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
4463         profile in libcalls.
4465 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
4467         * bitmap.h (bitmap_and_compl_into): Return bool.
4468         * bitmap.c (bitmap_and_compl_into): Return changed flag.
4470 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
4472         PR tree-optimization/19944
4473         * fold-const.c (fold): Re-add ABS_EXPR folding.
4475 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
4477         PR target/19019
4478         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
4479         {TARGET,MASK}_XL_COMPAT.
4480         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
4481         MASK_XL_COMPAT.
4482         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
4483         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
4484         TARGET_XL_COMPAT.
4485         (rs6000_arg_partial_bytes): Same.
4486         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
4487         and XL compatibility enabled.
4488         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
4489         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
4490         test to final condition.
4491         (cmptf_internal2): New.
4492         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
4493         xl-compat.  Add TFmode information to description.
4495 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
4497         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
4499 2005-02-13  Jason Merrill  <jason@redhat.com>
4501         PR c++/16405
4502         * fold-const.c (fold_indirect_ref_1): Split out from...
4503         (build_fold_indirect_ref): Here.
4504         (fold_indirect_ref): New fn.
4505         * tree.h: Declare it.
4506         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
4507         (gimplify_modify_expr_rhs): Likewise.
4508         (gimplify_expr): Likewise.
4510 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
4512         PR tree-optimization/14303
4513         PR tree-optimization/15784
4514         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
4515         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
4516         ABS_EXPR<x> != 0 to x != 0.
4518 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
4520         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
4521         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
4522         spelling conventions.
4524         * passes.c (rest_of_handle_gcse): Don't run cse_main and
4525         delete_trivially_dead_insns too many times.
4527         * passes.c (rest_of_handle_gcse): Remove dead assignments to
4528         tem and tem2.
4530 2005-02-12  Ira Rosen  <irar@il.ibm.com>
4532         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
4533         (vect_is_simple_iv_evolution): Remove redundant parameter
4534         and step check.
4535         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
4536         without last parameter.
4537         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
4538         Return pointer step. Call vect_is_simple_iv_evolution without
4539         last parameter. Check only that the step is multiple of size
4540         type. Remove stmt_vinfo updates.
4541         (vect_get_memtag_and_dr): Remove.
4542         (vect_get_memtag): New function.
4543         (vect_address_analysis): New function.
4544         (vect_object_analysis): New function.
4545         (vect_analyze_data_refs): Call vect_object_analysis and
4546         vect_get_memtag. Update stmt_vinfo fields.
4548 2005-02-12  Ira Rosen  <irar@il.ibm.com>
4550         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
4551         exist and are objects. Remove checks for pointer.
4552         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
4553         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
4554         (vect_create_data_ref_ptr): Likewise.
4555         (vect_base_addr_differ_p): New function.
4556         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
4557         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
4558         Don't set the DR_BASE_NAME field of data-ref.
4559         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
4561 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
4563         * optabs.h (enum optab_index): Add new OTI_ldexp.
4564         (ldexp_optab): Define corresponding macro.
4565         * optabs.c (init_optabs): Initialize ldexp_optab.
4566         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
4567         patterns.
4568         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
4569         using ldexp_optab.
4570         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
4571         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
4573         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
4574         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
4575         intrinsics.
4577 2005-02-12  Ira Rosen  <irar@il.ibm.com>
4579         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
4580         to base_address.
4581         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
4582         stmt_vec_info.
4583         (vect_get_base_and_offset): Always return an address.
4584         (vect_create_addr_base_for_vector_ref): Remove treatment for
4585         different data reference types.
4586         (vect_compute_data_ref_alignment): Rename base to base_address in
4587         stmt_vec_info. Get the object in order to force its alignment.
4588         (vect_get_memtag_and_dr): Rename base to base_address in
4589         stmt_vec_info. Extract the object for memtag analysis.
4591 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
4593         PR regression/19898.
4594         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
4595         changes cc_status, use apply modified_in_p to part of cc_status
4596         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
4597         body.
4599 2005-02-11  Richard Henderson  <rth@redhat.com>
4601         * tree-complex.c (expand_complex_libcall): New.
4602         (expand_complex_multiplication): Use it for c99 compliance.
4603         (expand_complex_division): Likewise.
4604         * fold-const.c (fold_complex_add, fold_complex_mult): New.
4605         (fold): Call them.
4606         * builtins.c (built_in_names): Remove const.
4607         * tree.c (build_common_builtin_nodes): Build complex arithmetic
4608         builtins.
4609         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
4610         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
4611         (built_in_names): Remove const.
4612         * c-common.c (c_common_type_for_mode): Handle complex modes.
4613         * flags.h, toplev.c (flag_complex_method): Rename from
4614         flag_complex_divide_method.
4615         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
4616         __mulsc3, __muldc3, __mulxc3, __multc3): New.
4617         * libgcc2.h: Declare them.
4618         * libgcc-std.ver: Export them.
4619         * mklibgcc.in (lib2funcs): Build them.
4621 2005-02-11  Steven Bosscher  <stevenb@suse.de>
4623         PR tree-optimization/19876
4624         Partially revert my change from 2005-01-14
4625         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
4626         (compute_antic): ...and remove the loop here.
4628 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
4630         PR middle-end/19858
4631         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
4632         is number of inner's bits, avoid creating a BIT_FIELD_REF.
4634         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
4635         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
4637 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
4639         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
4640         offsets for the big-endian 32-bit case.
4642 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
4644         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
4646 2005-02-11  Dale Johannesen  <dalej@apple.com>
4648         * cselib.c (cselib_process_insn):  Clear out regs where
4649         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
4650         * reload.c (find_equiv_reg): Ditto.
4652 2005-02-11  Ian Lance Taylor  <ian@airs.com>
4654         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
4655         with no elements.
4657         * tree.c (build_function_type_list): Work correctly if there are
4658         no arguments.
4660 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
4662         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
4663         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
4664         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
4665         TARGET_ZARCH instead of TARGET_64BIT.
4667 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
4669         * config/rs6000/t-rtems:
4670         (MULTILIB_OPTIONS): Remove mcpu=602.
4671         (MUTLILIB_DIRNAMES): Remove m602.
4672         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
4673         Let mcpu=602 match mcpu=603.
4674         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
4676 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4678         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
4679         signal trampolines.
4681 2005-02-10  David Daney  <ddaney@avtrex.com>
4683         * config/alpha/linux-unwind.h: Add exception clause to copyright.
4684         * config/i386/linux-unwind.h: Likewise.
4685         * config/ia64/linux-unwind.h: Likewise.
4686         * config/mips/linux-unwind.h: Likewise.
4687         * config/pa/linux-unwind.h: Likewise.
4688         * config/rs6000/linux-unwind.h: Likewise.
4689         * config/s390/linux-unwind.h: Likewise.
4690         * config/sh/linux-unwind.h: Likewise.
4691         * config/sparc/linux-unwind.h: Likewise.
4693 2005-02-10  Steven Bosscher  <stevenb@suse.de>
4695         PR tree-optimization/17549
4696         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
4697         TER to replace a DEF with its expression if the DEF and the
4698         rhs of the expression we replace into have the same root
4699         variable.
4701 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
4703         * config/mips/mips.md: Fix the placement of the match_scratch in the
4704         lea64 peephole2.
4706 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
4708         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
4709         Fix comment typos.
4711 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
4713         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
4714         (strip_offset): Handle addresses.
4715         (add_address_candidates): Use strip_offset.
4716         (difference_cost): Reflect strip_offset change.
4717         (force_var_cost, difference_cost): Strip nops.
4719 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
4721         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
4723         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
4724         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
4725         config/cris/cris-protos.h, config/cris/cris.c: Update
4726         copyright.
4728 2005-02-10  Jeff Law  <law@redhat.com>
4730         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
4731         (lookup_avail_expr): Similarly.
4733 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
4735         * builtins.c (fold_builtin_powi): New function.
4736         (fold_builtin_1): Call it.
4738 2005-02-10  Steven Bosscher  <stevenb@suse.de>
4740         PR documentation/19309
4741         * doc/cpp.texi: The __GNUC__ and related predefined macros
4742         are also defined for the "standalone" cpp.
4743         Some non-GCC compilers may also define __GNUC__.
4745 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
4747         PR c/19342
4748         * c-typeck.c (common_type): New routine.  Old common_type renamed
4749         to...
4750         (c_common_type): ...this.
4751         (build_conditional_expr, build_binary_op): Use c_common_type instead
4752         of common_type.
4754 2005-02-10  Steven Bosscher  <stevenb@suse.de>
4756         * doc/md.texi: Replace @samp{length} with @code{length}.
4758 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
4760         PR tree-optimization/18687
4761         * tree-flow.h (find_loop_niter): Declare.
4762         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
4763         Try using scev even for loops with more than one exit.
4764         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
4765         (struct ivopts_data): Added niters field.
4766         (struct nfe_cache_elt): New.
4767         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
4768         functions.
4769         (tree_ssa_iv_optimize_init): Initialize niters cache.
4770         (determine_number_of_iterations): Removed.
4771         (find_induction_variables): Do not call determine_number_of_iterations.
4772         Access niters for single exit through niter_for_single_dom_exit.
4773         (add_iv_outer_candidates): Access niters for single exit through
4774         niter_for_single_dom_exit.
4775         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
4776         number_of_iterations_cond.
4777         (iv_period): New function.
4778         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
4779         (may_replace_final_value): Take data argument.  Use
4780         niter_for_single_dom_exit.
4781         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
4782         (rewrite_use_compare): Pass data to may_eliminate_iv.
4783         (rewrite_use_outer): Pass data to may_replace_final_value.
4784         (free_loop_data): Clean up the niters cache.
4785         (tree_ssa_iv_optimize_finalize): Free the niters cache.
4786         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
4787         * tree-ssa-loop-niter.c (find_loop_niter): New function.
4788         (find_loop_niter_by_eval): Use tree_int_cst_lt.
4789         (num_ending_zeros): Moved to tree.c.
4790         * tree.h (num_ending_zeros): Declare.
4791         * tree.c (num_ending_zeros): Moved from tree.c.
4793 2005-02-09  Richard Henderson  <rth@redhat.com>
4795         * builtins.c (DEF_BUILTIN): Add COND argument.
4796         * tree.h (DEF_BUILTIN): Likewise.
4797         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
4798         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
4799         match.
4800         (DEF_BUILTIN_STUB): New.
4801         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
4802         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
4803         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
4804         * c-common.c (DEF_BUILTIN): Add COND argument.
4805         * tree.c (local_define_builtin): New.
4806         (build_common_builtin_nodes): New.
4808 2005-02-09  Roger Sayle  <roger@eyesopen.com>
4810         * fold-const.c (fold_strip_sign_ops): New function to simplify a
4811         floating point expression ignoring the sign of the result.
4812         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
4813         (fold) <MULT_EXPR>: Use it to simplify x*x.
4814         * tree.h (fold_strip_sign_ops): Prototype here.
4815         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
4816         argument.  Use fold_strip_sign_ops to simplify the first argument.
4817         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
4818         first argument when the second argument is an even integer
4819         constant, but only with -funsafe_math_optimizations.
4820         (fold_builtin_1): Update call to fold_builtin_copysign.
4822 2005-02-09  Ian Lance Taylor  <ian@airs.com>
4824         PR middle-end/19583
4825         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
4826         just check whether EH_FILTER_FAILURE falls through.
4828 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
4830         * gcc/haifa-sched.c (schedule_block): Make queued sched group
4831         insns return to ready list in the next turn.
4833 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
4835         PR middle-end/19402
4836         * builtins.def: New __builtin_powi[lf].
4837         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
4838         (expand_builtin_powi): New function.
4839         (expand_builtin): Dispatch to expand_builtin_powi.
4840         * libgcc2.h: Add prototypes for __builtin_powi[lf].
4841         * libgcc2.c: Add __builtin_powi[lf] implementation.
4842         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
4843         * optabs.h: Add powi_optab.
4844         * optabs.c (init_optabs): Initialize powi_optab.
4845         * doc/extend.texi: Document __builtin_powi[lf].
4847 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
4849         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
4850         exists.
4852 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
4854         PR middle-end/19854
4855         * fold-const.c (try_move_mult_to_index): Remove redundant
4856         type argument.  Create ADDR_EXPR with correct type.
4857         (fold): Update callers of try_move_mult_to_index.  Convert
4858         result to the appropriate type.
4860 2005-02-09  Roger Sayle  <roger@eyesopen.com>
4862         PR target/19597
4863         * config/avr/avr.c (default_rtx_costs): Delete.
4864         (avr_operand_rtx_cost): New function.
4865         (avr_rtx_costs): Completely rewrite.
4867 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
4869         PR target/19806
4870         * config/cris/cris.c (in_code): New variable.
4871         (cris_output_addr_const): Now a static function, a wrapper for
4872         output_addr_const.
4873         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
4874         case from old cris_output_addr_const.
4875         (cris_asm_output_label_ref): Similar for LABEL_REF.
4876         (cris_output_addr_const_extra): Similar for UNSPEC.
4877         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
4878         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
4879         * config/cris/cris-protos.h (cris_output_addr_const): Remove
4880         declaration.
4881         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
4882         (cris_asm_output_label_ref): Declare.
4884 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
4886         PR preprocessor/19801
4887         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
4888         filenames that changed when libcpp was moved to the toplevel.
4890 2005-02-07  Roger Sayle  <roger@eyesopen.com>
4892         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
4893         zero extensions of BImode operands.  Call lowpart_subreg instead
4894         of gen_lowpart_common and gen_lowpart_SUBREG.
4896 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
4898         PR ada/19489
4899         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
4900         * configure.ac: Set cc_for_cross_gnattools.
4901         * configure: Regenerate.
4903 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
4905         PR target/19803
4906         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
4908 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4910         PR debug/19327
4911         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
4912         of nested functions.
4914 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
4916         * doc/extend.texi: Document deprecated extensions allowing
4917         static floating-point members to have initializers and allowing
4918         floating-point literals in integral constant expressions.
4920 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
4922         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
4923         config/darwin7.h, config/mips/mips.c,
4924         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
4925         Update copyright.
4927         * cse.c: Update comments.
4929 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
4931         PR middle-end/19775
4932         * builtins.c (fold_builtin_sqrt): Transform
4933         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
4934         pow(x,y*0.5).
4936 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
4937             Dorit Naishlos  <dorit@il.ibm.com>
4939         * doc/invoke.texi (ftree-vectorizer-verbose): New.
4940         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
4941         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
4942         was added.
4943         * tree.h (vect_set_verbosity_level): New extern function declaration
4944         added.
4945         * tree-vectorizer.h (verbosity_levels): New enum type.
4946         * tree-vectorizer.c (vect_debug_stats): Function removed.
4947         (vect_debug_details): Likewise.
4948         (vect_verbosity_level): Global variable was defined and initialized.
4949         (vect_dump): Global variable definition.
4950         (vect_print_dump_info): New function.
4951         (vect_set_dump_settings): New function.
4952         (vect_set_verbosity_level): New function.
4953         (vectorize_loops): Add call to vect_set_dump_settings.
4955         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
4956         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
4957         (slpeel_tree_peel_loop_to_edge): Likewise.
4959         (vect_analyze_offset_expr): Call to vect_print_dump_info with
4960         appropriate verbosity level instead of call to vect_debug_details
4961         or vect_debug_stats.
4962         (vect_get_base_and_offset):
4963         (vect_create_addr_base_for_vector_ref):
4964         (get_vectype_for_scalar_type):
4965         (vect_create_data_ref_ptr):
4966         (vect_init_vector):
4967         (vect_get_vec_def_for_operand):
4968         (vect_finish_stmt_generation):
4969         (vectorizable_assignment):
4970         (vectorizable_operation):
4971         (vectorizable_store):
4972         (vectorizable_load):
4973         (vect_transform_stmt):
4974         (vect_update_ivs_after_vectorizer):
4975         (vect_do_peeling_for_loop_bound):
4976         (vect_update_inits_of_drs):
4977         (vect_do_peeling_for_alignment):
4978         (vect_transform_loop):
4979         (vect_is_simple_use):
4980         (vect_analyze_operations):
4981         (vect_is_simple_iv_evolution):
4982         (vect_analyze_scalar_cycles):
4983         (vect_analyze_data_ref_dependence):
4984         (vect_analyze_data_ref_dependences):
4985         (vect_compute_data_ref_alignment):
4986         (vect_enhance_data_refs_alignment):
4987         (vect_analyze_data_refs_alignment):
4988         (vect_analyze_data_ref_access):
4989         (vect_analyze_data_ref_accesses):
4990         (vect_analyze_pointer_ref_access):
4991         (vect_get_memtag_and_dr):
4992         (vect_analyze_data_refs):
4993         (vect_mark_relevant):
4994         (vect_stmt_relevant_p):
4995         (vect_mark_stmts_to_be_vectorized):
4996         (vect_can_advance_ivs_p):
4997         (vect_get_loop_niters):
4998         (vect_analyze_loop_form):
4999         (vect_analyze_loop):
5000         (vectorize_loops): Likewise.
5002         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
5003         (vect_update_inits_of_drs):
5004         (vect_do_peeling_for_alignment):
5005         (vect_transform_loop):
5006         (vect_analyze_operations):
5007         (vect_analyze_scalar_cycles):
5008         (vect_analyze_data_ref_dependences):
5009         (vect_analyze_data_refs_alignment):
5010         (vect_analyze_data_ref_accesses):
5011         (vect_analyze_data_refs):
5012         (vect_mark_stmts_to_be_vectorized):
5013         (vect_get_loop_niters):
5014         (vect_analyze_loop_form):
5015         (vect_analyze_loop): Likewise.
5016         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
5018 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
5020         PR bootstrap/19796
5021         Revert:
5022         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
5023         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
5024         either -ffast-math or -funsafe-math-optimizations is in use.
5026         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
5027         * config/mips/irix-csr.c: New file.
5028         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
5029         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
5030         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
5031         executables.
5033 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
5035         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
5036         redundant, incorrect definitions.
5038         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
5039         expand.
5040         ("*tls_indirect_call"): New, reference hard regs directly.
5041         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
5043 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
5045         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
5046         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
5048 2005-02-06  Roger Sayle  <roger@eyesopen.com>
5050         PR rtl-optimization/19800
5051         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
5052         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
5053         gen_lowpart.
5055 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
5057         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
5059 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
5061         PR other/17135
5062         * doc/invoke.texi: Correct documentation of -freorder-functions.
5064 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
5066         PR other/14402
5067         * doc/invoke.texi: Don't mention gccbug.
5069 2005-02-06  Roger Sayle  <roger@eyesopen.com>
5070             Andrew Pinski  <pinskia@physics.uc.edu>
5071             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
5073         * simplify-rtx.c (simplify_relational_operation_1): Simplify
5074         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
5075         into just (zero_extract:SI FOO (const_int 1) BAR).
5077 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
5079         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
5080         macro locally.  Don't give last revision date.  Use GCC version
5081         number from gcc-common.texi.
5082         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
5083         revision date.  Use GCC version number from gcc-common.texi.
5084         Describe being a library as current state rather than as 3.x
5085         history.
5086         * doc/gcc.texi: Remove last update date.
5087         * doc/gccint.texi: Likewise.  Update copyright dates.
5088         * doc/install.texi: Update copyright dates.
5090 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
5092         PR other/7549
5093         * doc/invoke.texi: Mention for each option included in -Wall that
5094         it is included in -Wall.
5095         * doc/gcc.texi: Update copyright and last modification date.
5097 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
5099         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
5100         unnecessary cast to original induction variable increments.
5102 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
5104         PR tree-optimization/18219
5105         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
5106         in distributed form.
5108 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
5110         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
5111         Set bitpos and offset later in the function.  Do nothing if the
5112         target is a register and if the bitfield lies completely outside
5113         that register.
5114         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
5115         here.  Return an uninitialised register if the source value is stored
5116         in a register and the bitfield lies completely outside that register.
5118 2005-02-06  Steven Bosscher  <stevenb@suse.de>
5120         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
5121         not SET_DEST.
5123 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
5125         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
5127 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
5129         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
5130         * config/darwin8.h: New.
5131         * config/darwin7.h: Update comment.
5133 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
5134             Dorit Naishlos  <dorit@il.ibm.com>
5136         * tree-vectorizer.h (LOC): New type.
5137         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
5138         (loop_line_number): New field in struct _loop_vec_info.
5139         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
5141         * tree-vectorizer.c (input.h): Included.
5142         (find_loop_location): New function.
5143         (vect_debug_stats): Argument changed from loop to LOC. Computation of
5144         loop line number removed.
5145         (vect_debug_details): Likewise.
5146         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
5148         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
5149         call to vect_debug_details/stats changed from loop to loop_loc.
5150         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
5151         (slpeel_tree_peel_loop_to_edge): Likewise.
5153         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
5154         changed from NULL to UNKNOWN_LOC.
5155         (vect_get_base_and_offset):
5156         (vect_create_addr_base_for_vector_ref):
5157         (get_vectype_for_scalar_type):
5158         (vect_create_data_ref_ptr):
5159         (vect_init_vector):
5160         (vect_get_vec_def_for_operand):
5161         (vect_finish_stmt_generation):
5162         (vectorizable_assignment):
5163         (vectorizable_operation):
5164         (vectorizable_store):
5165         (vectorizable_load):
5166         (vect_transform_stmt):
5167         (vect_update_ivs_after_vectorizer):
5168         (vect_do_peeling_for_loop_bound):
5169         (vect_do_peeling_for_alignment):
5170         (vect_transform_loop):
5171         (vect_is_simple_use):
5172         (vect_analyze_operations):
5173         (vect_is_simple_iv_evolution):
5174         (vect_analyze_scalar_cycles):
5175         (vect_analyze_data_ref_dependences):
5176         (vect_compute_data_ref_alignment):
5177         (vect_enhance_data_refs_alignment):
5178         (vect_analyze_data_ref_access):
5179         (vect_analyze_data_ref_accesses):
5180         (vect_analyze_pointer_ref_access):
5181         (vect_get_memtag_and_dr):
5182         (vect_analyze_data_refs):
5183         (vect_mark_relevant):
5184         (vect_stmt_relevant_p):
5185         (vect_mark_stmts_to_be_vectorized):
5186         (vect_can_advance_ivs_p):
5187         (vect_get_loop_niters):
5188         (vect_analyze_loop):
5189         (vectorize_loops): Likewise.
5191         (vectorizable_load): Argument in call to vect_debug_details/stats
5192         changed from loop to LOOP_LOC (loop_vinfo).
5193         (vect_transform_loop):
5194         (vect_analyze_operations):
5195         (vect_analyze_scalar_cycles):
5196         (vect_analyze_data_ref_dependence):
5197         (vect_enhance_data_refs_alignment):
5198         (vect_analyze_data_ref_accesses):
5199         (vect_analyze_pointer_ref_access):
5200         (vect_analyze_data_refs):
5201         (vect_analyze_loop): Likewise.
5203         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
5204         changed from loop to loop_loc.
5206         (vect_enhance_data_refs_alignment): Removed unused variable loop.
5208 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
5209             Dorit Naishlos  <dorit@il.ibm.com>
5211         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
5212         declaration added.
5213         (vect_analyze_data_ref_dependences): Likewise.
5215         (vect_is_simple_use): Argument changed from loop structure to
5216         loop_vect_info structure.
5217         (vect_can_advance_ivs_p): Likewise.
5218         (vect_create_index_for_vector_ref): Likewise.
5219         (vect_update_ivs_after_vectorizer): Likewise.
5220         (new_stmt_vec_info): Likewise.
5222         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
5223         changed from loop to loop_vinfo.
5224         (vect_create_data_ref_ptr): First argument in call to
5225         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
5226         (vectorizable_assignment): Second argument in call to vect_is_simple_use
5227         was changed from loop to loop_vinfo.
5228         (vectorizable_operation): Likewise.
5229         (vectorizable_store): Likewise.
5230         (vect_mark_stmts_to_be_vectorized): Likewise.
5231         (vect_do_peeling_for_loop_bound): First argument in call to
5232         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
5233         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
5234         was changed from loop to loop_vinfo.
5235         (vect_analyze_data_ref_dependences): Third argument in call to
5236         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
5238         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
5239         (vect_create_data_ref_ptr): Likewise.
5240         (vect_init_vector): Likewise.
5241         (vect_get_vec_def_for_operand): Likewise.
5242         (vectorizable_assignment): Likewise.
5243         (vectorizable_operation): Likewise.
5244         (vectorizable_store): Likewise.
5245         (vectorizable_load): Likewise.
5246         (vect_update_ivs_after_vectorizer): Likewise.
5247         (vect_is_simple_use): Likewise.
5248         (vect_analyze_data_ref_dependence): Likewise.
5249         (vect_analyze_pointer_ref_access): Likewise.
5250         (vect_can_advance_ivs_p): Likewise.
5252         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
5253         before _stmt_vec_info.
5254         (_stmt_vec_info): Loop field replaced by loop_vec_info.
5255         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
5256         (new_stmt_vec_info): Argument changed from loop structure to
5257         loop_vect_info structure
5259         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
5260         (vect_analyze_offset_expr): Avoid 80 columns overflow.
5261         (vect_create_addr_base_for_vector_ref): Likewise.
5262         (vect_analyze_pointer_ref_access): Likewise.
5264 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
5266         PR tree-opt/19768
5267         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
5268         phi flag if the phi is abnormal.
5270 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
5272         PR tree-opt/19736
5273         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
5274         information for the new statement.
5276 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
5278         PR driver/19117
5279         * gcc.c (main): Include the target in -v output.
5281 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
5283         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
5284         Do not drop the extend if we'd have to add a paradoxical subreg
5285         later.  Include optabs.h and insn-codes.h.
5286         * Makefile.in (combine.o): Depend on $(OPTABS_H).
5288 2005-02-02  Roger Sayle  <roger@eyesopen.com>
5290         PR middle-end/19405
5291         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
5292         * fold-const.c (const_binop): Avoid constant folding floating
5293         point operations in modes that use composite representations.
5294         * simplify-rtx.c (simplify_binary_operation): Likewise.
5296 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
5298         * config/rs6000/altivec.md (altivec_dst): Make the first operand
5299         a REG, not a MEM.
5300         (altivec_dstt): Likewise.
5301         (altivec_dstst): Likewise.
5302         (altivec_dststt): Likewise.
5303         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
5304         of first operand.
5306 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
5308         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
5309         EXPR_LOCUS from orig_cond to the new cond_stmt.
5310         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
5311         the new vec_stmt.
5313 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
5315         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
5316         standard_iv_increment_position. Remove call to bsi_next
5317         (no need to bump the iterator anymore).
5318         (vect_create_index_for_vector_ref): Call
5319         standard_iv_increment_position. Remove second function argument.
5320         (vect_finish_stmt_generation): Remove call to bsi_next
5321         (no need to bump the iterator anymore).
5322         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
5323         to vect_create_index_for_vector_ref.
5325 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
5327         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
5328         phis are used out of the loop.
5330 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
5332         PR c/17807
5333         * c-decl.c (undef_nested_function): New variable.
5334         (pop_scope): Diagnose undefined nested functions.
5335         (finish_function): Don't attempt cgraph processing or genericizing
5336         if current top-level function contained an undefined nested
5337         function.  Reset undef_nested_function at the end of a top-level
5338         function.
5340 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
5342         * tree.c (build_int_cst_type): Take sign of the value into account
5343         when deciding whether sign extend the value.
5345 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
5347         PR c/18502
5348         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
5349         (cpp_options, cc1_options): Change %{std*&ansi} to
5350         %{std*&ansi&trigraphs}.
5352 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
5354         * cse.c: Update comments.
5356 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
5358         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
5359         arguments go on the stack.  Do not put complex doubles in odd/even
5360         pairs.
5362 2005-02-02  Steven Bosscher  <stevenb@suse.de>
5364         * doc/invoke.texi: Update the options enabled at -O1, -O2,
5365         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
5366         -ftree-pre, and -fthread-jumps.
5368 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
5370         PR tree-optimization/19578
5371         * tree-flow.h (modified_noreturn_calls): Declare.
5372         (noreturn_call_p): Declare.
5373         * tree-flow-inline.h (noreturn_call_p): New function.
5374         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
5375         * tree-cfg.c (modified_noreturn_calls): New variable.
5376         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
5377         that contain a mid-block noreturn call.
5378         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
5380 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
5382         * df.c (df_def_record_1, df_uses_record): Don't use
5383         DF_FOR_REGALLOC.
5384         * df.h (DF_FOR_REGALLOC): Remove.
5386 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
5388         PR c/19435
5389         * c-typeck.c (really_start_incremental_init): Reset
5390         constructor_max_index for arrays of incomplete type.
5392 2005-02-02  Jeff Law  <law@redhat.com>
5394         * gcse.c (struct reg_set): Store the block index where the register
5395         was set rather than the setting insn.
5396         (record_one_set, compute_transp): Corresponding changes.
5397         (pre_insert_copy_insn): Do not call replace_one_set.
5398         (replace_one_set): Remove.
5400 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
5402         PR other/15514
5403         * doc/gcov.texi: Fix typo.
5405 2005-02-01  Richard Henderson  <rth@redhat.com
5407         PR target/19680
5408         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
5409         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
5410         type to bool.
5411         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
5412         * config/i386/i386-protos.h: Update.
5414 2005-02-01  Steven Bosscher  <stevenb@suse.de>
5416         PR tree-optimization/19217
5417         * tree-cfg.c (verify_expr): Use the data field to see if TP was
5418         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
5419         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
5420         that it is walking a PHI node.
5422 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
5424         * doc/extend.texi (Nested Functions): Update.
5426 2005-02-01  Richard Henderson  <rth@redhat.com>
5428         PR 19696
5429         * optabs.c (expand_copysign_absneg): Export.
5430         * optabs.h (expand_copysign_absneg): Declare.
5431         * config/rs6000/rs6000.md (copysigntf3): New.
5433 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
5435         PR tree-optimization/19633
5436         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
5437         * tree-ssa-alias.c (init_alias_info): Initialize.
5438         (merge_pointed_to_info): Set.
5439         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
5440         (dump_points_to_info_for): Show value of pt_null.
5441         (struct count_ptr_d): Declare.
5442         (find_ptr_dereference): Remove.
5443         (ptr_is_dereferenced_by): Remove.
5444         (count_ptr_derefs): New local function.
5445         (count_uses_and_derefs): New local function.
5446         (compute_points_to_and_addr_escape): Call it.  If the number
5447         of dereferences is greater than zero, mark the pointer as
5448         dereferenced.  If there are fewer dereferences than uses of
5449         the pointer, the pointer's value escapes.
5451 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
5453         PR tree-optimization/19670
5454         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
5455         here...
5456         (verify_use): ... set it here, instead.
5458 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
5460         * doc/sourcebuild.texi (Test directives): Fix formatting.
5462         * doc/sourcebuild.texi (Test directives): Describe selector
5463         expressions.
5465 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
5467         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
5468         specific 64-bit CPUs.
5470 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
5472         PR target/16201
5473         * arm.c (arm_eliminable_register): New function.
5474         (adjacent_mem_locations): Don't allow eliminable registers.  Use
5475         HOST_WIDE_INT for address offsets.
5476         * arm-protos.h (arm_eliminable_register): Add prototype.
5478 2005-02-01  Steven Bosscher  <stevenb@suse.de>
5480         PR optimization/15242
5481         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
5482         * basic-block.h (duplicate_computed_gotos): Add prototype.
5483         * bb-reorder.c (duplicate_computed_gotos): New function to
5484         duplicate sufficiently small blocks ending in a computed jump.
5485         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
5486         if not optimizing for size.
5487         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
5488         never do tail merging for blocks ending in a computed jump.
5489         * doc/invoke.texi: Document the max-goto-duplication-insns param.
5491 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
5493         Patch from Richard Sandiford <rsandifo@redhat.com>
5494         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
5495         from inheriting a subreg equivalence with a non-spill register.
5497         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
5499 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
5501         * config/frv/frv.c (movcc_fp_destination_operand): New.
5502         (gpr_or_memory_operand): Fix typo in comment.
5503         (gpr_or_memory_operand_with_scratch): New.
5504         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
5505         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
5506         movcc_fp_destination_operand.
5507         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
5508         Legitimize memory addresses using a scratch register.
5510 2005-01-31  Jeff Law  <law@redhat.com>
5512         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
5513         bitmap a sparse bitmap instead of a simple bitmap.
5514         (mark_def_sites_initialize_block):  Corresponding changes.
5515         (ssa_mark_def_sites_initialize_block): Likewise.
5516         (ssa_mark_phi_uses): Likewise.
5517         (mark_def_site, ssa_mark_def_sites): Likewise.
5518         (mark_def_site_blocks): Likewise.
5519         (rewrite_ssa_into_ssa): Likewise.
5521         * tree-ssa-dom.c (record_cond): Pass correct variable type
5522         for last argument to htab_find_slot_with_hash.
5524         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
5525         effects when optimizing 0 % X.  Do not try to optimize X % 0.
5527 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
5529         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
5530         1_mmalua.
5532 2005-02-01  Eric Christopher  <echristo@redhat.com>
5534         * config/mips/mips.c (override_options): Warn if -mint64
5535         is used.
5536         * doc/invoke.texi (MIPS Options): Document that -mint64 is
5537         deprecated.
5539 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
5541         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
5542         timestamp.
5543         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
5544         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
5545         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
5546         (cached_regno): Initialize to INVALID_REGNUM.
5547         (cse_reg_info_table_size,
5548         cse_reg_info_table_first_uninitialized,
5549         cse_reg_info_timestamp): New.
5550         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
5551         get_cse_reg_info.
5552         (init_cse_reg_info, get_cse_reg_info_1): New.
5553         (get_cse_reg_info): Cache the last look-up.
5554         (new_basic_block): Update the code to clear mappings from
5555         registers to cse_reg_info entries.
5556         (cse_main): Call init_cse_reg_info.
5558         * cse.c (get_cse_reg_info): Update a comment.
5560 2005-01-31  Steven Bosscher  <stevenb@suse.de>
5562         PR c/19333
5563         * c-decl.c (start_decl): Do not warn about arrays of elements with
5564         an incomplete type here.
5565         (grokdeclarator): Do it here by making a pedwarn an error.
5566         * c-typeck.c (push_init_level): If there were previous errors with
5567         the constructor type, do not warn about braces for initializers.
5568         (process_init_element): Likewise for excess initializer elements.
5570 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
5572         * cse.c (delete_trivially_dead_insn): Don't iterate.
5574 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
5576         * config/rs6000/rs6000.md (copysignsf3): New expand.
5577         (copysigndf3): Likewise.
5579 2005-01-31  Steven Bosscher  <stevenb@suse.de>
5581         * recog.c (constrain_operands): Only look for earlyclobber operand
5582         conflicts if an '&' constraint was seen.
5584 2005-01-31  Marc Espie <espie@openbsd.org>
5586         * config.gcc: Don't include embedded systems fragment, switches default
5587         debugging format to ELF.
5588         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
5589         longer pick it up there.
5591 2005-01-31  Dale Johannesen  <dalej@apple.com>
5593         * doc/extend.texi (nested functions): Fix linkage description.
5594         Clarify that static is not allowed.
5596 2005-01-31  Dale Johannesen  <dalej@apple.com>
5598         * config/rs6000/darwin.md (movsf_low_di):  Make work.
5599         (movdf_low_di):  Make work.
5601 2005-01-31  Dale Johannesen  <dalej@apple.com>
5603         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
5604         Make work for 64 bit.
5606 2005-01-31  Roger Sayle  <roger@eyesopen.com>
5607             Dale Johannesen  <dalej@apple.com>
5609         PR middle-end/19650
5610         * fold-const.c (fold_binary_op_with_conditional_arg):
5611         Make types match original operands, before STRIP_NOPS.
5613 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
5615         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
5616         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
5617         (struct gcc_sigcontext): Delete.  Merge contents to..
5618         (struct gcc_ucontext): ..here.
5619         (get_sigcontext): Delete.
5620         (get_regs): New function, like get_sigcontext but return regs ptr.
5621         64-bit version finds regs from r1 to support vdso.
5622         (ppc_linux_aux_vector): New function.
5623         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
5624         and vector regs.
5626 2005-01-31  Ira Rosen  <irar@il.ibm.com>
5628         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
5629         sizetype.
5630         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
5631         redundant fold. Fix misalignment for MINUS_EXPR.
5632         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
5633         (vect_analyze_pointer_ref_access): Likewise.
5634         (vect_get_memtag_and_dr): Likewise.
5636 2005-01-31  Richard Henderson  <rth@redhat.com>
5638         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
5639         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
5640         absnegdf2_i387, absnegxf2_i387): Likewise.
5642 2005-01-31  Richard Henderson  <rth@redhat.com>
5644         PR 19696
5645         * optabs.c (expand_copysign_absneg): New.
5646         (expand_copysign_bit): Split out from ...
5647         (expand_copysign): ... here.  Use expand_copysign_absneg.
5649 2005-01-30  Roger Sayle  <roger@eyesopen.com>
5651         PR middle-end/19697
5652         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
5653         constant as the second operand and a register as the third.
5655 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
5657         PR target/19704
5658         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
5659         that dllimport'd functions do not use all call-clobbered registers
5660         to pass parameters.
5662 2005-01-30  Richard Henderson  <rth@redhat.com>
5664         PR 19696
5665         * optabs.c (expand_absneg_bit): Split out from expand_unop and
5666         expand_abs_nojump and generalize.  Use operand_subword and
5667         emit_no_conflict_block.  Support large modes.
5668         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
5669         back to maximum.
5670         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
5671         negation to subtraction.
5672         (expand_copysign): Check that the format has signed zeros.
5673         Use operand_subword and emit_no_conflict_block.  Support large modes.
5675 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
5677         Fix PR tree-optimization/19624
5679         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
5680         * tree-ssa-pre.c: Add cfgloop.h.
5681         Update comment.
5682         (pre_stats): New member, constified.
5683         (inserted_exprs): New static variable.
5684         (NECESSARY): New macro.
5685         (create_expression_by_pieces): Fold the expression, and
5686         mark it as defaulting to not necessary. Also put in
5687         inserted_exprs.
5688         (fully_constant_expression): New function.
5689         (insert_into_preds_of_block): Modify to not insert phis when we
5690         are playing with induction variables.
5691         Push phis onto the inserted_exprs vector, and mark them as not
5692         necessary by default.
5693         (insert_aux): Call fully_constant_expression on eprime.
5694         If all edges produce the same value, mark it constant.
5695         (mark_operand_necessary): New function.
5696         (remove_dead_inserted_code): New function.
5697         (init_pre): Init loop optimizer to get loop info.
5698         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
5699         (execute_pre): Commit edge inserts, then remove dead code.
5701 2005-01-30  Richard Henderson  <rth@redhat.com>
5703         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
5704         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
5706 2005-01-30  Richard Henderson  <rth@redhat.com>
5708         PR target/19700
5709         * config/i386/i386.c (ix86_expand_copysign): New.
5710         (ix86_split_copysign_const): New.
5711         (ix86_split_copysign_var): Rename from ix86_split_copysign,
5712         rearrange op1/nmask operands.
5713         * config/i386/i386-protos.h: Update.
5714         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
5715         (copysigndf3): Likewise.
5716         (copysignsf3_const, copysigndf3_const): New.
5717         (copysignsf3_var): Rename from copysignsf3, split out splitter
5718         and fix split predicate for X constraint.
5719         (copysigndf3_var): Similarly.
5721 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
5723         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
5724         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
5725         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
5727 2005-01-29  Richard Henderson  <rth@redhat.com>
5729         PR target/19690
5730         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
5731         of # and * in constraints.
5733 2005-01-29  Richard Henderson  <rth@redhat.com>
5735         PR middle-end/19689
5736         * expr.c (store_field): Don't strip sub-mode cast when the input
5737         data is even smaller.
5739 2005-01-29  Richard Henderson  <rth@redhat.com>
5741         PR middle-end/19687
5742         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
5743         union being empty.
5745 2005-01-29  Richard Henderson  <rth@redhat.com>
5747         * combine.c (make_field_assignment): Fix argument order
5748         to gen_int_mode.
5750 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
5752         PR tree-optimization/15791
5753         * fold-const.c (extract_array_ref): New function.
5754         (fold): Fold comparisons between &a[i] and &a[j] or
5755         semantically equivalent trees.
5757 2005-01-29  Jeff Law  <law@redhat.com>
5759         * gcse.c (insert_expr_in_table): Revamp handling of available
5760         and anticipatable occurrence lists to avoid unnecessary list
5761         walking.
5762         (insert_set_in_table): Similarly.
5764 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
5766         * c-common.c (fix_string_type): Just use c_build_qualified_type to
5767         build string type.
5768         (c_build_qualified_type): Build qualified array types with
5769         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
5770         * c-decl.c (c_make_fname_decl): Build unqualified array type
5771         before qualified type.
5772         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
5773         type is qualified, not just if type itself is.  Don't apply
5774         qualifiers to array type when declarator is processed.  Apply
5775         qualifiers to field type whether or not it is an array type.
5776         Don't handle array types specially for applying qualifiers to
5777         variables.
5778         * c-typeck.c (composite_type): Build unqualified element type and
5779         array type when forming composite of array types.
5780         (common_pointer_type, comptypes, comp_target_types,
5781         type_lists_compatible_p, build_indirect_ref, build_array_ref,
5782         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
5783         types.
5784         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
5785         (args2) in variables a1 and a2.
5787 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
5789         * cse.c (n_elements_made, max_elements_made): Remove.
5790         (insert): Don't touch n_elements_made.
5791         (cse_main): Don't touch n_elements_made or max_elements_made.
5793 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
5795         PR target/15384
5796         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
5797         configuration part of dp-bit.c to be lost.
5799 2005-01-28  Roger Sayle  <roger@eyesopen.com>
5801         * expmed.c (expand_mult_highpart_optab): When attempting to use
5802         a non-widening multiplication in a wider mode, the operands need
5803         to be converted (zero or sign extended) to that mode.
5805 2005-01-28  Ian Lance Taylor  <ian@airs.com>
5807         PR middle-end/16558
5808         PR middle-end/19583
5809         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
5810         through if both operands fall through.
5812 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
5814         * cse.c (fold_rtx) <PC>: Don't optimize.
5816 2005-01-28  Jeff Law  <law@redhat.com>
5818         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
5819         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
5821 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
5823         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
5824         cse_reg_info_used_list_end): Remove.
5825         (cse_reg_info_list, cse_reg_info_list_free): New.
5826         (get_cse_reg_info): When allocating an instance of
5827         cse_reg_info, add it to the beginning of the cse_reg_info_list
5828         list.  Remove code to maintain cse_reg_info_used_list.
5829         (new_basic_block): Reset the free list to the beginning of
5830         cse_reg_info_list.
5832 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
5834         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
5835         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
5836         (frv_expand_mdpackh_builtin): New function.
5837         (frv_expand_builtin): Use it to expand __MDPACKH.
5838         * doc/extend.texi (__MDPACKH): Update documentation.
5840 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
5842         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
5843         SSE_FLOAT_MODE_P for use_sse computation.
5845 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
5847         PR target/19663
5848         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
5850 2005-01-27  Richard Henderson  <rth@redhat.com>
5852         * builtins.c (expand_builtin_copysign): New.
5853         (expand_builtin): Call it.
5854         * genopinit.c (optabs): Add copysign_optab.
5855         * optabs.c (init_optabs): Initialize it.
5856         (expand_copysign): New.
5857         * optabs.h (OTI_copysign, copysign_optab): New.
5858         (expand_copysign): Declare.
5860         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
5861         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
5863         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
5864         (ix86_expand_fp_absneg_operator): ... here.
5865         (ix86_split_copysign): New.
5866         * config/i386/i386-protos.h: Update.
5867         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
5868         (copysignsf3, copysigndf3): New.
5870         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
5871         (copysignsf3, ncopysignsf3): New.
5872         (copysigndf3, ncopysigndf3): New.
5873         (copysignxf3, ncopysignxf3): New.
5874         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
5876 2005-01-27  Arend Bayer  <arend.bayer@web.de>
5877             Kazu Hirata  <kazu@cs.umass.edu>
5879         * cse.c: (find_best_addr): Don't call copy_rtx before calling
5880         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
5881         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
5882         NULL_RTX.
5884 2005-01-27  Jeff Law  <law@redhat.com>
5886         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
5887         definitions of SSA_NAMEs which are not being rewritten.
5888         (rewrite_ssa_into_ssa): Only initialize the current definition
5889         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
5890         If checking is enabled, assert that SSA_NAME_AUX is clear for all
5891         SSA_NAMEs before returning.
5893 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
5895         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
5896         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
5897         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
5898         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
5899         config/mips/iris6.h, config/sh/sh.c: Update copyright.
5901 2005-01-27  Steven Bosscher  <stevenb@suse.de>
5903         PR middle-end/17278
5904         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
5905         higher to -O2 and higher.  Likewise for tree PRE.
5906         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
5907         and better.
5909 2005-01-27  Ian Lance Taylor  <ian@airs.com>
5911         PR middle-end/19583
5912         * gimple-low.c (try_catch_may_fallthru): New static function.
5913         (block_may_fallthru): Handle TRY_CATCH_EXPR.
5914         * tree-inline.c (expand_call_inline): Don't warn about reaching
5915         the end of a non-void function being inlined if the function uses
5916         a return slot.
5918 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
5920         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
5922         PR c/18946
5923         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
5924         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
5925         (implicitly_declare): Handle error_mark_node.
5927 2005-01-27  Richard Henderson  <rth@redhat.com>
5929         PR tree-opt/14329
5930         * tree.h (struct tree_decl): Add debug_expr_is_from.
5931         (DECL_DEBUG_EXPR_IS_FROM): New.
5932         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
5933         * dwarf2out.c (dwarf2out_var_location): Update to match.
5934         * tree-outof-ssa.c (create_temp): Likewise.
5935         * var-tracking.c (track_expr_p): Likewise.
5936         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
5937         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
5938         * toplev.c (default_tree_printer): Likewise.
5940 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
5942         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
5943         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
5945 2005-01-27  Steven Bosscher  <stevenb@suse.de>
5947         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
5948         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
5949         ASM_CLOBBERS): Add tree checks.
5951         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
5952         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
5953         * c-common.def (SWITCH_STMT): Update to match.
5954         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
5955         macros instead of SWITCH_EXPR ones.
5956         * c-dump.c (c_dump_tree): Likewise.
5957         * c-gimplify.c (gimplify_switch_stmt): Likewise.
5958         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
5960         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
5962 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
5964         * unwind-dw2.c (execute_stack_op): Add missing cases for
5965         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
5967 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5969         * config.gcc (Obsolete configurations): Remove 'dummy', add
5970         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
5971         sparc-*-openbsd*.
5973 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
5975         PR tree-optimization/19633
5976         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
5977         CALL_EXPRs.
5978         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
5979         are no call-clobbered variables.
5980         * tree-outof-ssa.c (check_replaceable): Return false for calls
5981         with side-effects.
5983 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
5985         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
5986         even for variables with NULL DECL_INITIAL.
5988 2005-01-26  Stuart Hastings  <stuart@apple.com>
5990         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
5992 2005-01-26  Richard Henderson  <rth@redhat.com>
5994         PR middle-end/18008
5995         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
5996         field's type.
5997         * expr.c (store_field): Strip conversions to odd-bit-sized types
5998         if the destination field width matches.
6000 2005-01-26  Richard Henderson  <rth@redhat.com>
6002         * c-decl.c, expmed.c, expr.c: Revert last change.
6004 2005-01-26  Richard Henderson  <rth@redhat.com>
6006         PR middle-end/18008
6007         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
6008         field's type.
6009         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
6010         if we don't need the bits above those present in the current mode.
6011         * expr.c (store_field): Strip conversions to odd-bit-sized types
6012         if the destination field width matches.
6014 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
6016         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
6017         either -ffast-math or -funsafe-math-optimizations is in use.
6019 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6021         PR target/19293
6022         PR target/19329
6023         * config/avr/avr.c (notice_update_cc): Only set condition code for
6024         ashrqi3 if shift count > 0.
6025         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
6026         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
6027         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
6028         count <= 0 as a no-op, and shift count >= width by copying zero
6029         or sign bit to all bits of the result.
6030         * config/avr/avr.md (all shifts): Add alternatives for zero shift
6031         count, with attribute "length" set to 0 and "cc" set to "none".
6033 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
6035         * doc/invoke.texi: Document -mTLS.
6037         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
6038         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
6039         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
6040         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
6041         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
6042         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
6043         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
6044         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
6046         * configure.ac: Check for a TLS capable gas.
6048         * configure: Regenerate.
6050 2005-01-26  Richard Henderson  <rth@redhat.com>
6052         PR middle-end/18008
6053         * combine.c (make_field_assignment): Simplify store to zero_extract
6054         from a source with an overlapping mask.
6056 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
6058         2004-11-11  Eric Christopher  <echristo@redhat.com>
6060         * config/frv/frv.md: Add fr400_integer automaton. Don't
6061         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
6062         to TYPE_MACC.
6064 2005-01-26  Steven Bosscher  <stevenb@suse.de>
6066         PR middle-end/16585
6067         * cfgbuild.c (make_edges): Do not clear or set
6068         current_function_has_computed_jump.
6069         * function.h (struct function): Remove the has_computed_jump field.
6070         (current_function_has_computed_jump): Do not define.
6071         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
6072         in a computed jump.  Ignore current_function_has_computed_jump.
6074 2005-01-26  Richard Henderson  <rth@redhat.com>
6076         PR middle-end/19515
6077         * expr.c (categorize_ctor_elements): New argument p_must_clear.
6078         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
6079         fully initialized.
6080         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
6081         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
6082         objects into static storage if they have more than one non-zero value.
6083         * tree.h (categorize_ctor_elements): Update decl.
6085 2005-01-26  Steven Bosscher  <stevenb@suse.de>
6087         PR middle-end/19616
6088         * tree.h (CALL_EXPR_TAILCALL): Add comment.
6089         * calls.c (check_sibcall_argument_overlap_1): Revert the change
6090         to this function from 2004-07-10.
6091         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
6092         the current function for tail call optimizations if the address
6093         of one of it its arguments is taken.
6095 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
6097         * cse.c (fold_rtx): Call equiv_constant only when necessary.
6099 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
6101         * function.c (expand_function_end): If current_function_calls_alloca,
6102         emit stack restore in a place that is reached when the function falls
6103         through at the end.
6105 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
6107         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
6108         rule to avoid matching inappropriate suffix rule.
6110 2005-01-26  Jan Hubicka  <jh@suse.cz>
6112         PR tree-optimization/19241
6113         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
6115 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
6117         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
6118         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
6119         of doubling.
6120         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
6121         <sim*>: Always use crt1.o, regardless of N in simN.
6122         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
6123         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
6124         (CRT_CALL_STATIC_FUNCTION): Remove.
6125         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
6126         use crt1.o, regardless of N in simN.
6127         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
6128         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
6129         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
6130         case isystem setting.
6131         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
6133 2005-01-25  Ian Lance Taylor  <ian@airs.com>
6135         * gimple-low.c (block_may_fallthru): Correct handling of
6136         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
6138 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
6140         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
6141         handlers to match indentation; nested under the mtune=* handler.
6142         Similar for mcpu= and march=.
6144 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
6146         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
6147         * config/mips/linux64.h (LIB_SPEC): Likewise.
6148         * config/mn10300/linux.h (LIB_SPEC): Likewise.
6149         * config/sh/linux.h (LIB_SPEC): Likewise.
6151 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
6153         * config/frv/frv.c (frv_legitimize_tls_address): New.
6154         (TARGET_HAVE_TLS): Define.
6155         (FRV_SYMBOL_REF_TLS_P): Define.
6156         (frv_override_options): Handle new register classes.
6157         (frv_legitimate_address_p): Reject tls addresses.
6158         (frv_legitimize_address): Handle TLS addresses.
6159         (gen_inlined_tls_plt): New.
6160         (gen_tlsmoff): New.
6161         (frv_legitimize_tls_address): New.
6162         (unspec_got_name): Add TLS entries.
6163         (got12_operand): Add R_FRV_TLSMOFF12 case.
6164         (frv_emit_move): Fixup TLS addresses.
6165         (frv_emit_movsi): Legitimize TLS addresses.
6167         * config/frv/frv.h (MASK_BIG_TLS): New.
6168         (TARGET_BIG_TLS): New.
6169         (HAVE_AS_TLS): Define.
6170         (TARGET_SWITCHES): Add -mTLS and -mtls options.
6171         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
6172         (REG_CLASS_NAMES): Same.
6173         (REG_CLASS_CONTENTS): Same.
6174         (CONSTRAINT_LEN): New.
6175         (REG_CLASS_FROM_CONSTRAINT): New.
6176         (PREDICATE_CODES): Add symbolic_operand.
6178         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
6179         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
6180         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
6181         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
6182         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
6183         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
6184         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
6185         GR9_REG, GR14_REG, LRREG.
6186         (type): Add load_or_call attribute.
6187         ("load_or_call"): New reservation.
6188         ("call_gettlsoff"): New.
6189         ("tls_indirect_call"): New.
6190         ("tls_load_gottlsoff12"): New.
6191         ("tlsoff_hilo"): New.
6192         ("tls_tlsdesc_ldd"): New.
6193         ("tls_tlsoff_ld"): New.
6194         ("tls_lddi"): New.
6196         * config/frv/frv-protos.h (symbolic_operand): Protoize.
6198         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
6200         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6201         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
6202         * config/frv/frv.c (TLS_BIAS): Define.
6203         (frv_output_dwarf_dtprel): New.
6205 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
6207         PR rtl-optimization/19579
6208         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
6209         both A and B, see if they don't clobber registers the other expr uses.
6211 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
6213         * real.c (do_add): Initialize signalling and canonical members.
6215         * real.c (real_from_integer): Zero out destination.
6217 2005-01-18  Jan Hubicka  <jh@suse.cz>
6219         PR tree-optimize/19337
6220         * tree-inline.c (initialize_inlined_parameters): Copy
6221         saved_static_chain_decl only.
6223 2005-01-25  Richard Henderson  <rth@redhat.com>
6225         PR target/19556
6226         PR target/19584
6227         * config/i386/i386.c (x86_inter_unit_moves): Zero.
6228         (ix86_preferred_reload_class): Rewrite fp-constant section, with
6229         80387 enabled, to return a proper subclass.  Return the subset that
6230         overlaps with GENERAL_REGS for PLUS.
6231         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
6233 2005-01-25  Richard Henderson  <rth@redhat.com>
6235         PR middle-end/19609
6236         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
6238 2005-01-25  Roger Sayle  <roger@eyesopen.com>
6240         * expmed.c (choose_multiplier): Change interface to return the
6241         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
6242         (expand_divmod): Update calls to choose_multiplier.
6244 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6246         PR middle-end/19330
6247         * expmed.c (extract_bit_field): Use adjust_address instead of
6248         gen_lowpart when op0 is a MEM.
6250 2005-01-24  Steven Bosscher  <stevenb@suse.de>
6252         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
6254 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
6256         * config/mips/irix-csr.c: New file.
6257         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
6258         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
6259         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
6260         executables.
6262 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
6264         PR bootstrap/19364
6265         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
6266         sparc/elf.h, add sparc/sp-elf.h.
6267         (sparc-*-rtems*): Likewise.
6268         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
6269         tm-dwarf2.h, add sparc/sp-elf.h.
6270         (sparc86x-*-elf): Likewise.
6271         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
6272         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
6273         TARGET_OS_CPP_BUILTINS.
6274         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6275         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6276         Undefine it.
6277         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
6278         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
6279         (SWITCH_TAKES_ARG): Likewise.
6280         (LOCAL_LABEL_PREFIX): Likewise.
6281         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
6282         (TARGET_N_FORMAT_TYPES): Delete.
6283         (TARGET_FORMAT_TYPES): Likewise.
6284         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6285         * config/sparc/elf.h: Delete.
6286         * config/sparc/sp-elf.h: New file.
6288 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
6290         * tree-flow-inline.h (phi_arg_from_edge): Remove.
6291         * tree-flow.h: Remove the corresponding prototype.
6292         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
6293         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
6295 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
6297         PR target/17751
6298         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
6299         for AIX ABI or ELF -fPIC.
6300         (rs6000_emit_load_toc_table): Don't create toc_section here.
6301         (rs6000_xcoff_file_start): Nor here.
6303 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
6305         * sh.c (ra.h): Don't #include.
6306         (hard_regs_intersect_p): New function, resurrected from ra.c.
6308         * sh.c: Fix 1996 Copyright.
6310 2005-01-24  Richard Henderson  <rth@redhat.com>
6311             Aldy Hernandez  <aldyh@redhat.com>
6313         * regrename.c (note_sets): Handle subregs.
6315 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
6317         PR bootstrap/18058
6318         * genconditions.c (write_header, write_conditions): Elide file if
6319         not GCC >= 3.0.1.
6321 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
6323         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
6324         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
6325         Update copyright.
6327 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
6329         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
6330         expand_builtin_printf, expand_builtin_fprintf,
6331         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
6332         checking against POINTER_TYPE.
6333         (validate_arglist): Handle POINTER_TYPE code by checking
6334         POINTER_TYPE_P.
6336 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
6338         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
6339         init_rtlanal): New.
6340         (for_each_rtx): Call for_each_rtx_1.
6341         * rtl.h (init_rtlanal): Declare.
6342         * toplev.c (backend_init): Call init_rtlanal.
6344 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
6346         * flow.c (propagate_one_insn): Formatting.
6348         PR middle-end/19551
6349         * flow.c (libcall_dead_p): Be more conservative if unsure.
6350         If there are any instructions between insn and call, see if they are
6351         all dead before saying the libcall is dead.
6353 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
6355         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
6356         operand constraint for operand 0.
6358 2005-01-23  Richard Henderson  <rth@redhat.com>
6360         PR 19486
6361         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
6362         edges leading to join block.
6364 2005-01-23  Roger Sayle  <roger@eyesopen.com>
6366         * expmed.c (expand_mult_highpart): Make static.  Change type of
6367         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
6368         (expand_divmod): Updates calls to expand_mult_highpart by using
6369         gen_int_mode to pass a CONST_INT rtx.
6370         * rtl.h (expand_mult_highpart): Remove prototype.
6372 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
6374         * flow.c (regset_bytes, regset_size): Remove.
6376         * cfganal.c: Fix a reference to Harvey's paper.
6378 2005-01-23  Steven Bosscher  <stevenb@suse.de>
6380         PR rtl-optimization/19464
6381         * tree-optimize.c (init_tree_optimization_passes): Add one more
6382         copyrename pass just before out-of-ssa.
6384 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
6386         PR bootstrap/18058
6387         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
6388         * ggc-none.c (ggc_free): Define.
6390 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
6392         * cse.c (max_reg, max_insn_uid): Remove.
6393         (cse_main): Don't access max_reg or max_insn_uid.
6395         * c-common.c (explicit_flag_signed_bitfields,
6396         lang_statement_code_p, lang_expand_function_end): Remove.
6397         * c-common.h: Remove the corresponding declarations.
6398         * c-opts.c (c_common_handle_option): Remove all write access
6399         to explicit_flag_signed_bitfields.
6401         * cgraph.c (cgraph_varpool_n_nodes): Remove.
6402         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
6403         * cgraph.h: Remove the corresponding declaration.
6405         * gcse.c (null_pointer_info): Remove.
6407 2005-01-23  Roger Sayle  <roger@eyesopen.com>
6408             Eric Botcazou  <ebotcazou@libertysurf.fr>
6410         * combine.c (simplify_logical): Only simplify logical expressions
6411         of the form ior(and(x,y),z) by the inverse distributive law if the
6412         result is cheaper than the original.
6414 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
6416         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
6417         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
6418         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
6419         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
6420         config/freebsd-spec.h, config/arm/arm.h,
6421         config/h8300/h8300.md, config/i386/i386.md,
6422         config/i386/predicates.md, config/i386/sse.md,
6423         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
6424         config/vax/vax.md: Fix comment typos.  Follow spelling
6425         conventions.
6427 2005-01-23  Steven Bosscher  <stevenb@suse.de>
6429         * gengtype.c (walk_type): Produce `not equal to' compares for loop
6430         tests, instead of `less than'.
6432 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
6434         * function.c (assign_parm_setup_block): When creating a new stack slot
6435         for a parameter, get its alignment from the parameter's DECL_ALIGN
6436         rather than the type's TYPE_ALIGN.  Make sure that the parameter
6437         is at least word aligned.
6439 2005-01-22  Roger Sayle  <roger@eyesopen.com>
6441         PR middle-end/19378
6442         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
6444 2005-01-22  Richard Henderson  <rth@redhat.com>
6446         PR target/19506
6447         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
6448         in both compare operands.
6449         (movdfcc_1_sse_max): Likewise.
6450         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
6451         (movdfcc_1_sse): Likewise.
6452         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
6453         scratch register as needed.
6455 2005-01-22  Richard Henderson  <rth@redhat.com>
6457         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
6459         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
6461 2005-01-22  Richard Henderson  <rth@redhat.com>
6463         * genopinit.c (optabs): Use smin/smax for floating point too.
6464         * doc/md.texi: Update to match.  Clarify that floating point
6465         results are undefined for +0/-0 and NaN.
6466         * doc/rtl.texi: Likewise.
6467         * rtl.def (SMIN, SMAX): Likewise
6468         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
6470         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
6471         leading 's' to the name.
6472         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
6473         smaxxf3, sminxf3): Likewise.
6474         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
6475         Likewise.
6477 2005-01-22  Paul Brook  <paul@codesourcery.com>
6479         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
6481 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
6483         * config/s390/s390.c (struct processor_costs): New fields
6484         dlgr, dlr, dr, dsgfr, dsgr.
6485         (z900_cost, z990_cost): Values for new fields.
6486         (s390_rtx_costs): New cases MEM und COMPARE in switch
6487         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
6488         DIV, MOD, UDIV, UMOD.
6490 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
6492         * config/s390/s390.md ("doloop_si64"): Reload input value directly
6493         into the register being decremented.
6494         ("doloop_si31", "doloop_di"): Likewise.
6495         ("*doloop_si_long"): Adapt pattern.
6497 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
6499         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
6500         access registers.
6501         (CLASS_MAX_NREGS): Likewise.
6503 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
6505         * doc/tree-ssa.texi (Statement Operands): Add example for new
6506         must-def macro. Note deprecation of old operands interface.
6508 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
6510         PR tree-optimization/19484
6511         * tree-cfg.c (remove_fallthru_edge): New function.
6512         (cleanup_control_flow): Remove fallthru edges from calls that are
6513         now known not to return.
6515 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
6517         Fix PR tree-optimization/19038
6518         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
6519         copies with loop variant ones.
6521 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
6523         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
6524         config/alpha/alpha-protos.h, config/alpha/alpha.h,
6525         config/alpha/alpha.md, config/alpha/predicates.md,
6526         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
6527         config/sparc/sol2.h: Update copyright.
6529         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
6530         first label to see if it is a nonlocal label.
6532 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
6533             Andrew Pinski  <pinskia@physics.uc.edu>
6535         PR target/19491
6536         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
6537         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
6539 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
6541         * config/rs6000/rtems.h: Update copyright.
6543 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
6545         PR target/19548
6546         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
6547         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
6548         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
6550 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6552         PR c/18809
6553         * c-typeck.c (convert_arguments): Check for error_mark_node.
6555 2005-01-21  Ian Lance Taylor  <ian@airs.com>
6557         PR tree-optimization/13000
6558         * tree-inline.c: Include "tree-flow.h".
6559         (expand_call_inline): If warn_return_type, warn if non-void inline
6560         function falls through.
6561         * tree-cfg.c (execute_warn_function_return): Don't warn about
6562         control reaching end if TREE_NO_WARNING is set.  Set
6563         TREE_NO_WARNING.
6564         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
6565         has been lowered.
6566         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
6567         branch if we don't need one.
6568         * c-typeck.c: Include "tree-flow.h"
6569         (c_finish_bc_stmt): Don't add a goto if the current statement
6570         list doesn't fall through to the current point.
6572 2005-01-21  Roger Sayle  <roger@eyesopen.com>
6574         PR rtl-optimization/576
6575         * real.c (real_arithmetic): Change return type from void to bool
6576         to return an indication that the result may be inexact.
6577         * real.h (real_arithmeric): Update prototype.
6578         * fold-const.c (const_binop):  Don't constant fold floating
6579         point expressions when the user specifies -frounding-math and
6580         the result may depend upon the run-time rounding mode.
6581         (fold_convert_const_real_from_real): Clean-up.
6582         (fold_initializer): Ignore flag_rounding_math for initializers.
6583         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
6584         constant fold FP operations with flag_rounding_math if the
6585         result may depend upon the run-time rounding mode.
6587 2005-01-21  Tom Tromey  <tromey@redhat.com>
6589         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
6591 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
6593         * tree-cfg.c: Fix comment typos.
6595 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
6597         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
6598         around the call to rest_of_handle_branch_target_load_optimize.
6600 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
6602         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
6603         (sparc64-*-openbsd*): Likewise.
6604         (sparclite-*-elf*): Include tm-dwarf2.h.
6605         (sparc86x-*-elf*): Likewise.
6606         (sparc64-*-elf*): Likewise.
6607         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
6608         (DBX_DEBUGGING_INFO): Likewise.
6609         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
6610         (PREFERRED_DEBUGGING_TYPE): Likewise.
6611         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
6612         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
6613         (PREFERRED_DEBUGGING_TYPE): Likewise.
6614         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
6615         (PREFERRED_DEBUGGING_TYPE): Likewise.
6616         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
6618 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
6620         PR target/18701
6621         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
6623 2005-01-20  Paul Brook  <paul@codesourcery.com>
6625         * doc/rtl.texi: Document value extension requirements for CONST_INT.
6627 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
6629         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
6630         label is first in a sequence of labels.
6632         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
6634 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
6635             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6637         * doc/sourcebuild.texi (Test Directives): New.
6639 2005-01-20  Roger Sayle  <roger@eyesopen.com>
6641         * real.c (real_floor): Don't leave the result uninitialized when
6642         mode is VOIDMode, but return the unrounded intermediate value.
6643         (real_ceil): Likewise.
6645 2005-01-20  Paul Brook  <paul@codesourcery.com>
6647         * config/arm/arm.md (insv): Use gen_int_mode.
6649 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
6651         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
6652         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
6653         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
6654         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
6655         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
6657 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
6659         Fix PR debug/19124
6660         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
6661         fbreg, so we have to assume we can't.
6662         (loc_descriptor_from_tree_1): Ditto.
6663         (containing_function_has_frame_base): New function.
6664         (add_location_or_const_value_attribute): Use it.
6665         Also try to generate a frame_base from a single element location
6666         list.
6668 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
6670         PR tree-optimization/15349
6671         * timevar.def (TV_TREE_MERGE_PHI): New.
6672         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
6673         PHI_WANTED.
6674         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
6675         calls to tree_forwarder_block_p.
6676         (remove_forwarder_block_with_phi, merge_phi_nodes,
6677         gate_merge_phi, pass_merge_phi): New.
6678         * tree-optimize.c (init_tree_optimization_passes): Add
6679         pass_merge_phi.
6680         * tree-pass.h: Add an extern for pass_merge_phi;
6682 2005-01-20  Richard Henderson  <rth@redhat.com>
6684         PR target/19418
6685         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
6686         (_mm_castps_pd, _mm_castps_si128): New.
6687         (_mm_castsi128_ps, _mm_castsi128_pd): New.
6689 2005-01-20  Richard Henderson  <rth@redhat.com>
6691         PR target/19530
6692         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
6693         __builtin_ia32_vec_init_v2si.
6694         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
6695         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
6696         (ix86_init_mmx_sse_builtins): Create it.
6697         (ix86_expand_builtin): Expand it.
6698         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
6699         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
6700         (vec_extractv2si_0, vec_extractv2si_1): New.
6702 2005-01-20  Richard Henderson  <rth@redhat.com>
6704         PR target/16533
6705         * config/i386/i386.c (ix86_expand_push): New.
6706         * config/i386/mmx.md (push<MMXMODE>1): New.
6707         * config/i386/sse.md (push<SSEMODE>1): New.
6708         * config/i386/i386-protos.h: Update.
6710 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
6712         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
6713         copyright.
6715 2005-01-20  Richard Henderson  <rth@redhat.com>
6717         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
6718         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
6720 2005-01-19  Richard Henderson  <rth@redhat.com>
6722         PR target/19350
6723         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
6724         to V4SFmode in SSE1 fallback load path.
6726 2005-01-19  Richard Henderson  <rth@redhat.com>
6728         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
6729         in QImode expansion to ix86_expand_vector_set.
6730         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
6732 2005-01-19  Richard Henderson  <rth@redhat.com>
6734         PR target/19511
6735         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
6736         subclass of the input class.
6737         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
6738         Always true for cross-SSE1 classes.  Rationalize conditionals.
6739         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
6740         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
6741         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
6742         (movdi_2): Add MMX/SSE zeros.
6743         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
6744         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
6745         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
6746         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
6747         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
6748         (zero_extendsidi2_rex64_1): Remove.
6749         (MOV0 peephole): Check GENERAL_REG_P.
6751 2005-01-19  Richard Henderson  <rth@redhat.com>
6753         PR target/19427
6754         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
6755         shufps elements.
6756         (ix86_expand_vector_extract): Likewise.
6758 2005-01-19  Richard Henderson  <rth@redhat.com>
6760         PR middle-end/19304
6761         * expr.c (emit_move_change_mode): New argument force; use
6762         simplify_gen_subreg if true.
6763         (emit_move_via_alt_mode): Merge into ...
6764         (emit_move_via_integer): ... here.
6765         (emit_move_ccmode): Use emit_move_change_mode directly.
6767 2005-01-19  Richard Henderson  <rth@redhat.com>
6769         PR target/19518
6770         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
6771         (alpha_preferred_reload_class): Handle CONST_VECTOR.
6772         (alpha_emit_set_const_1): Add no_output parameter; don't emit
6773         rtl if true.
6774         (alpha_emit_set_const): Likewise.  Make static.
6775         (alpha_emit_set_long_const): Make static.
6776         (alpha_extract_integer): Split out from alpha_expand_mov.
6777         (alpha_split_const_mov): Likewise.
6778         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
6779         (alpha_legitimate_constant_p): New.
6780         * config/alpha/alpha-protos.h: Update.
6781         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
6782         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
6783         * config/alpha/alpha.md (movsi): Add n alternative.
6784         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
6785         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
6786         (splitters for all of the above): Use alpha_split_const_mov.
6787         * config/alpha/predicates.md (non_add_const_operand): New.
6788         (non_zero_const_operand): New.
6789         (input_operand): Use alpha_legitimate_constant_p after reload.
6791 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
6793         PR tree-optimization/19038
6794         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
6795         (add_candidate): Add ivs with increment in latch only if
6796         allow_ip_end_pos_p is true.
6797         (determine_iv_cost): Use empty_block_p.
6799 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
6801         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
6802         (compute_dominance_frontiers): Ditto.
6804 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
6806         PR target/19529
6807         * config/sh/t-rtems: New.
6808         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
6810 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
6812         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
6813         the offset of the selected field.
6815 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
6817         * tree-cfg.c (remove_forwarder_block): Fix the check to
6818         prevent a nonlocal label from appearing in the middle of a
6819         basic block.
6821 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
6823         PR rtl-optimization/19462
6824         * reorg.c (find_end_label): Create return insn only if
6825         current_function_epilogue_delay_list is empty.
6827 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
6829         * doc/passes.texi: Remove paragraph mentioning new-ra.
6831 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
6833         PR rtl-optimization/15139
6834         * combine.c: Include params.h.
6835         (count_rtxs): New function.
6836         (record_value_for_reg): If replace_rtx would replace at least
6837         2 occurrences of REG in VALUE and TEM is really large, replace REG with
6838         (clobber (const_int 0)) instead of TEM.
6839         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
6840         * params.h (MAX_LAST_VALUE_RTL): New.
6841         * Makefile.in (combine.o): Depend on $(PARAMS_H).
6842         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
6844         PR c/17297
6845         * c-typeck.c (digest_init): Only call build_vector if all constructor
6846         elements are *_CST nodes.
6847         * gimplify.c (gimplify_init_constructor): Likewise.
6849         PR middle-end/19164
6850         * c-typeck.c (digest_init): Only call build_vector if inside_init
6851         is a CONSTRUCTOR.
6853 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
6855         * toplev.c (init_asm_output): Remove dead #ifdef.
6857 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6859         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
6861 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6863         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
6864         accessing DECL_FUNCTION_CODE.
6865         * dojump.c (do_jump): Likewise.
6866         * gimplify.c (gimplify_call_expr): Likewise.
6867         * predict.c (expr_expected_value): Likewise.
6868         (strip_builtin_expect): Likewise.
6869         * tree-inline.c (estimate_num_insns_1): Likewise.
6870         * tree-ssa-loop-im.c (stmt_cost): Likewise
6871         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
6872         (tree_expr_nonnegative_p): Likewise.
6874 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6876         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
6877         variant of the load_pcrel_sym pattern.
6878         * config/sparc/sparc.md (P macro): Move to the top.
6879         (load_pcrel_sym): Macroize using P.
6880         (save_register_window): Likewise.
6882 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
6884         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
6885         ("sordered"): Same.
6887 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
6889         PR C/19472
6890         * c-typeck.c (build_asm_expr): Strip nops off
6891         input memory operands.
6893 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
6895         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
6896         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
6897         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
6898         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
6900 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
6902         PR target/19379
6903         * config/i386/i386.c (override_options): If the 80387 is disabled,
6904         then do not return FP values using FP registers.
6906 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
6908         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
6909         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
6910         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
6911         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
6912         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
6913         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
6914         output.h, postreload-gcse.c, postreload.c, recog.c,
6915         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
6916         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
6917         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
6918         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
6919         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
6920         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
6921         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
6922         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
6924         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
6925         config/alpha/alpha.c, config/arm/vfp.md,
6926         config/i386/emmintrin.h, config/i386/i386-modes.def,
6927         config/i386/i386-protos.h, config/i386/i386.h,
6928         config/i386/pmmintrin.h, config/i386/ppro.md,
6929         config/i386/predicates.md, config/i386/xmmintrin.h,
6930         config/i860/i860.c, config/ia64/ia64-modes.def,
6931         config/ia64/ia64-protos.h, config/ia64/ia64.h,
6932         config/ia64/ia64.md, config/ia64/itanium1.md,
6933         config/ia64/itanium2.md, config/ia64/predicates.md,
6934         config/iq2000/iq2000.h, config/mips/linux64.h,
6935         config/rs6000/aix41.h, config/rs6000/aix43.h,
6936         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
6937         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
6938         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
6939         config/sparc/linux64.h, config/sparc/litecoff.h,
6940         config/sparc/sp64-elf.h, config/sparc/sparc.c,
6941         config/sparc/sparc.h, config/sparc/sparc.md,
6942         config/sparc/sysv4-only.h: Update copyright.
6944 2005-01-18  Richard Henderson  <rth@redhat.com>
6946         PR target/19496
6947         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
6949 2005-01-18  Marc Espie  <espie@openbsd.org>
6950         * config/i386/openbsdelf.h: Typo.
6952 2005-01-18  Richard Henderson  <rth@redhat.com>
6954         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
6955         special case for sse.
6956         * config/i386/predicates.md (sse_comparison_operator): Likewise.
6958 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
6960         * tree-inline.c (estimate_num_insns_1): Added cases for
6961         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
6963 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6965         PR rtl-optimization/19296
6966         * combine.c (simplify_comparison): Rewrite the condition under
6967         which a non-paradoxical SUBREG of a PLUS can be lifted when
6968         compared against a constant.
6970 2005-01-18  Andi Kleen <ak@muc.de>
6972         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
6973         * c.opt (-Wpointer-sign): Add.
6974         * doc/invoke.texi: (-Wpointer-sign): Add.
6976 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
6978         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
6979         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
6980         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
6981         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
6982         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
6983         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
6984         for TARGET_MIX_SSE_I387.
6985         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
6986         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
6987         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
6988         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
6989         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
6990         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
6991         TARGET_MIX_SSE_I387.
6992         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
6993         from expander.
6995 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
6997         PR target/19424
6998         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
6999         Add movaps alternative for xmm reg->reg move.
7001 2005-01-17  Jeff Law  <law@redhat.com>
7003         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
7004         at the end of the main DOM loop rather than just before DOM exits.
7006 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
7008         PR tree-optimization/19121
7009         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
7010         adding aliases to a name tag, also add them to the pointer's
7011         type tag.
7012         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
7013         sensitive alias info at all.  Only check that the two pointers
7014         have compatible pointed-to sets.
7015         * tree-ssa.c (verify_name_tags): Verify that the alias set of
7016         a pointer's type tag is a superset of the alias set of the
7017         pointer's name tag.
7019 2005-01-17  James E Wilson  <wilson@specifixinc.com>
7021         PR target/19357
7022         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
7023         comment to document why.
7025 2005-01-17  Richard Henderson  <rth@redhat.com>
7027         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
7028         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
7029         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
7030         sse2_vmsminv2df3_finite): New.
7031         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
7032         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
7033         Force op1 into register.
7035 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
7037         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
7038         bubblestrap from always rebuilding build directory.
7040 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
7042         * config/s390/s390.md ("*clc"): Remove incorrect '='.
7043         ("*cmpmem_short"): Likewise.
7045 2005-01-17  Steven Bosscher  <stevenb@suse.de>
7047         * basic-block.h: Document BB_* flags.
7048         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
7049         use an sbitmap instead.
7050         * sched-rgn.c (compute_trg_info): Likewise.
7052 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
7054         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
7055         redundant target_cpu_default and extra_parts lines.  Use the default
7056         "from-abi" ISA.
7057         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
7058         (SUBTARGET_EXTRA_SPECS): Delete.
7059         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
7060         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
7061         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
7062         and "n32" for -mabi=n32.
7064 2005-01-17  Ian Lance Taylor  <ian@airs.com>
7066         PR c/5675
7067         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
7068         fold constant variables into initial values.
7070 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
7072         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
7074         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
7075         through the statements backward.
7077 2005-01-17  Ian Lance Taylor  <ian@airs.com>
7079         PR middle-end/13127:
7080         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
7081         a variable set to the return value of the inlined function.
7083 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
7085         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
7086         when modes are tieable.
7088 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
7090         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
7091         of pthread_create to find out if threads are enabled.
7092         * gthr-posix95.h (__gthread_active_p): Likewise.
7094 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
7096         * common.opt (-fnew-ra): Remove.
7097         * ra*.*: Remove.
7098         * toplev.h (flag_new_regalloc): Remove.
7099         * Makefile.in (ra*.*): Don't mention.
7100         * passes.c (rest_of_handle_new_regalloc): Remove.
7101         (rest_of_handle_combine, rest_of_compilation): Always consider
7102         flag_new_regalloc as false.
7103         * doc/invoke.texi: Don't document -fnew-ra.
7105 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
7107         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
7108         last parameter to reg_scan.
7109         * loop.c (loop_optimize): Likewise.
7110         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
7111         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
7112         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
7113         rest_of_handle_gcse, rest_of_handle_loop_optimize,
7114         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
7115         * regclass.c (reg_scan): Likewise, for the declaration.
7116         * rtl.h (reg_scan): Likewise, for the prototype.
7118 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
7120         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
7121         mark_dfs_back_edges.
7123 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
7125         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
7126         (compute_avail): Uses don't go in tmp_gen.
7128 2005-01-16  Steven Bosscher  <stevenb@suse.de>
7130         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
7131         loop to look for a free slot in a page entry.
7133 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7135         PR target/16304
7136         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
7137         * toplev.c (compile_file): Call process_pending_assemble_output_defs
7138         just before targetm.asm_out.file_end.
7139         * tree.h (process_pending_assemble_output_defs): Declare.
7140         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
7141         New functions.
7142         (assemble_alias): Defer generation of assembly code for defines when
7143         TARGET_DEFERRED_OUTPUT_DEFS is true.
7144         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
7145         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
7146         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
7148 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7150         PR target/19336
7151         * pa.c (pa_scalar_mode_supported_p): New function.
7152         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7153         * pa.h (MIN_UNITS_PER_WORD): Add comment.
7155         * pa-protos.h (prefetch_operand): Delete.
7156         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
7157         * pa.c (prefetch_operand): Delete.
7158         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
7159         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
7160         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
7161         and prefetch_nocc_operand.
7162         * pa.md (prefetch): Rework to avoid reload problems handling short
7163         displacements when a cache control completer needs to be provided.
7164         (prefetch_32, prefetch_64): Delete.
7165         (prefetch_cc, prefetch_nocc): New patterns.
7167 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
7169         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
7171 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7173         PR ada/19388
7174         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
7175         exceeds maximum alignment for global common data.
7176         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
7177         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
7179 2004-01-15  Roger Sayle  <roger@eyesopen.com>
7181         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
7183 2004-01-15  Roger Sayle  <roger@eyesopen.com>
7185         * harg-reg-set.h (reg_class_names): Prototype global array.
7186         * regclass.c (reg_class_names): Declare here and initialize to
7187         REG_CLASS_NAMES.
7188         (dump_regclass): Remove local declaration of reg_class_names.
7189         (regclass): Likewise.
7190         * cfg.c (dump_flow_info): Likewise.
7191         * ra-debug.c (reg_class_names): Likewise.
7192         * regrename.c (reg_class_names): Likewise.
7193         * reload.c (reg_class_names): Likewise.
7194         * reload1.c (spill_failure): Likewise.
7195         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
7197 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
7199         * config/s390/s390.md ("reload_outti"): Remove predicate for
7200         output operand.  Abort if operand is not a MEM.
7201         ("reload_outdi", "reload_outdf"): Likewise.
7203 2005-01-15  Marc Espie  <espie@openbsd.org>
7205         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
7206         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
7207         * config/openbsd.h:  Fix C++ includes for native configurations.
7208         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
7209         Add trampoline support.
7210         * config/i386/openbsdelf.h: New.
7212 2005-01-15  Marc Espie  <espie@openbsd.org>
7214         * collect2.c (main): Explicitly parse -dynamic-linker option.
7216 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
7218         PR tree-optimization/19060
7219         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
7220         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
7221         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
7222         and handle extract_range_from_cond returning false.
7223         * fold-const.c (fold): Optimize comparisons with min/max even for
7224         width > HOST_BITS_PER_WIDE_INT.
7226 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
7228         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
7229         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
7230         Remove little endian multilib variants.
7231         Add mips32 multilib variant.
7233 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
7235         * explow.c (copy_all_reg, stabilize): Remove.
7236         * expr.h: Remove the corresponding prototypes.
7238         * rtlanal.c (regs_set_between_p): Remove.
7239         * rtl.h: Remove the corresponding prototype.
7241 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
7243         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
7244         to rs6000_nonimmediate_operand.
7245         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
7246         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
7247         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
7248         rs6000_nonimmediate_operand.
7249         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
7250         rs6000_nonimmediate_operand.
7252 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
7254         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
7256 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7258         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
7259         on e500v2.
7260         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
7261         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
7263         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
7264         (rs6k_nonimmediate_operand): New.
7265         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
7266         correctly.
7267         (legitimate_lo_sum_address_p): Same.
7268         (rs6000_legitimize_address): Same.
7269         (rs6000_legitimize_reload_address): Same.
7270         (rs6000_legitimate_address): Same.
7271         (spe_build_register_parallel): Pass DF and DC modes in a DI
7272         register.
7274         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
7275         to rs6k_nonimmediate_operand.
7277         * config/rs6000/spe.md ("*frob_df_di"): New.
7278         ("*frob_di_df"): New.
7279         ("*frob_di_df_2"): New.
7280         ("*mov_sidf_e500_subreg0"): New.
7281         ("*mov_sidf_e500_subreg4"): New.
7282         ("*movdf_e500_double"): Change predicate to
7283         rs6k_nonimmediate_operand.
7285 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7287         * postreload.c (move2add_note_store): Only call
7288         trunc_int_for_mode on scalar integers.
7290 2005-01-14  Steven Bosscher  <stevenb@suse.de>
7292         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
7293         replace BB_VISITED uses.
7294         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
7295         (propagate_necessity): Check the bitmap instead of BB_VISITED.
7296         (tree_dce_done): Free visited_control_parents.
7297         (perform_tree_ssa_dce): Allocate and clear it.
7298         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
7299         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
7300         instead of BB_VISITED.
7302 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
7304         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
7305         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
7306         Remove unused prototypes.
7308 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7310         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
7311         64-bit register usage.
7312         (spe_func_has_64bit_regs_p): Add FIXME note.
7314 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7316         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
7317         flag_finite_math_only with flag_unsafe_math_optimizations.
7319 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
7321         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
7322         end-of-stack check.
7323         (__tpf_eh_return): Copy TPF private stack area from the module
7324         boundary stack frame.  Add check for when module addresses are
7325         equal, but no stub address is found.
7327 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
7329         PR target/7525
7330         * arm.h (struct machine_function): Add call_via field.
7331         (thumb_call_via_label): Declare.
7332         * arm.c (thumb_call_via_label): New variable.
7333         (thumb_call_reg_needed): New variable.
7334         (arm_output_function_epilogue): For Thumb code, output any per-function
7335         call-indirect trampolines.
7336         (thumb_call_via_reg): New function.
7337         (arm_file_end): New function.
7338         (TARGET_ASM_FILE_END): Call arm_file_end.
7339         (aof_file_end): Likewise.
7340         * arm-protos.h (thumb_call_via_reg): Declare.
7341         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
7342         thumb_call_via_reg in normal case.
7344 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
7346         PR middle-end/19084
7347         PR rtl-optimization/19348
7348         * recog.c (peephole2_optimize): Do global life update if some peephole
7349         decides it doesn't need at least one of its inputs and that change
7350         influences liveness at the start of the basic block.
7352         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
7353         arguments instead of 1.
7355 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
7357         PR middle-end/18820
7358         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
7359         zero for nested functions needing a static chain or functions
7360         with a non-constant address.
7362 2005-01-13  Roger Sayle  <roger@eyesopen.com>
7364         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
7365         (and (sign_extend X) C) into (zero_extend (and X C)).
7367 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
7369         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
7371 2005-01-13  Richard Henderson  <rth@redhat.com>
7373         PR target/19009
7374         PR target/19250
7375         PR target/19252
7376         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
7377         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
7378         not just TARGET_SSE.
7379         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
7380         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
7381         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
7382         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
7383         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
7384         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
7385         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
7386         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
7387         (movdicc_c_rex64): Rename with '*'.
7388         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
7389         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
7390         (movsfcc_1_387): Rename from movsfcc_1.
7391         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
7392         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
7393         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
7394         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
7395         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
7396         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
7397         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
7398         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
7399         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
7400         sse_movdfcc_const0_4): Remove.
7401         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
7402         recognize min/max early.  Update for changed sse cmove patterns.
7403         (ix86_split_sse_movcc): New.
7404         * config/i386/i386-protos.h: Update.
7406 2005-01-13  Steven Bosscher  <stevenb@suse.de>
7408         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
7409         (fix_stmt_v_may_defs): Likewise.
7411 2005-01-13  Richard Henderson  <rth@redhat.com>
7413         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
7414         for converting the mask.
7416 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
7418         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
7419         definition to 600.
7421 2005-01-13  Richard Henderson  <rth@redhat.com>
7423         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
7424         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
7425         IX86_BUILTIN_MOVDQ2Q): Remove.
7426         (IX86_BUILTIN_VEC_EXT_V4SI): New.
7427         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
7428         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
7429         shuffling.
7430         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
7431         (sse2_pextrw): Fix immediate constraint.
7432         (sse2_loadq, sse2_loadq_rex64): Remove.
7433         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
7434         Use __builtin_ia32_vec_ext_<size>.
7435         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
7437 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
7439         * function.c (assign_parm_setup_block): Look inside original
7440         entry_parm when inspecting PARALLEL.
7442 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
7443             Joel Sherrill  <joel@oarcorp.com>
7445         PR target/19399
7446         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
7447         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
7448         rtems_gxx_recursive_mutex_init.
7449         (__gthread_recursive_mutex_lock): New function.
7450         (__gthread_recursive_mutex_trylock): Likewise.
7451         (__gthread_recursive_mutex_unlock): Likewise.
7453 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
7455         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
7457 2005-01-13  Jan Beulich  <jbeulich@novell.com>
7459         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
7460         (ashrti3_internal): Indicate output is early clobber. Generate result
7461         into output rather than first input. Use move for low word of output
7462         if shift count is exactly 64.
7463         (lshrti3_internal): Likewise.
7465 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
7467         PR target/18329
7468         PR target/18330
7469         * reload1.c (delete_output_reload): Don't delete an output reload
7470         if the pseudo lives longer than a single basic block.  Adjust and
7471         improve wording of comment.
7473 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
7475         PR target/19334
7476         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
7477         of TYPE_SIZE where we mean the number of bytes.
7479 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
7481         * function.c (assign_parm_setup_block): Relax condition on
7482         multi-register optimization.
7484 2005-01-12  Nick Clifton  <nickc@redhat.com>
7486         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
7487         an "in_delay_slot" attribute of "no" to prevent them being used in
7488         delay slots.  This is forbidden because they might generate
7489         exceptions.
7491 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
7493         PR target/19389
7494         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
7495         with r->Y and Y->r.
7497 2005-01-12  Nick Clifton  <nickc@redhat.com>
7499         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
7500         passed on to GAS) but do not define, as GAS no longer supports or
7501         needs the -m2000 option.
7503 2005-01-11  Roger Sayle  <roger@eyesopen.com>
7505         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
7506         type as args of unprototyped builtins aren't automatically promoted.
7507         (fold_builtin_abs): Likewise.
7509 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7511         * Makefile.in: Set a `build-warn' variable.
7513 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
7515         PR tree-optimization/17949
7516         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
7517         (find_interesting_uses_address): Use it.
7519 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
7521         * regrename.c (kill_value): Handle subreg's that won't simplify.
7523 2005-01-11  Richard Henderson  <rth@redhat.com>
7525         PR target/13366
7526         * config/i386/i386.h (enum ix86_builtins): Move ...
7527         * config/i386/i386.c: ... here.
7528         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
7529         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
7530         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
7531         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
7532         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
7533         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
7534         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
7535         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
7536         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
7537         IX86_BUILTIN_LOADDDUP): Remove.
7538         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
7539         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
7540         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
7541         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
7542         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
7543         (ix86_init_builtins): Make static.
7544         (ix86_init_mmx_sse_builtins): Update for changed builtins.
7545         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
7546         if all the modes match.  Otherwise, fake it.
7547         (get_element_number, ix86_expand_vec_init_builtin,
7548         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
7549         (ix86_expand_builtin): Make static.  Update for changed builtins.
7550         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
7551         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
7552         (ix86_expand_vector_init_duplicate): New.
7553         (ix86_expand_vector_init_low_nonzero): New.
7554         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
7555         Split out from ix86_expand_vector_init; handle integer modes.
7556         (ix86_expand_vector_init): Use them.
7557         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
7558         * config/i386/i386-protos.h: Update.
7559         * config/i386/predicates.md (reg_or_0_operand): New.
7560         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
7561         (movv2sf_internal): Likewise.  And a splitter to match them all.
7562         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
7563         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
7564         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
7565         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
7566         (mmx_pinsrw): Fix operand ordering.
7567         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
7568         rather than sse_loadss expander.
7569         (movv2df splitter): Similarly.
7570         (sse_loadss, sse_loadlss): Remove.
7571         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
7572         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
7573         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
7574         (sse3_movddup): Rename with '*'.
7575         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
7576         (sse2_loadsd): Remove.
7577         (vec_dupv2df_sse3): Rename from sse3_loadddup.
7578         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
7579         (sse2_pinsrw): Fix argument ordering.
7580         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
7581         (sse2_stored): Remove 'r' destination.
7582         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
7583         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
7584         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
7585         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
7586         vec_extractv16qi, vec_initv16qi): New.
7588         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
7589         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
7590         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
7591         constructor form.
7592         (_mm_load_pd, _mm_store_pd): Use plain dereference.
7593         (_mm_load_si128, _mm_store_si128): Likewise.
7594         (_mm_load1_pd): Use _mm_set1_pd.
7595         (_mm_load_sd): Use _mm_set_sd.
7596         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
7597         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
7598         (_mm_set_epi64): Use _mm_set_epi64x.
7599         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
7600         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
7601         _mm_setr_epi8): Use _mm_set_foo form.
7602         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
7603         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
7604         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
7605         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
7606         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
7607         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
7608         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
7609         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
7610         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
7611         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
7612         (_mm_movedup_pd): Use _mm_shuffle_pd.
7613         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
7614         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
7615         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
7616         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
7617         Use _mm_setzero_ps.
7618         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
7619         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
7620         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
7621         (_mm_store_ps): Use raw dereference.
7622         (_mm_store1_ps): Use _mm_storeu_ps.
7623         (_mm_storer_ps): Use _mm_store_ps.
7624         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
7625         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
7627 2005-01-11  Stan Shebs  <shebs@apple.com>
7629         * config/rs6000/rs6000.c (machopic_output_stub): Issue
7630         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
7632 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
7634         PR target/18761
7635         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
7636         Skip all DECLs except for FIELD_DECLs.
7638 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
7640         * config/s390/s390.c (override_options): Return error if
7641         -mbackchain, -mpacked-stack and -mhard-float are used together.
7642         (s390_va_start): Remove the backchain && packed-stack special case.
7643         (s390_gimplify_va_arg): Likewise.
7644         * doc/invoke.texi: Remove the ABI incompatibility note.
7646 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
7648         * config/s390/s390.c (struct s390_frame_layout): Remove
7649         save_backchain_p.
7650         (s390_frame_info, s390_emit_prologue): Replace occurrences of
7651         save_backchain_p with TARGET_BACKCHAIN.
7653 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
7655         PR target/18916
7656         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
7657         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
7658         * function.c (locate_and_pad_parm): Set new field.
7659         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
7660         Tweak where_pad test to include "none".  Always set mem align for
7661         stack_parm.
7662         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
7663         not sufficient for type.
7664         (assign_parm_setup_block): If stack_parm is zero on entry, always
7665         make a new stack local.  Block move old stack parm if necessary
7666         to new aligned stack local.
7667         (assign_parm_setup_stack): Use a block move to handle
7668         potentially misaligned entry_parm.
7669         (assign_parms_unsplit_complex): Specify required alignment when
7670         creating stack local.
7671         * calls.c (compute_argument_addresses): Override alignment of stack
7672         arg calculated from its type with the alignment given by
7673         FUNCTION_ARG_BOUNDARY.
7674         (store_one_arg): Likewise.
7676 2005-01-11  Jan Beulich  <jbeulich@novell.com>
7678         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
7679         Change respective itanium_class attribute to ialu.
7680         (shladdp4_internal): New.
7681         * config/ia64/predicates.md (shladd_log2_operand): New.
7683 2005-01-11  Richard Henderson  <rth@redhat.com>
7685         * expr.c (store_constructor): Use rtvec_alloc instead of
7686         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
7688 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
7690         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
7692 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
7694         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
7695         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
7696         (TARGET_RWRELOC): Define.
7697         (ia64_rwreloc_section_type_flags): Delete.
7698         (ia64_section_type_flags): New function.
7699         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
7700         (TARGET_RWRELOC): Define.
7702 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
7704         PR target/18987
7705         * config/ia64/ia64.c (process_set): For alloc insn, only call
7706         process_epilogue is !frame_pointer_needed.
7708 2005-01-10  Roger Sayle  <roger@eyesopen.com>
7710         PR c++/19355
7711         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
7712         unary operator and can't be treated as a binary/comparison operator.
7714 2005-01-10  Richard Henderson  <rth@redhat.com>
7716         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
7717         (ix86_return_in_memory): Likewise.
7718         (function_arg_advance):  Likewise.  Mirror structure in function_arg
7719         for choosing register to advance.
7721 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
7723         * tree-vectorizer.c, tree.def: Fix comment typos.
7725 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
7727         * config/s390/s390.c (struct processor_costs): 4 new fields:
7728         ddbr, ddr, debr, der.
7729         (s390_rtx_costs): More precise handling of divide instructions.
7731 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
7733         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
7735 2005-01-10  Jan Beulich  <jbeulich@novell.com>
7737         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
7738         names resulting from -ffunction-sections/-fdata-sections and linkonce
7739         ones.
7740         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
7741         based on the section name. Rearrange the section name comparison logic
7742         slightly so that each section name is compared against at most once.
7744 2005-01-10  Ben Elliston  <bje@au.ibm.com>
7746         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
7747         targets for which -fPIC reduces limitations on the GOT size.
7749 2005-01-09  Falk Hueffner  <falk@debian.org>
7751         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
7752         X/C1 cmpop C2.
7754 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
7756         PR target/18720
7757         * collect2.c (main): Set aixrtl_flag for -brtl option.
7758         (resolve_lib_name): Search for .so file extension before .a
7759         if aixrtl_flag set.
7761 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
7763         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
7764         (vect_analyze_data_refs_alignment): Add dump prints.
7766 2005-01-09  Ira Rosen  <irar@il.ibm.com>
7768         * tree-vectorizer.c (vect_analyze_offset_expr): Use
7769         expr_invariant_in_loop_p.
7770         Initialize outputs first thing in the function.
7771         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
7772         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
7773         (vect_analyze_pointer_ref_access): Check that the initial condition of
7774         the access function is loop invariant.
7776 2005-01-09  Richard Henderson  <rth@redhat.com>
7778         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
7779         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
7780         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
7781         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
7782         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
7783         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
7784         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
7785         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
7786         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
7787         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
7788         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
7789         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
7790         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
7791         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
7792         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
7793         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
7794         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
7795         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
7796         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
7797         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
7798         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
7799         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
7800         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
7801         mmx_ prefix.
7802         (mmx_clrdi, pavgusb): Remove.
7803         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
7804         with leading sse_ prefix.
7805         * config/i386/sse.md: Receive them.
7806         * config/i386/mmx.md: New file.
7807         (MMXMODE12, MMXMODE24, mmxvecsize): New.
7808         (subrv2sf3): Turn into expander for normal subtraction.
7809         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
7810         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
7811         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
7812         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
7813         commutative; use ix86_binary_operator_ok.
7814         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
7815         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
7816         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
7817         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
7818         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
7819         Macroize from existing patterns; use ix86_binary_operator_ok.
7820         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
7821         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
7822         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
7823         with vec_select+vec_concat.
7824         (mmx_pshufw, mmx_pshufw_1): Likewise.
7825         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
7826         (mmx_uavgv4hi3): Model correctly.
7827         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
7828         _mm_xor_si64): Remove casts.
7830 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
7832         PR tree-optimization/19224
7833         * tree-scalar-evolution.c (get_instantiated_value,
7834         set_instantiated_value): New functions.
7835         (instantiate_parameters_1): Cache the results.
7836         (instantiate_parameters, resolve_mixers): Initialize and free
7837         the cache.
7839 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
7841         * config/i386/i386.md (addhi_4): Correct reference in comment.
7842         (addqi_4): Same.
7844 2005-01-08  Richard Henderson  <rth@redhat.com>
7846         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
7847         (_mm_cvtsi128_si64x): Likewise.
7848         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
7849         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
7850         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
7851         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
7852         * config/i386/i386-protos.h: Update.
7853         * config/i386/i386.c (print_operand): Add 'H'.
7854         (ix86_fixup_binary_operands): Split out from ...
7855         (ix86_expand_binary_operator): ... here.
7856         (ix86_fixup_binary_operands_no_copy): New.
7857         (ix86_expand_fp_absneg_operator): Handle vector mode results.
7858         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
7859         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
7860         (safe_vector_operand): Use CONST0_RTX.
7861         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
7862         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
7863         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
7864         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
7865         special cases.
7866         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
7867         (IX86_BUILTIN_CMPNGESS): New.
7868         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
7869         (attr type): Add sselog1.
7870         (attr unit, attr memory): Handle it.
7871         (movti, movti_internal, movti_rex64): Move near other integer moves.
7872         (movtf, movtf_internal): Move near other fp moves.
7873         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
7874         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
7875         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
7876         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
7877         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
7878         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
7879         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
7880         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
7881         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
7882         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
7883         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
7884         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
7885         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
7886         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
7887         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
7888         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
7889         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
7890         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
7891         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
7892         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
7893         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
7894         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
7895         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
7896         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
7897         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
7898         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
7899         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
7900         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
7901         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
7902         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
7903         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
7904         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
7905         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
7906         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
7907         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
7908         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
7909         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
7910         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
7911         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
7912         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
7913         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
7914         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
7915         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
7916         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
7917         same time.
7918         (SSEPUSH, push<SSEPUSH>): Remove.
7919         (MMXPUSH, push<MMXPUSH>): Remove.
7920         (sse_movaps, sse_movaps_1, sse_movups): Remove.
7921         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
7922         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
7923         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
7924         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
7925         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
7926         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
7927         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
7928         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
7929         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
7930         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
7931         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
7932         (ppro_sse_log_V4SF): Handle sselog1.
7933         * config/i386/predicates.md (const_0_to_1_operand): New.
7934         (const_0_to_255_mul_8_operand): New.
7935         (const_1_to_31_operand): Rename from const_int_1_31_operand.
7936         (const_2_to_3_operand, const_4_to_7_operand): New.
7937         * config/i386/sse.md: New file.
7938         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
7939         (sse_movups): Rename from sse_movups_1.
7940         (sse_loadlss): Rename from sse_loadss_1.
7941         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
7942         from the name.
7943         (negv4sf2): Use ix86_expand_fp_absneg_operator.
7944         (absv4sf2, negv2df, absv2df): New.
7945         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
7946         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
7947         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
7948         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
7949         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
7950         (sse3_addsubv4sf3): Model correctly.
7951         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
7952         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
7953         (sse_movhlps): Model with vec_select+vec_concat.
7954         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
7955         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
7956         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
7957         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
7958         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
7959         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
7960         sse2_pshufhw_1): Likewise.
7961         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
7962         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
7963         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
7964         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
7965         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
7966         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
7967         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
7968         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
7969         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
7970         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
7971         sminv8hi3): Mark commutative
7972         operands.  Use ix86_binary_operator_ok.
7973         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
7974         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
7975         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
7976         sse2_punpcklqdq): Allow operand2 in memory.
7977         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
7978         sse2_movsd): Add memory alternatives.
7979         (sse_storelps): Turn expander into an insn; split after reload.
7980         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
7981         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
7983 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7985         * configure.ac (DWARF-2 debug_line): Use objdump.
7986         * configure: Regenerate.
7988 2005-01-08  Jeff Law  <law@redhat.com>
7989             Diego Novillo  <dnovillo@redhat.com>
7991         PR tree-optimization/18241
7992         * tree-nrv.c (tree_nrv): Ignore volatile return values.
7993         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
7994         statements with volatile operands.
7995         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
7996         operands after marking a statement with has_volatile_ops.
7998 2005-01-08  Roger Sayle  <roger@eyesopen.com>
8000         * tree.c (int_fits_type_p): Always honor integer constant
8001         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
8003 2005-01-08  Roger Sayle  <roger@eyesopen.com>
8005         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
8006         the latent bug in rtl_delete_block has been resolved.
8008 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
8010         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
8011         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
8013 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
8015         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
8016         library as @multilib_dir@/$(SHLIB_SONAME).
8018 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8020         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
8021         * configure: Regenerate.
8023 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
8025         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
8026         TYPE_MODE.
8028 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
8030         PR target/13674
8031         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
8032         Convert non-word aligned offset address using ld/std into
8033         indirect address.
8035 2005-01-07  Richard Henderson  <rth@redhat.com>
8037         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
8039 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
8041         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
8043 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
8045         PR tree-optimization/19283
8046         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
8047         is not shorter than the original type.
8049         PR rtl-optimization/19012
8050         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
8052         PR rtl-optimization/18861
8053         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
8054         (FULL_STATE): Define.
8055         (mark_tablejump_edge): New function.
8056         (purge_dead_tablejump_edges): New function.
8057         (find_bb_boundaries): Use it.
8059         PR tree-optimization/18828
8060         * builtins.c (expand_builtin_next_arg): Remove argument and all
8061         the argument checking.
8062         (expand_builtin): Adjust caller.
8063         (expand_builtin_va_start): Likewise.  Remove error for too many
8064         arguments.
8065         (fold_builtin_next_arg): Issue error for too many arguments.
8066         After checking arguments, replace them with magic arguments that
8067         prevent further checking of the args.
8069 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8071         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
8073 2005-01-06  Roger Sayle  <roger@eyesopen.com>
8075         PR target/6077
8076         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
8077         and %{.S:...} (and their negative variants) to test whether the
8078         input file is assembler or pre-processed-assembler independent of
8079         the actual filename extension.
8081 2005-01-06  Roger Sayle  <roger@eyesopen.com>
8083         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
8084         of sign or zero extended values.
8086 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
8088         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
8089         for IBM long double format correctly.
8091 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
8093         Fix PR tree-optimization/18792
8095         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
8096         to first_loop_depth, and use loop depth instead of loop number.
8097         (build_classic_dir_vector): Ditto.
8098         (compute_data_dependences_for_loop): Use depth, not loop number.
8099         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
8100         number. Pass in loops, instead of loop numbers.
8101         (gather_interchange_stats): Ditto.
8102         (linear_transform_loops): Ditto.
8104 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
8106         PR rtl-opt/13299
8107         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
8108         biv_fits_mode_p, extension_within_bounds_p): New functions.
8109         (check_ext_dependent_givs): Use them.
8111 2005-01-06  Roger Sayle  <roger@eyesopen.com>
8113         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
8114         more than one barrier, in which case we should delete them all.
8116 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
8118         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
8120 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
8122         Fix PR middle-end/19286
8123         Fix PR debug/19267
8124         * dwarf2out.c (gen_subprogram_die): If we've already tried to
8125         output this subprogram, simply ignore this attempt to do it again.
8126         (add_abstract_origin_attribute): Don't abort trying to add the abstract
8127         origin attribute if it's not possible.
8128         (gen_block_die): Don't ignore subblocks of "unused" blocks.
8129         (decls_for_scope): Ditto.
8130         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
8131         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
8133 2005-01-05  Richard Henderson  <rth@redhat.com>
8135         PR target/11327
8136         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
8137         (bdesc_2arg): Use it.
8138         (ix86_expand_binop_builtin): Force operands into registers
8139         when optimizing.
8140         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
8141         ix86_expand_sse_compare, ix86_expand_sse_comi,
8142         ix86_expand_builtin): Likewise.
8144 2005-01-05  Richard Henderson  <rth@redhat.com>
8146         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
8147         and VEC_SELECT.
8148         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
8149         (mulv4hi3): Set itanium_class mmmul.
8150         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
8151         (fpack): Rename from fpack_sfsf.
8153 2005-01-05  Richard Henderson  <rth@redhat.com>
8155         PR rtl-opt/10692
8156         * reload1.c (do_input_reload): Restrict the optimization deleteing
8157         a previous output reload to RELOAD_FOR_INPUT.
8159 2005-01-05  Steven Bosscher  <stevenb@suse.de>
8161         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
8162         comment that we fall through after case.
8163         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
8164         (distribute_links): Likewise.
8165         * cse.c (cse_insn): Likewise.
8166         * cselib.c (cselib_invalidate_mem): Likewise.
8167         * df.c: Update comments at the top of the file.
8168         (read_modify_subreg_p): Update comments here too.
8169         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
8170         * flow.c (mark_set_1): Likewise.
8171         (mark_used_regs): Likewise.
8172         * gcse.c (mems_conflict_for_gcse_p): Likewise.
8173         (canon_list_insert): Likewise.
8174         (mark_set): Likewise.
8175         (try_replace_reg): Likewise.
8176         (store_killed_in_insn): Likewise.
8177         * loop.c (count_one_set): Likewise.
8178         (basic_induction_var): Likewise.
8179         * postreload-gcse.c (find_mem_conflicts): Likewise.
8180         * postreload.c (reload_combine_note_store): Likewise.
8181         (move2add_note_store): Likewise.
8182         * reload.c (find_equiv_reg): Likewise.
8183         (mark_referenced_resources): Likewise.
8184         * rtlanal.c (set_noop_p): Likewise.
8185         (note_stores): Likewise.
8186         (note_uses): Likewise.
8187         * sched-deps.c (sched_analyze_1): Likewise.
8188         * sched-rgn.c (check_live_1): Likewise.
8189         (update_live_1): Likewise.
8190         * config/i860/i860.c: Likewise.
8192         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
8193         an lvalue.
8194         (ZERO_EXTRACT): Mention that this one can be an lvalue.
8196         * doc/rtl.texi: Update documentation for bit-fields and SET.
8198 2005-01-05  Roger Sayle  <roger@eyesopen.com>
8200         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
8202 2005-01-05  Jan Hubicka  <jh@suse.cz>
8203             Richard Henderson  <rth@redhat.com>
8205         PR target/18910
8206         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
8207         with an offset.
8209 2005-01-05  Richard Henderson  <rth@redhat.com>
8211         PR target/12902
8212         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
8213         (sse_shufps): Change operand 3 to const_int_operand.
8214         (sse2_storelps): Fix typo in template.
8215         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
8216         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
8217         (ix86_expand_builtin): Likewise.
8219 2005-01-05  Julian Brown  <julian@codesourcery.com>
8221         * config/arm/arm.c (arm_return_in_memory): Treat complex types
8222         as aggregates for AAPCS ABIs.
8224 2005-01-05  Stan Shebs  <shebs@apple.com>
8226         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
8227         Mach-O getters if ppc64.
8228         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
8229         size argument.
8230         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
8231         signed four-byte field for global code case.
8232         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
8234 2005-01-05  Roger Sayle  <roger@eyesopen.com>
8236         PR middle-end/19100
8237         * c-common.c: Include real.h.
8238         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
8239         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
8240         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
8241         * Makefile.in (c-common.o): Update dependencies.
8243 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
8245         * c-parse.in (asm_string): Add trailing semicolon.
8247 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
8249         * c-parse.in (asm_string): New.  Don't allow wide strings in
8250         'asm'.
8251         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
8252         asm_string instead of STRING.
8254 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
8256         * c-typeck.c (constructor_no_implicit): Remove.
8257         (set_designator, process_init_element): Don't check
8258         constructor_no_implicit.
8260 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
8261             Kaz Kojima  <kkojima@gcc.gnu.org>
8263         PR target/16482
8264         * lcm.c (create_pre_exit): New.
8265         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
8266         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
8268 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
8270         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
8271         -msoft-float in target_float_switch.
8272         * arm.c (arm_override_options): Fix processing of target_float_switch.
8274 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
8276         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
8277         preferencing.
8279 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
8281         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
8282         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
8284 2005-01-04  Roger Sayle  <roger@eyesopen.com>
8286         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
8287         if deleting the then-block allows the test-block to fallthru to the
8288         else-block.
8290 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
8292         PR c/19152
8293         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
8294         after the full declaration if the are in two different TUs.
8296 2005-01-04  Richard Henderson  <rth@redhat.com>
8298         PR tree-opt/19158
8299         * tree-sra.c (generate_one_element_init): Just
8300         call gimplify_and_add.
8301         (generate_element_init): Record the
8302         new referenced variables and mark them for renaming
8303         and split out to ...
8304         (generate_element_init_1): This.
8305         (scalarize_init): Don't call push_gimplify_context/
8306         pop_gimplify_context.
8308 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
8310         * toplev.c (get_src_pwd): Handle failure of getpwd().
8312 2005-01-04  Roger Sayle  <roger@eyesopen.com>
8314         * fold-const.c (fold_single_bit_test): Delete unreachable handling
8315         of TRUTH_NOT_EXPR.
8316         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
8317         all the cases handled by it are inverted by invert_truthvalue.
8319 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8321         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
8322         (save_register_windowsi): Likewise.
8324 2005-01-04  Richard Henderson  <rth@redhat.com>
8326         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
8328 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
8330         PR middle-end/17767
8331         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
8332         any simplifications of vector mode comparison operators.
8333         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
8335 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
8336             Devang Patel  <dpatel@apple.com>
8338         PR tree-optimization/18308
8339         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
8340         the operands before creating a new expression.
8341         * dojump.c (do_jump): Make drop_through_label available
8342         for all cases.  Add expansion of COND_EXPR.
8344 2005-01-04  Ira Rosen  <irar@il.ibm.com>
8346         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
8347         INTEGER_CST instead of TREE_CONSTANT.
8348         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
8349         instead of TREE_CONSTANT.
8350         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
8351         instead of TREE_CONSTANT.
8353 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8355         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
8357 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
8359         PR target/19240
8360         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
8361         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
8363 2005-01-03  Richard Henderson  <rth@redhat.com>
8365         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
8366         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
8367         fold_convert_const_real_from_real): Split out from ...
8368         (fold_convert_const): ... here.
8370 2005-01-03  Richard Henderson  <rth@redhat.com>
8372         PR target/19235
8373         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
8374         (mov<MMXMODEI>_internal): Likewise.
8375         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
8376         Add V2SF case; use it for SSE1; don't use TI.
8377         (movdf_integer): Likewise.
8378         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
8380 2005-01-03  Ira Rosen  <irar@il.ibm.com>
8382         * tree-vectorizer.c (vect_strip_conversions): New function.
8383         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
8384         check for binary class.
8386 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
8388         Fix PR debug/17924
8389         Fix PR debug/19191
8390         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
8391         is a decl.
8392         * gimple-low.c (mark_blocks_with_used_vars): New function.
8393         (mark_blocks_with_used_subblocks): Ditto.
8394         (mark_used_blocks): Ditto.
8395         (pass_mark_used_blocks): New pass.
8396         * tree-inline.c: Include debug.h.
8397         (expand_call_inline): Call outlining_inline_function here.
8398         * tree-optimize.c (init_tree_optimization_passes): Add
8399         pass_mark_used_blocks.
8400         * tree-pass.h (pass_mark_used_blocks): New.
8401         * Makefile.in (tree-inline.o): Add debug.h dependency.
8403 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
8405         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
8406         VAR_DECLs to have weak_import attribute.
8408         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
8409         'struct ucontext'.
8411 2004-01-03  Steven Bosscher  <stevenb@suse.de>
8413         * passes.c (rest_of_compilation): Don't run regmove if only
8414         flag_expensive_optimizations, require flag_regmove instead.
8416 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8418         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
8419         register "sparc".
8420         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
8421         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
8422         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
8423         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
8425 2005-01-03  Richard Henderson  <rth@redhat.com>
8427         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
8428         (ia64_const_ok_for_letter_p): New.
8429         (ia64_const_double_ok_for_letter_p): New.
8430         (ia64_extra_constraint): New.
8431         (ia64_expand_vecint_compare): New.
8432         (ia64_expand_vcondu_v2si): New.
8433         (ia64_expand_vecint_cmov): New.
8434         (ia64_expand_vecint_minmax): New.
8435         (ia64_print_operand): Add 'v'.
8436         (ia64_preferred_reload_class): New.
8437         (ia64_vector_mode_supported_p): New.
8438         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
8439         (PREFERRED_RELOAD_CLASS): Move to function.
8440         (CONST_OK_FOR_LETTER_P): Move to function.
8441         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
8442         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
8443         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
8444         (EXTRA_CONSTRAINT): Move to function.
8445         * config/ia64/ia64.md: Include vect.md.
8446         (itanium_class): Add mmalua.
8447         (type): Handle it.
8448         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
8449         (1b_mmalua): New.
8450         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
8451         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
8452         CONST0_RTX.
8453         (const_int_2bit_operand): New.
8454         (fr_reg_or_0_operand): New.
8455         * config/ia64/ia64-modes.def: Add vector modes.
8456         * config/ia64/ia64-protos.h: Update.
8457         * config/ia64/vect.md: New file.
8459 2005-01-03  Richard Henderson  <rth@redhat.com>
8461         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
8463 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
8465         PR target/19236
8466         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
8467         to SFmode.
8468         (log1pdf2): Change mode of operands[0,1] to DFmode.
8470 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8472         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
8473         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
8474         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
8475         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
8476         SPARC_RELAXED_ORDERING.
8478 2005-01-03  Richard Henderson  <rth@redhat.com>
8479             Uros Bizjak  <uros@kss-loka.si>
8481         PR target/14631
8482         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
8483         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
8484         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
8485         handling.
8486         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
8487         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
8488         const_pow2_1_to_128_operand): New predicates.
8490 2005-01-02  Greg McGary  <greg@mcgary.org>
8492         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
8493         anonymous decls.
8494         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
8495         object.  [ptr_type]: Remove unused variable.
8496         Remember nearest addressable array-element or record-component
8497         when checking bitfield components.  Tolerate empty BIND_EXPR.
8499 2005-01-01  Richard Henderson  <rth@redhat.com>
8501         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
8502         that don't narrow the value.  Fail for other conversions.
8504 2005-01-01  Richard Henderson  <rth@redhat.com>
8506         PR c/19031
8507         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
8508         * c-lang.c (finish_file): Don't do it here.
8509         * objc/objc-act.c (objc_finish_file): Likewise.
8511         * cgraph.c (decl_assembler_name_equal): New.
8512         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
8513         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
8514         * cgraph.h (struct cgraph_varpool_node): Add next.
8515         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
8516         * varasm.c (assemble_alias): Mark the target as needed.
8518 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
8520         PR middle-end/19221
8521         * function.c (get_arg_pointer_save_area): Use entry_of_function
8522         instead of get_insns.
8524 2005-01-01  Roger Sayle  <roger@eyesopen.com>
8525             Andrew Pinski  <pinskia@physics.uc.edu>
8526             James E. Wilson  <wilson@specifixinc.com>
8528         PR rtl-optimization/12092
8529         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
8530         is zero.
8532 2005-01-01  Roger Sayle  <roger@eyesopen.com>
8533             Olivier Hainque  <hainque@act-europe.fr>
8535         * tree.c (int_fits_type_p): A narrower type always fits in a
8536         wider one, except for negative values into unsigned types.
8538 2005-01-01  Roger Sayle  <roger@eyesopen.com>
8540         * tree.c (int_fits_type_p): Compare the result of force_fit_type
8541         with the original constant rather than require TREE_OVERFLOW.
8543 2005-01-01  Steven Bosscher  <stevenb@suse.de>
8545         PR middle-end/17544
8546         * c-decl.c (finish_function): If compiling C99, annotate the
8547         compiler generated return with the current file name and line 0.
8548         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
8549         the source line is greater than 0.
8550         (remove_bb): Likewise.
8552 See ChangeLog.12 for earlier changes.