1 2005-03-01 David Edelsohn <edelsohn@gnu.org>
3 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
4 CCEQ mode for branch_positive_comparison_operator test.
5 * config/rs6000/predicates (branch_comparison_operator): Revert to
7 (scc_comparison_operator): Same.
8 (branch_positive_comparison_operator): Same.
10 2005-03-01 Hans-Peter Nilsson <hp@axis.com>
12 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
13 (cris_delay_slots_for_epilogue): Remove.
14 (save_last): Move into cris_target_asm_function_epilogue.
15 (cris_target_asm_function_epilogue): Remove tests for file being
17 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
18 (cris_delay_slots_for_epilogue): Remove prototypes.
19 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
20 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
22 2005-03-01 David Edelsohn <edelsohn@gnu.org>
24 * config/rs6000/predicates.md (branch_comparison_operator): Change
25 to define_special_predicate.
26 (scc_comparison_operator): Same.
27 (branch_positive_comparison_operator): Same.
29 2005-03-01 Daniel Berlin <dberlin@dberlin.org>
31 * Makefile.in (tree-ssa-sink.o): New.
32 (OBJS-common): Add tree-ssa-sink.o.
33 * common.opt: Add -ftree-sink
34 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
35 * timevar.def (TV_TREE_SINK): new timevar.
36 * tree-flow.h (is_hidden_global_store): Prototype.
37 * tree-optimize.c (init_tree_optimization_passes): Add
39 * tree-pass.h (pass_sink_code): New.
40 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
41 for non-obvious global store store to is_hidden_global_store, and
42 call that new function.
43 * tree-ssa-sink.c: New file.
44 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
45 * doc/passes.texi: Document forward store motion.
46 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
47 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
48 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
49 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
51 2005-03-01 Per Bothner <per@bothner.com>
53 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
54 and we have a non-zero column-number, add it to the message.
55 Also factor out the diagnostic_kind_text.
57 2005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
59 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
60 flow_loop_pre_header_scan, flow_loop_pre_header_find,
61 flow_loop_scan): Removed.
62 (flow_loop_dump): Do not dump removed fields.
63 (flow_loop_free): Do not free removed fields.
64 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
65 (loop_exit_edge_p): New function.
66 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
67 num_pre_header_edges, entry_edges, num_entries, exit_edges,
68 num_exits, exits_doms.
69 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
70 LOOP_EDGES, LOOP_ALL): Removed.
71 (flow_loop_scan): Declaration removed.
72 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
73 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
75 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
76 (if_convert): Call flow_loops_find and flow_loops_free
77 when calling mark_loop_exit_edges.
78 * cfgloopanal.c (mark_loop_exit_edges): Moved from
79 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
80 free_dominance_info calls.
81 * loop-init.c (flow_loops_find): Ditto.
82 * passes.c (rest_of_handle_branch_prob): Ditto.
83 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
84 * loop-unroll.c (analyze_insns_in_loop): Do not use
86 * predict.c (predict_loops): Do not call flow_loop_scan.
87 Use get_loop_exit_edges.
88 (tree_estimate_probability): Do not pass flags to flow_loops_find.
89 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
90 Do not use EDGE_LOOP_EXIT.
91 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
92 to bb_with_exit_edge_p.
93 (if_convertible_loop_p): Do not call flow_loop_scan. Use
94 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
95 to bb_with_exit_edge_p.
96 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
98 * tree-loop-linear.c (linear_transform_loops): Do not call
99 flow_loop_scan. Use loop->single_exit.
100 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
101 (vect_analyze_loop_form): Do not call flow_loop_scan.
102 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
104 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
106 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
107 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
108 slpeel_tree_duplicate_loop_to_edge_cfg,
109 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
110 Use loop_preheader_edge and loop->single_exit. Do not call
113 2005-03-01 Nick Clifton <nickc@redhat.com>
115 * config/arm/arm.c (thumb_find_work_register): Check all of the
116 argument registers to see if they are free, and a couple of
117 special cases where the last argument register but can be proved
118 to be available during the function's prologue.
119 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
120 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
121 thumb_unexpanded_epilogue): Use unsigned long as the type for the
123 (thumb_compute_save_reg_mask): Likewise. Also use
124 thumb_find_work_register() to ensure that there is agreement about
125 which work register is going to be used in the prologue.
126 (thumb_output_function_prologue): Use unsigned long as the type
127 for the register bit-mask. Also delay pushing the link register if
128 other high registers are going to be pushed.
129 (thumb_compute_save_reg_mask, emit_multi_reg_push,
130 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
131 redundant prototypes.
133 2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
136 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
137 and after reload in REG+REG indexed addresses without REG_POINTER
138 set in the base and not set in the index.
140 2005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
142 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
144 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
145 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
146 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
147 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
148 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
150 * config.gcc (sh*-*-linux*): Use config/linux.h.
152 2005-02-28 Dale Johannesen <dalej@apple.com>
153 Stan Shebs <shebs@apple.com>
155 Rewrite of 64-bit Darwin structure-by-value pass/return.
156 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
157 intoffset, use_stack, named.
158 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
159 (rs6000_darwin64_record_arg_advance_flush): New.
160 (rs6000_darwin64_record_arg_advance_recurse): New.
161 (rs6000_darwin64_record_arg_flush): New.
162 (rs6000_darwin64_record_arg_recurse): New.
163 (rs6000_darwin64_record_arg): New.
164 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
165 (function_arg_boundary): Handle 128-bit aligned structs.
166 (function_arg_advance): Rewrite darwin64 struct handling.
167 (function_arg): Call rs6000_darwin64_record_arg.
168 (function_arg_partial_nregs): Handle darwin64 structs.
169 (rs6000_darwin64_function_value): Remove.
170 (rs6000_function_value): Call rs6000_darwin64_record_arg.
172 2005-02-28 Roger Sayle <roger@eyesopen.com>
174 PR tree-optimization/20216
175 * tree-chrec.c (tree_fold_factorial): Delete.
176 (tree_fold_binomial): Change argument list to take a return type
177 and change the type of K to unsigned int. Rewrite to avoid explicit
178 evaluation of factorials, and (recursively) calling fold to perform
179 compile-time arithmetic. Return NULL on (internal) overflow.
180 (chrec_evaluate): Change type of K to an unsigned int. Avoid
181 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
182 if any intermediate calculation overflows.
183 (chrec_apply): Update call to chrec_evaluate.
185 2005-02-28 James E Wilson <wilson@specifixinc.com>
187 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
189 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
192 * c-parser.c (c_parser_compound_statement): Return error_mark_node
193 instead of NULL_TREE on error.
195 2005-02-28 David Edelsohn <edelsohn@gnu.org>
197 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
198 (EASY_VECTOR_15_ADD_SELF): Remove.
199 (num_insns_constant_wide): Not static.
200 (validate_condition_mode): Not static.
201 (toc_relative_expr_p): Not static.
202 (legitimate_indirect_address_p): Not static.
203 (macho_lo_sum_memory_operand): Not static.
204 (invalid_e500_subreg): Not static.
205 (easy_vector_same): Not static.
206 (easy_vector_splat_const): Not static.
207 (RS6000_SYMBOL_REF_TLS_P): Remove.
208 (any_operand): Delete.
209 (any_parallel_operand): Delete.
210 (count_register_operand): Delete.
211 (altivec_register_operand): Delete.
212 (xer_operand): Delete.
213 (s8bit_cint_operand): Delete.
214 (short_cint_operand): Delete.
215 (u_short_cint_operand): Delete.
216 (non_short_cint_operand): Delete.
217 (exact_log2_cint_operand): Delete.
218 (gpc_reg_operand): Delete.
219 (cc_reg_operand): Delete.
220 (cc_reg_not_cr0_operand): Delete.
221 (reg_or_short_operand): Delete.
222 (reg_or_neg_short_operand): Delete.
223 (reg_or_aligned_short_operand): Delete.
224 (reg_or_u_short_operand): Delete.
225 (reg_or_cint_operand): Delete.
226 (reg_or_arith_cint_operand): Delete.
227 (reg_or_add_cint64_operand): Delete.
228 (reg_or_sub_cint64_operand): Delete.
229 (reg_or_logical_cint_operand): Delete.
230 (got_operand): Delete.
231 (got_no_const_operand): Delete.
232 (easy_fp_constant): Delete.
233 (easy_vector_constant): Delete.
234 (easy_vector_constant_add_self): Delete.
235 (zero_constant): Delete.
236 (zero_fp_constant): Delete.
237 (volatile_mem_operand): Delete.
238 (offsettable_mem_operand): Delete.
239 (mem_or_easy_const_operand): Delete.
240 (add_operand): Delete.
241 (non_add_cint_operand): Delete.
242 (logical_operand): Delete.
243 (non_logical_cint_operand): Delete.
244 (mask_operand): Delete.
245 (mask_operand_wrap): Delete.
246 (mask64_operand): Delete.
247 (mask64_2_operand): Delete.
248 (and64_operand): Delete.
249 (and64_2_operand): Delete.
250 (and_operand): Delete.
251 (reg_or_mem_operand): Delete.
252 (lwa_operand): Delete.
253 (symbol_ref_operand): Delete.
254 (call_operand): Delete.
255 (current_file_function_operand): Delete.
256 (input_operand): Delete.
257 (rs6000_nonimmediate_operand): Delete.
258 (rs6000_tls_symbol_ref): Delete.
259 (save_world_operation): Delete.
260 (restore_world_operation): Delete.
261 (load_multiple_operation): Delete.
262 (store_multiple_operation): Delete.
263 (vrsave_operation): Delete.
264 (mfcr_operation): Delete.
265 (mtcrf_operation): Delete.
266 (lmw_operation): Delete.
267 (stmw_operation): Delete.
268 (branch_comparison_operator): Delete.
269 (branch_positive_comparison_operator): Delete.
270 (scc_comparison_operator): Delete.
271 (trap_comparison_operator): Delete.
272 (boolean_operator): Delete.
273 (boolean_or_operator): Delete.
274 (min_max_operator): Delete.
275 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
276 (EASY_VECTOR_15): Moved to here.
277 (EASY_VECTOR_15_ADD_SELF): Move to here.
278 (PREDICATE_CODES): Delete.
279 * config/rs6000/rs6000-protos.h: Delete predicate functions.
280 Declare functions no longer static.
281 * config/rs6000/predicates.md: New.
282 * config/rs6000/rs6000.md: Include predicates.md
284 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
286 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
287 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
289 * cfgrtl.c (need_fake_edge_p): Likewise.
290 * combine.c (distribute_notes): Likewise.
291 * emit-rtl.c (try_split): Likewise.
292 * recog.c (peephole2_opimize): Likewise.
293 * reg-notes.def (ALWAYS_RETURN): Remove.
294 * rtl.h (LCT_ALWAYS_RETURN): Remove.
295 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
296 * tree.h (ECF_ALWAYS_RETURN): Remove.
298 2005-02-28 Roger Sayle <roger@eyesopen.com>
301 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
302 between different machine modes is never a "useless" conversion.
304 2005-02-28 Geert Bosch <bosch@gnat.com>
307 * doc/contrib.texi: List contributors for Ada front end
309 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
311 * simplify-rtx.c (simplify_unary_operation_1,
312 simplify_const_unary_operation): New, extracted from...
313 (simplify_unary_operation): ... this one.
314 (simplify_binary_operation_1,
315 simplify_const_binary_operation): New, extracted from...
316 (simplify_binary_operation): ... this one.
317 * rtl.h (simplify_const_unary_operation,
318 simplify_const_binary_operation): Add prototypes.
320 2005-02-28 Julian Brown <julian@codesourcery.com>
322 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
323 building libjava and caused PR regression/20228.
325 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
328 * Makefile.in (host_subdir): New.
329 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
330 * configure: Regenerate.
332 2005-02-27 Zack Weinberg <zack@codesourcery.com>
334 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
335 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
336 installation directory first.
338 2005-02-28 Hans-Peter Nilsson <hp@axis.com>
341 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
342 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
343 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
344 * config/cris/cris.md: Tweak comments referring to Q.
345 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
346 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
347 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
348 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
349 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
350 Insert spaces in constraints to align alternatives vertically for
352 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
355 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
357 PR rtl-optimization/17728
358 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
359 operand 0 from general_operand to move_dest_operand.
361 2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
363 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
364 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
365 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
366 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
368 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
370 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
371 * configure: Regenerate.
372 * libada-mk.in: Remove CC; rename
373 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
375 2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
378 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
379 for the lhs, also walk over the tree. Likewise for rhs.
381 2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
383 * tree-ssa-dom.c (simple_iv_increment_p): New function.
384 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
385 Do not propagate value of iv before increment over the increment.
387 2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
389 * c-parser.c: New file.
390 * c-parse.in: Remove.
391 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
393 (c-parser.o): Add dependencies.
394 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
395 maintainer-clean, TAGS): Update.
396 * c-config-lang.in (gtfiles): Update.
397 * gengtype-lex.l: Don't handle "@@".
398 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
399 objc_build_synchronized, objc_begin_try_stmt,
400 objc_begin_catch_clause, objc_finish_catch_clause,
401 objc_build_finally_clause, objc_finish_try_stmt): New.
402 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
404 (c_parse_init): Update comment.
405 * c-decl.c (c_init_decl_processing): Update comment.
406 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
407 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
408 new c_declspecs members.
410 2005-02-25 Julian Brown <julian@codesourcery.com>
412 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
413 from being used for symbols with vague linkage when
414 HAVE_GAS_COMDAT_GROUP is true.
416 2005-02-25 Mark Mitchell <mark@codesourcery.com>
418 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
420 2005-02-25 Steve Ellcey <sje@cup.hp.com>
423 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
424 (LIBGCC2_HAS_DF_MODE): New.
425 (LIBGCC2_HAS_XF_MODE): New.
426 (LIBGCC2_HAS_TF_MODE): New.
427 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
428 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
429 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
430 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
431 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
432 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
433 and add _fixtfdi, _fixunstfdi, _floatditf
434 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
435 L_fixunstfdi, L_floatditf.
436 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
437 (LIBGCC2_HAS_TF_MODE): Define.
439 2005-02-25 Diego Novillo <dnovillo@redhat.com>
441 PR tree-optimization/20204
442 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
443 REWRITE_THIS_STMT markers on PHI nodes.
444 (rewrite_initialize_block): Likewise.
446 2005-02-25 Mark Mitchell <mark@codesourcery.com>
448 * version.c (version_string): Update to 4.1.
450 2005-02-25 Paolo Carlini <pcarlini@suse.de>
452 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
453 Clarify that the alternative way doesn't work in GNU C++.
455 2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
457 PR tree-optimization/19937
458 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
459 to the type of the induction variable.
461 2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
463 PR rtl-optimization/20117
464 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
465 the block including noncopyable insn.
467 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
469 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
470 calls to find_reg_note.
472 2005-02-24 Richard Henderson <rth@redhat.com>
475 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
478 2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
480 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
481 vector types if to use base reg for misaligned non-word ld/std.
483 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
486 * config/cris/cris.c (cris_target_asm_function_prologue): Create
487 dwarf2 label manually and put it after, not before the prologue.
489 2005-02-24 David Edelsohn <edelsohn@gnu.org>
492 * reload.c (operands_match_p): Only increment register number for
493 SCALAR_INT_MODE_P modes in multiple hard registers.
495 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
498 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
500 * ChangeLog.5: Fix log message typo(s).
501 * ChangeLog.7: Likewise.
502 * ChangeLog.tree-ssa: Likewise.
503 * cfgexpand.c: Fix comment typo(s).
504 * conflict.c: Likewise.
505 * defaults.h: Likewise.
506 * dwarf2out.c: Likewise.
508 * ggc-page.c: Likewise.
509 * tree-eh.c: Likewise.
510 * tree-ssa-dom.c: Likewise.
512 2005-02-24 Jakub Jelinek <jakub@redhat.com>
515 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
516 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
517 if SHARED is defined.
520 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
521 allow splitting only if operands 0 and 3 don't overlap.
523 2005-02-24 Richard Henderson <rth@redhat.com>
526 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
527 (fold_builtin_1): Call them.
528 * fold-const.c (fold_complex_mult_parts): Split out from ...
529 (fold_complex_mult): ... here. Fix typo in both imaginary case.
530 (fold_complex_div_parts, fold_complex_div): New.
532 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
534 2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
536 * tree-ssa-ccp.c (visit_assignment): Verify that result of
537 VIEW_CONVERT_EXPR is_gimple_min_invariant.
539 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
540 (print_node): Likewise.
541 Print TYPE_SIZES_GIMPLIFIED.
543 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
545 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
546 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
547 operands as commutative in constraints.
549 2005-02-24 Diego Novillo <dnovillo@redhat.com>
551 * tree-into-ssa.c: Re-organize internal functions.
553 2005-02-24 Richard Henderson <rth@redhat.com>
556 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
558 * common.opt (fcx-limited-range): New.
559 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
560 * toplev.c (flag_complex_method): Initialize to 1.
561 (process_options): Set flag_complex_method to 0 if
562 flag_cx_limited_range.
563 * doc/invoke.texi (-fcx-limited-range): New.
565 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
567 * cse.c (delete_trivially_dead_insns): Speed up by using
568 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
571 2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
573 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
574 functions when -mid-shared-library is being used.
576 2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
578 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
579 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
580 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
581 * system.h: Poison LINK_LIBGCC_SPECIAL.
583 2005-02-23 James E Wilson <wilson@specifixinc.com>
585 * gengtype.c (note_insn_name): Make 1 element larger.
587 2005-02-23 Roger Sayle <roger@eyesopen.com>
590 PR rtl-optimization/20097
591 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
592 BImode SUBREGs of SImode registers which confuse the ia64 backend.
594 2005-02-23 David Edelsohn <edelsohn@gnu.org>
596 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
597 * t-aix52 (SHLIB_INSTALL): Same.
599 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
601 * genpreds.c: Update copyright.
603 2005-02-23 Michael Beach <michaelb@ieee.org>
606 * config/sparc/t-elf (startup files): Assemble with CPP.
608 2005-02-23 Paolo Bonzini <bonzini@gnu.org>
610 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
611 (write_predicate_expr): Likewise.
613 2005-02-22 Diego Novillo <dnovillo@redhat.com>
615 PR tree-optimization/20100
616 PR tree-optimization/20115
617 * tree-optimize.c (init_tree_optimization_passes): Remove
618 pass_maybe_create_global_var.
619 * tree-pass.h (pass_maybe_create_global_var): Remove.
620 * tree-ssa-alias.c (aliases_computed_p): Declare.
621 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
622 (count_calls_and_maybe_create_global_var): Remove.
623 (pass_maybe_create_global_var): Remove.
624 (init_alias_info): Do not declare aliases_computed_p.
625 (maybe_create_global_var): If the function contains no
626 call-clobbered variables and a mix of pure/const and regular
627 function calls, create .GLOBAL_VAR.
628 Mark all call-clobbered variables for renaming.
629 (merge_pointed_to_info): Update comment.
630 (add_pointed_to_var): Likewise.
631 (is_escape_site): Likewise.
632 Accept struct alias_info * instead of size_t *.
634 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
636 * tree-ssa-operands.c (get_call_expr_operands): If
637 ALIASES_COMPUTED_P is false, do not add call-clobbering
639 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
640 (delete_tree_ssa): Likewise.
642 2005-02-22 James E Wilson <wilson@specifixinc.com>
644 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
645 (do_compile): Do call it here.
647 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
649 PR rtl-optimization/20017.
650 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
651 rest_of_handle_cse2, rest_of_handle_gcse): Call
652 delete_dead_jumptables immediately before calling cleanup_cfg.
654 2005-02-22 Devang Patel <dpatel@apple.com>
657 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
660 2005-02-22 David Edelsohn <edelsohn@gnu.org>
662 * config/rs6000/aix.h (WINT_TYPE): Define.
664 2005-02-22 Stan Shebs <shebs@apple.com>
666 * config/rs6000/rs6000.c (rs6000_override_options): Default to
667 natural alignment for 64-bit Darwin.
668 (rs6000_parse_alignment_option): Warn about uses of -malign-power
670 * doc/invoke.texi: Document this.
672 2005-02-22 DJ Delorie <dj@redhat.com>
674 * c-common.c (c_common_type_for_mode): Pass the mode's precision
675 to make_[un]signed_type, not the mode itself.
677 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
679 * cfg.c (cached_make_edge): Call make_edge if edge cache is
680 not available. Use tail calls wherever possible.
681 (make_edge): Call unchecked_make_edge to create an edge.
683 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
684 (coalesce_ssa_name): Don't check for
685 SSANORM_USE_COALESCE_LIST.
686 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
688 2005-02-22 Diego Novillo <dnovillo@redhat.com>
690 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
691 (rewrite_into_ssa): ... here.
693 2005-02-21 Alexandre Oliva <aoliva@redhat.com>
695 PR tree-optimization/19786
696 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
697 tag to another's may-alias bitmap when adding to the other's list.
699 2005-02-21 DJ Delorie <dj@redhat.com>
701 * tree-ssa-loop-ivopts.c (computation_cost): Start register
702 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
703 registers in unsupported ways.
704 * expmed.c (init_expmed): Likewise.
706 2005-02-21 Stan Cox <scox@redhat.com>
708 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
710 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
712 * tree-cfg.c (fold_cond_expr_cond): New.
713 (make_edges): Call fold_cond_expr_cond.
714 (find_taken_edge): Accept nothing but INTEGER_CST.
715 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
717 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
719 * flow.c (delete_dead_jumptables): Speed up by scanning insns
720 that do not belong to any basic block.
722 2005-02-21 Jeff Law <law@redhat.com>
724 * cfganal.c (find_unreachable_blocks): Manually CSE load of
727 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
729 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
730 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
731 Adjust their definitions.
732 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
733 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
735 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
736 genautomata.c, langhooks.c, langhooks.h, system.h,
737 config/arm/lib1funcs.asm: Update copyright.
739 2005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
741 * dbxout.c (dbxout_function_end): Emit Lscope label always.
743 2005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
746 * doc/install.texi: Document --with-gc.
748 2005-02-21 Paolo Bonzini <bonzini@gnu.org>
750 * simplify-rtx.c (simplify_unary_operation): Add a missing
753 2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
755 PR tree-optimization/18663
756 * tree-ssa-dom.c (extract_range_from_cond): Return 0
757 if the type has variable bounds.
759 2005-02-20 Kazu Hirata <kazu@cs.umass.edu>
761 * gcse.c: Remove an obsolete comment.
763 * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
765 2005-02-20 Hans-Peter Nilsson <hp@axis.com>
767 * doc/extend.texi (Function Attributes) <Attribute const>: The
768 attribute "pure" is below this text, not above.
770 2005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
772 * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
773 (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
774 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
776 2005-02-20 Zack Weinberg <zack@codesourcery.com>
779 * langhooks.h (struct lang_hooks): Add to_target_charset.
780 * langhooks.c (lhd_to_target_charset): New function.
781 * langhooks-def.h: Declare lhd_to_target_charset.
782 (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
783 (LANG_HOOKS_INITIALIZER): Update.
784 * c-common.c (c_common_to_target_charset): New function.
785 * c-common.h: Declare it.
786 * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
787 c_common_to_target_charset.
789 * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
790 (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
792 * system.h: Poison them.
793 * doc/tm.texi: Don't discuss them.
794 * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
795 * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
796 (pp_c_char): Do not attempt to generate letter escapes for
798 * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
799 * config/mips/mips.c (mips_output_ascii): Likewise.
801 2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
803 PR tree-optimization/19951
804 * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
807 2005-02-19 Steven Bosscher <stevenb@suse.de>
810 * function.h (struct function): New field `max_loop_depth'.
811 * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
812 (flow_loops_find): Reset the max loop depth count before finding loops.
813 * flow.c (MAX_LIVENESS_ROUNDS): New constant.
814 (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
815 (calculate_global_regs_live): Make sure the loop will terminate
816 when the initial sets are not empty.
818 2005-02-19 Zack Weinberg <zack@codesourcery.com>
820 * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
822 * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
824 2005-02-19 Richard Sandiford <rsandifo@redhat.com>
827 * doc/invoke.texi: Remove documentation of %M spec.
829 (init_spec): Remove %M suffix from -lgcc_s.
830 (do_spec_1): Remove 'M' case.
831 * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
832 to put shared libraries in the multilib directory. Remove the
833 shlib_so_soname substitution variable. Don't add a multilib encoding
834 to shlib_base_name. Set shlib_slibdir_qual to the full pathname
835 reported by -print-multi-os-directory. Pass @multilib_dir@ to
836 SHLIB_INSTALL as well as SHLIB_LINK.
837 * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
838 (SHLIB_NAME): Delete.
839 (SHLIB_DIR): New macro.
840 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
841 (SHLIB_INSTALL): Adjust accordingly.
842 * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
843 * config/t-slibgcc-sld: Likewise.
844 * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
845 (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
846 (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
848 (SHLIBUNWIND_INSTALL): Adjust accordingly.
849 * config/i386/t-nwld (SHLIB_SONAME): Delete.
850 (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
851 Use @shlib_base_name@ instead of @shlib_so_name@.
852 * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
853 and @shlib_base_name@.so in @multilib_dir@.
854 (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
856 * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
857 (SHLIB_LINK): Remove previous workaround.
858 * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
859 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
860 (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
862 * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
863 @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
864 (SHLIB_INSTALL): Adjust accordingly.
865 (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
866 * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
867 * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
868 config/t-slibgcc-elf-ver.
870 2005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
871 Jakub Jelinek <jakub@redhat.com>
873 PR tree-optimization/19828
874 * tree-ssa-loop-im.c: Add a TODO comment.
875 (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
876 without side-effects.
878 2005-02-18 James A. Morrison <phython@gcc.gnu.org>
880 * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
883 2005-02-18 James E. Wilson <wilson@specifixinc.com>
885 * doc/invoke.texi (IA-64 Options): Delete -mb-step.
886 * config/ia64/ia64.c (last_group, group_idx): Delete variables.
887 (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
889 (ia64_reorg): Delete fixup_errata call.
890 * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
891 (TARGET_SWITCHES): Delete -mb-step entry.
893 2005-02-19 Jakub Jelinek <jakub@redhat.com>
896 * c-typeck.c (composite_type): Handle quals in transparent unions.
897 (type_lists_compatible_p): Likewise.
899 2005-02-18 Stan Shebs <shebs@apple.com>
901 * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
902 expressions in the .literal8 section.
904 2005-02-18 Geoffrey Keating <geoffk@apple.com>
906 * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
908 2005-02-18 Roger Sayle <roger@eyesopen.com>
910 * fold-const.c (constant_boolean_node): Always create values of the
911 specified type, don't bother calling truthvalue_conversion.
913 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
915 * except.c (output_function_exception_table): Call
916 assemble_external_libcall (eh_personality_libfunc).
918 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
921 * config/ia64/ia64.h (struct machine_function): Add state_num.
922 * config/ia64/ia64.c (process_epilogue,
923 process_for_unwind_directive): Use new unwind state numbers each
924 time rather than state 1.
926 2005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
929 * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
930 before the "*llgt_didi" pattern.
932 2005-02-18 Jason Merrill <jason@redhat.com>
934 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
936 2005-02-18 Richard Earnshaw <rearnsha@arm.com>
938 * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
939 (div0): Use it in place of ARM_FUNC_ALIAS.
940 (lshrdi3, ashrdi3, ashlrdi3): Likewise.
942 2005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
945 * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
946 access, the lower bound of the array type if it exists.
948 2005-02-18 Alexandre Oliva <aoliva@redhat.com>
951 * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
952 cases that are out-of-range for the index type.
954 2005-02-18 James A. Morrison <phython@gcc.gnu.org>
956 * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
957 (estimate_case_costs): Don't call convert.
958 * expmed.c (expand_shift): Likewise.
959 (make_tree): Call fold_convert instead of convert.
961 2005-02-18 Jakub Jelinek <jakub@redhat.com>
964 * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
965 that ref to be marked MEM_READONLY_P doesn't have base that needs
968 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
970 * genautomata.c (output_get_cpu_unit_code_func,
971 output_cpu_unit_reservation_p): Don't generate old-style function
974 2005-02-18 Jakub Jelinek <jakub@redhat.com>
977 PR tree-optimization/20009
978 * convert.c (convert_to_integer): Revert 2005-02-16 change.
980 PR tree-optimization/18947
981 * cgraphunit.c (cgraph_finalize_function): When redefining an extern
982 inline, remove all nodes that are inlined into the extern inline
985 2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
987 * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
988 loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
989 tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
990 config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
993 2005-02-17 Roger Sayle <roger@eyesopen.com>
995 PR tree-optimization/19917
996 * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
997 to be potentially trapping.
999 2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
1001 * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
1003 2005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
1005 * builtins.c (expand_builtin_return_addr): Remove tem parameter.
1006 tem becomes a local variable which is set to the value of the
1007 back end defined INITIAL_FRAME_ADDRESS macro.
1008 (expand_builtin_frame_address): Omit the base parameter to
1009 expand_builtin_return_addr.
1010 (expand_builtin_profile_func): Likewise.
1011 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
1012 (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
1013 * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
1015 2005-02-17 Jakub Jelinek <jakub@redhat.com>
1017 * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
1018 s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
1019 * config/frv/frv.c (frv_function_epilogue): Likewise.
1021 2005-02-17 Daniel Berlin <dberlin@dberlin.org>
1023 * lambda-code (perfect_nestify): Remove mark/unmark
1025 * tree-loop-linear.c (linear_transform_loops): Add
1026 rewrite_into_ssa call so that ssa is correct for
1027 rewriting into loop closed.
1029 2005-02-17 Nathan Sidwell <nathan@codesourcery.com>
1031 * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
1032 * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
1034 * bt-load.c (btr_def_live_range, combine_btr_defs,
1035 migrate_btr_def, migrate_btr_defs): Likewise.
1036 * cfgcleanup.c (thread_jump): Likewise.
1037 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1038 * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
1039 df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
1040 df_rd_local_compute, df_reg_info_compute): Likewise.
1041 * dominance.c (init_dom_info, free_dom_info): Likewise.
1042 * flow.c (init_propagate_block_info,
1043 free_propagate_block_info): Likewise.
1044 * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
1045 * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
1046 modify_reg_pav): Likewise.
1047 * loop-invariant.c (find_defs, find_invariant_insn,
1048 find_invariants, free_inv_motion_data): Likewise.
1049 * predict.c (tree_predict_by_opcode,
1050 estimate_bb_frequencies): Likewise.
1051 * stmt.c (expand_case): Likewise.
1052 * tree-cfg.c (tree_duplicate_sese_region): Likewise.
1053 * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1054 * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
1055 * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
1056 get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
1057 rewrite_ssa_into_ssa): Likewise.
1058 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1059 * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
1060 analyze_edges_for_bb, perform_edge_inserts): Likewise.
1061 * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
1062 * tree-sra.c (tree_sra): Likewise.
1063 * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
1064 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1065 * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
1066 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1067 * tree-ssa-dse.c (tree_ssa_dse): Likewise.
1068 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
1070 * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
1071 calculate_live_on_entry, calculate_live_on_exit,
1072 build_tree_conflict_graph): Likewise.
1073 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
1074 record_important_candidates, set_use_iv_cost, find_depends,
1075 determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
1076 tree_ssa_iv_optimize_finalize): Likewise.
1077 * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
1078 find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
1079 tree_duplicate_loop_to_header_edge): Likewise.
1080 * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
1081 * tree-ssa.c (verify_flow_insensitive_alias_info,
1082 verify_name_tags, verify_ssa, init_tree_ssa,
1083 delete_tree_ssa): Likewise.
1084 * tree-ssanames.c (marked_ssa_names, init_ssanames,
1085 fini_ssanames): Likewise.
1086 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
1088 2005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
1090 * config/rs6000/t-rtems: Completely reworked.
1092 2005-02-17 Ira Rosen <irar@il.ibm.com>
1094 * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
1096 2005-02-17 Ira Rosen <irar@il.ibm.com>
1098 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
1099 POINTER_TYPE_P when checking that type is a pointer.
1100 (vect_get_memtag): Remove.
1101 (vect_address_analysis): Use POINTER_TYPE_P. Call
1102 vect_object_analysis with dummy parameter for memtag.
1103 (vect_object_analysis): Extract memtag (functionality that
1104 used to be in vect_get_memtag and moved here). Fix printings.
1105 (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
1106 with correct parameters. Remove call to vect_get_memtag.
1108 2005-02-17 Dorit Naishlos <dorit@il.ibm.com>
1110 * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
1111 (tree-vectorizer.o): Added missing dependencies.
1113 * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
1115 (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
1116 declaration in tree-vectorizer.c, now has an extern declaration in
1118 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1119 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1120 get_vectype_for_scalar_type, vect_is_simple_use,
1121 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1122 vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
1123 new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
1124 vectorizable_store, vectorizable_operation, vectorizable_assignment,
1125 vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
1126 find_loop_location): Likewise.
1128 * tree-vectorizer.c (langhooks.h): #include removed.
1129 (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
1130 moved to tree-vectorized.h.
1131 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1132 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1133 get_vectype_for_scalar_type, vect_is_simple_use,
1134 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1135 vect_supportable_dr_alignment, new_loop_vec_info,
1136 destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
1137 vect_set_verbosity_level, find_loop_location): Likewise.
1139 (vect_analyze_loop): Function externalized. Declaration moved to
1140 tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
1141 (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
1142 (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
1143 vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
1144 vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
1145 vect_enhance_data_refs_alignment, vect_analyze_operations,
1146 exist_non_indexing_operands_for_use_p, vect_mark_relevant,
1147 vect_stmt_relevant_p, vect_get_loop_niters,
1148 vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
1149 vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
1150 vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1151 vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1152 vect_get_memtag): Likewise.
1154 (vectorizable_load): Function externalized. Declaration moved to
1155 tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1156 (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1157 vect_transform_loop): Likewise.
1158 (vect_transform_stmt): Moved to tree-vect-transform.c.
1159 (vect_align_data_ref, vect_create_destination_var,
1160 vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1161 vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1162 vect_get_vec_def_for_operand, vect_init_vector,
1163 vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1164 vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1165 vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1166 vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1167 vect_do_peeling_for_loop_bound): Likewise.
1169 * tree-vect-analyze.c: New file.
1170 * tree-vect-transform.c: New file.
1172 2005-02-17 Jason Merrill <jason@redhat.com>
1174 PR mudflap/19319, c++/19317
1175 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1178 2005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
1180 * doc/install.texi (Specific): Update link for Darwin-specific
1183 2005-02-16 James A. Morrison <phython@gcc.gnu.org>
1185 * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1186 constant_boolean_node.
1188 2005-02-16 David Edelsohn <edelsohn@gnu.org>
1191 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1192 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1194 2005-02-16 Richard Henderson <rth@redhat.com>
1197 * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1199 (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1200 replace uses with Wtype_MAXp1_F.
1201 (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1202 L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1203 L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1204 L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1205 and HAVE_TFMODE as appropriate.
1206 (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1207 (__floatdisf): Likewise.
1208 * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1209 (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1210 (Wtype_MAXp1_F): New.
1211 (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1212 __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1214 2005-02-16 Richard Earnshaw <rearnsha@arm.com>
1217 * arm.c (arm_apply_result_size): New function.
1218 * arm.h (APPLY_RESULT_SIZE): Define.
1219 * arm-protos.h (arm_apply_result_size): Add prototype.
1220 * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1221 (movxf): New expand.
1222 (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1223 (call_value_symbol): Remove predicate for operand 0.
1224 (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1225 (untyped_call): Rework to correclty return values for any type.
1226 (untyped_return): New expand.
1227 * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1229 2005-02-16 Stan Shebs <shebs@apple.com>
1231 * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1232 * config/rs6000/t-darwin8: New, for 64-bit multilib.
1234 2005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1236 * doc/install.texi (sparc-sun-solaris2*): Document required GMP
1237 configure settings on Solaris 7 and later.
1239 2005-02-16 Diego Novillo <dnovillo@redhat.com>
1241 PR tree-optimization/19865
1242 * tree-optimize.c (init_tree_optimization_passes): Run
1243 pass_may_alias after pass_sra.
1245 2005-02-16 Richard Henderson <rth@redhat.com>
1246 Stuart Hastings <stuart@apple.com>
1249 * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
1250 Do nothing if debug info suppressed for this function.
1251 (dbxout_begin_function): Early exit if debug info suppressed for
1254 2005-02-16 Kazu Hirata <kazu@cs.umass.edu>
1257 * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
1259 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1261 PR tree-optimization/19967
1262 * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
1263 expand_builtin_strchr, expand_builtin_strrchr): Take a new
1264 argument TYPE. Adjust calls to fold_builtin_XXX.
1265 (expand_builtin, fold_builtin_1): Adjust calls to
1267 (fold_builtin_strchr, fold_builtin_strpbrk,
1268 fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
1269 result to a requested type TYPE.
1271 2005-02-16 Jakub Jelinek <jakub@redhat.com>
1274 * fold-const.c (fold): Don't optimize (T)(x & cst) to
1275 (T)x & (T)cst if (T)cst overflows.
1276 * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
1277 TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
1279 2005-02-15 Jeff Law <law@redhat.com>
1281 * gcse.c (blocks_with_calls): New bitmap.
1282 (alloc_gcse_mem): Allocate it.
1283 (free_gcse_mem): Free it.
1284 (clear_modifY_mem_tables): Clear it.
1285 (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
1286 when we encounter CALL_INSNs.
1287 (compute_transp, case MEM): Handle blocks with calls separate
1288 from blocks without calls. Use bitmap iterators rather than
1291 2005-02-15 Peter O'Gorman <peter@pogma.com>
1294 * mklibgcc.in (vis_hide): Use a temporary object file, not
1297 2005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
1300 * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
1301 access optimization.
1303 2005-02-15 David Edelsohn <edelsohn@gnu.org>
1304 Alan Modra <amodra@bigpond.net.au>
1307 * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
1308 (_xlqsub): Rename to __gcc_qsub.
1309 (_xlqmul): Rename to __gcc_qmul.
1310 (_xlqdiv): Rename to __gcc_qdiv.
1311 Provide versioned symbol aliases with old names.
1312 * config/rs6000/libgcc-ppc64.ver: Rename symbols.
1313 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
1314 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
1315 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
1316 * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
1318 2005-02-15 James A. Morrison <phython@gcc.gnu.org>
1320 * fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
1321 Fold ~(A - 1) and ~(A + -1) to -A.
1323 2005-02-15 James A. Morrison <phython@gcc.gnu.org>
1327 * config/host-linux.c (linux_gt_pch_use_address): Copy from
1328 config/pa/pa-host.c:pa_gt_pch_use_address.
1330 2005-02-15 Daniel Berlin <dberlin@dberlin.org>
1332 * tree-vn.c (get_value_handle): Make sure that given an
1333 is_gimple_min_invariant expression, we always return it.
1335 2005-02-15 Kazu Hirata <kazu@cs.umass.edu>
1337 * passes.c (rest_of_handle_gcse): Fix a comment.
1339 2005-02-15 Jeff Law <law@redhat.com>
1341 * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
1343 (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
1344 (canon_list_insert, record_last_mem_set_info): Similarly.
1345 (clear_modify_mem_tables): Similarly.
1347 2005-02-15 Kazu Hirata <kazu@cs.umass.edu>
1349 * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
1350 tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
1351 config/mips/mips.md, config/rs6000/aix.h,
1352 config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
1354 2005-02-15 Richard Henderson <rth@redhat.com>
1356 * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
1357 call to be best_edge.
1359 2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
1361 * basic-block.h: Adjust the prototype for find_basic_blocks.
1362 * cfgbuild.c (find_basic_blocks): Remove unused arguments.
1363 * passes.c (rest_of_handle_loop_optimize): Adjust the call to
1366 * flow.c (recompute_reg_usage): Remove all arguments.
1367 * passes.c (rest_of_compilation): Adjust the call to
1368 recompute_reg_usage.
1369 * rtl.h: Adjust the prototype for recompute_reg_usage.
1371 2005-02-14 Daniel Berlin <dberlin@dberlin.org>
1373 * tree-dump.c (dump_files): Update to reflect new member
1375 (dump_register): Add new argument.
1377 (dump_switch_p_1): Check against glob name if doglob was passed.
1378 (dump_switch_p): Check against regular first, then glob if
1379 we didn't have any hits on the dump name.
1380 * tree-optimize.c (register_one_dump_file):
1381 Pass in glob name as well.
1382 * tree-pass.h (struct dump_file_info): Add glob
1385 2005-02-14 Joseph S. Myers <joseph@codesourcery.com>
1387 PR preprocessor/16323
1388 * doc/invoke.texi: Document that -Wendif-labels is on by default.
1390 2005-02-14 David Edelsohn <edelsohn@gnu.org>
1393 * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
1394 (trunctfdf2_internal1): New.
1395 (trunctfdf2_internal2): Renamed from trunctfdf2.
1397 2005-02-14 Diego Novillo <dnovillo@redhat.com>
1399 PR tree-optimization/19853
1400 * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
1402 2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
1404 * passes.c (rest_of_handle_loop_optimize): Remove calls to
1405 delete_dead_jumptables and cleanup_cfg.
1407 2005-02-14 Ulrich Weigand <uweigand@de.ibm.com>
1409 * reload.c (find_reloads): Swap address_reloaded flags when
1410 swapping commutative operands.
1412 2005-02-14 Sebastian Pop <pop@cri.ensmp.fr>
1414 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
1415 Use standard_iv_increment_position for computing the bsi position
1417 * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
1420 2005-02-13 Zdenek Dvorak <dvorakz@suse.cz>
1423 * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
1424 life range of hard registers.
1425 * value-prof.c (insn_prefetch_values_to_profile): Only
1428 * value-prof.c (rtl_find_values_to_profile): Do not look for values to
1429 profile in libcalls.
1431 2005-02-13 Nathan Sidwell <nathan@codesourcery.com>
1433 * bitmap.h (bitmap_and_compl_into): Return bool.
1434 * bitmap.c (bitmap_and_compl_into): Return changed flag.
1436 2005-02-13 James A. Morrison <phython@gcc.gnu.org>
1438 PR tree-optimization/19944
1439 * fold-const.c (fold): Re-add ABS_EXPR folding.
1441 2005-02-13 David Edelsohn <edelsohn@gnu.org>
1444 * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
1445 {TARGET,MASK}_XL_COMPAT.
1446 (SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use
1448 * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
1449 * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
1451 (rs6000_arg_partial_bytes): Same.
1452 (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
1453 and XL compatibility enabled.
1454 * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
1455 * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
1456 test to final condition.
1457 (cmptf_internal2): New.
1458 * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
1459 xl-compat. Add TFmode information to description.
1461 2005-02-13 Kazu Hirata <kazu@cs.umass.edu>
1463 * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
1465 2005-02-13 Jason Merrill <jason@redhat.com>
1468 * fold-const.c (fold_indirect_ref_1): Split out from...
1469 (build_fold_indirect_ref): Here.
1470 (fold_indirect_ref): New fn.
1471 * tree.h: Declare it.
1472 * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
1473 (gimplify_modify_expr_rhs): Likewise.
1474 (gimplify_expr): Likewise.
1476 2005-02-13 James A. Morrison <phython@gcc.gnu.org>
1478 PR tree-optimization/14303
1479 PR tree-optimization/15784
1480 * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
1481 Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
1482 ABS_EXPR<x> != 0 to x != 0.
1484 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
1486 * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
1487 simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
1488 spelling conventions.
1490 * passes.c (rest_of_handle_gcse): Don't run cse_main and
1491 delete_trivially_dead_insns too many times.
1493 * passes.c (rest_of_handle_gcse): Remove dead assignments to
1496 2005-02-12 Ira Rosen <irar@il.ibm.com>
1498 * tree-vectorizer.c (vect_get_base_and_offset): Remove.
1499 (vect_is_simple_iv_evolution): Remove redundant parameter
1501 (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
1502 without last parameter.
1503 (vect_analyze_pointer_ref_access): Get access_fn as parameter.
1504 Return pointer step. Call vect_is_simple_iv_evolution without
1505 last parameter. Check only that the step is multiple of size
1506 type. Remove stmt_vinfo updates.
1507 (vect_get_memtag_and_dr): Remove.
1508 (vect_get_memtag): New function.
1509 (vect_address_analysis): New function.
1510 (vect_object_analysis): New function.
1511 (vect_analyze_data_refs): Call vect_object_analysis and
1512 vect_get_memtag. Update stmt_vinfo fields.
1514 2005-02-12 Ira Rosen <irar@il.ibm.com>
1516 * tree-data-ref.c (array_base_name_differ_p): Check that the bases
1517 exist and are objects. Remove checks for pointer.
1518 * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
1519 STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
1520 (vect_create_data_ref_ptr): Likewise.
1521 (vect_base_addr_differ_p): New function.
1522 (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
1523 (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
1524 Don't set the DR_BASE_NAME field of data-ref.
1525 (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
1527 2005-02-12 Uros Bizjak <uros@kss-loka.si>
1529 * optabs.h (enum optab_index): Add new OTI_ldexp.
1530 (ldexp_optab): Define corresponding macro.
1531 * optabs.c (init_optabs): Initialize ldexp_optab.
1532 * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
1534 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
1536 (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
1537 expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
1539 * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
1540 to implement ldexpf, ldexp and ldexpl built-ins as inline x87
1543 2005-02-12 Ira Rosen <irar@il.ibm.com>
1545 * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
1547 * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
1549 (vect_get_base_and_offset): Always return an address.
1550 (vect_create_addr_base_for_vector_ref): Remove treatment for
1551 different data reference types.
1552 (vect_compute_data_ref_alignment): Rename base to base_address in
1553 stmt_vec_info. Get the object in order to force its alignment.
1554 (vect_get_memtag_and_dr): Rename base to base_address in
1555 stmt_vec_info. Extract the object for memtag analysis.
1557 2005-02-12 Hans-Peter Nilsson <hp@axis.com>
1559 PR regression/19898.
1560 * config/cris/cris.c (cris_notice_update_cc): When testing if insn
1561 changes cc_status, use apply modified_in_p to part of cc_status
1562 and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
1565 2005-02-11 Richard Henderson <rth@redhat.com>
1567 * tree-complex.c (expand_complex_libcall): New.
1568 (expand_complex_multiplication): Use it for c99 compliance.
1569 (expand_complex_division): Likewise.
1570 * fold-const.c (fold_complex_add, fold_complex_mult): New.
1572 * builtins.c (built_in_names): Remove const.
1573 * tree.c (build_common_builtin_nodes): Build complex arithmetic
1575 * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
1576 (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
1577 (built_in_names): Remove const.
1578 * c-common.c (c_common_type_for_mode): Handle complex modes.
1579 * flags.h, toplev.c (flag_complex_method): Rename from
1580 flag_complex_divide_method.
1581 * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
1582 __mulsc3, __muldc3, __mulxc3, __multc3): New.
1583 * libgcc2.h: Declare them.
1584 * libgcc-std.ver: Export them.
1585 * mklibgcc.in (lib2funcs): Build them.
1587 2005-02-11 Steven Bosscher <stevenb@suse.de>
1589 PR tree-optimization/19876
1590 Partially revert my change from 2005-01-14
1591 * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
1592 (compute_antic): ...and remove the loop here.
1594 2005-02-11 Jakub Jelinek <jakub@redhat.com>
1597 * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
1598 is number of inner's bits, avoid creating a BIT_FIELD_REF.
1600 * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
1601 crtend.o if -pie. Use %{x:a;:b} spec syntax.
1603 2005-02-11 Daniel Jacobowitz <dan@codesourcery.com>
1605 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1606 offsets for the big-endian 32-bit case.
1608 2005-02-11 Joseph S. Myers <joseph@codesourcery.com>
1610 * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1612 2005-02-11 Dale Johannesen <dalej@apple.com>
1614 * cselib.c (cselib_process_insn): Clear out regs where
1615 HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
1616 * reload.c (find_equiv_reg): Ditto.
1618 2005-02-11 Ian Lance Taylor <ian@airs.com>
1620 * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
1623 * tree.c (build_function_type_list): Work correctly if there are
1626 2005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
1628 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
1629 "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
1630 ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
1631 TARGET_ZARCH instead of TARGET_64BIT.
1633 2005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
1635 * config/rs6000/t-rtems:
1636 (MULTILIB_OPTIONS): Remove mcpu=602.
1637 (MUTLILIB_DIRNAMES): Remove m602.
1638 (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
1639 Let mcpu=602 match mcpu=603.
1640 (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
1642 2005-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1644 * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
1647 2005-02-10 David Daney <ddaney@avtrex.com>
1649 * config/alpha/linux-unwind.h: Add exception clause to copyright.
1650 * config/i386/linux-unwind.h: Likewise.
1651 * config/ia64/linux-unwind.h: Likewise.
1652 * config/mips/linux-unwind.h: Likewise.
1653 * config/pa/linux-unwind.h: Likewise.
1654 * config/rs6000/linux-unwind.h: Likewise.
1655 * config/s390/linux-unwind.h: Likewise.
1656 * config/sh/linux-unwind.h: Likewise.
1657 * config/sparc/linux-unwind.h: Likewise.
1659 2005-02-10 Steven Bosscher <stevenb@suse.de>
1661 PR tree-optimization/17549
1662 * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
1663 TER to replace a DEF with its expression if the DEF and the
1664 rhs of the expression we replace into have the same root
1667 2005-02-10 Richard Sandiford <rsandifo@redhat.com>
1669 * config/mips/mips.md: Fix the placement of the match_scratch in the
1672 2005-02-10 Kazu Hirata <kazu@cs.umass.edu>
1674 * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
1677 2005-02-10 Zdenek Dvorak <dvorakz@suse.cz>
1679 * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
1680 (strip_offset): Handle addresses.
1681 (add_address_candidates): Use strip_offset.
1682 (difference_cost): Reflect strip_offset change.
1683 (force_var_cost, difference_cost): Strip nops.
1685 2005-02-10 Kazu Hirata <kazu@cs.umass.edu>
1687 * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1689 * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1690 tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1691 config/cris/cris-protos.h, config/cris/cris.c: Update
1694 2005-02-10 Jeff Law <law@redhat.com>
1696 * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1697 (lookup_avail_expr): Similarly.
1699 2005-02-10 Richard Guenther <rguenth@gcc.gnu.org>
1701 * builtins.c (fold_builtin_powi): New function.
1702 (fold_builtin_1): Call it.
1704 2005-02-10 Steven Bosscher <stevenb@suse.de>
1706 PR documentation/19309
1707 * doc/cpp.texi: The __GNUC__ and related predefined macros
1708 are also defined for the "standalone" cpp.
1709 Some non-GCC compilers may also define __GNUC__.
1711 2005-02-10 Jakub Jelinek <jakub@redhat.com>
1714 * c-typeck.c (common_type): New routine. Old common_type renamed
1716 (c_common_type): ...this.
1717 (build_conditional_expr, build_binary_op): Use c_common_type instead
1720 2005-02-10 Steven Bosscher <stevenb@suse.de>
1722 * doc/md.texi: Replace @samp{length} with @code{length}.
1724 2005-02-09 Zdenek Dvorak <dvorakz@suse.cz>
1726 PR tree-optimization/18687
1727 * tree-flow.h (find_loop_niter): Declare.
1728 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1729 Try using scev even for loops with more than one exit.
1730 * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
1731 (struct ivopts_data): Added niters field.
1732 (struct nfe_cache_elt): New.
1733 (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
1735 (tree_ssa_iv_optimize_init): Initialize niters cache.
1736 (determine_number_of_iterations): Removed.
1737 (find_induction_variables): Do not call determine_number_of_iterations.
1738 Access niters for single exit through niter_for_single_dom_exit.
1739 (add_iv_outer_candidates): Access niters for single exit through
1740 niter_for_single_dom_exit.
1741 (may_eliminate_iv): Take data argument. Use niter_for_exit. Do not use
1742 number_of_iterations_cond.
1743 (iv_period): New function.
1744 (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
1745 (may_replace_final_value): Take data argument. Use
1746 niter_for_single_dom_exit.
1747 (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
1748 (rewrite_use_compare): Pass data to may_eliminate_iv.
1749 (rewrite_use_outer): Pass data to may_replace_final_value.
1750 (free_loop_data): Clean up the niters cache.
1751 (tree_ssa_iv_optimize_finalize): Free the niters cache.
1752 (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
1753 * tree-ssa-loop-niter.c (find_loop_niter): New function.
1754 (find_loop_niter_by_eval): Use tree_int_cst_lt.
1755 (num_ending_zeros): Moved to tree.c.
1756 * tree.h (num_ending_zeros): Declare.
1757 * tree.c (num_ending_zeros): Moved from tree.c.
1759 2005-02-09 Richard Henderson <rth@redhat.com>
1761 * builtins.c (DEF_BUILTIN): Add COND argument.
1762 * tree.h (DEF_BUILTIN): Likewise.
1763 * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
1764 DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
1766 (DEF_BUILTIN_STUB): New.
1767 (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
1768 BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
1769 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
1770 * c-common.c (DEF_BUILTIN): Add COND argument.
1771 * tree.c (local_define_builtin): New.
1772 (build_common_builtin_nodes): New.
1774 2005-02-09 Roger Sayle <roger@eyesopen.com>
1776 * fold-const.c (fold_strip_sign_ops): New function to simplify a
1777 floating point expression ignoring the sign of the result.
1778 (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1779 (fold) <MULT_EXPR>: Use it to simplify x*x.
1780 * tree.h (fold_strip_sign_ops): Prototype here.
1781 * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1782 argument. Use fold_strip_sign_ops to simplify the first argument.
1783 (fold_builtin_pow): Use fold_strip_sign_ops to simplify the
1784 first argument when the second argument is an even integer
1785 constant, but only with -funsafe_math_optimizations.
1786 (fold_builtin_1): Update call to fold_builtin_copysign.
1788 2005-02-09 Ian Lance Taylor <ian@airs.com>
1791 * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1792 just check whether EH_FILTER_FAILURE falls through.
1794 2005-02-09 Andreas Krebbel <krebbel1@de.ibm.com>
1796 * gcc/haifa-sched.c (schedule_block): Make queued sched group
1797 insns return to ready list in the next turn.
1799 2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
1802 * builtins.def: New __builtin_powi[lf].
1803 * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1804 (expand_builtin_powi): New function.
1805 (expand_builtin): Dispatch to expand_builtin_powi.
1806 * libgcc2.h: Add prototypes for __builtin_powi[lf].
1807 * libgcc2.c: Add __builtin_powi[lf] implementation.
1808 * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
1809 * optabs.h: Add powi_optab.
1810 * optabs.c (init_optabs): Initialize powi_optab.
1811 * doc/extend.texi: Document __builtin_powi[lf].
1813 2005-02-09 Dorit Naishlos <dorit@il.ibm.com>
1815 * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
1818 2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
1821 * fold-const.c (try_move_mult_to_index): Remove redundant
1822 type argument. Create ADDR_EXPR with correct type.
1823 (fold): Update callers of try_move_mult_to_index. Convert
1824 result to the appropriate type.
1826 2005-02-09 Roger Sayle <roger@eyesopen.com>
1829 * config/avr/avr.c (default_rtx_costs): Delete.
1830 (avr_operand_rtx_cost): New function.
1831 (avr_rtx_costs): Completely rewrite.
1833 2005-02-08 Hans-Peter Nilsson <hp@axis.com>
1836 * config/cris/cris.c (in_code): New variable.
1837 (cris_output_addr_const): Now a static function, a wrapper for
1839 (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
1840 case from old cris_output_addr_const.
1841 (cris_asm_output_label_ref): Similar for LABEL_REF.
1842 (cris_output_addr_const_extra): Similar for UNSPEC.
1843 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
1844 (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
1845 * config/cris/cris-protos.h (cris_output_addr_const): Remove
1847 (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
1848 (cris_asm_output_label_ref): Declare.
1850 2005-02-08 Paolo Bonzini <bonzini@gnu.org>
1852 PR preprocessor/19801
1853 * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
1854 filenames that changed when libcpp was moved to the toplevel.
1856 2005-02-07 Roger Sayle <roger@eyesopen.com>
1858 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1859 zero extensions of BImode operands. Call lowpart_subreg instead
1860 of gen_lowpart_common and gen_lowpart_SUBREG.
1862 2005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
1865 * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
1866 * configure.ac: Set cc_for_cross_gnattools.
1867 * configure: Regenerate.
1869 2005-02-08 Alan Modra <amodra@bigpond.net.au>
1872 * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
1874 2005-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1877 * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
1878 of nested functions.
1880 2005-02-07 Jonathan Wakely <redi@gcc.gnu.org>
1882 * doc/extend.texi: Document deprecated extensions allowing
1883 static floating-point members to have initializers and allowing
1884 floating-point literals in integral constant expressions.
1886 2005-02-07 Kazu Hirata <kazu@cs.umass.edu>
1888 * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
1889 config/darwin7.h, config/mips/mips.c,
1890 config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
1893 * cse.c: Update comments.
1895 2005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
1898 * builtins.c (fold_builtin_sqrt): Transform
1899 sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
1902 2005-02-07 Leehod Baruch <leehod@il.ibm.com>
1903 Dorit Naishlos <dorit@il.ibm.com>
1905 * doc/invoke.texi (ftree-vectorizer-verbose): New.
1906 * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
1907 * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
1909 * tree.h (vect_set_verbosity_level): New extern function declaration
1911 * tree-vectorizer.h (verbosity_levels): New enum type.
1912 * tree-vectorizer.c (vect_debug_stats): Function removed.
1913 (vect_debug_details): Likewise.
1914 (vect_verbosity_level): Global variable was defined and initialized.
1915 (vect_dump): Global variable definition.
1916 (vect_print_dump_info): New function.
1917 (vect_set_dump_settings): New function.
1918 (vect_set_verbosity_level): New function.
1919 (vectorize_loops): Add call to vect_set_dump_settings.
1921 (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
1922 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1923 (slpeel_tree_peel_loop_to_edge): Likewise.
1925 (vect_analyze_offset_expr): Call to vect_print_dump_info with
1926 appropriate verbosity level instead of call to vect_debug_details
1927 or vect_debug_stats.
1928 (vect_get_base_and_offset):
1929 (vect_create_addr_base_for_vector_ref):
1930 (get_vectype_for_scalar_type):
1931 (vect_create_data_ref_ptr):
1933 (vect_get_vec_def_for_operand):
1934 (vect_finish_stmt_generation):
1935 (vectorizable_assignment):
1936 (vectorizable_operation):
1937 (vectorizable_store):
1938 (vectorizable_load):
1939 (vect_transform_stmt):
1940 (vect_update_ivs_after_vectorizer):
1941 (vect_do_peeling_for_loop_bound):
1942 (vect_update_inits_of_drs):
1943 (vect_do_peeling_for_alignment):
1944 (vect_transform_loop):
1945 (vect_is_simple_use):
1946 (vect_analyze_operations):
1947 (vect_is_simple_iv_evolution):
1948 (vect_analyze_scalar_cycles):
1949 (vect_analyze_data_ref_dependence):
1950 (vect_analyze_data_ref_dependences):
1951 (vect_compute_data_ref_alignment):
1952 (vect_enhance_data_refs_alignment):
1953 (vect_analyze_data_refs_alignment):
1954 (vect_analyze_data_ref_access):
1955 (vect_analyze_data_ref_accesses):
1956 (vect_analyze_pointer_ref_access):
1957 (vect_get_memtag_and_dr):
1958 (vect_analyze_data_refs):
1959 (vect_mark_relevant):
1960 (vect_stmt_relevant_p):
1961 (vect_mark_stmts_to_be_vectorized):
1962 (vect_can_advance_ivs_p):
1963 (vect_get_loop_niters):
1964 (vect_analyze_loop_form):
1965 (vect_analyze_loop):
1966 (vectorize_loops): Likewise.
1968 (vect_do_peeling_for_loop_bound): Dump format slightly changed.
1969 (vect_update_inits_of_drs):
1970 (vect_do_peeling_for_alignment):
1971 (vect_transform_loop):
1972 (vect_analyze_operations):
1973 (vect_analyze_scalar_cycles):
1974 (vect_analyze_data_ref_dependences):
1975 (vect_analyze_data_refs_alignment):
1976 (vect_analyze_data_ref_accesses):
1977 (vect_analyze_data_refs):
1978 (vect_mark_stmts_to_be_vectorized):
1979 (vect_get_loop_niters):
1980 (vect_analyze_loop_form):
1981 (vect_analyze_loop): Likewise.
1982 (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
1984 2005-02-07 Richard Sandiford <rsandifo@redhat.com>
1988 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
1989 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
1990 either -ffast-math or -funsafe-math-optimizations is in use.
1992 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
1993 * config/mips/irix-csr.c: New file.
1994 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
1995 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
1996 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
1999 2005-02-07 Alexandre Oliva <aoliva@redhat.com>
2001 * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
2002 redundant, incorrect definitions.
2004 * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
2006 ("*tls_indirect_call"): New, reference hard regs directly.
2007 * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
2009 2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
2011 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
2012 Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2014 2005-02-06 Roger Sayle <roger@eyesopen.com>
2016 PR rtl-optimization/19800
2017 * simplify_rtx.c (simplify_relational_operation_1): Explicitly
2018 call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
2021 2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
2023 * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2025 2005-02-07 Joseph S. Myers <joseph@codesourcery.com>
2028 * doc/invoke.texi: Correct documentation of -freorder-functions.
2030 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2033 * doc/invoke.texi: Don't mention gccbug.
2035 2005-02-06 Roger Sayle <roger@eyesopen.com>
2036 Andrew Pinski <pinskia@physics.uc.edu>
2037 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
2039 * simplify-rtx.c (simplify_relational_operation_1): Simplify
2040 (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
2041 into just (zero_extract:SI FOO (const_int 1) BAR).
2043 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2045 * doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
2046 macro locally. Don't give last revision date. Use GCC version
2047 number from gcc-common.texi.
2048 * doc/cppinternals.texi: Include gcc-common.texi. Don't give last
2049 revision date. Use GCC version number from gcc-common.texi.
2050 Describe being a library as current state rather than as 3.x
2052 * doc/gcc.texi: Remove last update date.
2053 * doc/gccint.texi: Likewise. Update copyright dates.
2054 * doc/install.texi: Update copyright dates.
2056 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2059 * doc/invoke.texi: Mention for each option included in -Wall that
2060 it is included in -Wall.
2061 * doc/gcc.texi: Update copyright and last modification date.
2063 2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
2065 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
2066 unnecessary cast to original induction variable increments.
2068 2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
2070 PR tree-optimization/18219
2071 * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
2072 in distributed form.
2074 2005-02-06 Richard Sandiford <rsandifo@redhat.com>
2076 * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
2077 Set bitpos and offset later in the function. Do nothing if the
2078 target is a register and if the bitfield lies completely outside
2080 (extract_bit_field): Make the same SUBREG, bitpos and offset changes
2081 here. Return an uninitialised register if the source value is stored
2082 in a register and the bitfield lies completely outside that register.
2084 2005-02-06 Steven Bosscher <stevenb@suse.de>
2086 * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
2089 2005-02-06 Marcin Dalecki <martin@dalecki.de>
2091 * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2093 2005-02-06 Geoffrey Keating <geoffk@apple.com>
2095 * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
2096 * config/darwin8.h: New.
2097 * config/darwin7.h: Update comment.
2099 2005-02-03 Leehod Baruch <leehod@il.ibm.com>
2100 Dorit Naishlos <dorit@il.ibm.com>
2102 * tree-vectorizer.h (LOC): New type.
2103 (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
2104 (loop_line_number): New field in struct _loop_vec_info.
2105 (LOOP_VINFO_LOC, LOOP_LOC): New macros.
2107 * tree-vectorizer.c (input.h): Included.
2108 (find_loop_location): New function.
2109 (vect_debug_stats): Argument changed from loop to LOC. Computation of
2110 loop line number removed.
2111 (vect_debug_details): Likewise.
2112 (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
2114 (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
2115 call to vect_debug_details/stats changed from loop to loop_loc.
2116 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2117 (slpeel_tree_peel_loop_to_edge): Likewise.
2119 (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
2120 changed from NULL to UNKNOWN_LOC.
2121 (vect_get_base_and_offset):
2122 (vect_create_addr_base_for_vector_ref):
2123 (get_vectype_for_scalar_type):
2124 (vect_create_data_ref_ptr):
2126 (vect_get_vec_def_for_operand):
2127 (vect_finish_stmt_generation):
2128 (vectorizable_assignment):
2129 (vectorizable_operation):
2130 (vectorizable_store):
2131 (vectorizable_load):
2132 (vect_transform_stmt):
2133 (vect_update_ivs_after_vectorizer):
2134 (vect_do_peeling_for_loop_bound):
2135 (vect_do_peeling_for_alignment):
2136 (vect_transform_loop):
2137 (vect_is_simple_use):
2138 (vect_analyze_operations):
2139 (vect_is_simple_iv_evolution):
2140 (vect_analyze_scalar_cycles):
2141 (vect_analyze_data_ref_dependences):
2142 (vect_compute_data_ref_alignment):
2143 (vect_enhance_data_refs_alignment):
2144 (vect_analyze_data_ref_access):
2145 (vect_analyze_data_ref_accesses):
2146 (vect_analyze_pointer_ref_access):
2147 (vect_get_memtag_and_dr):
2148 (vect_analyze_data_refs):
2149 (vect_mark_relevant):
2150 (vect_stmt_relevant_p):
2151 (vect_mark_stmts_to_be_vectorized):
2152 (vect_can_advance_ivs_p):
2153 (vect_get_loop_niters):
2154 (vect_analyze_loop):
2155 (vectorize_loops): Likewise.
2157 (vectorizable_load): Argument in call to vect_debug_details/stats
2158 changed from loop to LOOP_LOC (loop_vinfo).
2159 (vect_transform_loop):
2160 (vect_analyze_operations):
2161 (vect_analyze_scalar_cycles):
2162 (vect_analyze_data_ref_dependence):
2163 (vect_enhance_data_refs_alignment):
2164 (vect_analyze_data_ref_accesses):
2165 (vect_analyze_pointer_ref_access):
2166 (vect_analyze_data_refs):
2167 (vect_analyze_loop): Likewise.
2169 (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2170 changed from loop to loop_loc.
2172 (vect_enhance_data_refs_alignment): Removed unused variable loop.
2174 2005-02-03 Leehod Baruch <leehod@il.ibm.com>
2175 Dorit Naishlos <dorit@il.ibm.com>
2177 * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2179 (vect_analyze_data_ref_dependences): Likewise.
2181 (vect_is_simple_use): Argument changed from loop structure to
2182 loop_vect_info structure.
2183 (vect_can_advance_ivs_p): Likewise.
2184 (vect_create_index_for_vector_ref): Likewise.
2185 (vect_update_ivs_after_vectorizer): Likewise.
2186 (new_stmt_vec_info): Likewise.
2188 (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2189 changed from loop to loop_vinfo.
2190 (vect_create_data_ref_ptr): First argument in call to
2191 vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2192 (vectorizable_assignment): Second argument in call to vect_is_simple_use
2193 was changed from loop to loop_vinfo.
2194 (vectorizable_operation): Likewise.
2195 (vectorizable_store): Likewise.
2196 (vect_mark_stmts_to_be_vectorized): Likewise.
2197 (vect_do_peeling_for_loop_bound): First argument in call to
2198 vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2199 (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2200 was changed from loop to loop_vinfo.
2201 (vect_analyze_data_ref_dependences): Third argument in call to
2202 vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2204 (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2205 (vect_create_data_ref_ptr): Likewise.
2206 (vect_init_vector): Likewise.
2207 (vect_get_vec_def_for_operand): Likewise.
2208 (vectorizable_assignment): Likewise.
2209 (vectorizable_operation): Likewise.
2210 (vectorizable_store): Likewise.
2211 (vectorizable_load): Likewise.
2212 (vect_update_ivs_after_vectorizer): Likewise.
2213 (vect_is_simple_use): Likewise.
2214 (vect_analyze_data_ref_dependence): Likewise.
2215 (vect_analyze_pointer_ref_access): Likewise.
2216 (vect_can_advance_ivs_p): Likewise.
2218 * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2219 before _stmt_vec_info.
2220 (_stmt_vec_info): Loop field replaced by loop_vec_info.
2221 (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2222 (new_stmt_vec_info): Argument changed from loop structure to
2223 loop_vect_info structure
2225 (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2226 (vect_analyze_offset_expr): Avoid 80 columns overflow.
2227 (vect_create_addr_base_for_vector_ref): Likewise.
2228 (vect_analyze_pointer_ref_access): Likewise.
2230 2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2233 * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2234 phi flag if the phi is abnormal.
2236 2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2239 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2240 information for the new statement.
2242 2005-02-03 Joseph S. Myers <joseph@codesourcery.com>
2245 * gcc.c (main): Include the target in -v output.
2247 2005-02-03 Alexandre Oliva <aoliva@redhat.com>
2249 * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
2250 Do not drop the extend if we'd have to add a paradoxical subreg
2251 later. Include optabs.h and insn-codes.h.
2252 * Makefile.in (combine.o): Depend on $(OPTABS_H).
2254 2005-02-02 Roger Sayle <roger@eyesopen.com>
2257 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
2258 * fold-const.c (const_binop): Avoid constant folding floating
2259 point operations in modes that use composite representations.
2260 * simplify-rtx.c (simplify_binary_operation): Likewise.
2262 2005-02-02 Geoffrey Keating <geoffk@apple.com>
2264 * config/rs6000/altivec.md (altivec_dst): Make the first operand
2266 (altivec_dstt): Likewise.
2267 (altivec_dstst): Likewise.
2268 (altivec_dststt): Likewise.
2269 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
2272 2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2274 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
2275 EXPR_LOCUS from orig_cond to the new cond_stmt.
2276 (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
2279 2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2281 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2282 standard_iv_increment_position. Remove call to bsi_next
2283 (no need to bump the iterator anymore).
2284 (vect_create_index_for_vector_ref): Call
2285 standard_iv_increment_position. Remove second function argument.
2286 (vect_finish_stmt_generation): Remove call to bsi_next
2287 (no need to bump the iterator anymore).
2288 (vect_create_data_ref_ptr): Remove second argument (bsi) in call
2289 to vect_create_index_for_vector_ref.
2291 2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2293 * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
2294 phis are used out of the loop.
2296 2005-02-03 Joseph S. Myers <joseph@codesourcery.com>
2299 * c-decl.c (undef_nested_function): New variable.
2300 (pop_scope): Diagnose undefined nested functions.
2301 (finish_function): Don't attempt cgraph processing or genericizing
2302 if current top-level function contained an undefined nested
2303 function. Reset undef_nested_function at the end of a top-level
2306 2005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
2308 * tree.c (build_int_cst_type): Take sign of the value into account
2309 when deciding whether sign extend the value.
2311 2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2314 * gcc.c (cpp_unique_options): Remove %{trigraphs}.
2315 (cpp_options, cc1_options): Change %{std*&ansi} to
2316 %{std*&ansi&trigraphs}.
2318 2005-02-02 Kazu Hirata <kazu@cs.umass.edu>
2320 * cse.c: Update comments.
2322 2005-02-02 Aldy Hernandez <aldyh@redhat.com>
2324 * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
2325 arguments go on the stack. Do not put complex doubles in odd/even
2328 2005-02-02 Steven Bosscher <stevenb@suse.de>
2330 * doc/invoke.texi: Update the options enabled at -O1, -O2,
2331 and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
2332 -ftree-pre, and -fthread-jumps.
2334 2005-02-02 Richard Sandiford <rsandifo@redhat.com>
2336 PR tree-optimization/19578
2337 * tree-flow.h (modified_noreturn_calls): Declare.
2338 (noreturn_call_p): Declare.
2339 * tree-flow-inline.h (noreturn_call_p): New function.
2340 (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
2341 * tree-cfg.c (modified_noreturn_calls): New variable.
2342 (cleanup_control_flow): Use noreturn_call_p. Split basic blocks
2343 that contain a mid-block noreturn call.
2344 * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
2346 2005-02-02 Kazu Hirata <kazu@cs.umass.edu>
2348 * df.c (df_def_record_1, df_uses_record): Don't use
2350 * df.h (DF_FOR_REGALLOC): Remove.
2352 2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2355 * c-typeck.c (really_start_incremental_init): Reset
2356 constructor_max_index for arrays of incomplete type.
2358 2005-02-02 Jeff Law <law@redhat.com>
2360 * gcse.c (struct reg_set): Store the block index where the register
2361 was set rather than the setting insn.
2362 (record_one_set, compute_transp): Corresponding changes.
2363 (pre_insert_copy_insn): Do not call replace_one_set.
2364 (replace_one_set): Remove.
2366 2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2369 * doc/gcov.texi: Fix typo.
2371 2005-02-01 Richard Henderson <rth@redhat.com
2374 * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
2375 * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
2377 (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
2378 * config/i386/i386-protos.h: Update.
2380 2005-02-01 Steven Bosscher <stevenb@suse.de>
2382 PR tree-optimization/19217
2383 * tree-cfg.c (verify_expr): Use the data field to see if TP was
2384 seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
2385 (verify_stmts): Pass (void*)1 as data to verify_expr to signal
2386 that it is walking a PHI node.
2388 2005-02-01 Joseph S. Myers <joseph@codesourcery.com>
2390 * doc/extend.texi (Nested Functions): Update.
2392 2005-02-01 Richard Henderson <rth@redhat.com>
2395 * optabs.c (expand_copysign_absneg): Export.
2396 * optabs.h (expand_copysign_absneg): Declare.
2397 * config/rs6000/rs6000.md (copysigntf3): New.
2399 2005-02-01 Diego Novillo <dnovillo@redhat.com>
2401 PR tree-optimization/19633
2402 * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
2403 * tree-ssa-alias.c (init_alias_info): Initialize.
2404 (merge_pointed_to_info): Set.
2405 (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
2406 (dump_points_to_info_for): Show value of pt_null.
2407 (struct count_ptr_d): Declare.
2408 (find_ptr_dereference): Remove.
2409 (ptr_is_dereferenced_by): Remove.
2410 (count_ptr_derefs): New local function.
2411 (count_uses_and_derefs): New local function.
2412 (compute_points_to_and_addr_escape): Call it. If the number
2413 of dereferences is greater than zero, mark the pointer as
2414 dereferenced. If there are fewer dereferences than uses of
2415 the pointer, the pointer's value escapes.
2417 2005-02-01 Diego Novillo <dnovillo@redhat.com>
2419 PR tree-optimization/19670
2420 * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
2422 (verify_use): ... set it here, instead.
2424 2005-02-01 Janis Johnson <janis187@us.ibm.com>
2426 * doc/sourcebuild.texi (Test directives): Fix formatting.
2428 * doc/sourcebuild.texi (Test directives): Describe selector
2431 2005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
2433 * config.gcc (powerpc64-*-linux*): Default to -m64 also for
2434 specific 64-bit CPUs.
2436 2005-02-01 Richard Earnshaw <rearnsha@arm.com>
2439 * arm.c (arm_eliminable_register): New function.
2440 (adjacent_mem_locations): Don't allow eliminable registers. Use
2441 HOST_WIDE_INT for address offsets.
2442 * arm-protos.h (arm_eliminable_register): Add prototype.
2444 2005-02-01 Steven Bosscher <stevenb@suse.de>
2446 PR optimization/15242
2447 * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
2448 * basic-block.h (duplicate_computed_gotos): Add prototype.
2449 * bb-reorder.c (duplicate_computed_gotos): New function to
2450 duplicate sufficiently small blocks ending in a computed jump.
2451 * passes.c (rest_of_compilation): Call duplicate_computed_gotos
2452 if not optimizing for size.
2453 * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
2454 never do tail merging for blocks ending in a computed jump.
2455 * doc/invoke.texi: Document the max-goto-duplication-insns param.
2457 2005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2459 Patch from Richard Sandiford <rsandifo@redhat.com>
2460 * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
2461 from inheriting a subreg equivalence with a non-spill register.
2463 * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2465 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
2467 * config/frv/frv.c (movcc_fp_destination_operand): New.
2468 (gpr_or_memory_operand): Fix typo in comment.
2469 (gpr_or_memory_operand_with_scratch): New.
2470 * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
2471 * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
2472 movcc_fp_destination_operand.
2473 (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
2474 Legitimize memory addresses using a scratch register.
2476 2005-01-31 Jeff Law <law@redhat.com>
2478 * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
2479 bitmap a sparse bitmap instead of a simple bitmap.
2480 (mark_def_sites_initialize_block): Corresponding changes.
2481 (ssa_mark_def_sites_initialize_block): Likewise.
2482 (ssa_mark_phi_uses): Likewise.
2483 (mark_def_site, ssa_mark_def_sites): Likewise.
2484 (mark_def_site_blocks): Likewise.
2485 (rewrite_ssa_into_ssa): Likewise.
2487 * tree-ssa-dom.c (record_cond): Pass correct variable type
2488 for last argument to htab_find_slot_with_hash.
2490 * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
2491 effects when optimizing 0 % X. Do not try to optimize X % 0.
2493 2005-01-31 James E. Wilson <wilson@specifixinc.com>
2495 * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
2498 2005-02-01 Eric Christopher <echristo@redhat.com>
2500 * config/mips/mips.c (override_options): Warn if -mint64
2502 * doc/invoke.texi (MIPS Options): Document that -mint64 is
2505 2005-02-01 Kazu Hirata <kazu@cs.umass.edu>
2507 * cse.c (cse_reg_info): Remove hash_next, next, regno. Add
2509 (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
2510 REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
2511 cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
2512 (cached_regno): Initialize to INVALID_REGNUM.
2513 (cse_reg_info_table_size,
2514 cse_reg_info_table_first_uninitialized,
2515 cse_reg_info_timestamp): New.
2516 (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
2518 (init_cse_reg_info, get_cse_reg_info_1): New.
2519 (get_cse_reg_info): Cache the last look-up.
2520 (new_basic_block): Update the code to clear mappings from
2521 registers to cse_reg_info entries.
2522 (cse_main): Call init_cse_reg_info.
2524 * cse.c (get_cse_reg_info): Update a comment.
2526 2005-01-31 Steven Bosscher <stevenb@suse.de>
2529 * c-decl.c (start_decl): Do not warn about arrays of elements with
2530 an incomplete type here.
2531 (grokdeclarator): Do it here by making a pedwarn an error.
2532 * c-typeck.c (push_init_level): If there were previous errors with
2533 the constructor type, do not warn about braces for initializers.
2534 (process_init_element): Likewise for excess initializer elements.
2536 2005-01-31 Kazu Hirata <kazu@cs.umass.edu>
2538 * cse.c (delete_trivially_dead_insn): Don't iterate.
2540 2005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
2542 * config/rs6000/rs6000.md (copysignsf3): New expand.
2543 (copysigndf3): Likewise.
2545 2005-01-31 Steven Bosscher <stevenb@suse.de>
2547 * recog.c (constrain_operands): Only look for earlyclobber operand
2548 conflicts if an '&' constraint was seen.
2550 2005-01-31 Marc Espie <espie@openbsd.org>
2552 * config.gcc: Don't include embedded systems fragment, switches default
2553 debugging format to ELF.
2554 * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
2555 longer pick it up there.
2557 2005-01-31 Dale Johannesen <dalej@apple.com>
2559 * doc/extend.texi (nested functions): Fix linkage description.
2560 Clarify that static is not allowed.
2562 2005-01-31 Dale Johannesen <dalej@apple.com>
2564 * config/rs6000/darwin.md (movsf_low_di): Make work.
2565 (movdf_low_di): Make work.
2567 2005-01-31 Dale Johannesen <dalej@apple.com>
2569 * config/rs6000/darwin-tramp.asm (__trampoline_setup):
2570 Make work for 64 bit.
2572 2005-01-31 Roger Sayle <roger@eyesopen.com>
2573 Dale Johannesen <dalej@apple.com>
2576 * fold-const.c (fold_binary_op_with_conditional_arg):
2577 Make types match original operands, before STRIP_NOPS.
2579 2005-01-31 Alan Modra <amodra@bigpond.net.au>
2581 * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
2582 (struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
2583 (struct gcc_sigcontext): Delete. Merge contents to..
2584 (struct gcc_ucontext): ..here.
2585 (get_sigcontext): Delete.
2586 (get_regs): New function, like get_sigcontext but return regs ptr.
2587 64-bit version finds regs from r1 to support vdso.
2588 (ppc_linux_aux_vector): New function.
2589 (ppc_fallback_frame_state): Modify for get_regs. Restore fprs
2592 2005-01-31 Ira Rosen <irar@il.ibm.com>
2594 * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
2596 (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
2597 redundant fold. Fix misalignment for MINUS_EXPR.
2598 (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
2599 (vect_analyze_pointer_ref_access): Likewise.
2600 (vect_get_memtag_and_dr): Likewise.
2602 2005-01-31 Richard Henderson <rth@redhat.com>
2604 * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
2605 (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
2606 absnegdf2_i387, absnegxf2_i387): Likewise.
2608 2005-01-31 Richard Henderson <rth@redhat.com>
2611 * optabs.c (expand_copysign_absneg): New.
2612 (expand_copysign_bit): Split out from ...
2613 (expand_copysign): ... here. Use expand_copysign_absneg.
2615 2005-01-30 Roger Sayle <roger@eyesopen.com>
2618 * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
2619 constant as the second operand and a register as the third.
2621 2005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
2624 * config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
2625 that dllimport'd functions do not use all call-clobbered registers
2628 2005-01-30 Richard Henderson <rth@redhat.com>
2631 * optabs.c (expand_absneg_bit): Split out from expand_unop and
2632 expand_abs_nojump and generalize. Use operand_subword and
2633 emit_no_conflict_block. Support large modes.
2634 (expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
2636 (expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
2637 negation to subtraction.
2638 (expand_copysign): Check that the format has signed zeros.
2639 Use operand_subword and emit_no_conflict_block. Support large modes.
2641 2005-01-30 Daniel Berlin <dberlin@dberlin.org>
2643 Fix PR tree-optimization/19624
2645 * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
2646 * tree-ssa-pre.c: Add cfgloop.h.
2648 (pre_stats): New member, constified.
2649 (inserted_exprs): New static variable.
2650 (NECESSARY): New macro.
2651 (create_expression_by_pieces): Fold the expression, and
2652 mark it as defaulting to not necessary. Also put in
2654 (fully_constant_expression): New function.
2655 (insert_into_preds_of_block): Modify to not insert phis when we
2656 are playing with induction variables.
2657 Push phis onto the inserted_exprs vector, and mark them as not
2658 necessary by default.
2659 (insert_aux): Call fully_constant_expression on eprime.
2660 If all edges produce the same value, mark it constant.
2661 (mark_operand_necessary): New function.
2662 (remove_dead_inserted_code): New function.
2663 (init_pre): Init loop optimizer to get loop info.
2664 (fini_pre): Free loop_optimizer, and inserted_exprs vec.
2665 (execute_pre): Commit edge inserts, then remove dead code.
2667 2005-01-30 Richard Henderson <rth@redhat.com>
2669 * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
2670 * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2672 2005-01-30 Richard Henderson <rth@redhat.com>
2675 * config/i386/i386.c (ix86_expand_copysign): New.
2676 (ix86_split_copysign_const): New.
2677 (ix86_split_copysign_var): Rename from ix86_split_copysign,
2678 rearrange op1/nmask operands.
2679 * config/i386/i386-protos.h: Update.
2680 * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
2681 (copysigndf3): Likewise.
2682 (copysignsf3_const, copysigndf3_const): New.
2683 (copysignsf3_var): Rename from copysignsf3, split out splitter
2684 and fix split predicate for X constraint.
2685 (copysigndf3_var): Similarly.
2687 2005-01-30 Kazu Hirata <kazu@cs.umass.edu>
2689 * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2690 doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2691 doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2693 2005-01-29 Richard Henderson <rth@redhat.com>
2696 * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2697 of # and * in constraints.
2699 2005-01-29 Richard Henderson <rth@redhat.com>
2702 * expr.c (store_field): Don't strip sub-mode cast when the input
2703 data is even smaller.
2705 2005-01-29 Richard Henderson <rth@redhat.com>
2708 * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2711 2005-01-29 Richard Henderson <rth@redhat.com>
2713 * combine.c (make_field_assignment): Fix argument order
2716 2005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
2718 PR tree-optimization/15791
2719 * fold-const.c (extract_array_ref): New function.
2720 (fold): Fold comparisons between &a[i] and &a[j] or
2721 semantically equivalent trees.
2723 2005-01-29 Jeff Law <law@redhat.com>
2725 * gcse.c (insert_expr_in_table): Revamp handling of available
2726 and anticipatable occurrence lists to avoid unnecessary list
2728 (insert_set_in_table): Similarly.
2730 2005-01-29 Joseph S. Myers <joseph@codesourcery.com>
2732 * c-common.c (fix_string_type): Just use c_build_qualified_type to
2734 (c_build_qualified_type): Build qualified array types with
2735 TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
2736 * c-decl.c (c_make_fname_decl): Build unqualified array type
2737 before qualified type.
2738 (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
2739 type is qualified, not just if type itself is. Don't apply
2740 qualifiers to array type when declarator is processed. Apply
2741 qualifiers to field type whether or not it is an array type.
2742 Don't handle array types specially for applying qualifiers to
2744 * c-typeck.c (composite_type): Build unqualified element type and
2745 array type when forming composite of array types.
2746 (common_pointer_type, comptypes, comp_target_types,
2747 type_lists_compatible_p, build_indirect_ref, build_array_ref,
2748 convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
2750 (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
2751 (args2) in variables a1 and a2.
2753 2005-01-29 Kazu Hirata <kazu@cs.umass.edu>
2755 * cse.c (n_elements_made, max_elements_made): Remove.
2756 (insert): Don't touch n_elements_made.
2757 (cse_main): Don't touch n_elements_made or max_elements_made.
2759 2005-01-28 Stephane Carrez <stcarrez@nerim.fr>
2762 * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
2763 configuration part of dp-bit.c to be lost.
2765 2005-01-28 Roger Sayle <roger@eyesopen.com>
2767 * expmed.c (expand_mult_highpart_optab): When attempting to use
2768 a non-widening multiplication in a wider mode, the operands need
2769 to be converted (zero or sign extended) to that mode.
2771 2005-01-28 Ian Lance Taylor <ian@airs.com>
2775 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2776 through if both operands fall through.
2778 2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
2780 * cse.c (fold_rtx) <PC>: Don't optimize.
2782 2005-01-28 Jeff Law <law@redhat.com>
2784 * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2785 (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2787 2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
2789 * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2790 cse_reg_info_used_list_end): Remove.
2791 (cse_reg_info_list, cse_reg_info_list_free): New.
2792 (get_cse_reg_info): When allocating an instance of
2793 cse_reg_info, add it to the beginning of the cse_reg_info_list
2794 list. Remove code to maintain cse_reg_info_used_list.
2795 (new_basic_block): Reset the free list to the beginning of
2798 2005-01-28 Richard Sandiford <rsandifo@redhat.com>
2800 * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2801 (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2802 (frv_expand_mdpackh_builtin): New function.
2803 (frv_expand_builtin): Use it to expand __MDPACKH.
2804 * doc/extend.texi (__MDPACKH): Update documentation.
2806 2005-01-28 Uros Bizjak <uros@kss-loka.si>
2808 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
2809 SSE_FLOAT_MODE_P for use_sse computation.
2811 2005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
2814 * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2816 2005-01-27 Richard Henderson <rth@redhat.com>
2818 * builtins.c (expand_builtin_copysign): New.
2819 (expand_builtin): Call it.
2820 * genopinit.c (optabs): Add copysign_optab.
2821 * optabs.c (init_optabs): Initialize it.
2822 (expand_copysign): New.
2823 * optabs.h (OTI_copysign, copysign_optab): New.
2824 (expand_copysign): Declare.
2826 * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
2827 (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
2829 * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
2830 (ix86_expand_fp_absneg_operator): ... here.
2831 (ix86_split_copysign): New.
2832 * config/i386/i386-protos.h: Update.
2833 * config/i386/i386.md (UNSPEC_COPYSIGN): New.
2834 (copysignsf3, copysigndf3): New.
2836 * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
2837 (copysignsf3, ncopysignsf3): New.
2838 (copysigndf3, ncopysigndf3): New.
2839 (copysignxf3, ncopysignxf3): New.
2840 * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2842 2005-01-27 Arend Bayer <arend.bayer@web.de>
2843 Kazu Hirata <kazu@cs.umass.edu>
2845 * cse.c: (find_best_addr): Don't call copy_rtx before calling
2846 fold_rtx. Save cost recomputation if fold_rtx did nothing.
2847 (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
2850 2005-01-27 Jeff Law <law@redhat.com>
2852 * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
2853 definitions of SSA_NAMEs which are not being rewritten.
2854 (rewrite_ssa_into_ssa): Only initialize the current definition
2855 of an SSA_NAME if that SSA_NAME has been marked for rewriting.
2856 If checking is enabled, assert that SSA_NAME_AUX is clear for all
2857 SSA_NAMEs before returning.
2859 2005-01-27 Kazu Hirata <kazu@cs.umass.edu>
2861 * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
2862 cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
2863 tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
2864 config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
2865 config/mips/iris6.h, config/sh/sh.c: Update copyright.
2867 2005-01-27 Steven Bosscher <stevenb@suse.de>
2870 * opts.c (decode_options): Move flag_thread_jumps from -O1 and
2871 higher to -O2 and higher. Likewise for tree PRE.
2872 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
2875 2005-01-27 Ian Lance Taylor <ian@airs.com>
2878 * gimple-low.c (try_catch_may_fallthru): New static function.
2879 (block_may_fallthru): Handle TRY_CATCH_EXPR.
2880 * tree-inline.c (expand_call_inline): Don't warn about reaching
2881 the end of a non-void function being inlined if the function uses
2884 2005-01-27 Jakub Jelinek <jakub@redhat.com>
2886 * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
2889 * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
2890 (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
2891 (implicitly_declare): Handle error_mark_node.
2893 2005-01-27 Richard Henderson <rth@redhat.com>
2896 * tree.h (struct tree_decl): Add debug_expr_is_from.
2897 (DECL_DEBUG_EXPR_IS_FROM): New.
2898 (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
2899 * dwarf2out.c (dwarf2out_var_location): Update to match.
2900 * tree-outof-ssa.c (create_temp): Likewise.
2901 * var-tracking.c (track_expr_p): Likewise.
2902 * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
2903 * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2904 * toplev.c (default_tree_printer): Likewise.
2906 2005-01-27 Alexandre Oliva <aoliva@redhat.com>
2908 * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
2909 GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2911 2005-01-27 Steven Bosscher <stevenb@suse.de>
2913 * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
2914 CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2915 ASM_CLOBBERS): Add tree checks.
2917 * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
2918 (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
2919 * c-common.def (SWITCH_STMT): Update to match.
2920 * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
2921 macros instead of SWITCH_EXPR ones.
2922 * c-dump.c (c_dump_tree): Likewise.
2923 * c-gimplify.c (gimplify_switch_stmt): Likewise.
2924 * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
2926 * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2928 2005-01-27 Alan Modra <amodra@bigpond.net.au>
2930 * unwind-dw2.c (execute_stack_op): Add missing cases for
2931 DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2933 2005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
2935 * config.gcc (Obsolete configurations): Remove 'dummy', add
2936 sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
2939 2005-01-26 Diego Novillo <dnovillo@redhat.com>
2941 PR tree-optimization/19633
2942 * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
2944 (maybe_create_global_var): Do not create .GLOBAL_VAR if there
2945 are no call-clobbered variables.
2946 * tree-outof-ssa.c (check_replaceable): Return false for calls
2949 2005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
2951 * dbxout.c (dbxout_symbol_location): Resolve constant pool references
2952 even for variables with NULL DECL_INITIAL.
2954 2005-01-26 Stuart Hastings <stuart@apple.com>
2956 * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2958 2005-01-26 Richard Henderson <rth@redhat.com>
2961 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2963 * expr.c (store_field): Strip conversions to odd-bit-sized types
2964 if the destination field width matches.
2966 2005-01-26 Richard Henderson <rth@redhat.com>
2968 * c-decl.c, expmed.c, expr.c: Revert last change.
2970 2005-01-26 Richard Henderson <rth@redhat.com>
2973 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2975 * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
2976 if we don't need the bits above those present in the current mode.
2977 * expr.c (store_field): Strip conversions to odd-bit-sized types
2978 if the destination field width matches.
2980 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
2982 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2983 either -ffast-math or -funsafe-math-optimizations is in use.
2985 2005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
2989 * config/avr/avr.c (notice_update_cc): Only set condition code for
2990 ashrqi3 if shift count > 0.
2991 (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
2992 (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
2993 ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
2994 count <= 0 as a no-op, and shift count >= width by copying zero
2995 or sign bit to all bits of the result.
2996 * config/avr/avr.md (all shifts): Add alternatives for zero shift
2997 count, with attribute "length" set to 0 and "cc" set to "none".
2999 2005-01-26 Aldy Hernandez <aldyh@redhat.com>
3001 * doc/invoke.texi: Document -mTLS.
3003 * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
3004 * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
3005 * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
3006 * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
3007 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
3008 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
3009 * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
3010 * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
3012 * configure.ac: Check for a TLS capable gas.
3014 * configure: Regenerate.
3016 2005-01-26 Richard Henderson <rth@redhat.com>
3019 * combine.c (make_field_assignment): Simplify store to zero_extract
3020 from a source with an overlapping mask.
3022 2005-01-26 Aldy Hernandez <aldyh@redhat.com>
3024 2004-11-11 Eric Christopher <echristo@redhat.com>
3026 * config/frv/frv.md: Add fr400_integer automaton. Don't
3027 allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
3030 2005-01-26 Steven Bosscher <stevenb@suse.de>
3033 * cfgbuild.c (make_edges): Do not clear or set
3034 current_function_has_computed_jump.
3035 * function.h (struct function): Remove the has_computed_jump field.
3036 (current_function_has_computed_jump): Do not define.
3037 * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
3038 in a computed jump. Ignore current_function_has_computed_jump.
3040 2005-01-26 Richard Henderson <rth@redhat.com>
3043 * expr.c (categorize_ctor_elements): New argument p_must_clear.
3044 (categorize_ctor_elements_1): Likewise. Detect a union that isn't
3046 (mostly_zeros_p): Update for new categorize_ctor_elements argument.
3047 * gimplify.c (gimplify_init_constructor): Likewise. Only shove
3048 objects into static storage if they have more than one non-zero value.
3049 * tree.h (categorize_ctor_elements): Update decl.
3051 2005-01-26 Steven Bosscher <stevenb@suse.de>
3054 * tree.h (CALL_EXPR_TAILCALL): Add comment.
3055 * calls.c (check_sibcall_argument_overlap_1): Revert the change
3056 to this function from 2004-07-10.
3057 * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
3058 the current function for tail call optimizations if the address
3059 of one of it its arguments is taken.
3061 2005-01-26 Kazu Hirata <kazu@cs.umass.edu>
3063 * cse.c (fold_rtx): Call equiv_constant only when necessary.
3065 2005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
3067 * function.c (expand_function_end): If current_function_calls_alloca,
3068 emit stack restore in a place that is reached when the function falls
3071 2005-01-26 Alexandre Oliva <aoliva@redhat.com>
3073 * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
3074 rule to avoid matching inappropriate suffix rule.
3076 2005-01-26 Jan Hubicka <jh@suse.cz>
3078 PR tree-optimization/19241
3079 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
3081 2005-01-26 Hans-Peter Nilsson <hp@axis.com>
3083 * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
3084 -lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
3086 (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
3087 <sim*>: Always use crt1.o, regardless of N in simN.
3088 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3089 (ENDFILE_SPEC): Add crtn.o, after crtend.o.
3090 (CRT_CALL_STATIC_FUNCTION): Remove.
3091 * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
3092 use crt1.o, regardless of N in simN.
3093 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3094 (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
3095 (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
3096 case isystem setting.
3097 (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
3099 2005-01-25 Ian Lance Taylor <ian@airs.com>
3101 * gimple-low.c (block_may_fallthru): Correct handling of
3102 SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
3104 2005-01-26 Hans-Peter Nilsson <hp@axis.com>
3106 * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
3107 handlers to match indentation; nested under the mtune=* handler.
3108 Similar for mcpu= and march=.
3110 2005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
3112 * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
3113 * config/mips/linux64.h (LIB_SPEC): Likewise.
3114 * config/mn10300/linux.h (LIB_SPEC): Likewise.
3115 * config/sh/linux.h (LIB_SPEC): Likewise.
3117 2005-01-25 Aldy Hernandez <aldyh@redhat.com>
3119 * config/frv/frv.c (frv_legitimize_tls_address): New.
3120 (TARGET_HAVE_TLS): Define.
3121 (FRV_SYMBOL_REF_TLS_P): Define.
3122 (frv_override_options): Handle new register classes.
3123 (frv_legitimate_address_p): Reject tls addresses.
3124 (frv_legitimize_address): Handle TLS addresses.
3125 (gen_inlined_tls_plt): New.
3127 (frv_legitimize_tls_address): New.
3128 (unspec_got_name): Add TLS entries.
3129 (got12_operand): Add R_FRV_TLSMOFF12 case.
3130 (frv_emit_move): Fixup TLS addresses.
3131 (frv_emit_movsi): Legitimize TLS addresses.
3133 * config/frv/frv.h (MASK_BIG_TLS): New.
3134 (TARGET_BIG_TLS): New.
3135 (HAVE_AS_TLS): Define.
3136 (TARGET_SWITCHES): Add -mTLS and -mtls options.
3137 (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
3138 (REG_CLASS_NAMES): Same.
3139 (REG_CLASS_CONTENTS): Same.
3140 (CONSTRAINT_LEN): New.
3141 (REG_CLASS_FROM_CONSTRAINT): New.
3142 (PREDICATE_CODES): Add symbolic_operand.
3144 * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
3145 UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
3146 UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
3147 UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
3148 R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
3149 R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
3150 R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3151 GR9_REG, GR14_REG, LRREG.
3152 (type): Add load_or_call attribute.
3153 ("load_or_call"): New reservation.
3154 ("call_gettlsoff"): New.
3155 ("tls_indirect_call"): New.
3156 ("tls_load_gottlsoff12"): New.
3157 ("tlsoff_hilo"): New.
3158 ("tls_tlsdesc_ldd"): New.
3159 ("tls_tlsoff_ld"): New.
3162 * config/frv/frv-protos.h (symbolic_operand): Protoize.
3164 2005-01-25 Alexandre Oliva <aoliva@redhat.com>
3166 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3167 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3168 * config/frv/frv.c (TLS_BIAS): Define.
3169 (frv_output_dwarf_dtprel): New.
3171 2005-01-26 Jakub Jelinek <jakub@redhat.com>
3173 PR rtl-optimization/19579
3174 * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3175 both A and B, see if they don't clobber registers the other expr uses.
3177 2005-01-25 J"orn Rennecke <joern.rennecke@st.com>
3179 * real.c (do_add): Initialize signalling and canonical members.
3181 * real.c (real_from_integer): Zero out destination.
3183 2005-01-18 Jan Hubicka <jh@suse.cz>
3185 PR tree-optimize/19337
3186 * tree-inline.c (initialize_inlined_parameters): Copy
3187 saved_static_chain_decl only.
3189 2005-01-25 Richard Henderson <rth@redhat.com>
3193 * config/i386/i386.c (x86_inter_unit_moves): Zero.
3194 (ix86_preferred_reload_class): Rewrite fp-constant section, with
3195 80387 enabled, to return a proper subclass. Return the subset that
3196 overlaps with GENERAL_REGS for PLUS.
3197 * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
3199 2005-01-25 Richard Henderson <rth@redhat.com>
3202 * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
3204 2005-01-25 Roger Sayle <roger@eyesopen.com>
3206 * expmed.c (choose_multiplier): Change interface to return the
3207 multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
3208 (expand_divmod): Update calls to choose_multiplier.
3210 2005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3213 * expmed.c (extract_bit_field): Use adjust_address instead of
3214 gen_lowpart when op0 is a MEM.
3216 2005-01-24 Steven Bosscher <stevenb@suse.de>
3218 * cfgexpand.c (expand_gimple_tailcall): Fix typo.
3220 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
3222 * config/mips/irix-csr.c: New file.
3223 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3224 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3225 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3228 2005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
3231 * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
3232 sparc/elf.h, add sparc/sp-elf.h.
3233 (sparc-*-rtems*): Likewise.
3234 (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
3235 tm-dwarf2.h, add sparc/sp-elf.h.
3236 (sparc86x-*-elf): Likewise.
3237 (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
3238 * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
3239 TARGET_OS_CPP_BUILTINS.
3240 * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3241 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3243 * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
3244 * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
3245 (SWITCH_TAKES_ARG): Likewise.
3246 (LOCAL_LABEL_PREFIX): Likewise.
3247 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3248 (TARGET_N_FORMAT_TYPES): Delete.
3249 (TARGET_FORMAT_TYPES): Likewise.
3250 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
3251 * config/sparc/elf.h: Delete.
3252 * config/sparc/sp-elf.h: New file.
3254 2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
3256 * tree-flow-inline.h (phi_arg_from_edge): Remove.
3257 * tree-flow.h: Remove the corresponding prototype.
3258 * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
3259 tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
3261 2005-01-24 Jakub Jelinek <jakub@redhat.com>
3264 * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
3265 for AIX ABI or ELF -fPIC.
3266 (rs6000_emit_load_toc_table): Don't create toc_section here.
3267 (rs6000_xcoff_file_start): Nor here.
3269 2005-01-24 J"orn Rennecke <joern.rennecke@st.com>
3271 * sh.c (ra.h): Don't #include.
3272 (hard_regs_intersect_p): New function, resurrected from ra.c.
3274 * sh.c: Fix 1996 Copyright.
3276 2005-01-24 Richard Henderson <rth@redhat.com>
3277 Aldy Hernandez <aldyh@redhat.com>
3279 * regrename.c (note_sets): Handle subregs.
3281 2005-01-24 Joseph S. Myers <joseph@codesourcery.com>
3284 * genconditions.c (write_header, write_conditions): Elide file if
3287 2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
3289 * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
3290 config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
3293 2005-01-24 Jakub Jelinek <jakub@redhat.com>
3295 * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
3296 expand_builtin_printf, expand_builtin_fprintf,
3297 expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
3298 checking against POINTER_TYPE.
3299 (validate_arglist): Handle POINTER_TYPE code by checking
3302 2005-01-24 Paolo Bonzini <bonzini@gnu.org>
3304 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
3306 (for_each_rtx): Call for_each_rtx_1.
3307 * rtl.h (init_rtlanal): Declare.
3308 * toplev.c (backend_init): Call init_rtlanal.
3310 2005-01-24 Jakub Jelinek <jakub@redhat.com>
3312 * flow.c (propagate_one_insn): Formatting.
3315 * flow.c (libcall_dead_p): Be more conservative if unsure.
3316 If there are any instructions between insn and call, see if they are
3317 all dead before saying the libcall is dead.
3319 2005-01-24 Uros Bizjak <uros@kss-loka.si>
3321 * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
3322 operand constraint for operand 0.
3324 2005-01-23 Richard Henderson <rth@redhat.com>
3327 * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
3328 edges leading to join block.
3330 2005-01-23 Roger Sayle <roger@eyesopen.com>
3332 * expmed.c (expand_mult_highpart): Make static. Change type of
3333 constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
3334 (expand_divmod): Updates calls to expand_mult_highpart by using
3335 gen_int_mode to pass a CONST_INT rtx.
3336 * rtl.h (expand_mult_highpart): Remove prototype.
3338 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3340 * flow.c (regset_bytes, regset_size): Remove.
3342 * cfganal.c: Fix a reference to Harvey's paper.
3344 2005-01-23 Steven Bosscher <stevenb@suse.de>
3346 PR rtl-optimization/19464
3347 * tree-optimize.c (init_tree_optimization_passes): Add one more
3348 copyrename pass just before out-of-ssa.
3350 2005-01-23 Joseph S. Myers <joseph@codesourcery.com>
3353 * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
3354 * ggc-none.c (ggc_free): Define.
3356 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3358 * cse.c (max_reg, max_insn_uid): Remove.
3359 (cse_main): Don't access max_reg or max_insn_uid.
3361 * c-common.c (explicit_flag_signed_bitfields,
3362 lang_statement_code_p, lang_expand_function_end): Remove.
3363 * c-common.h: Remove the corresponding declarations.
3364 * c-opts.c (c_common_handle_option): Remove all write access
3365 to explicit_flag_signed_bitfields.
3367 * cgraph.c (cgraph_varpool_n_nodes): Remove.
3368 (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
3369 * cgraph.h: Remove the corresponding declaration.
3371 * gcse.c (null_pointer_info): Remove.
3373 2005-01-23 Roger Sayle <roger@eyesopen.com>
3374 Eric Botcazou <ebotcazou@libertysurf.fr>
3376 * combine.c (simplify_logical): Only simplify logical expressions
3377 of the form ior(and(x,y),z) by the inverse distributive law if the
3378 result is cheaper than the original.
3380 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3382 * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
3383 fold-const.c, gimplify.c, params.h, tree-data-ref.c,
3384 tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
3385 tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
3386 config/freebsd-spec.h, config/arm/arm.h,
3387 config/h8300/h8300.md, config/i386/i386.md,
3388 config/i386/predicates.md, config/i386/sse.md,
3389 config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
3390 config/vax/vax.md: Fix comment typos. Follow spelling
3393 2005-01-23 Steven Bosscher <stevenb@suse.de>
3395 * gengtype.c (walk_type): Produce `not equal to' compares for loop
3396 tests, instead of `less than'.
3398 2005-01-23 Richard Sandiford <rsandifo@redhat.com>
3400 * function.c (assign_parm_setup_block): When creating a new stack slot
3401 for a parameter, get its alignment from the parameter's DECL_ALIGN
3402 rather than the type's TYPE_ALIGN. Make sure that the parameter
3403 is at least word aligned.
3405 2005-01-22 Roger Sayle <roger@eyesopen.com>
3408 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3410 2005-01-22 Richard Henderson <rth@redhat.com>
3413 * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
3414 in both compare operands.
3415 (movdfcc_1_sse_max): Likewise.
3416 (movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
3417 (movdfcc_1_sse): Likewise.
3418 * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
3419 scratch register as needed.
3421 2005-01-22 Richard Henderson <rth@redhat.com>
3423 * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
3425 * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
3427 2005-01-22 Richard Henderson <rth@redhat.com>
3429 * genopinit.c (optabs): Use smin/smax for floating point too.
3430 * doc/md.texi: Update to match. Clarify that floating point
3431 results are undefined for +0/-0 and NaN.
3432 * doc/rtl.texi: Likewise.
3433 * rtl.def (SMIN, SMAX): Likewise
3434 * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
3436 * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
3437 leading 's' to the name.
3438 * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
3439 smaxxf3, sminxf3): Likewise.
3440 * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
3443 2005-01-22 Paul Brook <paul@codesourcery.com>
3445 * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
3447 2005-01-21 Mark Dettinger <dettinge@de.ibm.com>
3449 * config/s390/s390.c (struct processor_costs): New fields
3450 dlgr, dlr, dr, dsgfr, dsgr.
3451 (z900_cost, z990_cost): Values for new fields.
3452 (s390_rtx_costs): New cases MEM und COMPARE in switch
3453 statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
3454 DIV, MOD, UDIV, UMOD.
3456 2005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
3458 * config/s390/s390.md ("doloop_si64"): Reload input value directly
3459 into the register being decremented.
3460 ("doloop_si31", "doloop_di"): Likewise.
3461 ("*doloop_si_long"): Adapt pattern.
3463 2005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
3465 * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
3467 (CLASS_MAX_NREGS): Likewise.
3469 2005-01-21 Daniel Berlin <dberlin@dberlin.org>
3471 * doc/tree-ssa.texi (Statement Operands): Add example for new
3472 must-def macro. Note deprecation of old operands interface.
3474 2005-01-22 Richard Sandiford <rsandifo@redhat.com>
3476 PR tree-optimization/19484
3477 * tree-cfg.c (remove_fallthru_edge): New function.
3478 (cleanup_control_flow): Remove fallthru edges from calls that are
3479 now known not to return.
3481 2005-01-20 Daniel Berlin <dberlin@dberlin.org>
3483 Fix PR tree-optimization/19038
3484 * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
3485 copies with loop variant ones.
3487 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
3489 * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
3490 config/alpha/alpha-protos.h, config/alpha/alpha.h,
3491 config/alpha/alpha.md, config/alpha/predicates.md,
3492 config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
3493 config/sparc/sol2.h: Update copyright.
3495 * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
3496 first label to see if it is a nonlocal label.
3498 2005-01-22 David Edelsohn <edelsohn@gnu.org>
3499 Andrew Pinski <pinskia@physics.uc.edu>
3502 * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
3503 maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
3505 2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
3507 * config/rs6000/rtems.h: Update copyright.
3509 2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
3512 * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
3513 (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
3514 (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
3516 2005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3519 * c-typeck.c (convert_arguments): Check for error_mark_node.
3521 2005-01-21 Ian Lance Taylor <ian@airs.com>
3523 PR tree-optimization/13000
3524 * tree-inline.c: Include "tree-flow.h".
3525 (expand_call_inline): If warn_return_type, warn if non-void inline
3526 function falls through.
3527 * tree-cfg.c (execute_warn_function_return): Don't warn about
3528 control reaching end if TREE_NO_WARNING is set. Set
3530 * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
3532 * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
3533 branch if we don't need one.
3534 * c-typeck.c: Include "tree-flow.h"
3535 (c_finish_bc_stmt): Don't add a goto if the current statement
3536 list doesn't fall through to the current point.
3538 2005-01-21 Roger Sayle <roger@eyesopen.com>
3540 PR rtl-optimization/576
3541 * real.c (real_arithmetic): Change return type from void to bool
3542 to return an indication that the result may be inexact.
3543 * real.h (real_arithmeric): Update prototype.
3544 * fold-const.c (const_binop): Don't constant fold floating
3545 point expressions when the user specifies -frounding-math and
3546 the result may depend upon the run-time rounding mode.
3547 (fold_convert_const_real_from_real): Clean-up.
3548 (fold_initializer): Ignore flag_rounding_math for initializers.
3549 * simplify-rtx.c (simplify_binary_operation): Likewise, don't
3550 constant fold FP operations with flag_rounding_math if the
3551 result may depend upon the run-time rounding mode.
3553 2005-01-21 Tom Tromey <tromey@redhat.com>
3555 * c-cppbuiltin.c (define__GNUC__): Correct assertion.
3557 2005-01-21 Kazu Hirata <kazu@cs.umass.edu>
3559 * tree-cfg.c: Fix comment typos.
3561 2005-01-21 J"orn Rennecke <joern.rennecke@st.com>
3563 * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
3564 around the call to rest_of_handle_branch_target_load_optimize.
3566 2005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3568 * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
3569 (sparc64-*-openbsd*): Likewise.
3570 (sparclite-*-elf*): Include tm-dwarf2.h.
3571 (sparc86x-*-elf*): Likewise.
3572 (sparc64-*-elf*): Likewise.
3573 * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
3574 (DBX_DEBUGGING_INFO): Likewise.
3575 * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
3576 (PREFERRED_DEBUGGING_TYPE): Likewise.
3577 * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3578 * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
3579 (PREFERRED_DEBUGGING_TYPE): Likewise.
3580 * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
3581 (PREFERRED_DEBUGGING_TYPE): Likewise.
3582 * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
3584 2005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
3587 * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
3589 2005-01-20 Paul Brook <paul@codesourcery.com>
3591 * doc/rtl.texi: Document value extension requirements for CONST_INT.
3593 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3595 * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
3596 label is first in a sequence of labels.
3598 * tree-cfg.c (tree_verify_flow_info): Fix a typo.
3600 2005-01-20 Janis Johnson <janis187@us.ibm.com>
3601 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3603 * doc/sourcebuild.texi (Test Directives): New.
3605 2005-01-20 Roger Sayle <roger@eyesopen.com>
3607 * real.c (real_floor): Don't leave the result uninitialized when
3608 mode is VOIDMode, but return the unrounded intermediate value.
3609 (real_ceil): Likewise.
3611 2005-01-20 Paul Brook <paul@codesourcery.com>
3613 * config/arm/arm.md (insv): Use gen_int_mode.
3615 2005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
3617 * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
3618 * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3619 * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3620 * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3621 * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3623 2005-01-20 Daniel Berlin <dberlin@dberlin.org>
3626 * dwarf2out.c (concat_loc_descriptor): We don't know we can use
3627 fbreg, so we have to assume we can't.
3628 (loc_descriptor_from_tree_1): Ditto.
3629 (containing_function_has_frame_base): New function.
3630 (add_location_or_const_value_attribute): Use it.
3631 Also try to generate a frame_base from a single element location
3634 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3636 PR tree-optimization/15349
3637 * timevar.def (TV_TREE_MERGE_PHI): New.
3638 * tree-cfg.c (tree_forwarder_block_p): Add a new argument
3640 (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
3641 calls to tree_forwarder_block_p.
3642 (remove_forwarder_block_with_phi, merge_phi_nodes,
3643 gate_merge_phi, pass_merge_phi): New.
3644 * tree-optimize.c (init_tree_optimization_passes): Add
3646 * tree-pass.h: Add an extern for pass_merge_phi;
3648 2005-01-20 Richard Henderson <rth@redhat.com>
3651 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
3652 (_mm_castps_pd, _mm_castps_si128): New.
3653 (_mm_castsi128_ps, _mm_castsi128_pd): New.
3655 2005-01-20 Richard Henderson <rth@redhat.com>
3658 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
3659 __builtin_ia32_vec_init_v2si.
3660 (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
3661 * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
3662 (ix86_init_mmx_sse_builtins): Create it.
3663 (ix86_expand_builtin): Expand it.
3664 (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
3665 * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
3666 (vec_extractv2si_0, vec_extractv2si_1): New.
3668 2005-01-20 Richard Henderson <rth@redhat.com>
3671 * config/i386/i386.c (ix86_expand_push): New.
3672 * config/i386/mmx.md (push<MMXMODE>1): New.
3673 * config/i386/sse.md (push<SSEMODE>1): New.
3674 * config/i386/i386-protos.h: Update.
3676 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3678 * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
3681 2005-01-20 Richard Henderson <rth@redhat.com>
3683 * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
3684 * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
3686 2005-01-19 Richard Henderson <rth@redhat.com>
3689 * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
3690 to V4SFmode in SSE1 fallback load path.
3692 2005-01-19 Richard Henderson <rth@redhat.com>
3694 * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
3695 in QImode expansion to ix86_expand_vector_set.
3696 (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
3698 2005-01-19 Richard Henderson <rth@redhat.com>
3701 * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
3702 subclass of the input class.
3703 (ix86_secondary_memory_needed): Always true for cross-MMX classes.
3704 Always true for cross-SSE1 classes. Rationalize conditionals.
3705 * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
3706 * config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
3707 for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
3708 (movdi_2): Add MMX/SSE zeros.
3709 (movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
3710 (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
3711 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
3712 (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
3713 (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
3714 (zero_extendsidi2_rex64_1): Remove.
3715 (MOV0 peephole): Check GENERAL_REG_P.
3717 2005-01-19 Richard Henderson <rth@redhat.com>
3720 * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
3722 (ix86_expand_vector_extract): Likewise.
3724 2005-01-19 Richard Henderson <rth@redhat.com>
3727 * expr.c (emit_move_change_mode): New argument force; use
3728 simplify_gen_subreg if true.
3729 (emit_move_via_alt_mode): Merge into ...
3730 (emit_move_via_integer): ... here.
3731 (emit_move_ccmode): Use emit_move_change_mode directly.
3733 2005-01-19 Richard Henderson <rth@redhat.com>
3736 * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
3737 (alpha_preferred_reload_class): Handle CONST_VECTOR.
3738 (alpha_emit_set_const_1): Add no_output parameter; don't emit
3740 (alpha_emit_set_const): Likewise. Make static.
3741 (alpha_emit_set_long_const): Make static.
3742 (alpha_extract_integer): Split out from alpha_expand_mov.
3743 (alpha_split_const_mov): Likewise.
3744 (alpha_expand_mov): Use them. Handle CONST_VECTOR.
3745 (alpha_legitimate_constant_p): New.
3746 * config/alpha/alpha-protos.h: Update.
3747 * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
3748 (LEGITIMATE_CONSTANT_P): Re-implement with a function.
3749 * config/alpha/alpha.md (movsi): Add n alternative.
3750 (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
3751 (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
3752 (splitters for all of the above): Use alpha_split_const_mov.
3753 * config/alpha/predicates.md (non_add_const_operand): New.
3754 (non_zero_const_operand): New.
3755 (input_operand): Use alpha_legitimate_constant_p after reload.
3757 2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
3759 PR tree-optimization/19038
3760 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
3761 (add_candidate): Add ivs with increment in latch only if
3762 allow_ip_end_pos_p is true.
3763 (determine_iv_cost): Use empty_block_p.
3765 2005-01-19 Daniel Berlin <dberlin@dberlin.org>
3767 * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
3768 (compute_dominance_frontiers): Ditto.
3770 2005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
3773 * config/sh/t-rtems: New.
3774 * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3776 2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
3778 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3779 the offset of the selected field.
3781 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
3783 * tree-cfg.c (remove_forwarder_block): Fix the check to
3784 prevent a nonlocal label from appearing in the middle of a
3787 2005-01-19 Hans-Peter Nilsson <hp@axis.com>
3789 PR rtl-optimization/19462
3790 * reorg.c (find_end_label): Create return insn only if
3791 current_function_epilogue_delay_list is empty.
3793 2005-01-19 Paolo Bonzini <bonzini@gnu.org>
3795 * doc/passes.texi: Remove paragraph mentioning new-ra.
3797 2005-01-19 Jakub Jelinek <jakub@redhat.com>
3799 PR rtl-optimization/15139
3800 * combine.c: Include params.h.
3801 (count_rtxs): New function.
3802 (record_value_for_reg): If replace_rtx would replace at least
3803 2 occurrences of REG in VALUE and TEM is really large, replace REG with
3804 (clobber (const_int 0)) instead of TEM.
3805 * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
3806 * params.h (MAX_LAST_VALUE_RTL): New.
3807 * Makefile.in (combine.o): Depend on $(PARAMS_H).
3808 * doc/invoke.texi (--param max-last-value-rtl=N): Document.
3811 * c-typeck.c (digest_init): Only call build_vector if all constructor
3812 elements are *_CST nodes.
3813 * gimplify.c (gimplify_init_constructor): Likewise.
3816 * c-typeck.c (digest_init): Only call build_vector if inside_init
3819 2005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
3821 * toplev.c (init_asm_output): Remove dead #ifdef.
3823 2005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
3825 * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
3827 2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
3829 * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
3830 accessing DECL_FUNCTION_CODE.
3831 * dojump.c (do_jump): Likewise.
3832 * gimplify.c (gimplify_call_expr): Likewise.
3833 * predict.c (expr_expected_value): Likewise.
3834 (strip_builtin_expect): Likewise.
3835 * tree-inline.c (estimate_num_insns_1): Likewise.
3836 * tree-ssa-loop-im.c (stmt_cost): Likewise
3837 * fold-const.c (fold): Test for BUILT_IN_NORMAL.
3838 (tree_expr_nonnegative_p): Likewise.
3840 2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
3842 * config/sparc/sparc.c (load_pic_register): Emit the appropriate
3843 variant of the load_pcrel_sym pattern.
3844 * config/sparc/sparc.md (P macro): Move to the top.
3845 (load_pcrel_sym): Macroize using P.
3846 (save_register_window): Likewise.
3848 2005-01-18 Aldy Hernandez <aldyh@redhat.com>
3850 * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
3853 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
3856 * c-typeck.c (build_asm_expr): Strip nops off
3857 input memory operands.
3859 2005-01-18 David Edelsohn <edelsohn@gnu.org>
3861 * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
3862 _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
3863 * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
3864 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
3866 2005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
3869 * config/i386/i386.c (override_options): If the 80387 is disabled,
3870 then do not return FP values using FP registers.
3872 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
3874 * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
3875 c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
3876 combine.c, config.gcc, coverage.h, cse.c, cselib.c,
3877 defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
3878 flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
3879 gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
3880 output.h, postreload-gcse.c, postreload.c, recog.c,
3881 resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
3882 targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
3883 tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
3884 tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
3885 tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
3886 tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
3887 tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
3888 unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
3890 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
3891 config/alpha/alpha.c, config/arm/vfp.md,
3892 config/i386/emmintrin.h, config/i386/i386-modes.def,
3893 config/i386/i386-protos.h, config/i386/i386.h,
3894 config/i386/pmmintrin.h, config/i386/ppro.md,
3895 config/i386/predicates.md, config/i386/xmmintrin.h,
3896 config/i860/i860.c, config/ia64/ia64-modes.def,
3897 config/ia64/ia64-protos.h, config/ia64/ia64.h,
3898 config/ia64/ia64.md, config/ia64/itanium1.md,
3899 config/ia64/itanium2.md, config/ia64/predicates.md,
3900 config/iq2000/iq2000.h, config/mips/linux64.h,
3901 config/rs6000/aix41.h, config/rs6000/aix43.h,
3902 config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
3903 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3904 config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
3905 config/sparc/linux64.h, config/sparc/litecoff.h,
3906 config/sparc/sp64-elf.h, config/sparc/sparc.c,
3907 config/sparc/sparc.h, config/sparc/sparc.md,
3908 config/sparc/sysv4-only.h: Update copyright.
3910 2005-01-18 Richard Henderson <rth@redhat.com>
3913 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
3915 2005-01-18 Marc Espie <espie@openbsd.org>
3916 * config/i386/openbsdelf.h: Typo.
3918 2005-01-18 Richard Henderson <rth@redhat.com>
3920 * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
3921 special case for sse.
3922 * config/i386/predicates.md (sse_comparison_operator): Likewise.
3924 2005-01-18 Dorit Naishlos <dorit@il.ibm.com>
3926 * tree-inline.c (estimate_num_insns_1): Added cases for
3927 ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
3929 2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
3931 PR rtl-optimization/19296
3932 * combine.c (simplify_comparison): Rewrite the condition under
3933 which a non-paradoxical SUBREG of a PLUS can be lifted when
3934 compared against a constant.
3936 2005-01-18 Andi Kleen <ak@muc.de>
3938 * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
3939 * c.opt (-Wpointer-sign): Add.
3940 * doc/invoke.texi: (-Wpointer-sign): Add.
3942 2005-01-18 Uros Bizjak <uros@kss-loka.si>
3944 * config/i386/i386.c (override_options): Revert 2004-11-24 change.
3945 * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
3946 *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
3947 logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
3948 exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
3949 nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
3950 for TARGET_MIX_SSE_I387.
3951 (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
3952 sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
3953 atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
3954 log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
3955 floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
3956 (TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
3957 TARGET_MIX_SSE_I387.
3958 (atan2sf3, atan2df3, atan2xf3): Remove register constraints
3961 2005-01-18 Uros Bizjak <uros@kss-loka.si>
3964 * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
3965 Add movaps alternative for xmm reg->reg move.
3967 2005-01-17 Jeff Law <law@redhat.com>
3969 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
3970 at the end of the main DOM loop rather than just before DOM exits.
3972 2005-01-17 Diego Novillo <dnovillo@redhat.com>
3974 PR tree-optimization/19121
3975 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
3976 adding aliases to a name tag, also add them to the pointer's
3978 * tree-ssa-copy.c (merge_alias_info): Do not merge flow
3979 sensitive alias info at all. Only check that the two pointers
3980 have compatible pointed-to sets.
3981 * tree-ssa.c (verify_name_tags): Verify that the alias set of
3982 a pointer's type tag is a superset of the alias set of the
3985 2005-01-17 James E Wilson <wilson@specifixinc.com>
3988 * config/ia64/ia64.md (movxf): Handle general register source. Adjust
3989 comment to document why.
3991 2005-01-17 Richard Henderson <rth@redhat.com>
3993 * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
3994 sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
3995 sse2_vmsmaxv2df3_finite, sminv2df3_finite,
3996 sse2_vmsminv2df3_finite): New.
3997 (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
3998 sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
3999 Force op1 into register.
4001 2005-01-17 Kelley Cook <kcook@gcc.gnu.org>
4003 * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
4004 bubblestrap from always rebuilding build directory.
4006 2005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
4008 * config/s390/s390.md ("*clc"): Remove incorrect '='.
4009 ("*cmpmem_short"): Likewise.
4011 2005-01-17 Steven Bosscher <stevenb@suse.de>
4013 * basic-block.h: Document BB_* flags.
4014 * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
4015 use an sbitmap instead.
4016 * sched-rgn.c (compute_trg_info): Likewise.
4018 2005-01-17 Richard Sandiford <rsandifo@redhat.com>
4020 * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
4021 redundant target_cpu_default and extra_parts lines. Use the default
4023 * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
4024 (SUBTARGET_EXTRA_SPECS): Delete.
4025 (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
4026 (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
4027 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
4028 and "n32" for -mabi=n32.
4030 2005-01-17 Ian Lance Taylor <ian@airs.com>
4033 * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
4034 fold constant variables into initial values.
4036 2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
4038 * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
4040 * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
4041 through the statements backward.
4043 2005-01-17 Ian Lance Taylor <ian@airs.com>
4045 PR middle-end/13127:
4046 * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
4047 a variable set to the return value of the inlined function.
4049 2005-01-17 Mark Dettinger <dettinge@de.ibm.com>
4051 * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
4052 when modes are tieable.
4054 2005-01-17 Ranjit Mathew <rmathew@hotmail.com>
4056 * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
4057 of pthread_create to find out if threads are enabled.
4058 * gthr-posix95.h (__gthread_active_p): Likewise.
4060 2005-01-17 Paolo Bonzini <bonzini@gnu.org>
4062 * common.opt (-fnew-ra): Remove.
4064 * toplev.h (flag_new_regalloc): Remove.
4065 * Makefile.in (ra*.*): Don't mention.
4066 * passes.c (rest_of_handle_new_regalloc): Remove.
4067 (rest_of_handle_combine, rest_of_compilation): Always consider
4068 flag_new_regalloc as false.
4069 * doc/invoke.texi: Don't document -fnew-ra.
4071 2005-01-17 Paolo Bonzini <bonzini@gnu.org>
4073 * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
4074 last parameter to reg_scan.
4075 * loop.c (loop_optimize): Likewise.
4076 * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
4077 rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
4078 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4079 rest_of_handle_gcse, rest_of_handle_loop_optimize,
4080 rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
4081 * regclass.c (reg_scan): Likewise, for the declaration.
4082 * rtl.h (reg_scan): Likewise, for the prototype.
4084 2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
4086 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
4087 mark_dfs_back_edges.
4089 2005-01-16 Daniel Berlin <dberlin@dberlin.org>
4091 * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
4092 (compute_avail): Uses don't go in tmp_gen.
4094 2005-01-16 Steven Bosscher <stevenb@suse.de>
4096 * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
4097 loop to look for a free slot in a page entry.
4099 2005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4102 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
4103 * toplev.c (compile_file): Call process_pending_assemble_output_defs
4104 just before targetm.asm_out.file_end.
4105 * tree.h (process_pending_assemble_output_defs): Declare.
4106 * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
4108 (assemble_alias): Defer generation of assembly code for defines when
4109 TARGET_DEFERRED_OUTPUT_DEFS is true.
4110 * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4111 * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4112 * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
4114 2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4117 * pa.c (pa_scalar_mode_supported_p): New function.
4118 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4119 * pa.h (MIN_UNITS_PER_WORD): Add comment.
4121 * pa-protos.h (prefetch_operand): Delete.
4122 (prefetch_cc_operand, prefetch_nocc_operand): New declations.
4123 * pa.c (prefetch_operand): Delete.
4124 (prefetch_cc_operand, prefetch_nocc_operand): New functions.
4125 * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
4126 (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
4127 and prefetch_nocc_operand.
4128 * pa.md (prefetch): Rework to avoid reload problems handling short
4129 displacements when a cache control completer needs to be provided.
4130 (prefetch_32, prefetch_64): Delete.
4131 (prefetch_cc, prefetch_nocc): New patterns.
4133 2005-01-15 David Edelsohn <edelsohn@gnu.org>
4135 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
4137 2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4140 * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
4141 exceeds maximum alignment for global common data.
4142 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
4143 * som.h (MAX_OFILE_ALIGNMENT): Likewise.
4145 2004-01-15 Roger Sayle <roger@eyesopen.com>
4147 * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
4149 2004-01-15 Roger Sayle <roger@eyesopen.com>
4151 * harg-reg-set.h (reg_class_names): Prototype global array.
4152 * regclass.c (reg_class_names): Declare here and initialize to
4154 (dump_regclass): Remove local declaration of reg_class_names.
4155 (regclass): Likewise.
4156 * cfg.c (dump_flow_info): Likewise.
4157 * ra-debug.c (reg_class_names): Likewise.
4158 * regrename.c (reg_class_names): Likewise.
4159 * reload.c (reg_class_names): Likewise.
4160 * reload1.c (spill_failure): Likewise.
4161 * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
4163 2005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
4165 * config/s390/s390.md ("reload_outti"): Remove predicate for
4166 output operand. Abort if operand is not a MEM.
4167 ("reload_outdi", "reload_outdf"): Likewise.
4169 2005-01-15 Marc Espie <espie@openbsd.org>
4171 * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
4172 (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
4173 * config/openbsd.h: Fix C++ includes for native configurations.
4174 Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
4175 Add trampoline support.
4176 * config/i386/openbsdelf.h: New.
4178 2005-01-15 Marc Espie <espie@openbsd.org>
4180 * collect2.c (main): Explicitly parse -dynamic-linker option.
4182 2005-01-15 Jakub Jelinek <jakub@redhat.com>
4184 PR tree-optimization/19060
4185 * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
4186 Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
4187 (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
4188 and handle extract_range_from_cond returning false.
4189 * fold-const.c (fold): Optimize comparisons with min/max even for
4190 width > HOST_BITS_PER_WIDE_INT.
4192 2005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
4194 * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
4195 * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4196 Remove little endian multilib variants.
4197 Add mips32 multilib variant.
4199 2005-01-15 Kazu Hirata <kazu@cs.umass.edu>
4201 * explow.c (copy_all_reg, stabilize): Remove.
4202 * expr.h: Remove the corresponding prototypes.
4204 * rtlanal.c (regs_set_between_p): Remove.
4205 * rtl.h: Remove the corresponding prototype.
4207 2005-01-14 David Edelsohn <edelsohn@gnu.org>
4209 * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
4210 to rs6000_nonimmediate_operand.
4211 * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
4212 rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
4213 * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
4214 rs6000_nonimmediate_operand.
4215 * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
4216 rs6000_nonimmediate_operand.
4218 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
4220 * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
4222 2005-01-14 Aldy Hernandez <aldyh@redhat.com>
4224 * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
4226 (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
4227 (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
4229 * config/rs6000/rs6000.c (invalid_e500_subreg): New.
4230 (rs6k_nonimmediate_operand): New.
4231 (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
4233 (legitimate_lo_sum_address_p): Same.
4234 (rs6000_legitimize_address): Same.
4235 (rs6000_legitimize_reload_address): Same.
4236 (rs6000_legitimate_address): Same.
4237 (spe_build_register_parallel): Pass DF and DC modes in a DI
4240 * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
4241 to rs6k_nonimmediate_operand.
4243 * config/rs6000/spe.md ("*frob_df_di"): New.
4244 ("*frob_di_df"): New.
4245 ("*frob_di_df_2"): New.
4246 ("*mov_sidf_e500_subreg0"): New.
4247 ("*mov_sidf_e500_subreg4"): New.
4248 ("*movdf_e500_double"): Change predicate to
4249 rs6k_nonimmediate_operand.
4251 2005-01-14 Aldy Hernandez <aldyh@redhat.com>
4253 * postreload.c (move2add_note_store): Only call
4254 trunc_int_for_mode on scalar integers.
4256 2005-01-14 Steven Bosscher <stevenb@suse.de>
4258 * tree-ssa-dce.c (visited_control_parents): New sbitmap to
4259 replace BB_VISITED uses.
4260 (find_obviously_necessary_stmts): Don't clear BB_VISITED.
4261 (propagate_necessity): Check the bitmap instead of BB_VISITED.
4262 (tree_dce_done): Free visited_control_parents.
4263 (perform_tree_ssa_dce): Allocate and clear it.
4264 * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
4265 (compute_antic): Iterate from here using a DFS. Use an sbitmap
4266 instead of BB_VISITED.
4268 2005-01-14 Kazu Hirata <kazu@cs.umass.edu>
4270 * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
4271 rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
4272 Remove unused prototypes.
4274 2005-01-14 Aldy Hernandez <aldyh@redhat.com>
4276 * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
4277 64-bit register usage.
4278 (spe_func_has_64bit_regs_p): Add FIXME note.
4280 2005-01-14 Aldy Hernandez <aldyh@redhat.com>
4282 * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
4283 flag_finite_math_only with flag_unsafe_math_optimizations.
4285 2005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
4287 * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
4289 (__tpf_eh_return): Copy TPF private stack area from the module
4290 boundary stack frame. Add check for when module addresses are
4291 equal, but no stub address is found.
4293 2005-01-14 Richard Earnshaw <rearnsha@arm.com>
4296 * arm.h (struct machine_function): Add call_via field.
4297 (thumb_call_via_label): Declare.
4298 * arm.c (thumb_call_via_label): New variable.
4299 (thumb_call_reg_needed): New variable.
4300 (arm_output_function_epilogue): For Thumb code, output any per-function
4301 call-indirect trampolines.
4302 (thumb_call_via_reg): New function.
4303 (arm_file_end): New function.
4304 (TARGET_ASM_FILE_END): Call arm_file_end.
4305 (aof_file_end): Likewise.
4306 * arm-protos.h (thumb_call_via_reg): Declare.
4307 * arm.md (call_reg_thumb, call_value_reg_thumb): Call
4308 thumb_call_via_reg in normal case.
4310 2005-01-14 Jakub Jelinek <jakub@redhat.com>
4313 PR rtl-optimization/19348
4314 * recog.c (peephole2_optimize): Do global life update if some peephole
4315 decides it doesn't need at least one of its inputs and that change
4316 influences liveness at the start of the basic block.
4318 * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
4319 arguments instead of 1.
4321 2005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
4324 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
4325 zero for nested functions needing a static chain or functions
4326 with a non-constant address.
4328 2005-01-13 Roger Sayle <roger@eyesopen.com>
4330 * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
4331 (and (sign_extend X) C) into (zero_extend (and X C)).
4333 2005-01-13 David O'Brien <obrien@FreeBSD.org>
4335 * config/freebsd-spec.h: Make KSE pthread lib logic the default.
4337 2005-01-13 Richard Henderson <rth@redhat.com>
4342 * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
4343 bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
4344 not just TARGET_SSE.
4345 (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
4346 (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
4347 (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
4348 (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
4349 (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
4350 (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
4351 (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
4352 fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
4353 (movdicc_c_rex64): Rename with '*'.
4354 (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
4355 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
4356 (movsfcc_1_387): Rename from movsfcc_1.
4357 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
4358 (movdfcc_1, movdfcc_1_rex64): Add check for 387.
4359 (sminsf3, smaxsf3, smindf3, smaxdf3): New.
4360 (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
4361 mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
4362 maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
4363 sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
4364 sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
4365 sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
4366 sse_movdfcc_const0_4): Remove.
4367 * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
4368 recognize min/max early. Update for changed sse cmove patterns.
4369 (ix86_split_sse_movcc): New.
4370 * config/i386/i386-protos.h: Update.
4372 2005-01-13 Steven Bosscher <stevenb@suse.de>
4374 * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
4375 (fix_stmt_v_may_defs): Likewise.
4377 2005-01-13 Richard Henderson <rth@redhat.com>
4379 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
4380 for converting the mask.
4382 2005-01-13 David Edelsohn <edelsohn@gnu.org>
4384 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
4387 2005-01-13 Richard Henderson <rth@redhat.com>
4389 * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
4390 IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
4391 IX86_BUILTIN_MOVDQ2Q): Remove.
4392 (IX86_BUILTIN_VEC_EXT_V4SI): New.
4393 (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
4394 (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
4396 * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
4397 (sse2_pextrw): Fix immediate constraint.
4398 (sse2_loadq, sse2_loadq_rex64): Remove.
4399 * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
4400 Use __builtin_ia32_vec_ext_<size>.
4401 (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
4403 2005-01-13 Aldy Hernandez <aldyh@redhat.com>
4405 * function.c (assign_parm_setup_block): Look inside original
4406 entry_parm when inspecting PARALLEL.
4408 2005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
4409 Joel Sherrill <joel@oarcorp.com>
4412 * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
4413 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
4414 rtems_gxx_recursive_mutex_init.
4415 (__gthread_recursive_mutex_lock): New function.
4416 (__gthread_recursive_mutex_trylock): Likewise.
4417 (__gthread_recursive_mutex_unlock): Likewise.
4419 2005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
4421 * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
4423 2005-01-13 Jan Beulich <jbeulich@novell.com>
4425 * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
4426 (ashrti3_internal): Indicate output is early clobber. Generate result
4427 into output rather than first input. Use move for low word of output
4428 if shift count is exactly 64.
4429 (lshrti3_internal): Likewise.
4431 2005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
4435 * reload1.c (delete_output_reload): Don't delete an output reload
4436 if the pseudo lives longer than a single basic block. Adjust and
4437 improve wording of comment.
4439 2005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
4442 * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
4443 of TYPE_SIZE where we mean the number of bytes.
4445 2005-01-12 Aldy Hernandez <aldyh@redhat.com>
4447 * function.c (assign_parm_setup_block): Relax condition on
4448 multi-register optimization.
4450 2005-01-12 Nick Clifton <nickc@redhat.com>
4452 * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
4453 an "in_delay_slot" attribute of "no" to prevent them being used in
4454 delay slots. This is forbidden because they might generate
4457 2005-01-12 Alan Modra <amodra@bigpond.net.au>
4460 * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
4463 2005-01-12 Nick Clifton <nickc@redhat.com>
4465 * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
4466 passed on to GAS) but do not define, as GAS no longer supports or
4467 needs the -m2000 option.
4469 2005-01-11 Roger Sayle <roger@eyesopen.com>
4471 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
4472 type as args of unprototyped builtins aren't automatically promoted.
4473 (fold_builtin_abs): Likewise.
4475 2005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4477 * Makefile.in: Set a `build-warn' variable.
4479 2005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
4481 PR tree-optimization/17949
4482 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
4483 (find_interesting_uses_address): Use it.
4485 2005-01-11 Aldy Hernandez <aldyh@redhat.com>
4487 * regrename.c (kill_value): Handle subreg's that won't simplify.
4489 2005-01-11 Richard Henderson <rth@redhat.com>
4492 * config/i386/i386.h (enum ix86_builtins): Move ...
4493 * config/i386/i386.c: ... here.
4494 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
4495 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
4496 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
4497 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
4498 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
4499 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
4500 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
4501 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
4502 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
4503 IX86_BUILTIN_LOADDDUP): Remove.
4504 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
4505 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
4506 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
4507 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
4508 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
4509 (ix86_init_builtins): Make static.
4510 (ix86_init_mmx_sse_builtins): Update for changed builtins.
4511 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
4512 if all the modes match. Otherwise, fake it.
4513 (get_element_number, ix86_expand_vec_init_builtin,
4514 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
4515 (ix86_expand_builtin): Make static. Update for changed builtins.
4516 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
4517 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
4518 (ix86_expand_vector_init_duplicate): New.
4519 (ix86_expand_vector_init_low_nonzero): New.
4520 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
4521 Split out from ix86_expand_vector_init; handle integer modes.
4522 (ix86_expand_vector_init): Use them.
4523 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
4524 * config/i386/i386-protos.h: Update.
4525 * config/i386/predicates.md (reg_or_0_operand): New.
4526 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
4527 (movv2sf_internal): Likewise. And a splitter to match them all.
4528 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
4529 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
4530 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
4531 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
4532 (mmx_pinsrw): Fix operand ordering.
4533 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
4534 rather than sse_loadss expander.
4535 (movv2df splitter): Similarly.
4536 (sse_loadss, sse_loadlss): Remove.
4537 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
4538 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
4539 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
4540 (sse3_movddup): Rename with '*'.
4541 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
4542 (sse2_loadsd): Remove.
4543 (vec_dupv2df_sse3): Rename from sse3_loadddup.
4544 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
4545 (sse2_pinsrw): Fix argument ordering.
4546 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
4547 (sse2_stored): Remove 'r' destination.
4548 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
4549 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
4550 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
4551 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
4552 vec_extractv16qi, vec_initv16qi): New.
4554 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
4555 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
4556 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
4558 (_mm_load_pd, _mm_store_pd): Use plain dereference.
4559 (_mm_load_si128, _mm_store_si128): Likewise.
4560 (_mm_load1_pd): Use _mm_set1_pd.
4561 (_mm_load_sd): Use _mm_set_sd.
4562 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
4563 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
4564 (_mm_set_epi64): Use _mm_set_epi64x.
4565 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
4566 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
4567 _mm_setr_epi8): Use _mm_set_foo form.
4568 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
4569 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
4570 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
4571 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
4572 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
4573 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
4574 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
4575 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
4576 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
4577 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
4578 (_mm_movedup_pd): Use _mm_shuffle_pd.
4579 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
4580 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
4581 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
4582 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
4584 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
4585 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
4586 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
4587 (_mm_store_ps): Use raw dereference.
4588 (_mm_store1_ps): Use _mm_storeu_ps.
4589 (_mm_storer_ps): Use _mm_store_ps.
4590 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
4591 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
4593 2005-01-11 Stan Shebs <shebs@apple.com>
4595 * config/rs6000/rs6000.c (machopic_output_stub): Issue
4596 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
4598 2005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
4601 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
4602 Skip all DECLs except for FIELD_DECLs.
4604 2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
4606 * config/s390/s390.c (override_options): Return error if
4607 -mbackchain, -mpacked-stack and -mhard-float are used together.
4608 (s390_va_start): Remove the backchain && packed-stack special case.
4609 (s390_gimplify_va_arg): Likewise.
4610 * doc/invoke.texi: Remove the ABI incompatibility note.
4612 2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
4614 * config/s390/s390.c (struct s390_frame_layout): Remove
4616 (s390_frame_info, s390_emit_prologue): Replace occurrences of
4617 save_backchain_p with TARGET_BACKCHAIN.
4619 2005-01-11 Alan Modra <amodra@bigpond.net.au>
4622 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
4623 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
4624 * function.c (locate_and_pad_parm): Set new field.
4625 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
4626 Tweak where_pad test to include "none". Always set mem align for
4628 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
4629 not sufficient for type.
4630 (assign_parm_setup_block): If stack_parm is zero on entry, always
4631 make a new stack local. Block move old stack parm if necessary
4632 to new aligned stack local.
4633 (assign_parm_setup_stack): Use a block move to handle
4634 potentially misaligned entry_parm.
4635 (assign_parms_unsplit_complex): Specify required alignment when
4636 creating stack local.
4637 * calls.c (compute_argument_addresses): Override alignment of stack
4638 arg calculated from its type with the alignment given by
4639 FUNCTION_ARG_BOUNDARY.
4640 (store_one_arg): Likewise.
4642 2005-01-11 Jan Beulich <jbeulich@novell.com>
4644 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
4645 Change respective itanium_class attribute to ialu.
4646 (shladdp4_internal): New.
4647 * config/ia64/predicates.md (shladd_log2_operand): New.
4649 2005-01-11 Richard Henderson <rth@redhat.com>
4651 * expr.c (store_constructor): Use rtvec_alloc instead of
4652 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
4654 2005-01-11 Kazu Hirata <kazu@cs.umass.edu>
4656 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
4658 2005-01-11 Alan Modra <amodra@bigpond.net.au>
4660 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
4661 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
4662 (TARGET_RWRELOC): Define.
4663 (ia64_rwreloc_section_type_flags): Delete.
4664 (ia64_section_type_flags): New function.
4665 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
4666 (TARGET_RWRELOC): Define.
4668 2005-01-10 David Mosberger <davidm@hpl.hp.com>
4671 * config/ia64/ia64.c (process_set): For alloc insn, only call
4672 process_epilogue is !frame_pointer_needed.
4674 2005-01-10 Roger Sayle <roger@eyesopen.com>
4677 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
4678 unary operator and can't be treated as a binary/comparison operator.
4680 2005-01-10 Richard Henderson <rth@redhat.com>
4682 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
4683 (ix86_return_in_memory): Likewise.
4684 (function_arg_advance): Likewise. Mirror structure in function_arg
4685 for choosing register to advance.
4687 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
4689 * tree-vectorizer.c, tree.def: Fix comment typos.
4691 2005-01-10 Mark Dettinger <dettinge@de.ibm.com>
4693 * config/s390/s390.c (struct processor_costs): 4 new fields:
4694 ddbr, ddr, debr, der.
4695 (s390_rtx_costs): More precise handling of divide instructions.
4697 2005-01-10 David Edelsohn <edelsohn@gnu.org>
4699 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
4701 2005-01-10 Jan Beulich <jbeulich@novell.com>
4703 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
4704 names resulting from -ffunction-sections/-fdata-sections and linkonce
4706 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
4707 based on the section name. Rearrange the section name comparison logic
4708 slightly so that each section name is compared against at most once.
4710 2005-01-10 Ben Elliston <bje@au.ibm.com>
4712 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
4713 targets for which -fPIC reduces limitations on the GOT size.
4715 2005-01-09 Falk Hueffner <falk@debian.org>
4717 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
4720 2005-01-09 David Edelsohn <edelsohn@gnu.org>
4723 * collect2.c (main): Set aixrtl_flag for -brtl option.
4724 (resolve_lib_name): Search for .so file extension before .a
4727 2005-01-09 Dorit Naishlos <dorit@il.ibm.com>
4729 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
4730 (vect_analyze_data_refs_alignment): Add dump prints.
4732 2005-01-09 Ira Rosen <irar@il.ibm.com>
4734 * tree-vectorizer.c (vect_analyze_offset_expr): Use
4735 expr_invariant_in_loop_p.
4736 Initialize outputs first thing in the function.
4737 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
4738 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4739 (vect_analyze_pointer_ref_access): Check that the initial condition of
4740 the access function is loop invariant.
4742 2005-01-09 Richard Henderson <rth@redhat.com>
4744 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
4745 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
4746 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
4747 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
4748 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
4749 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
4750 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
4751 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
4752 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
4753 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4754 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4755 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
4756 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
4757 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
4758 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
4759 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
4760 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4761 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4762 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
4763 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
4764 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
4765 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
4766 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
4768 (mmx_clrdi, pavgusb): Remove.
4769 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
4770 with leading sse_ prefix.
4771 * config/i386/sse.md: Receive them.
4772 * config/i386/mmx.md: New file.
4773 (MMXMODE12, MMXMODE24, mmxvecsize): New.
4774 (subrv2sf3): Turn into expander for normal subtraction.
4775 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
4776 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
4777 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
4778 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
4779 commutative; use ix86_binary_operator_ok.
4780 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
4781 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
4782 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
4783 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
4784 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
4785 Macroize from existing patterns; use ix86_binary_operator_ok.
4786 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
4787 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
4788 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
4789 with vec_select+vec_concat.
4790 (mmx_pshufw, mmx_pshufw_1): Likewise.
4791 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
4792 (mmx_uavgv4hi3): Model correctly.
4793 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
4794 _mm_xor_si64): Remove casts.
4796 2005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
4798 PR tree-optimization/19224
4799 * tree-scalar-evolution.c (get_instantiated_value,
4800 set_instantiated_value): New functions.
4801 (instantiate_parameters_1): Cache the results.
4802 (instantiate_parameters, resolve_mixers): Initialize and free
4805 2005-01-08 David Edelsohn <edelsohn@gnu.org>
4807 * config/i386/i386.md (addhi_4): Correct reference in comment.
4810 2005-01-08 Richard Henderson <rth@redhat.com>
4812 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
4813 (_mm_cvtsi128_si64x): Likewise.
4814 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
4815 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
4816 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
4817 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
4818 * config/i386/i386-protos.h: Update.
4819 * config/i386/i386.c (print_operand): Add 'H'.
4820 (ix86_fixup_binary_operands): Split out from ...
4821 (ix86_expand_binary_operator): ... here.
4822 (ix86_fixup_binary_operands_no_copy): New.
4823 (ix86_expand_fp_absneg_operator): Handle vector mode results.
4824 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
4825 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
4826 (safe_vector_operand): Use CONST0_RTX.
4827 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
4828 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
4829 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
4830 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
4832 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
4833 (IX86_BUILTIN_CMPNGESS): New.
4834 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
4835 (attr type): Add sselog1.
4836 (attr unit, attr memory): Handle it.
4837 (movti, movti_internal, movti_rex64): Move near other integer moves.
4838 (movtf, movtf_internal): Move near other fp moves.
4839 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
4840 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
4841 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
4842 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
4843 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
4844 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
4845 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
4846 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
4847 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
4848 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
4849 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
4850 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
4851 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4852 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4853 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
4854 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
4855 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
4856 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
4857 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
4858 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
4859 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
4860 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
4861 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
4862 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
4863 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
4864 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
4865 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4866 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
4867 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
4868 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
4869 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
4870 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
4871 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
4872 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
4873 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
4874 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
4875 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
4876 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
4877 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
4878 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
4879 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
4880 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
4881 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
4882 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
4884 (SSEPUSH, push<SSEPUSH>): Remove.
4885 (MMXPUSH, push<MMXPUSH>): Remove.
4886 (sse_movaps, sse_movaps_1, sse_movups): Remove.
4887 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
4888 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
4889 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
4890 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
4891 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
4892 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
4893 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
4894 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
4895 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
4896 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
4897 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
4898 (ppro_sse_log_V4SF): Handle sselog1.
4899 * config/i386/predicates.md (const_0_to_1_operand): New.
4900 (const_0_to_255_mul_8_operand): New.
4901 (const_1_to_31_operand): Rename from const_int_1_31_operand.
4902 (const_2_to_3_operand, const_4_to_7_operand): New.
4903 * config/i386/sse.md: New file.
4904 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
4905 (sse_movups): Rename from sse_movups_1.
4906 (sse_loadlss): Rename from sse_loadss_1.
4907 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
4909 (negv4sf2): Use ix86_expand_fp_absneg_operator.
4910 (absv4sf2, negv2df, absv2df): New.
4911 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
4912 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
4913 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
4914 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
4915 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
4916 (sse3_addsubv4sf3): Model correctly.
4917 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
4918 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
4919 (sse_movhlps): Model with vec_select+vec_concat.
4920 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
4921 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
4922 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
4923 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
4924 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
4925 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
4926 sse2_pshufhw_1): Likewise.
4927 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
4928 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
4929 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
4930 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
4931 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
4932 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
4933 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
4934 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
4935 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
4936 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
4937 sminv8hi3): Mark commutative
4938 operands. Use ix86_binary_operator_ok.
4939 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
4940 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
4941 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
4942 sse2_punpcklqdq): Allow operand2 in memory.
4943 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
4944 sse2_movsd): Add memory alternatives.
4945 (sse_storelps): Turn expander into an insn; split after reload.
4946 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
4947 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
4949 2005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
4951 * configure.ac (DWARF-2 debug_line): Use objdump.
4952 * configure: Regenerate.
4954 2005-01-08 Jeff Law <law@redhat.com>
4955 Diego Novillo <dnovillo@redhat.com>
4957 PR tree-optimization/18241
4958 * tree-nrv.c (tree_nrv): Ignore volatile return values.
4959 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
4960 statements with volatile operands.
4961 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
4962 operands after marking a statement with has_volatile_ops.
4964 2005-01-08 Roger Sayle <roger@eyesopen.com>
4966 * tree.c (int_fits_type_p): Always honor integer constant
4967 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
4969 2005-01-08 Roger Sayle <roger@eyesopen.com>
4971 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
4972 the latent bug in rtl_delete_block has been resolved.
4974 2005-01-08 Richard Sandiford <rsandifo@redhat.com>
4976 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
4977 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
4979 2005-01-08 Richard Sandiford <rsandifo@redhat.com>
4981 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
4982 library as @multilib_dir@/$(SHLIB_SONAME).
4984 2005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4986 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
4987 * configure: Regenerate.
4989 2005-01-07 Jakub Jelinek <jakub@redhat.com>
4991 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
4994 2005-01-07 David Edelsohn <edelsohn@gnu.org>
4997 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4998 Convert non-word aligned offset address using ld/std into
5001 2005-01-07 Richard Henderson <rth@redhat.com>
5003 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
5005 2005-01-07 Richard SAndiford <rsandifo@redhat.com>
5007 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
5009 2005-01-07 Jakub Jelinek <jakub@redhat.com>
5011 PR tree-optimization/19283
5012 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
5013 is not shorter than the original type.
5015 PR rtl-optimization/19012
5016 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
5018 PR rtl-optimization/18861
5019 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
5020 (FULL_STATE): Define.
5021 (mark_tablejump_edge): New function.
5022 (purge_dead_tablejump_edges): New function.
5023 (find_bb_boundaries): Use it.
5025 PR tree-optimization/18828
5026 * builtins.c (expand_builtin_next_arg): Remove argument and all
5027 the argument checking.
5028 (expand_builtin): Adjust caller.
5029 (expand_builtin_va_start): Likewise. Remove error for too many
5031 (fold_builtin_next_arg): Issue error for too many arguments.
5032 After checking arguments, replace them with magic arguments that
5033 prevent further checking of the args.
5035 2005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5037 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
5039 2005-01-06 Roger Sayle <roger@eyesopen.com>
5042 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
5043 and %{.S:...} (and their negative variants) to test whether the
5044 input file is assembler or pre-processed-assembler independent of
5045 the actual filename extension.
5047 2005-01-06 Roger Sayle <roger@eyesopen.com>
5049 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
5050 of sign or zero extended values.
5052 2005-01-06 Geoffrey Keating <geoffk@apple.com>
5054 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
5055 for IBM long double format correctly.
5057 2005-01-06 Daniel Berlin <dberlin@dberlin.org>
5059 Fix PR tree-optimization/18792
5061 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
5062 to first_loop_depth, and use loop depth instead of loop number.
5063 (build_classic_dir_vector): Ditto.
5064 (compute_data_dependences_for_loop): Use depth, not loop number.
5065 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
5066 number. Pass in loops, instead of loop numbers.
5067 (gather_interchange_stats): Ditto.
5068 (linear_transform_loops): Ditto.
5070 2005-01-06 Richard Sandiford <rsandifo@redhat.com>
5073 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
5074 biv_fits_mode_p, extension_within_bounds_p): New functions.
5075 (check_ext_dependent_givs): Use them.
5077 2005-01-06 Roger Sayle <roger@eyesopen.com>
5079 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
5080 more than one barrier, in which case we should delete them all.
5082 2005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
5084 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
5086 2005-01-05 Daniel Berlin <dberlin@dberlin.org>
5088 Fix PR middle-end/19286
5090 * dwarf2out.c (gen_subprogram_die): If we've already tried to
5091 output this subprogram, simply ignore this attempt to do it again.
5092 (add_abstract_origin_attribute): Don't abort trying to add the abstract
5093 origin attribute if it's not possible.
5094 (gen_block_die): Don't ignore subblocks of "unused" blocks.
5095 (decls_for_scope): Ditto.
5096 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
5097 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
5099 2005-01-05 Richard Henderson <rth@redhat.com>
5102 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
5103 (bdesc_2arg): Use it.
5104 (ix86_expand_binop_builtin): Force operands into registers
5106 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
5107 ix86_expand_sse_compare, ix86_expand_sse_comi,
5108 ix86_expand_builtin): Likewise.
5110 2005-01-05 Richard Henderson <rth@redhat.com>
5112 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
5114 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
5115 (mulv4hi3): Set itanium_class mmmul.
5116 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
5117 (fpack): Rename from fpack_sfsf.
5119 2005-01-05 Richard Henderson <rth@redhat.com>
5122 * reload1.c (do_input_reload): Restrict the optimization deleteing
5123 a previous output reload to RELOAD_FOR_INPUT.
5125 2005-01-05 Steven Bosscher <stevenb@suse.de>
5127 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
5128 comment that we fall through after case.
5129 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
5130 (distribute_links): Likewise.
5131 * cse.c (cse_insn): Likewise.
5132 * cselib.c (cselib_invalidate_mem): Likewise.
5133 * df.c: Update comments at the top of the file.
5134 (read_modify_subreg_p): Update comments here too.
5135 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
5136 * flow.c (mark_set_1): Likewise.
5137 (mark_used_regs): Likewise.
5138 * gcse.c (mems_conflict_for_gcse_p): Likewise.
5139 (canon_list_insert): Likewise.
5140 (mark_set): Likewise.
5141 (try_replace_reg): Likewise.
5142 (store_killed_in_insn): Likewise.
5143 * loop.c (count_one_set): Likewise.
5144 (basic_induction_var): Likewise.
5145 * postreload-gcse.c (find_mem_conflicts): Likewise.
5146 * postreload.c (reload_combine_note_store): Likewise.
5147 (move2add_note_store): Likewise.
5148 * reload.c (find_equiv_reg): Likewise.
5149 (mark_referenced_resources): Likewise.
5150 * rtlanal.c (set_noop_p): Likewise.
5151 (note_stores): Likewise.
5152 (note_uses): Likewise.
5153 * sched-deps.c (sched_analyze_1): Likewise.
5154 * sched-rgn.c (check_live_1): Likewise.
5155 (update_live_1): Likewise.
5156 * config/i860/i860.c: Likewise.
5158 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
5160 (ZERO_EXTRACT): Mention that this one can be an lvalue.
5162 * doc/rtl.texi: Update documentation for bit-fields and SET.
5164 2005-01-05 Roger Sayle <roger@eyesopen.com>
5166 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
5168 2005-01-05 Jan Hubicka <jh@suse.cz>
5169 Richard Henderson <rth@redhat.com>
5172 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
5175 2005-01-05 Richard Henderson <rth@redhat.com>
5178 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
5179 (sse_shufps): Change operand 3 to const_int_operand.
5180 (sse2_storelps): Fix typo in template.
5181 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
5182 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
5183 (ix86_expand_builtin): Likewise.
5185 2005-01-05 Julian Brown <julian@codesourcery.com>
5187 * config/arm/arm.c (arm_return_in_memory): Treat complex types
5188 as aggregates for AAPCS ABIs.
5190 2005-01-05 Stan Shebs <shebs@apple.com>
5192 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
5193 Mach-O getters if ppc64.
5194 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
5196 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5197 signed four-byte field for global code case.
5198 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
5200 2005-01-05 Roger Sayle <roger@eyesopen.com>
5203 * c-common.c: Include real.h.
5204 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
5205 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
5206 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
5207 * Makefile.in (c-common.o): Update dependencies.
5209 2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
5211 * c-parse.in (asm_string): Add trailing semicolon.
5213 2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
5215 * c-parse.in (asm_string): New. Don't allow wide strings in
5217 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
5218 asm_string instead of STRING.
5220 2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
5222 * c-typeck.c (constructor_no_implicit): Remove.
5223 (set_designator, process_init_element): Don't check
5224 constructor_no_implicit.
5226 2005-01-05 J"orn Rennecke <joern.rennecke@st.com>
5227 Kaz Kojima <kkojima@gcc.gnu.org>
5230 * lcm.c (create_pre_exit): New.
5231 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
5232 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
5234 2004-01-05 Richard Earnshaw <rearnsha@arm.com>
5236 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
5237 -msoft-float in target_float_switch.
5238 * arm.c (arm_override_options): Fix processing of target_float_switch.
5240 2004-01-05 Richard Earnshaw <rearnsha@arm.com>
5242 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
5245 2004-01-05 Uros Bizjak <uros@kss-loka.si>
5247 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
5248 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
5250 2005-01-04 Roger Sayle <roger@eyesopen.com>
5252 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
5253 if deleting the then-block allows the test-block to fallthru to the
5256 2005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
5259 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
5260 after the full declaration if the are in two different TUs.
5262 2005-01-04 Richard Henderson <rth@redhat.com>
5265 * tree-sra.c (generate_one_element_init): Just
5266 call gimplify_and_add.
5267 (generate_element_init): Record the
5268 new referenced variables and mark them for renaming
5269 and split out to ...
5270 (generate_element_init_1): This.
5271 (scalarize_init): Don't call push_gimplify_context/
5272 pop_gimplify_context.
5274 2005-01-04 Geoffrey Keating <geoffk@apple.com>
5276 * toplev.c (get_src_pwd): Handle failure of getpwd().
5278 2005-01-04 Roger Sayle <roger@eyesopen.com>
5280 * fold-const.c (fold_single_bit_test): Delete unreachable handling
5282 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
5283 all the cases handled by it are inverted by invert_truthvalue.
5285 2005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
5287 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
5288 (save_register_windowsi): Likewise.
5290 2005-01-04 Richard Henderson <rth@redhat.com>
5292 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
5294 2005-01-04 Uros Bizjak <uros@kss-loka.si>
5297 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
5298 any simplifications of vector mode comparison operators.
5299 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
5301 2005-01-04 Paolo Bonzini <bonzini@gnu.org>
5302 Devang Patel <dpatel@apple.com>
5304 PR tree-optimization/18308
5305 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
5306 the operands before creating a new expression.
5307 * dojump.c (do_jump): Make drop_through_label available
5308 for all cases. Add expansion of COND_EXPR.
5310 2005-01-04 Ira Rosen <irar@il.ibm.com>
5312 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
5313 INTEGER_CST instead of TREE_CONSTANT.
5314 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
5315 instead of TREE_CONSTANT.
5316 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
5317 instead of TREE_CONSTANT.
5319 2005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
5321 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
5323 2005-01-04 Uros Bizjak <uros@kss-loka.si>
5326 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
5327 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
5329 2005-01-03 Richard Henderson <rth@redhat.com>
5331 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
5332 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
5333 fold_convert_const_real_from_real): Split out from ...
5334 (fold_convert_const): ... here.
5336 2005-01-03 Richard Henderson <rth@redhat.com>
5339 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
5340 (mov<MMXMODEI>_internal): Likewise.
5341 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
5342 Add V2SF case; use it for SSE1; don't use TI.
5343 (movdf_integer): Likewise.
5344 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
5346 2005-01-03 Ira Rosen <irar@il.ibm.com>
5348 * tree-vectorizer.c (vect_strip_conversions): New function.
5349 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
5350 check for binary class.
5352 2005-01-03 Daniel Berlin <dberlin@dberlin.org>
5356 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
5358 * gimple-low.c (mark_blocks_with_used_vars): New function.
5359 (mark_blocks_with_used_subblocks): Ditto.
5360 (mark_used_blocks): Ditto.
5361 (pass_mark_used_blocks): New pass.
5362 * tree-inline.c: Include debug.h.
5363 (expand_call_inline): Call outlining_inline_function here.
5364 * tree-optimize.c (init_tree_optimization_passes): Add
5365 pass_mark_used_blocks.
5366 * tree-pass.h (pass_mark_used_blocks): New.
5367 * Makefile.in (tree-inline.o): Add debug.h dependency.
5369 2005-01-03 Geoffrey Keating <geoffk@apple.com>
5371 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
5372 VAR_DECLs to have weak_import attribute.
5374 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
5377 2004-01-03 Steven Bosscher <stevenb@suse.de>
5379 * passes.c (rest_of_compilation): Don't run regmove if only
5380 flag_expensive_optimizations, require flag_regmove instead.
5382 2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
5384 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
5386 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
5387 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
5388 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
5389 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
5391 2005-01-03 Richard Henderson <rth@redhat.com>
5393 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
5394 (ia64_const_ok_for_letter_p): New.
5395 (ia64_const_double_ok_for_letter_p): New.
5396 (ia64_extra_constraint): New.
5397 (ia64_expand_vecint_compare): New.
5398 (ia64_expand_vcondu_v2si): New.
5399 (ia64_expand_vecint_cmov): New.
5400 (ia64_expand_vecint_minmax): New.
5401 (ia64_print_operand): Add 'v'.
5402 (ia64_preferred_reload_class): New.
5403 (ia64_vector_mode_supported_p): New.
5404 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
5405 (PREFERRED_RELOAD_CLASS): Move to function.
5406 (CONST_OK_FOR_LETTER_P): Move to function.
5407 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
5408 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
5409 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
5410 (EXTRA_CONSTRAINT): Move to function.
5411 * config/ia64/ia64.md: Include vect.md.
5412 (itanium_class): Add mmalua.
5414 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
5416 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
5417 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
5419 (const_int_2bit_operand): New.
5420 (fr_reg_or_0_operand): New.
5421 * config/ia64/ia64-modes.def: Add vector modes.
5422 * config/ia64/ia64-protos.h: Update.
5423 * config/ia64/vect.md: New file.
5425 2005-01-03 Richard Henderson <rth@redhat.com>
5427 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
5429 2005-01-03 Uros Bizjak <uros@kss-loka.si>
5432 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
5434 (log1pdf2): Change mode of operands[0,1] to DFmode.
5436 2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
5438 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
5439 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
5440 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
5441 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
5442 SPARC_RELAXED_ORDERING.
5444 2005-01-03 Richard Henderson <rth@redhat.com>
5445 Uros Bizjak <uros@kss-loka.si>
5448 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
5449 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
5450 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
5452 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
5453 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
5454 const_pow2_1_to_128_operand): New predicates.
5456 2005-01-02 Greg McGary <greg@mcgary.org>
5458 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
5460 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
5461 object. [ptr_type]: Remove unused variable.
5462 Remember nearest addressable array-element or record-component
5463 when checking bitfield components. Tolerate empty BIND_EXPR.
5465 2005-01-01 Richard Henderson <rth@redhat.com>
5467 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
5468 that don't narrow the value. Fail for other conversions.
5470 2005-01-01 Richard Henderson <rth@redhat.com>
5473 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
5474 * c-lang.c (finish_file): Don't do it here.
5475 * objc/objc-act.c (objc_finish_file): Likewise.
5477 * cgraph.c (decl_assembler_name_equal): New.
5478 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
5479 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
5480 * cgraph.h (struct cgraph_varpool_node): Add next.
5481 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
5482 * varasm.c (assemble_alias): Mark the target as needed.
5484 2005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
5487 * function.c (get_arg_pointer_save_area): Use entry_of_function
5488 instead of get_insns.
5490 2005-01-01 Roger Sayle <roger@eyesopen.com>
5491 Andrew Pinski <pinskia@physics.uc.edu>
5492 James E. Wilson <wilson@specifixinc.com>
5494 PR rtl-optimization/12092
5495 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
5498 2005-01-01 Roger Sayle <roger@eyesopen.com>
5499 Olivier Hainque <hainque@act-europe.fr>
5501 * tree.c (int_fits_type_p): A narrower type always fits in a
5502 wider one, except for negative values into unsigned types.
5504 2005-01-01 Roger Sayle <roger@eyesopen.com>
5506 * tree.c (int_fits_type_p): Compare the result of force_fit_type
5507 with the original constant rather than require TREE_OVERFLOW.
5509 2005-01-01 Steven Bosscher <stevenb@suse.de>
5512 * c-decl.c (finish_function): If compiling C99, annotate the
5513 compiler generated return with the current file name and line 0.
5514 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
5515 the source line is greater than 0.
5516 (remove_bb): Likewise.
5518 See ChangeLog.12 for earlier changes.