1 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
3 * struct-equiv.c (note_local_live): Handle hard regs with different
6 2005-12-14 Jeff Law <law@redhat.com>
8 * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
9 to a structure containing state rather than a pointer to bool.
10 (case ARRAY_REF): New code to handle folding some array references.
11 (case ADDR_EXPR): Note when we are processing expressions found
13 (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
14 for state variables rather than just a pointer to a boolean.
15 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
16 handling of constant string references.
18 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
20 * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
21 ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
22 ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
23 Move other tst* patterns to retain partial order.
25 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
27 * config/s390/s390.md ("d0", "1"): New mode attributes.
28 ("<shift>di3", "<shift>si3"): Merge.
29 ("*<shift>di3_and", "*<shift>si3_and"): Merge.
30 ("ashrdi3", "ashrsi3"): Merge.
31 ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
32 ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
33 ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
34 ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
35 ("*ashrdi3", "*ashrsi3"): Merge.
36 ("*ashrdi3_and", "*ashrsi3_and"): Merge.
38 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
40 * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
41 ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
42 ("*extendqidi2", "*extendqisi2") Merge.
43 ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
44 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
45 ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
46 Move some patterns to retain partial ordering.
48 2005-12-14 Adrian Straetling <straetling@de.ibm.com>
50 * config/s390/s390.md ("atype", "length"): Rewrite.
51 ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
53 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
55 * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
57 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
59 * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
60 PARALLELs with a mode.
62 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
64 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
67 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr>
69 * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
71 2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
75 * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
78 * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
80 2005-12-14 Jakub Jelinek <jakub@redhat.com>
84 * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
85 DECL_P, call get_section rather than get_named_section. Supply
88 2005-12-14 Ben Elliston <bje@au.ibm.com>
90 * c-common.c (c_common_truthvalue_conversion): Generalise warning
91 for addresses converted to booleans; not just function addresses.
92 * c-typeck.c (build_binary_op): Warn for address comparisons which
93 can never be NULL (eg. func == NULL or &var == NULL).
94 * common.opt (Walways-true): New option.
95 * c-opts.c (c_common_handle_option): Set it with -Wall.
96 * doc/invoke.texi: Document it.
98 2005-12-13 Paul Brook <paul@codesourcery.com>
100 * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
101 __floatunsidf, __floatunsisf, __floatunsixf): New functions.
103 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
105 * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
106 (EXTRA_MULTILIB_PARTS): Define.
108 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
110 PR rtl-optimization/20070 / part1
111 * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
112 count_or_remove_death_notes with kill == -1.
113 (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
114 registers if PROP_POST_REGSTACK is set.
115 (mark_used_reg): Likewise.
116 (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
117 REG_UNUSED notes for stack regs.
118 * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
119 to match rtx_equiv_p machinery. Change caller.
120 (outgoing_edges_match): Likewise.
121 (try_crossjump_to_edge): Use struct_equiv_block_eq
122 instead of flow_find_cross_jump.
123 * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
124 (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
125 (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
126 (STRUCT_EQUIV_MAX_LOCAL): Likewise.
127 (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
128 (insns_match_p): Update prototype.
129 (flow_find_cross_jump): Remove prototype.
130 (struct_equiv_block_eq, struct_equiv_init): Declare.
131 (rtx_equiv_p, condjump_equiv_p): Likewise.
132 * struct-equiv.c: Include reload.h.
133 (IMPOSSIBLE_MOVE_FACTOR): Define.
134 (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
135 (struct_equiv_improve_checkpoint): Likewise.
136 (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
137 (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
138 (struct_equiv_merge, find_dying_input): Likewise.
139 (resolve_input_conflict, note_local_live): Likewise.
140 (death_notes_match_p): Change parameters and processing
141 to match rtx_equiv_p machinery. Change caller.
142 (insns_match_p): Likewise.
143 (flow_find_cross_jump): Replace with:
144 (struct_equiv_block_eq).
146 Back out this change:
147 2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
148 * recog.c (verify_changes): Make it static.
149 * recog.h: Remove the corresponding prototype.
151 2005-12-13 J"orn Rennecke <joern.rennecke@st.com>
153 * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
156 2005-12-13 Nathan Sidwell <nathan@codesourcery.com>
158 * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
159 (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'.
160 * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
161 TARGET_MS1_64_001 appropriately.
162 (ms1_machine_reorg): Use TARGET_MS2.
164 2005-12-13 Jakub Jelinek <jakub@redhat.com>
168 * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
169 and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
170 Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
171 * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
172 Set mode to SI, adjust constraints.
173 (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
174 * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
177 2005-12-13 Carlos O'Donell <carlos@codesourcery.com>
179 * c-cppbuiltin.c (builtin_define_float_constants): Add
180 fp_cast parameter, pass to builtin_define_with_hex_fp_value.
181 Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
182 (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
183 (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
184 to "((double)%sL)" otherwise "%s".
186 2005-12-13 Paul Brook <paul@codesourcery.com>
188 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
191 2005-12-11 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
193 * tree-flow.h: Allow compilation with a C++ compiler.
194 (struct edge_prediction): Prefix all field names with "ep_".
195 * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
196 (tree_predict_edge, combine_predictions_for_bb): Likewise.
197 (remove_predictions_associated_with_edge): Likewise.
199 2005-12-12 Jeff Law <law@redhat.com>
201 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
203 * passes.c (init_optimization_passes): Run reassociation again
204 after loop optimizations.
206 2005-12-12 Daniel Berlin <dberlin@dberlin.org>
208 * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
210 (optimize_stmt): Ditto.
211 (canonicalize_comparison): New function.
212 * tree-ssa-operands.c (swap_tree_operands): Make external.
213 (get_expr_operands): Stop auto-canonicalization.
214 * tree-ssa-reassoc.c: Rewrite.
215 (init_optimization_passes):
216 * tree-flow.h (swap_tree_operands): Prototype.
217 * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
219 2005-12-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
221 * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
222 indicate function epilogue has been output.
223 (pa_asm_output_mi_thunk): Likewise.
224 (output_deferred_plabels): Put plabels in readonly data section when
225 not generating PIC code.
226 (som_output_text_section_asm_op): Use .NSUBSPA to output debug
227 information. Add assert.
228 (som_output_comdat_data_section_asm_op): New function.
229 (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
230 instead of output_section_asm_op for COMDAT sections.
232 2005-12-12 J"orn Rennecke <joern.rennecke@st.com>
234 * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
235 Fix whitespace in vincinity of to-be-installed changes.
236 * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
237 (insns_match_p): Likewise.
239 2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
241 * config.gcc (ms1): Replace with ...
243 * config/ms1: Rename to ...
244 * config/mt: ... here. Rename ms1 files to mt.
245 * config/mt/mt.c: Adjust gt-mt.h #include.
246 * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
247 (crti.o, crtn.o): Adjust file names.
249 2005-12-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
251 * varray.h: Allow compilation with a C++ compiler.
252 (union varray_data_tag): Prefix all field names with "vdt_".
253 (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
254 VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
255 VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
256 VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
257 VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
258 VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
259 (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
260 VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
261 VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
262 VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
263 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
264 VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
265 VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
266 VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
267 (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
268 VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
269 VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
270 VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
271 VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
272 VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
273 VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
274 VARRAY_TOP_TREE_PTR): Likewise.
275 * varray.c (varray_grow): Likewise.
276 (varray_clear): Likewise.
278 2005-12-12 Alan Modra <amodra@bigpond.net.au>
281 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
282 alignment to doubleword if the first field is a double array.
283 * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
285 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
287 * tree-ssa-structalias.c (process_constraint): Remove code to
288 transform addressofs into scalar.
289 (create_variable_info_for): In whole-program IPA, globals don't
290 point to ANYTHING by default.
292 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
294 * timevar.def (TV_IPA_PTA): New.
295 * tree-pass.h (pass_ipa_pta): New
296 * tree-ssa-structalias.c: Include cgraph.h
298 (predbitmap_obstack): New.
299 (EXECUTE_IF_IN_NONNULL_BITMAP): New.
300 (struct constraint_stats): Add num_edges.
301 (new_var_info): Don't call bitmap_clear.
302 (struct constraint_edge): Update docs.
303 (new_constraint_edge): Remove src param.
304 (struct constraint_graph): Add zero_weight_succs,
305 zero_weight_preds. Update docs.
306 (constraint_expr_equal): Reformat.
307 (constraint_edge_equal): Update for removal of src.
308 (constraint_edge_less): Ditto.
309 (constraint_edge_vec_find): Ditto.
310 (erase_graph_self_edge): Update for removal of src and and zero
312 (clear_edges_for_node): Ditto.
313 (add_graph_edge): Ditto.
314 (get_graph_weights): Ditto.
315 (allocate_graph_weights): Ditto.
316 (merge_graph_nodes): Ditto.
317 (int_add_graph_edge): Ditto.
318 (valid_graph_edge): Ditto.
319 (valid_weighted_graph_edge): Ditto.
320 (build_constraint_graph): Ditto.
322 (collapse_nodes): Ditto.
323 (process_unification_queue): Ditto.
325 (solve_graph): Ditto.
326 (do_structure_copy): Ditto.
327 (perform_var_substitution): Ditto.
328 Init and release obstack.
329 (handle_ptr_arith): Try to resolve directly.
330 (find_func_aliases): Don't call update_alias_info here
331 Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
332 (do_sd_constraint): Add code for propagating faster.
334 (do_ds_constraint): Ditto.
335 (count_num_arguments): New function.
336 (create_function_info_for): Ditto.
337 (create_variable_info_for): Handle FUNCTION_DECL.
338 (intra_create_variable_infos): Use make_constraint_to_anything.
339 (init_alias_vars): Init obstacks here.
340 (need_to_solve): Handle zero weight graph changes.
341 (compute_points_to_sets): Call update_alias_info here.
342 (delete_points_to_sets): Free zero weight preds/succs here.
344 (ipa_pta_execute): New
346 2005-12-11 Daniel Berlin <dberlin@dberlin.org>
348 * tree-ssa-structalias.c (var_anyoffset): Removed.
349 (anyoffset_tree): Ditto.
350 (anyoffset_id): Ditto.
351 (do_deref): Take vector of constraints, no return value.
352 Update to work on vector.
353 (get_constraint_for): Ditto.
354 (get_constraint_for_component_ref): Ditto.
355 (do_structure_copy): Ditto.
356 (handle_ptr_arith): Ditto.
357 (find_func_aliases): Ditto.
358 (set_uids_in_ptset): Remove anyoffset handling.
359 (init_base_vars): Ditto.
361 2005-12-10 Mark Mitchell <mark@codesourcery.com>
364 * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
365 DECL_EXTERNAL functions have no bodies. Tidy.
367 2005-12-10 Andreas Schwab <schwab@suse.de>
369 * except.c (switch_to_exception_section): Only define if
370 TARGET_UNWIND_INFO is not defined.
372 2005-12-10 Richard Sandiford <richard@codesourcery.com>
374 * config/darwin.h (HAS_INIT_SECTION): Remove definition.
375 (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
377 2005-12-10 Richard Sandiford <richard@codesourcery.com>
379 * output.h (init_section, fini_section): Delete.
380 * varasm.c (init_section, fini_section): Delete.
381 (init_varasm_once): Don't initialize them.
382 * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
383 there are no corresponding varasm.c variables.
385 2005-12-10 Richard Sandiford <richard@codesourcery.com>
387 * dwarf2out.c (default_eh_frame_section): Delete, moving handling
388 of EH_FRAME_SECTION_NAME into...
389 (switch_to_eh_frame_section): ...here. Try to set eh_frame_section
391 * except.c (default_exception_section): Delete, moving most
393 (switch_to_exception_section): ...this new function. Set
394 exception_section if it is still null, then switch to it.
395 (output_function_exception_table): Use switch_to_exception_section.
396 * varasm.c (exception_section, eh_frame_section): Update comments.
397 (get_section): Hoist use of SECTION_NAMED.
398 (init_varasm_once): Don't set exception_section and eh_frame_section.
399 * output.h (default_exception_section): Delete.
400 (default_eh_frame_section): Delete.
402 2005-12-09 Bernd Schmidt <bernd.schmidt@analog.com>
404 * config/bfin/bfin.c: Include "cgraph.h".
405 (bfin_load_pic_reg): Omit loading pic reg if in a local function.
406 Return the reg that holds the pointer to the GOT.
407 (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
408 doing stack checking.
410 2005-12-09 Diego Novillo <dnovillo@redhat.com>
412 * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
413 recompute_tree_invarant_for_addr_expr.
414 Update uses everywhere.
416 2005-12-09 Aldy Hernandez <aldyh@redhat.com>
418 * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
419 (MULTILIB_DIRNAMES): Define.
421 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
424 * config/s390/s390.c (struct s390_address): New field literal_pool.
425 (s390_decompose_address): Compute literal_pool field. Do not
426 assume register %r13 is always (and solely) used as pool base.
427 (s390_extra_constraint_str): Use literal_pool field.
429 2005-12-09 Thiemo Seufer <ths@networkno.de>
431 * config/mips/mips.c (override_options): Don't allow too small
432 integers in FP registers.
434 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com>
436 * config/s390/s390.c (s390_function_ok_for_sibcall): Use
437 targetm.binds_local_p to check for local function calls.
439 2005-12-09 Alan Modra <amodra@bigpond.net.au>
442 * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
443 call_used_regs can't be used to save reg in another reg.
445 2005-12-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
446 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
448 * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
450 * except.c (output_ttype): Likewise.
451 * tree-object-size.c (collect_object_sizes_for): Likewise.
452 (check_for_plus_in_loops_1): Likewise.
453 (check_for_plus_in_loops): Likewise.
454 (compute_object_sizes): Use gcc_unreachable instead of abort.
456 2005-12-08 Nathan Sidwell <nathan@codesourcery.com>
458 * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
459 (loop_end, loop_init, doloop_end): New insns.
460 * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
461 (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
462 (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
463 (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
464 * config/ms1/ms1.c: #include basic-block.h
465 (struct machine_function): Add has_loops field.
467 (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
468 (struct loop_info, struct loop_work): New.
469 (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
470 (ms1_reorg_loops): New loop optimization.
471 (ms1_machine_reorg): Call it.
472 * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
474 2005-12-08 Zdenek Dvorak <dvorakz@suse.cz>
476 PR tree-optimization/25248
477 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
478 evolution_of_loop from the failed attempt. Remove handling
481 2005-12-08 Gabriel Dos Reis <gdr@integrable-solutions.net>
483 * tree.h (DECL_EXTERNAL): Clarify documentation.
485 2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com>
486 Jakub Jelinek <jakub@redhat.com>
489 * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
490 argument. Don't drop outer ANDs.
491 (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
492 * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
494 * config/s390/predicates.md (setmem_operand): Remove.
495 (shift_count_operand): Rename to...
496 (shift_count_or_setmem_operand): ... this. Adjust
497 s390_decompose_shift_count caller.
498 * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
499 ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
500 ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
501 <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
502 rotl<mode>3_and, setmem_long_and): New insns.
503 (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
504 ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
505 <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
506 <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
507 of shift_count_operand.
508 (setmem_long): Use shift_count_or_setmem_operand instead of
511 2005-12-08 Daniel Jacobowitz <dan@codesourcery.com>
512 Andreas Tobler <a.tobler@schweiz.ch>
514 * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
517 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
519 * expr.c (force_operand): Use convert_to_mode for conversions.
521 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
523 * reload.h (reg_equiv_invariant): Declare.
524 * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
525 register also when reg_equiv_invariant[R] is set.
527 2005-12-07 Richard Sandiford <richard@codesourcery.com>
528 Andreas Tobler <a.tobler@schweiz.ch>
530 * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
532 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
534 * tree-ssa-pre.c (bitmap_set_and): New function.
535 (bitmap_set_and_compl): New function.
536 (bitmap_set_empty_p): New function.
537 (insert_extra_phis): New function.
538 (compute_avail): Use insert_extra_phis.
540 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
542 * config/s390/s390.c (s390_expand_atomic): New function.
543 Adjust comment of helper functions.
544 * config/s390/s390-protos.h (s390_expand_atomic): Declare.
545 * config/s390/s390.md ("ATOMIC"): New code macro.
546 ("atomic"): Corresponding new code attribute.
547 ("sync_lock_test_and_set[hq]i",
548 "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
550 2005-12-07 Adrian Straetling <straetling@de.ibm.com>
552 * config/s390/s390.c (s390_expand_mask_and_shift,
553 struct alignment_context, init_alignment_context,
554 s390_expand_cs_hqi): New.
555 * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
556 * config/s390/s390.md ("sync_compare_and_swaphi",
557 "sync_compare_and_swapqi"): New pattern.
559 2005-12-07 Daniel Berlin <dberlin@dberlin.org>
561 Fix PR tree-optimization/25291
562 * tree-ssa-operands.c (add_call_clobber_ops): Remove
563 redundant and crashing check.
565 2005-12-08 Alan Modra <amodra@bigpond.net.au>
568 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
569 tests further when !strict && reload_in_progress.
570 (print_operand): Check that both operands of indexed address are regs.
571 (print_operand_address): Likewise.
572 * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
573 (INT_REG_OK_FOR_BASE_P): Correct.
575 2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
577 Preparation for PR rtl-optimization/20070 / part1
578 * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
579 * cfgcleanup.c (condjump_equiv_p): New function, broken out of
580 outgoing_edges_match.
581 (outgoing_edges_match): Use condjump_equiv_p.
582 (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
584 * struct-equiv.c: New file.
585 (death_notes_match_p) New function, broken out of insns_match_p.
586 * Makefile.in (OBJS-common): Add struct-equiv.o.
587 (struct-equiv.o): New target.
589 2005-12-07 Richard Sandiford <richard@codesourcery.com>
591 * coretypes.h: Revert previous change.
592 * config/darwin.h: Revert previous reversion.
593 * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
595 2005-12-07 Richard Sandiford <richard@codesourcery.com>
597 * coretypes.h (section): Provide dummy definition for target files.
598 * config/darwin.h: Revert previous change.
600 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
602 * doc/sourcebuild.texi (all.build, install-normal): Remove.
603 * configure.ac: Remove all.build and install-normal from target_list
604 * configure: Regenerate.
605 * Makefile.in (install): Don't depend on install-normal.
607 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
609 * Makefile.in: Document the use of stamps.
611 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
613 * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
614 * Makefile.in: Add code to compute some dependencies on s-gtype
615 automatically. Remove the declaration of those dependencies.
617 2005-12-07 Richard Sandiford <richard@codesourcery.com>
619 * gcc/reload.c (push_secondary_reload): Fix typo:
620 s/insn_constraint/scratch_constraint/.
622 2005-12-07 Richard Sandiford <richard@codesourcery.com>
624 * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
626 2005-12-07 Richard Sandiford <richard@codesourcery.com>
628 * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
629 (alpha_elf_select_rtx_section): Return the selected section rather
630 than emitting assembly code.
631 (alpha_write_linkage): Emit a ".link" directive directly and then
632 set in_section to NULL.
633 (vms_asm_out_constructor): Use switch_to_section.
634 (vms_asm_out_destructor): Likewise.
635 (unicosmk_output_common): Set in_section to NULL instead of calling
636 the dummy common_section function.
637 (unicosmk_text_section): Delete in favor of...
638 (unicosmk_output_text_section_asm_op): ...this new function.
639 (unicosmk_data_section): Delete in favor of...
640 (unicosmk_output_data_section_asm_op): ...this new function.
641 (unicosmk_init_sections): New function.
642 (unicosmk_output_deferred_case_vectors): Use switch_to_section.
643 (unicosmk_output_ssib): Set in_section to NULL instead of calling
644 the dummy ssib_section function.
645 (unicosmk_section_buf): Delete.
646 * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
647 (unicosmk_data_section): Delete.
648 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
649 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
650 (SECTION_FUNCTION_TEMPLATE): Delete.
651 * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
652 (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
653 (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
654 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
655 (TARGET_ASM_INIT_SECTIONS): Define.
656 * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
657 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
658 (link_section, literals_section): Delete.
659 (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
660 set in_section to NULL.
662 * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
663 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
664 (COMMON_SECTION): Delete.
665 (TARGET_ASM_INIT_SECTIONS): Define.
666 (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
667 the dummy common_section function.
668 * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
669 * config/arm/arm.c (get_jump_table_size): Use pointer comparison
670 between readonly_data_section and text_section to check whether
671 read-only data is being put in the text section.
672 (arm_output_function_epilogue): Use switch_to_section.
673 (arm_elf_asm_constructor): Likewise.
674 (thumb_call_via_reg): Replace call to in_text_section with
675 a comparison between in_section and text_section.
676 (arm_file_end): Use switch_to_section.
677 (aof_text_section): Delete in favor of...
678 (aof_output_text_section_asm_op): ...this new function.
679 (aof_data_section): Delete in favor of...
680 (aof_output_data_section_asm_op): ...this new function.
681 (aof_asm_init_sections): New function.
682 (zero_init_section): Moved from config/arm/aof.h.
683 (aof_dump_imports, aof_file_start): Use switch_to_section.
684 * config/arm/arm.h (thumb_call_via_label): Update comment.
685 * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
686 (common_section): Delete.
687 * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
688 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
689 global switch_to_section function instead of the old port-local one.
690 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
691 (SWITCH_TO_SECTION_FUNCTION): Delete.
692 (drectve_section): Redefine as a macro.
693 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
694 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
697 * config/avr/avr.c (progmem_section): New variable.
698 (avr_output_progmem_section_asm_op): New function.
699 (avr_asm_init_sections): New function.
700 (avr_output_addr_vec_elt): Use switch_to_section.
701 * config/avr/avr.h (progmem_section): Declare.
702 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
703 (READONLY_DATA_SECTION): Delete.
704 (TARGET_ASM_INIT_SECTIONS): Define.
705 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
706 * config/avr/avr-protos.h (progmem_section): Delete.
708 * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
710 * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
711 (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
713 * config/darwin-sections.def: New file.
714 * config/darwin.c: Define all sections in darwin-sections.def.
715 (output_objc_section_asm_op, darwin_init_sections): New functions.
716 (machopic_output_indirection): Use switch_to_section.
717 (machopic_select_section): Return the selected section rather than
718 emitting assembly code. Replace the static function table with
719 inline conditional expressions. Update the tests of last_text_section
720 and move them into the FUNCTION_DECL block.
721 (machopic_select_rtx_section): Return the selected section rather than
722 emitting assembly code.
723 (machopic_asm_out_constructor, machopic_asm_out_destructor)
724 (darwin_file_end): Use switch_to_section.
725 * config/darwin.h: Use darwin-sections.def to declare sections.
726 (INIT_SECTION_ASM_OP): Remove empty definition.
727 (HAS_INIT_SECTION): Define this instead.
728 (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
729 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
730 (TARGET_ASM_EH_FRAME_SECTION): Delete.
731 (TARGET_ASM_INIT_SECTIONS): Define.
732 * config/darwin-protos.h (darwin_init_sections): Declare.
733 (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
734 (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
735 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
736 (constructor_section, destructor_section, mod_init_section): Delete.
737 (mod_term_section): Delete.
738 (darwin_exception_section, darwin_eh_frame_section): Delete.
739 (machopic_select_section): Return a section.
740 (machopic_select_rtx_section): Likewise.
741 (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
742 (const_section, const_coal_section, const_data_section): Delete.
743 (const_data_coal_section, data_coal_section, cstring_section): Delete.
744 (literal4_section, literal8_section, constructor_section): Delete.
745 (mod_init_section, mod_term_section, destructor_section): Delete.
746 (objc_class_section, objc_meta_class_section, objc_category_section)
747 (objc_class_vars_section, objc_instance_vars_section): Delete.
748 (objc_cls_meth_section, objc_inst_meth_section): Delete.
749 (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
750 (objc_selector_refs_section, objc_selector_fixup_section): Delete.
751 (objc_symbols_section, objc_module_info_section): Delete.
752 (objc_image_info_section, objc_protocol_section): Delete.
753 (objc_string_object_section, objc_constant_string_object_section)
754 (objc_class_names_section, objc_meth_var_names_section): Delete.
755 (objc_meth_var_types_section, objc_cls_refs_section): Delete.
756 (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
757 (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
758 (darwin_exception_section, darwin_eh_frame_section): Delete.
759 * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
761 * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
762 (frv_asm_out_destructor): Likewise.
763 * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
764 (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
765 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
767 (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
768 * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
769 (data_section): Delete.
771 * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
772 (DRECTVE_SECTION_FUNCTION): Delete.
773 (drectve_section): Redefine as a macro that sets in_section after
774 emitting the directive.
775 (SWITCH_TO_SECTION_FUNCTION): Delete.
776 * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
777 in_text_section with comparison between in_section and text_section.
778 * config/i386/i386.c (x86_64_elf_select_section): Return the section
779 rather than emitting assembly code. Use get_named_section.
780 (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
782 (machopic_output_stub): Use switch_to_section.
783 * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
784 (nwld_named_section_asm_out_destructor): Use get_section and
787 * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
788 rather than emitting assembly code.
789 (ia64_rwreloc_select_section): Likewise.
790 (ia64_rwreloc_select_rtx_section): Likewise.
791 * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
792 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
794 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
795 (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
797 * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
798 section rather than emitting assembly code.
799 (iq2000_select_section): Likewise.
800 * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
801 (sbss_section): Delete.
803 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
804 and get_named_section.
805 * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
807 * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
808 (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
809 (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
810 (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
812 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
813 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
814 global switch_to_section function instead of the old port-local one.
815 * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
816 (SWITCH_SECTION_FUNCTION): Delete.
817 * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
818 (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
819 (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
820 (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
822 (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the
823 global switch_to_section function instead of the old port-local one.
824 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
826 * config/mips/mips.c (mips_file_start): Update comment.
827 (mips_output_aligned_bss): Use switch_to_section and get_named_section.
828 (mips_output_aligned_decl_common): Use switch_to_section.
829 (mips_select_rtx_section): Return the section rather than emitting
830 assembly code. Use get_named_section.
831 (mips_function_rodata_section: Likewise get_section.
832 (build_mips16_function_stub): Use switch_to_section.
833 * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
834 (SDATA_SECTION_ASM_OP): Delete.
835 * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
836 (EXTRA_SECTION_FUNCTIONS): Delete.
838 * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
839 (mmix_asm_output_aligned_local): Use switch_to_section.
841 * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
842 (som_one_only_readonly_data_section): New variables.
843 (pa_output_function_epilogue): Set in_section to NULL instead of
844 calling forget_section.
845 (output_deferred_plabels): Use select_section.
846 (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead
847 of calling forget_section.
848 (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
849 (pa_asm_output_aligned_local): Use select_section.
850 (som_text_section_asm_op): Delete in favor of...
851 (som_output_text_section_asm_op): ...this new function.
852 (pa_som_asm_init_sections): New function.
853 (pa_select_section): Return the section rather than emitting
855 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
856 (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
857 (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
858 (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
859 * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
860 (som_readonly_data_section, som_one_only_readonly_data_section)
861 (som_one_only_data_section, forget_section): Delete.
862 * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
863 (TARGET_ASM_INIT_SECTIONS): Define.
864 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
866 * config/rs6000/rs6000.c (read_only_data_section): New variable.
867 (private_data_section, read_only_private_data_section): New variables.
868 (sdata2_section, toc_section): New variables.
869 (rs6000_file_start): Use switch_to_section.
870 (rs6000_assemble_integer): Use comparisons against in_section
871 instead of calling in_toc_section and in_text_section. Use
872 unlikely_text_section_p.
873 (rs6000_elf_output_toc_section_asm_op): New function, derived
874 from the old rs6000/sysv4.h toc_section function.
875 (rs6000_elf_asm_init_sections): New function.
876 (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
877 the section rather than emitting assembly code.
878 (machopic_output_stub): Use switch_to_section.
879 (toc_section): Delete dummy function.
880 (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
881 switch_to_section and get_section.
882 (rs6000_xcoff_output_readonly_section_asm_op): New function.
883 (rs6000_xcoff_output_readwrite_section_asm_op): New function.
884 (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
885 the old rs6000/xcoff.h toc_section function.
886 (rs6000_xcoff_asm_init_sections): New function.
887 (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
888 the section rather than emitting assembly code.
889 (rs6000_xcoff_file_start): Use switch_to_section.
890 (rs6000_xcoff_file_end): Likewise.
891 * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
892 (sdata2_section, sbss_section, private_data_section): Delete.
893 (read_only_data_section, read_only_private_data_section): Delete.
894 * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
895 (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
896 (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
897 (FINI_SECTION_FUNCTION): Delete.
898 (TARGET_ASM_INIT_SECTIONS): Define.
899 (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
900 * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
901 (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
902 (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
903 (READONLY_DATA_SECTION): Delete.
904 (TARGET_ASM_INIT_SECTIONS): Define.
905 (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section
906 to NULL rather than no_section.
907 (TARGET_ASM_EXCEPTION_SECTION): Delete.
909 * config/sh/sh.c (sh_file_start): Use switch_to_section.
911 * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
912 (sparc_output_deferred_case_vectors): Likewise. Remove argument
913 from call to current_function_section.
915 * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
916 (bss100_section): New variable.
917 (xstormy16_asm_output_aligned_common): Use switch_to_section.
918 (xstormy16_asm_init_sections): New function.
919 (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
920 switch_to_section and get_section.
921 (xstormy16_output_addr_vec): Use switch_to_section. Remove argument
922 from calls to current_function_section.
923 * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
924 (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
925 (TARGET_ASM_INIT_SECTIONS): Define.
926 * config/stormy16/stormy16-protos.h (bss100_section): Delete.
928 * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
929 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
930 (FINI_SECTION_FUNCTION): Delete.
932 * config/v850/v850.c: Include gt-v850.h.
933 (rosdata_section, rozdata_section, tdata_section, zdata_section)
934 (zbss_section): New variables.
935 (v850_output_aligned_bss): Use switch_to_section.
936 (v850_asm_init_sections): New function.
937 (v850_select_section): Return the section rather than emitting
939 * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
940 (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
941 (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
942 (TARGET_ASM_INIT_SECTIONS): Define.
943 * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
944 (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
945 (zbss_section): Delete.
947 * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
949 * config/vx-common.h (vxworks_exception_section): Delete.
950 (TARGET_ASM_EXCEPTION_SECTION): Delete.
952 * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
953 section rather than emitting assembly code.
954 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
957 * Makefile.in (GTFILES): Add $(srcdir)/output.h.
958 * coretypes.h (section): New union and typedef.
959 * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument
960 from call to current_function_section.
961 (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
962 (dbxout_symbol_location): Use switch_to_section.
963 * dwarf2out.c (named_section_eh_frame_section): Delete, moving
964 most of the code into...
965 (default_eh_frame_section): ...here. Return a section.
966 (collect2_eh_frame_section): Delete, moving most of the code into..
967 (switch_to_eh_frame_section): ...this new function.
968 (debug_info_section, debug_abbrev_section, debug_aranges_section)
969 (debug_macinfo_section, debug_line_section, debug_loc_section)
970 (debug_pubnames_section, debug_str_section, debug_ranges_section): New
972 (output_call_frame_info): Call switch_to_eh_frame_section instead of
973 eh_frame_section. Use switch_to_section and get_section.
974 (dwarf2out_begin_prologue): Use switch_to_section.
975 (AT_string_form): Check the flags in debug_str_section instead of
976 DEBUG_STR_SECTION_FLAGS.
977 (output_comp_unit): Use switch_to_section, get_section, and
979 (output_line_info, secname_for_decl): Use unlikely_text_section_p.
980 (dwarf2out_begin_block): Use switch_to_section. Remove argument
981 from call to current_function_section.
982 (dwarf2out_var_location): Use unlikely_text_section_p.
983 (dwarf2out_source_line): Use switch_to_section. Remove argument
984 from call to current_function_section.
985 (dwarf2out_start_source_file, dwarf2out_end_source_file)
986 (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
987 debug_macinfo_section.
988 (dwarf2out_init): Initialize the new section variables. Use them
989 instead of calls to named_section_flags. Use switch_to_section.
990 (output_indirect_string): Use switch_to_section and debug_str_section.
991 (dwarf2out_finish): Use switch_to_section and the new section
993 * except.c (default_exception_section): Return the section instead
994 of emitting assembly code.
995 (output_function_exception_table): Use the global exception_section
996 variable instead of the target hook. Use switch_to_section. Remove
997 argument from call to current_function_section.
998 * final.c (HAVE_READONLY_DATA_SECTION): Delete.
999 (shorten_branches): Use pointer comparisons to detect whether the
1000 text section is the same as readonly_data_section.
1001 (profile_function): Use switch_to_section. Remove argument from
1002 call to current_function_section.
1003 (final_scan_insn): Likewise. Update use of last_text_section.
1004 * gengtype.c (open_base_files): Add an include of output.h.
1005 * output.h (text_section, data_section, readonly_data_section)
1006 (ctors_section, dtors_section, bss_section, init_section)
1007 (fini_section, sdata_section): Turn into section pointers.
1008 (in_text_section, in_unlikely_text_section, exports_section)
1009 (drectve_section, named_section, mergeable_string_section)
1010 (last_text_section_name): Delete.
1011 (default_exception_section, default_eh_frame_section): Return sections.
1012 (SECTION_DECLARED, SECTION_NAMED): New macros.
1013 (SECTION_MACH_DEP): Bump value.
1014 (section_common, named_section, unnamed_section): New structures.
1015 (unnamed_section_callback): New typedef.
1016 (section): New union.
1017 (sbss_section, exception_section, eh_frame_section): New variables.
1018 (in_section, last_text_section): Turn into section pointers.
1019 (get_unnamed_section, get_section, get_named_section): New functions.
1020 (mergeable_constant_section, function_section): Return a section.
1021 (unlikely_text_section): Likewise.
1022 (current_function_section): Likewise. Remove the decl argument.
1023 (unlikely_text_section_p, switch_to_section): New functions.
1024 (output_section_asm_op): New function.
1025 (set_named_section_flags, named_section_flags, named_section_real)
1026 (named_section_first_declaration): Delete.
1027 (default_select_section, default_elf_select_section): Return a section.
1028 (default_elf_select_section_1, default_function_rodata_section)
1029 (default_no_function_rodata_section, default_select_rtx_section)
1030 (default_elf_select_rtx_section): Likewise.
1031 * rtl.h (in_data_section): Delete.
1032 * sdbout.c (sdbout_one_type): Use switch_to_section.
1033 * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
1034 (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
1035 (TARGET_ASM_EH_FRAME_SECTION): Poison.
1036 * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
1037 (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
1038 (TARGET_ASM_OUT): Update after above changes.
1039 * target.h (init_sections): New hook.
1040 (exception_section, eh_frame_section): Delete.
1041 (select_section, select_rtx_section, function_rodata_section): Return
1042 a section rather than emitting assembly code.
1043 * varasm.c (text_section, data_section, readonly_data_section)
1044 (ctors_section, dtors_section, bss_section, init_section)
1045 (fini_section): Turn into section pointers.
1046 (sdata_section, sbss_section, exception_section): New variables.
1047 (eh_frame_section): New variable.
1048 (in_section): Make global and turn into a section pointer.
1049 (last_text_section): Turn into a section pointer.
1050 (unnamed_sections): New variable.
1051 (in_named_name, last_text_section_name): Delete.
1052 (EXTRA_SECTION_FUNCTIONS): Delete.
1053 (in_named_entry): Delete.
1054 (section_htab): New variable, replacing...
1055 (in_named_htab): ...this deleted variable.
1056 (section_entry_eq, section_entry_hash): New functions, based on...
1057 (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
1058 (get_unnamed_section, get_section): New functions.
1059 (unlikely_text_section): Return a section instead of emitting
1061 (in_text_section, in_unlikely_text_section, in_data_section): Delete.
1062 (get_named_section_flags, named_section_first_declaration): Delete.
1063 (unlikely_text_section_p): New function.
1064 (named_section_real, named_section): Delete.
1065 (get_named_section): New function.
1066 (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
1067 (function_section): Return a section rather than emitting
1069 (current_function_section): Likewise. Remove argument. Use
1070 last_text_section if nonnull, otherwise use function_section.
1071 (default_function_rodata_section): Return a section rather than
1072 emitting assembly code. Use get_section.
1073 (default_no_function_rodata_section): Return a section rather than
1074 emitting assembly code.
1075 (variable_section): Use switch_to_section and get_named_section.
1076 (mergeable_string_section): Return a section rather than emitting
1077 assembly code. Use get_section. Make static. Don't take special
1078 countermeasures for empty strings.
1079 (mergeable_constant_section): Return a section rather than emitting
1080 assembly code. Use get_section.
1081 (default_named_section_asm_out_destructor): Use switch_to_section
1083 (default_dtor_section_asm_out_destructor): Use switch_to_section.
1084 (default_named_section_asm_out_constructor): Use switch_to_section
1086 (default_ctor_section_asm_out_constructor): Use switch_to_section.
1087 (assemble_start_function): Likewise. Set last_text_section to
1088 NULL rather than no_section. Change the type of save_section.
1089 (assemble_zeros, assemble_variable): Use the section flags to detect
1090 whether or not a section is text.
1091 (assemble_static_space): Use switch_to_section.
1092 (assemble_trampoline_template): Likewise.
1093 (output_constant_def_contents): Use switch_to_section and
1095 (output_constant_pool_1): Use switch_to_section. Use the section
1096 flags to see whether sections contain mergeable data.
1097 (init_varasm_once): Initialize section_htab instead of in_named_htab.
1098 Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS.
1099 (default_elf_asm_named_section): Use SECTION_DECLARED to detect
1100 whether a section has already been declared.
1101 (default_select_section, default_elf_select_section): Return a
1102 section rather than emitting assembly code.
1103 (default_elf_select_section_1): Likewise. Use bss_section for
1104 SECCAT_BSS if nonnull. Use get_named_section.
1105 (default_select_rtx_section): Return a section rather than
1106 emitting assembly code.
1107 (default_elf_select_rtx_section): Likewise. Use get_named_section.
1108 (file_end_indicate_exec_stack): Use switch_to_section and get_section.
1109 (output_section_asm_op, switch_to_section): New functions.
1110 * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
1113 * doc/tm.texi: Expand the introduction to the sections documentation.
1114 (TRAMPOLINE_SECTION): Document new interface.
1115 (SDATA_SECTION_ASM_OP): Document new macro.
1116 (READONLY_DATA_SECTION): Delete.
1117 (SDATA_SECTION_ASM_OP): Document new macro.
1118 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1119 (TARGET_ASM_INIT_SECTIONS): Document new hook.
1120 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
1121 (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
1122 (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
1124 2005-12-07 Alan Modra <amodra@bigpond.net.au>
1126 * gcc.c (init_gcc_specs): Match braces inside conditionally
1129 2005-12-06 Geoffrey Keating <geoffk@apple.com>
1131 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
1133 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
1136 * tree.c (integer_all_onesp): Always return true if all bits on.
1138 * testsuite/g++.dg/init/array0.C: New.
1140 2005-12-06 Adrian Straetling <straetling@de.ibm.com>
1142 * doc/md.texi: Adapt to implementation.
1144 2005-12-06 Andreas Schwab <schwab@suse.de>
1146 * opts.c (decode_options): Fix typo in message.
1148 2005-12-06 Alan Modra <amodra@bigpond.net.au>
1151 * longlong.h: Merge PPC tests from upstream.
1153 2005-12-06 Richard Guenther <rguenther@suse.de>
1155 * fold-const.c (fold_convert): Do not build and fold
1156 CONVERT_EXPR, but always use NOP_EXPR.
1158 2005-12-06 Jan Beulich <jbeulich@novell.com>
1160 * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
1161 __builtin_ia32_paddq and __builtin_ia32_subq.
1162 (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
1163 __builtin_ia32_pshufw.
1164 * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
1166 2005-12-05 James E Wilson <wilson@specifix.com>
1169 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
1172 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
1174 * print-tree.c (print_node): Ditto.
1175 * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
1176 * tree-dump.c (dequeue_and_dump): Check for decl_common structure
1177 before accessing DECL_ARTIFICIAL.
1178 Handle new tag tree codes.
1179 * tree-flow-inline.h (clear_call_clobbered): Update for tag
1181 (unmodifiable_var_p): Ditto.
1182 * tree-flow.h (mem_tag_kind): Remove.
1183 (struct var_ann_d): Remove mem_tag_kind member.
1184 * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
1185 * tree-pretty-print.c (dump_generic_node): Handle memory tags.
1186 * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
1187 (group_aliases): Ditto.
1188 (setup_pointers_and_addressables): Ditto.
1189 (is_escape_site): Ditto.
1190 (may_alias_p): Ditto.
1191 (create_tag_raw): New function.
1192 (create_memory_tag): Use it.
1193 (dump_alias_info): Update for tags.
1194 (may_be_aliased): Ditto.
1195 (add_type_alias): Ditto.
1196 (new_type_alias): Ditto.
1197 (create_sft): Ditto.
1198 (create_structure_vars): Ditto.
1199 * tree-ssa-ccp.c (get_default_value): Ditto.
1200 * tree-ssa-operands.c (get_expr_operands): Ditto.
1201 (add_stmt_operand): Ditto.
1202 (add_call_clobber_ops): Remove duplicated condition.
1203 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
1205 * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
1206 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
1207 * tree.c (init_ttree): Update structures for new tree codes.
1208 (tree_code_size): Update sizes for new tree codes.
1209 (make_node_stat): Don't try to set common things on minimal
1211 (tree_node_structure): Update for tags.
1212 (is_global_var): Ditto.
1213 * tree.def: Add new tree codes.
1214 * tree.h (MTAG_P): New macro.
1215 (TREE_MEMORY_TAG_CHECK): Ditto.
1216 (SSA_VAR_P): Update for tags.
1217 (struct tree_memory_tag): New structure.
1218 (MTAG_GLOBAL): New macro.
1219 (union tree_node): Add memory tag member.
1220 * treestruct.def (TS_MEMORY_TAG): New.
1222 2005-12-05 Dale Johannesen <dalej@apple.com>
1224 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
1225 what was approved (PR 24323).
1227 2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
1229 * doc/c-tree.texi (Function Bodies): Remove description of
1232 2005-12-05 Joseph S. Myers <joseph@codesourcery.com>
1234 * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
1235 __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
1236 __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
1237 __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
1238 __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
1239 __divxc3): Document.
1241 2005-12-05 Geoffrey Keating <geoffk@apple.com>
1243 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
1245 * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
1246 hook_bool_void_false.
1247 (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
1248 * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
1250 * config/darwin.c (machopic_select_section): It's not defined
1251 as weak if it's only marked as weak_import.
1253 * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
1256 * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
1257 A hidden weak object does bind locally. Strong linkonce data
1258 counts like any other strong symbol for binding.
1259 (weak_finish_1): Don't specially handle weakrefs, they no longer
1261 (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
1262 * c-common.c (handle_alias_attribute): Allow static aliases
1264 (handle_weakref_attribute): Don't call declare_weak on weakrefs.
1265 * gthr-dce.h: Make weakrefs static.
1266 * gthr-tpf.h: Likewise.
1267 * gthr-solaris.h: Likewise.
1268 * gthr-posix.h: Likewise.
1269 * gthr-posix95.h: Likewise.
1270 * config/darwin.c (darwin_encode_section_info): static weakref
1271 variables are not necessarily defined in this translation unit.
1272 * doc/extend.texi (Function Attributes): Mention that an alias
1273 attribute creates a definition for the thing it's attached to.
1274 Change the documentation for weakref to say that the thing
1275 it's attached to must be static.
1277 * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
1278 we don't go into an infinite loop.
1280 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
1282 * config/rs6000/predicates.md (logical_const_operand): Split
1283 out of logical_operand.
1284 (logical_operand): Use it.
1285 * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
1286 logical_const_operand.
1288 2005-12-05 Jan Beulich <jbeulich@novell.com>
1290 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
1291 and IX86_BUILTIN_CMPNESS.
1292 (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
1293 * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
1294 * config/i386/i386.md (movti_internal): Correct type attribute.
1295 Simplify mode attribute.
1296 (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
1297 Correct type attribute.
1298 (absxf2): Correct operator.
1299 * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
1300 movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
1301 * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
1303 (sse2_vmsqrtv2df2): Correct mode attribute.
1305 2005-12-05 Jan Beulich <jbeulich@novell.com>
1307 * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
1308 16 bits. Provide insn pattern for this case.
1310 2005-12-05 Jan Beulich <jbeulich@novell.com>
1312 * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
1314 (__popcountDI2): Likewise.
1316 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1319 * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
1320 _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
1321 * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
1324 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
1326 * c-typeck.c (null_pointer_constant_p): New function.
1327 (build_conditional_expr, build_c_cast, convert_for_assignment,
1328 build_binary_op): Use it.
1330 2005-12-04 Joseph S. Myers <joseph@codesourcery.com>
1332 * c-common.c (binary_op_error): Do not allow NOP_EXPR.
1333 (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
1335 (check_function_arguments_recurse): Allow both NOP_EXPR and
1336 CONVERT_EXPR but check conversions preserve precision.
1337 * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
1338 but check conversions preserve precision.
1339 (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
1342 2005-12-04 Roger Sayle <roger@eyesopen.com>
1345 * common.opt (Wstring-literal-comparison): New command line option.
1346 * c-opts.c (c_common_handle_option): Set it with -Wall.
1347 * c-typeck.c (parser_build_binary_op): Issue warning if either
1348 operand of a comparison operator is a string literal, except for
1349 testing equality or inequality against NULL.
1351 * doc/invoke.texi: Document new -Wstring-literal-comparison option.
1353 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
1355 * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
1356 of building a NOP_EXPR.
1357 (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
1359 * c-convert.c (convert): Use fold_convert instead of building
1360 NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
1361 c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
1363 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
1364 NOP_EXPR the same as CONVERT_EXPR.
1365 * c-typeck.c (build_function_call): Use fold_convert instead of
1366 building a NOP_EXPR directly.
1367 (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
1369 2005-12-03 Alan Modra <amodra@bigpond.net.au>
1371 PR rtl-optimization/25197
1372 * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
1375 2005-12-02 Stuart Hastings <stuart@apple.com>
1377 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
1380 2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
1382 * c-typeck.c (default_function_array_conversion,
1383 build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
1384 (build_conditional_expr): Apply integer_zerop to orig_op1 and
1385 orig_op2. Don't check them for NOP_EXPR.
1386 (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
1387 around integer zero.
1389 2005-12-03 Alan Modra <amodra@bigpond.net.au>
1391 * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
1392 toc_save_offset, toc_size, lr_size.
1393 (rs6000_stack_info): Use memset rather than bss struct copy to init.
1394 Test rs6000_ra_ever_killed last in condition setting lr_save_p.
1395 Adjust for removal of unused rs6000_stack_t fields.
1396 (debug_stack_info): Adjust.
1397 (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls
1398 first, and don't bother checking for set/inc of lr on sibcalls.
1399 (rs6000_emit_epilogue): Tidy code restoring stack pointer.
1401 2005-12-02 Jakub Jelinek <jakub@redhat.com>
1404 * config/i386/i386.md (movqi_1): Only force imovx for alternative
1405 5 if operand 1 is not aligned. Undo previous constraint change.
1406 * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
1408 2005-12-02 Richard Guenther <rguenther@suse.de>
1410 * tree.h (build): Remove prototype.
1411 (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
1412 * tree.c (build): Remove.
1413 (build0_stat): Update comment.
1415 2005-12-02 Richard Guenther <rguenther@suse.de>
1417 * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
1418 * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
1420 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
1421 maybe_fold_offset_to_component_ref): Likewise.
1422 * tree-ssa-dom.c (thread_across_edge,
1423 simplify_rhs_and_lookup_avail_expr,
1424 find_equivalent_equality_comparison, record_equivalences_from_stmt):
1426 * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
1427 * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
1428 lower_try_finally_switch): Likewise.
1429 * tree-if-conv.c (add_to_dst_predicate_list,
1430 replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
1431 * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
1432 voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
1433 gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
1434 gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
1435 shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
1436 gimplify_init_ctor_eval, gimplify_init_constructor,
1437 gimplify_variable_sized_compare, gimplify_boolean_expr,
1438 gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
1439 gimplify_expr, gimplify_body, gimplify_function_tree,
1440 force_gimple_operand): Likewise.
1441 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
1442 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
1443 mx_register_decls): Likewise.
1444 * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
1445 get_frame_field, finalize_nesting_tree_1): Likewise.
1446 * tree-inline.c (setup_one_parameter): Likewise.
1447 * tree-vect-transform.c (vectorizable_condition): Likewise.
1448 * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
1450 * tree-profile.c (tree_gen_edge_profiler): Likewise.
1451 * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
1452 * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
1453 * tree-chrec.h (build_polynomial_chrec): Likewise.
1455 2005-12-02 Richard Guenther <rguenther@suse.de>
1457 * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
1458 alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
1459 * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
1460 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1461 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1462 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1463 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1465 * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
1466 sh_adjust_unroll_max): Likewise.
1467 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1468 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1469 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
1471 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1473 * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
1476 2005-12-02 Richard Guenther <rguenther@suse.de>
1478 * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
1479 simplify_cond_using_ranges): Use buildN instead of build.
1480 * tree-tailcall.c (adjust_accumulator_values,
1481 adjust_return_value): Likewise.
1482 * tree-sra.c (generate_one_element_ref, generate_copy_inout,
1483 generate_element_copy, generate_element_zero,
1484 generate_one_element_init): Likewise.
1485 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
1486 * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
1487 lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
1488 perfect_nestify): Likewise.
1490 2005-12-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1492 * pa.c (pa_secondary_reload): Revise initialization of variable regno.
1494 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
1496 * ggc.h (GGC_RESIZEVEC): New.
1498 2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1500 * gcc.c (execute): Improve readability.
1502 2005-12-02 Richard Guenther <rguenther@suse.de>
1504 * tree-cfg.c (mark_used_vars): New function.
1505 (dump_function_to_file): Dump only used VAR_DECLs.
1507 2005-12-02 Richard Guenther <rguenther@suse.de>
1509 * convert.c (convert_to_integer): Fix compare for nonpositive
1510 constant to use tree_int_cst_sgn <= 0.
1512 2005-12-02 Richard Guenther <rguenther@suse.de>
1514 * convert.c (convert_to_integer): Use fold_convert instead
1515 of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0
1516 instead of comparing against 0. Use build_int_cst instead
1517 of converting integer_zero_node.
1519 2005-12-02 Richard Guenther <rguenther@suse.de>
1521 * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
1524 2005-12-02 Alan Modra <amodra@bigpond.net.au>
1527 * combine.c (simplify_logical <IOR>): Simplify more patterns to
1530 2005-12-02 Alan Modra <amodra@bigpond.net.au>
1533 * function.c (expand_function_end): Emit blockage for unwinder
1536 2005-12-01 Roger Sayle <roger@eyesopen.com>
1538 * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
1539 constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
1540 * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
1541 integer constant comparisons.
1543 2005-12-02 Jon Grimm <jgrimm2@us.ibm.com>
1544 Janis Johnson <janis187@us.ibm.com>
1545 David Edelsohn <dje@watson.ibm.com>
1546 Ben Elliston <bje@au.ibm.com>
1548 * dfp.h, dfp.c: New files.
1549 * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
1550 (DECNUM_H): Likewise.
1551 (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
1552 (INCLUDES): Append $(DECNUMINC).
1553 (OBJS-common): Add dfp.o.
1555 * real.h (EXP_BITS): Pinch one bit to ..
1556 (struct real_value): Add decimal field.
1557 (real_format): Change table size, update documentation.
1558 (REAL_MODE_FORMAT): Update for to handle float, decimal float.
1559 (real_from_string3): Declare.
1560 (decimal_single_format): Declare.
1561 (decimal_double_format): Declare.
1562 (decimal_quad_format): Declare.
1563 (REAL_VALUE_TO_TARGET_DECIMAL32): New.
1564 (REAL_VALUE_TO_TARGET_DECIMAL64): New.
1565 (REAL_VALUE_TO_TARGET_DECIMAL128): New.
1566 * real.c: Include dfp.h.
1567 (normalize): Early return for decimal floats.
1568 (do_add): Zero decimal field.
1569 (do_compare): Call do_decimal_compare for decimal floats.
1570 (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
1571 (real_arithmetic): Call decimal_real_arithmetic for decimal
1572 floating point operands.
1573 (real_identical): If a and b are of differing radix, return false.
1574 (real_to_integer): Call decimal_real_to_integer if the value is a
1576 (real_to_integer2): Likewise, call decimal_real_to_integer2.
1577 (real_to_decimal): Likewise, call decimal_real_to_decimal.
1578 (real_to_hexadecimal): Place "N/A" in the return string for
1580 (real_from_string3): New variant, given a mode.
1581 (real_maxval): Use decimal_real_maxval for decimal floats.
1582 (round_for_format): Use decimal_round_for_format for decimals.
1583 (real_convert): Use decimal_real_convert where appropriate.
1584 (significand_size): Handle base 10.
1585 (encode_decimal_single, decode_decimal_single,
1586 encode_decimal_double, decode_decimal_double, encode_decimal_quad,
1587 decode_decimal_quad): New functions.
1588 (decimal_single_format): New.
1589 (decimal_double_format): New.
1590 (decimal_quad_format): New.
1591 * machmode.def: Add SD, DD and TD decimal floating point modes.
1592 * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
1593 Include MODE_DECIMAL_FLOAT.
1594 (DECIMAL_FLOAT_MODE_P): New.
1595 * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
1596 * genmodes.c (struct mode_data): Add counter field.
1597 (struct mode_data): Update comment for format.
1598 (blank_mode): Initialise counter field.
1599 (new_mode): Increment counter field for each mode defined.
1600 (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
1602 (make_complex_modes): Handle modes containing `D'.
1603 (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
1604 (make_decimal_float_mode): New.
1605 (reset_float_format): Handle MODE_DECIMAL_FLOAT.
1606 (cmp_modes): Compare counter field if other characteristics
1608 (emit_real_format_for_mode): Support formats for decimal floats.
1609 * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
1610 Document MODE_DECIMAL_FLOAT.
1612 2005-12-02 Alan Modra <amodra@bigpond.net.au>
1614 * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
1617 2005-12-01 Richard Henderson <rth@redhat.com>
1619 * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
1621 2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1623 * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
1625 * config/pa/pa.c (pa_init_builtins): If we detect
1626 DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
1629 2005-12-01 Richard Guenther <rguenther@suse.de>
1631 * fold-const.c (fold_binary): Use fold_build2, not
1634 2005-12-01 Nathan Sidwell <nathan@codesourcery.com>
1636 * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
1638 * vec.h (VEC_block_remove): New.
1640 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
1643 * c-common.c (lvalue_error): Fix wording.
1645 2005-12-01 Richard Guenther <rguenther@suse.de>
1647 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
1648 thinko in last patch.
1650 2005-12-01 Geoffrey Keating <geoffk@apple.com>
1652 * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
1653 than -flat_namespace.
1655 2005-12-01 Ben Elliston <bje@au.ibm.com>
1657 * mklibgcc.in: Parameterise the script to build soft float
1658 functions by iterating over each type, rather than cloning the
1661 2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1664 * builtins.c (fold_builtin_fputs): Defer check for missing
1665 replacement functions.
1667 2005-11-30 Kean Johnston <jkj@sco.com>
1669 * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
1670 simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
1672 2005-11-30 Richard Guenther <rguenther@suse.de>
1674 PR tree-optimization/22501
1675 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
1676 function split out from ...
1677 (forward_propagate_addr_expr): ... here. Use it to propagate
1678 ADDR_EXPRs to all uses.
1680 2005-11-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1682 * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
1683 * builtins.c (expand_builtin_mathfn): Use them.
1684 (expand_builtin_mathfn_2): Likewise.
1685 (expand_builtin_mathfn_3): Likewise.
1686 (expand_builtin_int_roundingfn): Likewise.
1687 (expand_builtin): Likewise.
1688 (integer_valued_real_p): Likewise.
1689 (fold_builtin_int_roundingfn): Likewise.
1690 (fold_builtin_bitop): Likewise.
1691 (fold_builtin_logarithm): Likewise.
1692 (fold_builtin_1): Likewise.
1693 * convert.c (convert_to_integer): Likewise.
1694 * fold-const.c (negate_mathfn_p): Likewise.
1695 (tree_expr_nonnegative_p): Likewise.
1697 2005-11-30 Dale Johannesen <dalej@apple.com>
1698 Andrew Pinski <pinskia@physics.uc.edu>
1700 * combine.c (find_split_point): Sign extend bitmask
1701 when changing bitfield assignment to IOR of AND.
1703 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
1705 * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
1706 clobber to scratch reg.
1707 (*decrement_and_branch_until_zero_no_clobber): Remove.
1708 (decrement_and_branch peephole): Add dummy scratch reg to pattern.
1709 (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
1710 * config/ms1/ms1.opt (mmul): Remove.
1711 * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
1712 (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
1714 2005-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1715 Bernd Schmidt <bernd.schmidt@analog.com>
1717 * pa/predicates.md (symbolic_operand): Add comment.
1718 * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
1719 * pa/pa-protos.h (pa_secondary_reload_class): Delete.
1720 * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
1721 (pa_secondary_reload_class): Delete.
1722 (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
1723 and pa_secondary_reload_class. Reorder some checks. Update inline
1724 copy of symbolic operand.
1725 * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
1727 2005-11-30 Nathan Sidwell <nathan@codesourcery.com>
1729 * loop-doloop.c (add_test): Only add jump notes if we did emit a
1732 2005-11-30 Jeff Law <law@redhat.com>
1734 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
1735 handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1737 2005-11-30 Jakub Jelinek <jakub@redhat.com>
1739 * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
1740 Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
1741 (ia64_expand_move): Adjust caller.
1743 * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
1744 fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
1747 2005-11-30 Paolo Bonzini <bonzini@gnu.org>
1749 * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
1750 Always produce an output if we can remove NEGs or canonicalize
1751 (minus (minus ...)) expressions. Provide a fast path for the
1753 (simplify_gen_binary): Do not call simplify_plus_minus.
1754 (simplify_binary_operation_1): Reassociate at the end of the
1757 2005-11-29 Evan Cheng <evan.cheng@apple.com>
1759 * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
1760 moves and unpack to speed up.
1762 2005-11-29 David S. Miller <davem@sunset.davemloft.net>
1764 * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
1765 argument, they are always sparc_compare_op0 and sparc_compare_op1.
1766 (gen_v9_scc): Update callers.
1767 * config/sparc/sparc.md: Likewise.
1768 * config/sparc/sparc-protos.h: Update extern declaration.
1770 * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
1772 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
1774 * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
1777 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu>
1779 * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
1780 (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
1781 (negate_expr): Here.
1783 2005-11-29 Ben Elliston <bje@au.ibm.com>
1785 * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
1786 Fix typo in comment.
1788 2005-11-29 Ben Elliston <bje@au.ibm.com>
1790 * Makefile.in (clean-target): Depend on clean-target-libgcc.
1791 (clean-target-libgcc): Import rule from the top-level Makefile.in.
1793 2005-11-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1797 * builtins.c (init_target_chars): New.
1798 (expand_builtin_printf, expand_builtin_fprintf,
1799 expand_builtin_sprintf, fold_builtin_sprintf,
1800 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
1801 fold_builtin_snprintf_chk, fold_builtin_printf,
1802 fold_builtin_fprintf): Check for matching format strings using
1805 2005-11-29 Paul Brook <paul@codesourcery.com>
1807 * config.gcc: Do not use fixproto on m68k-elf.
1809 2005-11-28 Roger Sayle <roger@eyesopen.com>
1811 * expmed.c (div_cost): Replace with...
1812 (sdiv_cost, udiv_cost): New.
1813 (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
1814 Rename the div and mod fields, used to initialize sdiv_pow2_cheap
1815 and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
1816 (expand_divmod): Replace use of div_cost with either sdiv_cost
1817 or udiv_cost depending upon the signedness of the operation.
1819 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
1822 * config/darwin.c (machopic_indirection_name,
1823 machopic_output_indirection): Follow transparent alias chain.
1825 2005-11-28 Alexandre Oliva <aoliva@redhat.com>
1827 * varasm.c (ultimate_transparent_alias_target): Add comment.
1829 2005-11-28 Kazu Hirata <kazu@codesourcery.com>
1831 * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
1832 SET_SRC instead of XEXP where appropriate.
1834 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
1836 * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
1839 2005-11-28 Joseph S. Myers <joseph@codesourcery.com>
1841 * config/fp-bit.h (LSHIFT): Take shift count parameter.
1842 * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
1845 2005-11-28 Bernd Schmidt <bernd.schmidt@analog.com>
1847 * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
1848 secondary_input_reload_class, made static. Adapt to new
1850 (secondary_output_reload_class): Delete.
1851 (TARGET_SECONDARY_RELOAD): New macro.
1852 * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
1853 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
1855 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
1858 * c-decl.c (finish_struct): Only set DECL_PACKED on a field
1859 when its natural alignment is > BITS_PER_UNIT.
1860 * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
1861 * c-common.c (handle_packed_attribute): Ignore packing on a field
1862 whose type is naturally char aligned.
1864 2005-11-28 Richard Guenther <rguenther@suse.de>
1866 * c-common.c (strict_aliasing_warning): Handle all
1867 component-ref like accesses.
1869 2005-11-28 Roger Sayle <roger@eyesopen.com>
1870 Uros Bizjak <uros@kss-loka.si>
1873 * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
1874 sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
1875 when flag_unsafe_math_optimizations is set and
1876 we don't care about NaNs or Infinities.
1878 Move x/expN(y) and x/pow(y,z) transformation into common
1879 flag_unsafe_math_optimizations section.
1881 2005-11-27 Mark Mitchell <mark@codesourcery.com>
1883 * gcc.c (main): Change type of argv to "char **".
1885 2005-11-28 Alan Modra <amodra@bigpond.net.au>
1887 * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
1888 small data sections.
1889 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
1890 * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
1891 * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
1892 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
1893 output locals to sbss if !rs6000_elf_in_small_data_p.
1894 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
1896 2005-11-28 Alan Modra <amodra@bigpond.net.au>
1899 * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
1900 generated by reload.
1901 * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
1902 indexed_or_indirect_address.
1903 (indexed_or_indirect_address): Don't test for base reg. Call
1904 address_operand last. Make it a special predicate.
1906 2005-11-27 Kazu Hirata <kazu@codesourcery.com>
1908 * config/m68k/m68k.c (notice_update_cc): Remove useless code.
1910 2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
1913 * fold-const.c (negate_expr_p): Add case for signed divides if overflow
1915 (negate_expr): Likewise.
1917 2005-11-27 Andreas Schwab <schwab@suse.de>
1919 * config/m68k/m68k.c: Reindent and fix whitespace, remove
1922 2005-11-27 Steven Bosscher <stevenb@suse.de>
1924 * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
1925 has EH predecessor edges.
1927 2005-11-26 Eric Christopher <echristo@apple.com>
1929 * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
1930 register stalls by zero extending to the full register.
1932 2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
1934 * config/floatunsisf.c, config/floatunsidf.c,
1935 config/floatunsixf.c, config/floatunsitf.c: New files.
1936 * config/ia64/t-hpux: Add floatunsitf.c.
1937 * config/ia64/ia64.c (ia64_init_libfuncs): Use
1938 _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
1940 2005-11-26 Richard Henderson <rth@redhat.com>
1942 * c-lex.c (pragma_lex): Rename from c_lex.
1943 * c-pch.c: Update for pragma_lex rename.
1944 * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
1945 * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
1946 * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
1947 * config/sol2-c.c, config/v850/v850-c.c: Likewise.
1948 * doc/tm.texi: Likewise.
1950 2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
1953 * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
1954 when overflow is undefined.
1956 2005-11-26 Hans-Peter Nilsson <hp@axis.com>
1958 * doc/md.texi (Insn Canonicalizations): Refer to the
1959 function commutative_operand_precedence for further rules.
1961 2005-11-25 Roger Sayle <roger@eyesopen.com>
1964 * expmed.c (choose_mult_variant): Return immediately when mult_cost
1965 is less than zero. Limit mult_cost to a reasonable upper bound for
1966 the synthetic multiplication sequence.
1968 2005-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1971 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1972 fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
1973 Lookup the explicit replacement functions for any unlocked
1974 stdio builtin transformations.
1976 2005-11-25 Hans-Peter Nilsson <hp@axis.com>
1978 * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
1980 * targhooks.c (default_secondary_reload): Don't require operand 2
1981 for an input reload to be earlyclobber.
1983 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1985 * fold-const.c (negate_mathfn_p): Fix comment and add support
1986 for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
1989 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
1992 * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
1993 _Q_ulltoq for unsigned conversions from SImode and DImode to
1996 2005-11-25 Alan Modra <amodra@bigpond.net.au>
1998 * config/rs6000/ppc64-fp.c (__floatunditf): New function.
1999 (__floatundidf, __floatundisf): Likewise.
2001 2005-11-25 David Edelsohn <edelsohn@gnu.org>
2003 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
2004 (rs6000_override_options): Remove initialization of
2005 rs6000_sr_alias_set.
2006 (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
2007 (rs6000_emit_stack_tie): Same.
2008 (emit_frame_save): Same.
2009 (gen_frame_mem_offset): Same.
2010 (rs6000_emit_prologue): Same.
2011 (rs6000_emit_epilogue): Same.
2013 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
2016 * fold-const.c (fold_build): Convert bool_var != 1 and
2017 bool_var == 0 to !bool_var.
2019 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
2022 * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
2023 for C being INTEGER_CST. Likewise for !=.
2025 2005-11-25 Joseph S. Myers <joseph@codesourcery.com>
2028 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
2029 unsigned conversions from SImode to TFmode.
2031 2005-11-24 Bernd Schmidt <bernd.schmidt@analog.com>
2033 * expr.c (expand_expr_real_1): Fix error in last change.
2035 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
2037 * caller-save.c: (this_insn_sets): Move into:
2038 (save_call_clobbered_regs).
2039 (mark_set_regs): Get this_insn_sets from data.
2041 (save_call_clobbered_regs): Take sets of the return value by
2042 sibcalls into account.
2044 2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
2047 * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
2048 SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
2049 (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
2050 (memory_move_secondary_cost, init_reg_autoinc): Remove
2051 SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
2052 Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
2053 secondary_reload_class call.
2054 (copy_cost): Likewise. Add new parameter prev_sri. Changed all
2056 * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
2057 (push_secondary_reload): Use secondary_reload target hook.
2058 (secondary_reload_class, scratch_reload_class): New functions.
2059 (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
2060 SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
2061 SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
2062 * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
2063 (secondary_reload_class, scratch_reload_class): Declare.
2064 * reload1.c: Include target.h.
2065 (reload_adjust_reg_for_temp): New function.
2066 (reload_adjust_reg_for_icode): Likewise.
2067 (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
2068 Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
2070 (emit_input_reload_insns): Likewise. Rewrite secondary reload checks
2071 for inheritance. Support case when both secondary & tertiary reloads
2072 are for intermediate registers.
2073 (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
2074 with secondary_reload_class call. Support case when both secondary
2075 & tertiary reloads are for intermediate registers.
2076 * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
2077 (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
2078 * target.h (secondary_reload_info): New struct / typedef.
2079 (struct gcc_target): New member secondary_reload.
2080 * targhooks.c Include reload.h, optabs.h and recog.h.
2081 (default_secondary_reload): New function.
2082 * targhooks.h (default_secondary_reload): Declare.
2083 * doc/tm.texi: Document secondary_reload target hook. Update
2084 description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
2085 * doc/md.texi: Likewise.
2087 * sh-protos.h (sh_secondary_reload): Declare.
2088 * sh.c (TARGET_SECONDARY_RELOAD): Override.
2089 (sh_secondary_reload): New function.
2090 * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
2091 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2092 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2093 (HAVE_SECONDARY_RELOADS): Define.
2094 * sh.md (reload_indf): Rename to:
2096 (reload_outdf): Rename to:
2097 (reload_outdf__RnFRm).
2098 (reload_insf): Rename to:
2100 (reload_insi): Rename to:
2101 (reload_insi__i_fpul).
2103 2005-11-24 Uros Bizjak <uros@kss-loka.si>
2105 * configure.ac: Require at least texinfo 4.4.
2106 * configure: Regenerate.
2108 * doc/install.texi (Tools/packages necessary for building GCC):
2109 Update required version of texinfo to at least 4.4.
2110 (Installing GCC: Building): Update required version of texinfo
2112 (Installing GCC: Final installation): Update required version
2113 of texi2dvi to at least 4.4.
2114 (Host/target specific installation notes for GCC): Update required
2115 version of texinfo to at least 4.4.
2117 2005-11-24 Richard Guenther <rguenther@suse.de>
2118 Dirk Mueller <dmueller@suse.de>
2121 * c-common.h (strict_aliasing_warning): Declare.
2122 * c-common.c (strict_aliasing_warning): New function,
2124 * c-typeck.c (build_c_cast): ... here.
2126 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
2128 * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2130 (swap_commutative_operands_with_target): New.
2132 2005-11-24 Paolo Bonzini <bonzini@gnu.org>
2134 * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
2135 also when doing PRE, rather than only for global CPROP.
2137 2005-11-24 Ben Elliston <bje@au.ibm.com>
2139 * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
2140 * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
2142 (expand_twoval_unop): Likewise.
2143 (widen_clz): Likewise.
2144 (expand_parity): Likewise.
2145 (expand_unop): Likewise.
2146 (emit_cmp_and_jmp_insn_1): Likewise.
2147 (prepare_float_lib_cmp): Likewise.
2149 2005-11-24 Ben Elliston <bje@au.ibm.com>
2151 * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
2152 Remove unused `class' variable.
2154 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2157 * c-typeck.c (build_array_ref): Avoid code duplicate. Use common
2158 C/C++ diagnostic function warn_array_subscript_with_type_char.
2159 * c-common.h (warn_array_subscript_with_type_char): Declare.
2160 * c-common.c (warn_array_subscript_with_type_char): Define.
2162 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2165 * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
2166 compiling at the intersection of C and C++.
2168 2005-11-23 Mark Mitchell <mark@codesourcery.com>
2170 * doc/invoke.texi: For man pages, include gcc-vers.texi.
2171 List @file in the option summary. Include the libiberty
2172 documentation for @file.
2173 * gcc.c (main): Call expandargv.
2174 * Makefile.in (gcc-vers.texi): Define srcdir.
2176 2005-11-23 Diego Novillo <dnovillo@redhat.com>
2178 * passes.c (init_optimization_passes): Document
2179 sequencing of passes.
2181 2005-11-23 Kazu Hirata <kazu@codesourcery.com>
2183 * config/m68k/predicates.md (pcrel_address, extend_operator,
2184 post_inc_operand, pre_dec_operand): Remove redundant
2186 (const_uint32_operand, const_sint32_operand): Use gcc_assert
2188 (valid_dbcc_comparison_p): Rewrite in the lisp style.
2190 2005-11-23 Ben Elliston <bje@au.ibm.com>
2192 * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
2194 2005-11-22 J"orn Rennecke <joern.rennecke@st.com>
2196 Preparatory work for PR target/21623:
2197 * alpha.c (secondary_reload_class): Rename to:
2198 (alpha_secondary_reload_class).
2199 * alpha.h, alpha-protos.h: Likewise.
2200 * mn10300.c (secondary_reload_class): Rename to:
2201 (mn10300_secondary_reload_class).
2202 * mn10300.h, mn10300-protos.h: Likewise.
2203 * pa.c (secondary_reload_class): Rename to:
2204 (pa_secondary_reload_class).
2205 * pa.h, pa-protos.h: Likewise.
2206 * rs6000.c (secondary_reload_class): Rename to:
2207 rs6000_secondary_reload_class.
2208 * rs6000.h, rs6000-protos.h: Likewise.
2210 2005-11-22 Eric Botcazou <ebotcazou@adacore.com>
2213 * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
2215 2005-11-22 Ian Lance Taylor <ian@airs.com>
2217 * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
2219 (prepare_cmp_insn): Likewise.
2221 2005-11-22 Kazu Hirata <kazu@codesourcery.com>
2224 * m68k.md (zero_extendsidi2): Force operands[1] to a register
2225 if both operands[0] and operands[1] are memory.
2227 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
2230 * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
2231 COMPARISON_CLASS_P and an integral types create create a new
2232 expression with the new type and fold that.
2234 2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
2237 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
2238 to SUBTARGET_OS_CPP_BUILTINS.
2240 2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com>
2242 * arm.c (emit_set_insn): New function.
2243 (arm_split_constant): Call it.
2244 (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
2245 (arm_legitimize_address): Likewise. Use plus_constant.
2246 (arm_expand_prologue): Likewise. Use VOIDmode in SET.
2247 (thumb_expand_prologue): Likewise.
2248 (arm_gen_load_multiple): Use VOIDmode in SET.
2249 (arm_gen_store_multiple): Likewise.
2250 (vfp_emit_fstmx): Likewise. Use plus_constant.
2251 (emit_multi_reg_push): Likewise.
2252 (emit_sfm): Use plus_constant.
2254 2005-11-23 Alan Modra <amodra@bigpond.net.au>
2257 * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
2260 2005-11-22 Alan Modra <amodra@bigpond.net.au>
2263 * expmed.c (store_bit_field): Don't attempt to insv a field
2264 larger than the reg.
2266 2005-11-22 Alan Modra <amodra@bigpond.net.au>
2269 * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
2270 explicit sign extension, not a (char) cast.
2272 2005-11-22 Ben Elliston <bje@au.ibm.com>
2274 * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
2275 GET_MODE_CLASS (x) == MODE_FLOAT.
2276 * config/i386/i386.c: Likewise.
2277 * config/rs6000/xcoff.h: Likewise.
2278 * config/rs6000/linux64.h: Likewise.
2279 * config/rs6000/rs6000.c: Likewise.
2280 * config/rs6000/rs6000.h: Likewise.
2281 * config/rs6000/predicates.md: Likewise.
2282 * config/rs6000/sysv4.h: Likewise.
2284 2005-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2286 * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
2289 * config/alpha/freebsd.h, config/alpha/linux.h,
2290 config/arm/linux-elf.h, config/bfin/bfin.h,
2291 config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
2292 config/i386/beos-elf.h, config/i386/gnu.h,
2293 config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
2294 config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
2295 config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
2296 config/rs6000/linux64.h, config/rs6000/sysv4.h,
2297 config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
2298 config/sh/linux.h, config/sh/sh.h, config/sol2.h,
2299 config/sparc/linux.h, config/sparc/linux64.h,
2300 config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
2302 * doc/invoke.texi: Document that the macros __pic__ and __PIC__
2303 are both defined when either flag -fpic or -fPIC are used.
2305 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
2307 * config/fp-bit.c (clzusi): New function.
2308 (si_to_float, usi_to_float): Use it to compute proper shift.
2309 (usi_to_float): Preserve guard bits when shifting right.
2310 * libgcc-std.ver (GCC_4.2.0): New version.
2311 * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
2312 __floatundisf): New functions.
2313 * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
2314 __floatundisf): Declare.
2315 * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
2316 _floatundixf, and _floatunditf.
2317 * optabs.c (expand_float): If target does not define a pattern for
2318 signed or unsigned conversion, use an unsigned libcall instead of
2320 (init_optabs): Initialize ufloat_optab.
2322 2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
2324 * config/rs6000/rs6000.opt (mmulhw): New option.
2325 * doc/invoke.texi (-mmulhw): Document.
2326 * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
2328 * config/rs6000/rs6000.md: Add half-word multiply and
2329 multiply-accumulate instructions for 405 and 440.
2331 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
2333 * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
2334 which matches behavior of gcc 4.0 and older for RTEMS targets. The
2335 default now includes a linker group which makes the RTEMS one nest.
2337 2005-11-22 Ben Elliston <bje@au.ibm.com>
2339 * cse.c (fold_rtx): Typo fix.
2340 (find_comparison_args): Pass the mode of arg1, not arg1 itself.
2342 2005-11-21 Richard Henderson <rth@redhat.com>
2344 * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
2345 langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
2347 * c-tree.h (lookup_name): Move declaration ...
2348 * c-common.h (lookup_name): ... here.
2349 * config/darwin-c.c: Include c-common.h.
2350 * config/t-darwin: Update dependencies.
2352 2005-11-22 Ben Elliston <bje@au.ibm.com>
2354 * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
2355 explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
2356 * genopinit.c (gen_insn): Likewise.
2357 * reload.c (find_equiv_reg): Likewise.
2358 * loop.c (load_mems): Likewise.
2359 * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
2360 * cse.c (find_comparison_args, fold_rtx): Likewise.
2361 * dwarf2out.c (add_const_value_attribute): Likewise.
2362 * expr.c (convert_move): Likewise.
2363 * recog.c (general_operand, register_operand): Likewise.
2364 * reg-stack.c (replace_reg): Likewise.
2365 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
2366 * c-common.c (handle_vector_size_attribute): Likewise.
2367 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2368 (simplify_binary_operation_1): Likewise.
2369 (simplify_const_binary_operation): Likewise.
2370 (simplify_relational_operation): Likewise.
2371 (simplify_const_relational_operation): Likewise.
2372 (simplify_immed_subreg): Likewise.
2373 * emit-rtl.c (gen_lowpart_common): Likewise.
2374 * expmed.c (expand_mult): Likewise.
2375 * stor-layout.c (layout_type): Likewise.
2377 2005-11-21 Paolo Bonzini <bonzini@gnu.org>
2380 * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
2381 cst2 only for SPE vectors.
2383 2005-11-21 David Edelsohn <edelsohn@gnu.org>
2386 * config/rs6000/predicates.md (vrsave_operation): Check
2387 UNSPEC_VOLATILE value.
2389 2005-11-21 Jan Hubicka <jh@suse.cz>
2391 PR tree-optimization/24653
2392 * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
2394 2005-11-21 Uros Bizjak <uros@kss-loka.si>
2396 * config/i386/predicates.md (ax_reg_operand): New predicate.
2397 (memory_displacement_only_operand): New predicate.
2398 * config/i386/i386.md ("modrm" attribute): Return 0 if one
2399 operand is AX register and the other operand is memory operand
2400 with displacement only.
2402 2005-11-21 Uros Bizjak <uros@kss-loka.si>
2404 * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
2405 if we don't care about NaNs or Infinities.
2407 2005-11-20 Ian Lance Taylor <ian@airs.com>
2409 PR rtl-optimization/24883
2410 * combine.c (combinable_i3pat): When checking whether the
2411 destination of i3 is used in i3, consider paradoxical subregs.
2413 2005-11-21 Kazu Hirata <kazu@codesourcery.com>
2416 * cse.c (cse_insn): Reject invalid forms of CONST earlier.
2418 2005-11-20 Joseph S. Myers <joseph@codesourcery.com>
2420 * combine.c (try_combine): Do not run subst on i1src and i2src in
2421 the case of generating a PARALLEL for a comparison.
2423 2005-11-20 Richard Henderson <rth@redhat.com>
2426 * tree-sra.c (struct sra_elt): Add all_no_warning.
2427 (struct sra_walk_fns) <use>: Add use_all argument.
2428 (sra_walk_expr): Pass it.
2429 (sra_walk_modify_expr): Likewise.
2430 (scalarize_ldst): Likewise.
2431 (scan_use): Update for new argument.
2432 (mark_no_warning): New.
2433 (scalarize_use): Use it.
2435 2005-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
2437 * expr.c (expand_expr_real): Use usmul_optab for widening
2438 signed * unsigned multiplies.
2439 * genopinit.c (optabs): Add usmul_widen_optab.
2440 * optabs.c (init_optabs): Likewise.
2441 * optabs.h (enum optab_index): Add OTI_usmul_widen.
2442 (usmul_widen_optab): Define.
2443 * config/bfin/bfin.md (usmulhisi3): New pattern.
2445 * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
2447 2005-11-20 Graham Stott <btinternet.com>
2449 * gensupport.c (std_preds): Fixed extraneous `false` in last change.
2451 2005-11-20 Andreas Schwab <schwab@suse.de>
2454 * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
2457 2005-11-19 Richard Henderson <rth@redhat.com>
2460 * tree-gimple.c (is_gimple_id): Export.
2461 * tree-gimple.h (is_gimple_id): Declare.
2462 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
2463 (get_default_value): Use it.
2464 (maybe_fold_stmt_indirect): Likewise.
2466 2005-11-19 James A. Morrison <phython@gcc.gnu.org>
2468 * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
2469 than VR1 or vice-versa.
2471 2005-11-19 Hans-Peter Nilsson <hp@axis.com>
2475 * reload.c (find_reloads_address_1): Mention dependency on
2477 * reload1.c (gen_reload): For IN with an unary operation, try
2478 moving inner expression to OUT if trivial SET is not valid.
2479 Confirm that the result is valid. Move common code block into...
2480 (emit_insn_if_valid_for_reload): New function.
2482 2005-11-19 Richard Guenther <rguenther@suse.de>
2484 * fold-const.c (fold_indirect_ref_1): Make sure we fold
2485 ARRAY_REFs of constant strings.
2487 2005-11-19 Jakub Jelinek <jakub@redhat.com>
2489 * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
2490 fatal format string.
2492 2005-11-19 Joseph S. Myers <joseph@codesourcery.com>
2494 * combine.c (make_compound_operation): Swap operands of
2495 commutative operation if necessary before returning.
2497 2005-11-19 Richard Guenther <rguenther@suse.de>
2500 * fold-const.c (fold_plusminus_mult_expr): New function.
2501 (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
2502 cases, remove now unnecessary code.
2504 2005-11-19 Paolo Bonzini <bonzini@gcc.gnu.org>
2506 * gensupport.c (old_preds): Rename to std_preds, add special field.
2507 (struct old_pred_table): Rename to struct std_pred_table, add special
2509 (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
2510 (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
2511 (init_predicate_table): Adjust, and set along the way whether a
2512 predicate is special.
2514 2005-11-18 Mark Mitchell <mark@codesourcery.com>
2516 * BASE-VER: Change to 4.2.0.
2518 2005-11-18 James E Wilson <wilson@specifix.com>
2520 * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
2523 2005-11-18 Mike Stump <mrs@apple.com>
2525 * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
2526 * config/darwin-c.c (darwin_pragma_unused): Likewise.
2527 * c-decl.c (lookup_name_two) Remove.
2528 * c-tree.h (lookup_name_two): Remove.
2529 * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
2530 * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
2531 (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
2532 * langhooks.h (lang_hooks_for_decls): Add lookup_name.
2534 2005-11-18 Richard Earnshaw <richard.earnshaw@arm.com>
2537 * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
2538 when not generating code to use that co-processor.
2540 2005-11-18 James A. Morrison <phython@gcc.gnu.org>
2542 * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
2543 add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
2544 these functions are now in tree-phinodes.c.
2546 2005-11-18 Jie Zhang <jie.zhang@analog.com>
2548 * config/bfin/bfin.md (trap): New pattern.
2550 2005-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2552 * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
2555 * expr.c (expand_expr_real): Don't call record_block_change unless
2556 ib_boundaries_block is non-null
2558 * postreload.c (reload_cse_move2add): Don't try to work with BImode.
2560 * fold-const.c (build_range_check): Use proper type for subtraction
2561 when merging lower bound.
2563 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
2565 PR rtl-optimization/24497
2566 * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
2569 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz>
2571 * tree-scalar-evolution.c (expression_expensive_p): New function.
2572 (scev_const_prop): Use compute_overall_effect_of_inner_loop.
2574 2005-11-18 Bernd Schmidt <bernd.schmidt@analog.com>
2576 * config/bfin/crtlibid.s: New file.
2578 2005-11-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2581 * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
2582 when not using sjlj exceptions.
2583 * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
2584 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
2585 * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
2586 * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
2587 DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
2588 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
2589 * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
2590 DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
2591 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
2592 * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
2593 (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
2594 DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
2595 ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
2597 * config/pa/hpux-unwind.h: New file.
2599 2005-11-17 Alexandre Oliva <aoliva@redhat.com>
2601 * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
2602 * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
2603 * varasm.c (do_assemble_alias): Adjust call.
2604 (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
2606 * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
2608 2005-11-17 James E Wilson <wilson@specifix.com>
2610 * tree.def (FUNCTION_DECL): Correct typo in comment.
2612 2005-11-17 Richard Henderson <rth@redhat.com>
2614 * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
2615 (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
2616 and DW_CFA_def_cfa_sf.
2617 (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
2618 (dbx_reg_number): Don't assert particular registers here.
2619 (based_loc_descr): ... do it here instead. Fold in ...
2620 (eliminate_reg_to_offset): ... this function.
2621 (compute_frame_pointer_to_cfa_displacement): Fold in the effects
2622 of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
2623 * unwind-dw2.c (execute_cfa_program): Apply data align factor
2624 to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
2625 * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
2626 (instantiate_virtual_regs): Likewise.
2627 * var-tracking.c (adjust_stack_reference): Likewise.
2628 * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
2630 2005-11-17 Bernd Schmidt <bernd.schmidt@analog.com>
2632 * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
2633 * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
2634 * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
2636 ($(T)crtlibid.o): New rule.
2638 2005-11-16 Richard Guenther <rguenther@suse.de>
2641 * fold-const.c (extract_array_ref): Return byte offset
2643 (fold_binary): Fold &x[a] CMP &x[b] to
2644 a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
2647 2005-11-16 Richard Henderson <rth@redhat.com>
2650 * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
2651 parts of an SSA_NAME.
2653 2005-11-16 Richard Earnshaw <richard.earnshaw@arm.com>
2656 * arm.md (split for movsf with immediate): Restrict split to insns
2657 that set a general register.
2659 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
2661 * config/ia64/unwind-ia64.c (uw_advance_context): New. Call
2663 * unwind-dw2.c (uw_advance_context): Likewise.
2664 * unwind-sjlj.c (uw_advance_context): Likewise. Also call
2665 _Unwind_SjLj_Unregister.
2666 * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
2668 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
2670 * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
2672 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
2674 * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
2675 langhook to get a DImode integer type.
2677 2005-11-16 Richard Henderson <rth@redhat.com>
2678 J"orn Rennecke <joern.rennecke@st.com>
2679 Ulrich Weigand <uweigand@de.ibm.com>
2683 * reload1.c (reg_equiv_invariant): New.
2684 (reload): Allocate, initialize, and free it.
2685 (calculate_needs_all_insns): Check it when skipping equivalence
2687 (alter_reg): Likewise.
2688 (eliminate_regs_1): Rename from eliminate_regs. Add new
2689 may_use_invariant argument; only use reg_equiv_invariant when true.
2690 (eliminate_regs): New.
2691 (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
2692 a context for which may_use_invariant may be true.
2694 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
2696 * fold-const.c (const_binop): Don't constant fold the operation
2697 if the result has overflowed and flag_trapping_math.
2698 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2700 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com>
2702 * config/arm/unwind-arm.c (abort): Add prototype here.
2703 (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
2704 (struct phase1_vrs): Add prev_sp.
2705 (unwind_phase2_forced): Save the original core registers instead of
2706 modifying entry_vrs. Take a new flag argument for resuming unwinding
2707 and set action flags accordingly. Always set _US_END_OF_STACK when
2708 get_eit_entry fails. Unwind before calling the stop function.
2709 (_Unwind_GetCFA): New function.
2710 (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
2711 (__gnu_Unwind_Resume_or_Rethrow): Likewise.
2712 (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
2713 just call unwind_phase2_forced.
2714 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
2715 * config/arm/unwind-arm.h (abort): Remove prototype.
2716 (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
2718 (_Unwind_GetCFA): New prototype.
2719 * config/arm/pr-support.c (abort): Add prototype here.
2720 * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
2722 * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
2723 not schedule the prologue with non-call exceptions and EABI.
2725 2005-11-16 Nathan Sidwell <nathan@codesourcery.com>
2727 * config/arm/unwind-arm.h: Reorder interface function declarations.
2728 (_URC_END_OF_STACK): New enumeration value.
2729 (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
2730 (struct _Unwind_Control_Block): Document reserved field use.
2731 (_Unwind_Stop_Fn): New typedef.
2732 (_Unwind_ForcedUnwind): Declare.
2733 (_Unwind_Resume_or_Rethrow): Declare.
2734 * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
2736 (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
2737 * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
2738 (UCB_FORCED_STOP_ARG): New.
2739 (search_EIT_table): Update boundary condition checks.
2740 (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
2741 (unwind_phase2): Replace for with do..while.
2742 (unwind_phase2_forced): New.
2743 (__gnu_Unwind_RaiseException): Replace for with do..while.
2744 (__gnu_Unwind_ForcedUnwind): New.
2745 (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
2746 Use appropriate phase2 unwinder.
2747 (__gnu_Unwind_Resume_or_Rethrow): New.
2748 (__gnu_unwind_pr_common): Cope with forced unwinding.
2750 2005-11-16 David Edelsohn <edelsohn@gnu.org>
2753 * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
2755 * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
2756 roundsf2): Remove "s" from mnemonic.
2758 2005-11-16 Bernd Schmidt <bernd.schmidt@analog.com>
2760 * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
2762 * config/bfin/crtn.s: Change epilogues to match.
2763 * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
2764 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
2765 __PIC__ and __pic__.
2767 2005-11-16 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
2770 * doc/invoke.texi: Distinguish between free and fixed form instead of
2771 Fortran and Fortran 90/95. Remove ratfor from the list of supported
2773 * gcc.c (default_compilers): Remove double entries, add entries for
2774 suffixes '.F90' and '.F95'.
2776 2005-11-16 Eric Botcazou <ebotcazou@adacore.com>
2778 * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
2779 in the stack probing loop.
2781 2005-11-15 David Edelsohn <edelsohn@gnu.org>
2783 * configure.ac: Use .machine power5 not power5x.
2784 * configure: Regenerate.
2786 2005-11-15 Mike Stump <mrs@apple.com>
2788 * c-decl.c (lookup_name_two): Add.
2789 * c-tree.h (lookup_name_two): Likewise.
2790 * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
2791 * config/darwin-c.c (darwin_pragma_unused): Likewise.
2793 2005-11-16 Alan Modra <amodra@bigpond.net.au>
2795 PR rtl-optimization/23392
2796 * regrename.c (enum scan_actions) Add mark_access.
2797 (scan_actions_name): Ditto.
2798 (scan_rtx_reg): Handle mark_access.
2799 (scan_rtx_address): Do nothing for mark_access.
2800 (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
2801 and regs in REG_INC notes before closing chains for dead regs.
2802 Mark destination regs in REG_FRAME_RELATED_EXPR notes after
2803 opening chains for new writes.
2805 2005-11-15 David Edelsohn <edelsohn@gnu.org>
2807 * c.opt (ffixed-line-length-none): New.
2809 2005-11-15 Steve Ellcey <sje@cup.hp.com>
2811 * mklibgcc.in: Change contents of eh_dummy.c.
2813 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
2815 * loop.c (scan_loop): Do not insert temporaries for hard registers.
2817 2005-11-15 Daniel Jacobowitz <dan@codesourcery.com>
2819 * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
2821 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also.
2823 2005-11-15 Jan Hubicka <jh@suse.cz>
2825 * invoke.texi (large-unit-insns): Document.
2826 * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
2827 * params.def (large-unit-insns): New param.
2829 2005-11-15 Hans-Peter Nilsson <hp@axis.com>
2832 * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
2833 special register for operand 3. Reindent constraints to align
2836 2005-11-14 David Edelsohn <edelsohn@gnu.org>
2838 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
2839 -mpopcntb, -mfprnd. Add -mcpu=power5+.
2840 * configure.ac: Add test for FP rounding instructions.
2841 * configure: Regenerate.
2842 * config.in: Regenerate.
2843 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2844 _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
2846 * config/rs6000/rs6000.opt (mfprnd): New.
2847 * config/rs6000/rs6000.c (processor_target_table): Add power5+.
2848 (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
2849 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
2850 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
2851 (TARGET_FPRND): New.
2852 * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
2854 (btrunc<mode>2): New.
2856 (floor<mode>2): New.
2857 (round<mode>2): New.
2859 2005-11-14 Geoffrey Keating <geoffk@apple.com>
2861 * gcc.c (version_compare_spec_function): Use fatal() rather than
2864 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
2865 (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
2866 * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
2868 * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
2871 * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
2872 on -mmacosx-version-min setting.
2874 2005-11-14 Diego Novillo <dnovillo@redhat.com>
2877 * tree-vrp.c (infer_value_range): Return false if STMT is a
2878 block terminator and its basic block has no successors.
2880 2005-11-14 Mike Stump <mrs@apple.com>
2882 * config/i386/i386.c (override_options): -masm=intel isn't
2883 supported on darwin.
2884 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
2886 2005-11-15 Joseph S. Myers <joseph@codesourcery.com>
2888 * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
2889 vfork after including auto-host.h.
2891 2005-11-15 Alan Modra <amodra@bigpond.net.au>
2893 PR rtl-optimization/22002
2894 * combine.c (distribute_notes): Detect cases where a reg dies
2895 two or more times in a bb, including on the insn we are combining,
2896 and place the death note on the correct range.
2898 2005-11-14 Dale Johannesen <dalej@apple.com>
2900 * expmed.c (store_bit_field): Add offset unconditionally for
2902 (extract_bit_field): Don't force extzv or extv operand into
2903 a register if field is too big.
2905 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
2907 * config/arm/arm.c (pic_labelno): New.
2908 (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
2909 LABEL_REF. Pass only the labelno to PIC insns.
2910 (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
2911 (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
2912 * arm.md (UNSPEC_PIC_LABEL): New constant.
2913 (pic_add_dot_plus_four, pic_add_dot_plus_eight)
2914 (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
2915 Use the correct label prefix.
2917 2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
2919 * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
2922 2005-11-14 Richard Earnshaw <richard.earnshaw@arm.com>
2924 * loop-invariant.c: Include tm_p.h.
2925 * Makefile.in: Updated.
2927 2005-11-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2929 * pa.c (store_reg): Revise generation of frame notes in large frames.
2930 (set_reg_plus_d): Likewise.
2932 2005-11-13 Andrew MacLeod <amacleod@redhat.com>
2934 PR tree-optimization/24709
2935 * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
2938 2005-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2940 * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
2941 and duplicate declaration of pthread_self.
2943 2005-11-13 Eric Botcazou <ebotcazou@adacore.com>
2944 Ian Lance Taylor <ian@airs.com>
2947 * calls.c (expand_call): If TARGET is a MEM and some part of the
2948 argument area has been saved, force TARGET to a register.
2950 2005-11-13 Razya Ladelsky <razya@il.ibm.com>
2952 * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
2955 2005-11-13 Jason Merrill <jason@redhat.com>
2958 * dwarf2out.c (gen_subprogram_die): Force a declaration die for
2959 lazily declared methods.
2960 (force_decl_die): Stop if forcing out the context already make a
2962 (force_type_die): Likewise.
2964 2005-11-13 Andrew Pinski <pinskia@physics.uc.edu>
2967 * builtins.c (integer_valued_real_p): Add break in
2968 REAL_CST having TREE_OVERFLOW set.
2970 2005-11-13 Zdenek Dvorak <dvorakz@suse.cz>
2972 * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
2973 addressing modes during calculation of costs.
2975 2005-11-12 Eric Botcazou <ebotcazou@adacore.com>
2977 * function.c (assign_stack_local_1): Restrict sanity check
2978 on frame size overflow to 32-bit and above platforms.
2980 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
2982 * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
2983 * config/cris/cris.c: Include reload.h.
2984 (cris_initial_elimination_offset): New function.
2985 * config/cris/cris-protos.h: (cris_initial_elimination_offset):
2988 2005-11-12 Richard Guenther <rguenther@suse.de>
2990 * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
2992 2005-11-12 Jan Hubicka <jh@suse.cz>
2994 * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
2995 to compare against 0 when possible.
2997 2005-11-12 Jie Zhang <jie.zhang@analog.com>
2999 * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
3000 HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3001 REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
3002 * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
3005 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3007 * recog.c (constrain_operands) <case 'g'>: For a match, require
3008 that a non-register matches general_operand when strict >= 0.
3010 2005-11-11 Steven Bosscher <stevenb@suse.de>
3012 * loop-invariant.c (move_loop_invariants): Fix a thinko in the
3015 2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3017 * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
3018 (memory_address_same): New.
3019 (dse_optimize_stmt): Call memory_address_same.
3021 2005-11-12 Hans-Peter Nilsson <hp@axis.com>
3024 * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
3025 ZERO_EXTEND>: New cases.
3027 2005-11-11 Daniel Jacobowitz <dan@codesourcery.com>
3029 * longlong.h (__clz_tab): Always provide.
3031 2005-11-11 Steven Bosscher <stevenb@suse.de>
3034 * loop-invariant.c (may_assign_reg_p): Make sure a hard register
3036 (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
3037 before check_maybe_invariant.
3038 (move_invariant_reg): Use gen_move_insn instead of replacing
3039 SET_DEST with the temporary for the invariant.
3040 (move_loop_invariants): If checking is enabled, do internal
3041 consistency checks after completing the pass.
3043 2005-11-11 David Edelsohn <edelsohn@gnu.org>
3046 * common.opt (Wvolatile-register-var): New.
3047 * varasm.c (make_decl_rtl): Only emit warning when option
3048 specified. Clarify warning message.
3049 * doc/invoke.texi (Wvolatile-register-var): Document new option.
3051 * doc/md.texi (copysign): Document standard named pattern.
3053 2005-11-11 Jie Zhang <jie.zhang@analog.com>
3055 * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
3056 bytes when align is 2.
3057 * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
3058 by the first instruction of the loop.
3060 2005-11-11 Jason Merrill <jason@redhat.com>
3063 * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
3066 2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
3068 PR rtl-optimization/22509
3069 * local-alloc.c (memref_used_between_p): Check whether a function call
3070 could not reference the memref.
3072 2005-11-11 Ulrich Weigand <uweigand@de.ibm.com>
3074 * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
3075 algorithm so as to choose the best, not the worst, alternative.
3076 Reset accumulated register class before processing next alternative.
3078 2005-11-11 Kaz Kojima <kkojima@gcc.gnu.org>
3081 * calls.c (expand_call): Copy a return value to a plain register
3084 2005-11-10 Alexandre Oliva <aoliva@redhat.com>
3087 * varasm.c (assemble_name): Recompute name only for transparent
3090 2005-11-10 Hans-Peter Nilsson <hp@axis.com>
3092 * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
3094 2005-11-04 Jeff Law <law@redhat.com>
3097 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
3098 perform reassociation if the parent statement will not die as
3099 a result of the optimization.
3101 2005-11-10 Daniel Berlin <dberlin@dberlin.org>
3103 * tree-ssa-alias.c (compute_may_aliases): Remove call to
3104 delete_old_heap_vars.
3105 * tree-dfa.c (referenced_var_remove): Remove function.
3106 * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
3107 (delete_tree_ssa): Remove call to delete_old_heapvars.
3108 Add call to delete_alias_heapvars.
3109 * tree-flow.h (referenced_var_remove): Remove prototype
3110 (init_alias_heapvars): New prototype.
3111 (delete_alias_heapvars): Ditto.
3112 * Makefile.in (tree-ssa-structalias.o): Add
3113 gt-tree-ssa-structalias.o
3114 (GTFILES): Add tree-ssa-structalias.h and
3115 tree-ssa-structalias.c.
3116 (s-gtype): Add gt-tree-ssa-structalias.h.
3117 * tree-ssa-structalias.c (heapvars): Remove.
3118 (oldheapvars): Remove.
3119 (heapvar_for_stmt): New variable.
3120 (heapvar_lookup): New function.
3121 (heapvar_insert): Ditto.
3122 (get_constraint_for): See if we have an old heapvar
3124 (init_alias_heapvars): New function.
3125 (delete_alias_heapvars): Ditto.
3126 Add include of gt-tree-ssa-structalias.h.
3128 2005-11-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3131 * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
3133 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
3135 * tree.c (int_fits_type_p): Only look at the base type
3136 if it has the same precision as the original type.
3138 2005-11-10 Jakub Jelinek <jakub@redhat.com>
3141 * varasm.c (assemble_alias): Use %q+D in the error
3142 message instead of %J and %qD.
3144 2005-11-10 Richard Guenther <rguenther@suse.de>
3146 * gcse.c (free_ldst_entry): Only free hashtable if
3149 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
3151 * function.c (assign_stack_local_1): Issue an error message if
3152 the frame size overflows in the signed target arithmetics.
3154 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
3156 * tree.c (build_qualified_type): Chain the new type to the original
3157 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
3158 a POINTER_TYPE or a REFERENCE_TYPE respectively.
3159 (build_pointer_type_for_mode): Only return unqualified types.
3160 (build_reference_type_for_mode): Likewise.
3162 2005-11-09 Jakub Jelinek <jakub@redhat.com>
3164 * Makefile.in (gnucompare): Do comparison of all files using one of
3165 the chosen methods and only afterwards decide if just warning should
3166 be issued or comparison failure raised.
3168 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
3170 * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
3171 (noce_try_abs): Negate if the comparison is reversed.
3172 Look only one instruction backwards for a REG_EQUAL note.
3174 2005-11-09 Alexandre Oliva <aoliva@redhat.com>
3177 * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
3178 gthr-tpf.h: Define __gthrw. For all identifiers that might
3179 be weak, introduce weakrefs or non-weak aliases with __gthrw,
3180 and prefix all uses with __ghtrw.
3182 2005-11-09 Alexandre Oliva <aoliva@redhat.com>
3185 * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
3186 (TREE_DEPRECATED): Adjust comment. Check for a DECL.
3187 * c-common.c (handle_weakref_attribute): New.
3188 (c_common_attribute_table): Add weakref.
3189 * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
3191 * configure, config.in: Rebuilt.
3192 * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
3193 * doc/extend.texi: Document weakref attribute.
3194 * varasm.c (ultimate_transparent_alias_target): New
3195 (assemble_name): Use it.
3196 (weak_finish_1): Split out of...
3197 (weak_finish): ... and deal with weakrefs in...
3198 (weakref_targets): ... new list.
3199 (globalize_decl): Clean up weakref_targets.
3200 (do_assemble_alias): Handle weakrefs.
3201 (finish_aliases_1): Do not reject weakrefs to external symbols.
3202 (assemble_alias): Handle weakrefs.
3204 2005-11-09 Richard Guenther <rguenther@suse.de>
3206 PR tree-optimization/24716
3207 * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
3208 t_bool to track results from follow_ssa_edge.
3210 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
3212 * final.c (force_source_line): New global variable.
3213 (final_scan_insn): Set it to true instead of clearing last_filename.
3214 (notice_source_line): Return true if force_source_line is true,
3215 unless source info is absent.
3217 2005-11-09 Andrew Pinski <pinskia@physics.uc.edu>
3220 * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
3221 a linkage name for a variable if it a register variable.
3222 * c-decl.c (grokdeclarator): Global register variables
3223 should be set as PUBLIC.
3225 2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
3228 * config/s390/s390.c (struct s390_frame_layout): New fields
3229 first_save_gpr_slot and last_save_gpr_slot.
3230 (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
3231 s390_emit_epilogue, s390_initial_elimination_offset): Replaced
3232 first_save_gpr and last_save_gpr with the _slot variants.
3233 (s390_register_info): Calculate first_save_gpr_slot and
3234 last_save_gpr_slot using regs_ever_live.
3236 2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
3239 * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
3240 for a function containing a landing pad.
3242 2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
3245 * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
3248 2005-11-08 Bernd Schmidt <bernd.schmidt@analog.com>
3250 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
3251 MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
3253 2005-11-09 Nathan Sidwell <nathan@codesourcery.com>
3256 * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
3258 (call,load,store): New insn types.
3259 (mem_access, branch_access): Adjust reservation conditions.
3260 (define_delay): Adjust condition.
3261 (decrement_and_branch_until_zero): Allow for ms2. Set branch
3263 (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
3264 (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
3266 (call_internal, call_value_internal, return_internal,
3267 return_interrupt_internal, eh_return_internal, indirect_jump,
3268 tablejump): Set call insn type.
3269 (blockage, ei, di): Use appropriate unspec const.
3270 * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
3271 (ms1_get_attr_type): Adjust to give load & store types.
3272 (ms1_final_prescan_insn): Adjust for new insn types. Don't look
3273 backwards past a barrier.
3274 (ms1_override_options): Accept ms2 arch. Copy and reset delayed
3276 (struct branch_info, struct label_info): New.
3278 (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
3279 (ms1_machine_reorg): New.
3280 (TARGET_MACHINE_DEPENDENT_REORG): Override.
3281 * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
3282 * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
3283 (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
3286 2005-11-09 Per Bothner <per@bothner.com>
3287 Uros Bizjak <uros@kss-loka.si>
3290 * toplev.c (process_options): Initialize debug_hooks early
3291 in case lang_hooks.post_options ends up calling a debug_hook.
3293 2005-11-08 Jakub Jelinek <jakub@redhat.com>
3295 * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
3296 DBX_REGISTER_NUMBER being contiguous.
3298 2005-11-08 James A. Morrison <phython@gcc.gnu.org>
3299 Diego Novillo <dnovillo@redhat.com>
3302 * tree-vrp.c (register_edge_assert_for): Do not register
3303 always-false predicates.
3305 2005-11-08 Devang Patel <dpatel@apple.com>
3307 PR tree-optimization/23115
3308 * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
3311 2005-11-08 Joseph S. Myers <joseph@codesourcery.com>
3313 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
3316 2005-11-08 Daniel Berlin <dberlin@dberlin.org>
3318 Fix PR tree-optimization/23382
3320 * tree-ssa-alias.c (compute_may_aliases): Call
3321 delete_old_heap_vars.
3322 * tree-dfa.c (referenced_var_remove): New function.
3323 * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
3324 * tree-flow.h (referenced_var_remove): Add prototype.
3325 (delete_old_heap_vars): Ditto.
3326 * tree-ssa-structalias.c (heapvars): New variable.
3327 (oldheapvars): Ditto.
3328 (get_constraint_for): Put heap vars on heapvars list.
3329 (delete_old_heap_vars): New function.
3331 2005-11-08 Jason Merrill <jason@redhat.com>
3333 * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
3335 2005-11-08 Uros Bizjak <uros@kss-loka.si>
3338 * reg-stack.c (reg_to_stack): Update register liveness also
3339 for flag_sched2_use_traces.
3341 2005-11-08 Alan Modra <amodra@bigpond.net.au>
3344 * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
3345 override prior explicit -mno-powerpc-gfxopt.
3347 2005-11-07 Eric Botcazou <ebotcazou@adacore.com>
3349 * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
3350 if the bitsize is zero.
3351 * doc/md.texi (Standard Pattern Names): Document it.
3353 * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
3354 (TARGET_PASS_BY_REFERENCE): Likewise.
3356 2005-11-07 Ian Lance Taylor <ian@airs.com>
3358 PR rtl-optimization/24683
3359 * config/i386/i386.c (legitimize_pic_address): If constant operand
3360 to PLUS is too large, put it in a register.
3362 2005-11-07 Jie Zhang <jie.zhang@analog.com>
3364 * configure.ac: Enable checking assembler dwarf2 support for bfin
3366 * configure: Regenerate.
3368 2005-11-07 Paolo Bonzini <bonzini@gnu.org>
3372 * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
3373 gen_easy_vector_constant_add_self): Delete.
3374 (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
3376 (output_vec_const_move): Use gen_easy_altivec_constant.
3377 (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
3378 * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
3379 (easy_vector_constant_add_self): Rewritten.
3380 * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
3381 easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
3382 (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
3383 * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
3384 Macroize and adjust for the other changes.
3386 2005-11-07 Paolo Bonzini <bonzini@gnu.org>
3390 * c-typeck.c (build_c_cast): Try using a shared constant, and see
3391 if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
3393 2005-11-07 Jakub Jelinek <jakub@redhat.com>
3395 PR rtl-optimization/23567
3396 * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
3397 (noce_process_if_block): Don't do any optimizations except
3398 if (cond) x = x; if !set_b and write into orig_x may trap
3399 or fault. Remove the MEM_READONLY_P check.
3401 2005-11-06 Diego Novillo <dnovillo@redhat.com>
3404 * tree-vrp.c (fix_equivalence_set): New.
3405 (extract_range_from_assert): Call it.
3407 2005-11-05 Ian Lance Taylor <ian@airs.com>
3410 * combine.c (apply_distributive_law): Don't distribute across a
3413 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
3415 * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
3416 config/ms1/ms1.h, config/rs6000/predicates.md,
3417 config/s390/s390.c, params.def, postreload-gcse.c,
3418 tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
3419 tree-vrp.c, tree.c: Fix comment typos.
3420 * doc/invoke.texi: Fix typos.
3422 2005-11-05 Sebastian Pop <pop@cri.ensmp.fr>
3424 * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
3425 for testing whether the data_dependence_relation contains distance
3426 vectors. Iterate over all distance vectors of the ddr.
3427 * lambda.h: Define a vec of lambda_vector pointers.
3428 * tree-data-ref.c (dump_data_dependence_relation,
3429 dump_data_dependence_direction): Iterate over all distance and
3430 direction vectors of the ddr.
3431 (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and