]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
configure.ac (fixincludes_UNLOCKED_FUNCS): New.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0d667716
KG
12005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2
3 PR/17092
4 * configure.ac (gcc_UNLOCKED_FUNCS): New.
5 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
6 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
7 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
8 _unlocked function.
9 (fwrite_unlocked): Fix prototype.
10
11 * configure, config.in: Regenerate.
12
37cca405
DE
132005-04-11 David Edelsohn <edelsohn@gnu.org>
14
15 * tree-ssa-loop-im.c: Include real.h.
16 (determine_invariantness_stmt): If real division divisor is
17 invariant and flag_unsafe_math_optimizations enabled, generate
18 invariant reciprocal for hoisting.
19 * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
20
94589120
DB
212005-04-11 Daniel Berlin <dberlin@dberlin.org>
22
23 Fix PR tree-optimization/20926
24
25 * tree-ssa-alias.c (add_type_alias): Handle subvars.
26
19f1ebc7
DP
272005-04-11 Devang Patel <dpatel@apple.com>
28
29 * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
30 operand ordering.
31
6405f32f
AP
322005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
33
34 * fold-const.c (fold_binary_op_with_conditional_arg):
35 use fold_buildN instead of "fold (buildN" in some
36 non obvious places.
37 (fold_unary): Likewise.
38 (fold_binary): Likewise.
39
e5e656a4
DB
402005-04-11 Daniel Berlin <dberlin@dberlin.org>
41
42 Fix PR tree-optimization/20612
43 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
44 handling
45 (perfect_nestify): preheaderbb is *not* part of loop of the
46 old destination.
47
d3010d72
AP
482005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
49
50 * tree-ssa-alias.c (may_alias_p): If the variable
51 is a global variable and the pointer is parameter
52 and -fargument-noalias-global is used, then
53 the pointer cannot alias the variable.
54
f5f7d171
JM
552005-04-11 James A. Morrison <phython@gcc.gnu.org>
56
57 * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
58 * config/sparc/sparc.h: Likewise.
59 * config/sparc/sparc.md: Likewise.
60
8e774944
KH
612005-04-11 Kazu Hirata <kazu@cs.umass.edu>
62
63 * tree-vrp.c (maybe_add_assert_expr): Move a comment.
64
977ec5f8
KH
65 * tree-vrp.c: Fix a comment typo.
66
9fabf0d4
DN
672005-04-11 Diego Novillo <dnovillo@redhat.com>
68
69 PR tree-optimization/20920
70 * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
71 SSA_NAME flows through an abnormal edge.
72 * tree-vrp.c (infer_value_range): Ignore SSA names that flow
73 through abnormal edges.
74 (maybe_add_assert_expr): Likewise.
75
f5db779b
RS
762005-04-11 Richard Sandiford <rsandifo@redhat.com>
77
78 * config/s390/s390.h (s390_tune_string, s390_arch_string)
79 (s390_warn_framesize_string, s390_warn_dynamicstack_string)
80 (s390_stack_size_string, s390_stack_guard_string, target_flags)
81 (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
82 (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
83 (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
84 (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
85 (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
86 (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
87 (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
88 * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
89 (TARGET_HANDLE_OPTION): Likewise.
90 (s390_tune): Initialize to PROCESSOR_max.
91 (s390_arch_string): Make static.
92 (s390_tune_string, s390_warn_framesize_string): Delete.
93 (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
94 (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
95 (s390_handle_arch_option, s390_handle_option): New functions.
96 (override_options): Remove parsing of option strings.
97 * config/s390/s390.opt: New file.
98
84971f01
PB
992005-04-11 Paolo Bonzini <bonzini@gnu.org>
100
101 * tree-complex.c (expand_vector_operations): Call
102 update_stmt_if_modified.
103
57d1677d
PB
1042005-04-11 Paolo Bonzini <bonzini@gnu.org>
105
106 * tree-vect-analyze (vect_determine_vectorization_factor):
107 Do not use GET_MODE_NUNITS.
108 * tree-vect-transform.c (vect_get_vec_def_for_operand,
109 (vectorizable_load, vect_transform_loop): Likewise.
110
f94b1661
UB
1112005-04-11 Uros Bizjak <uros@kss-loka.si>
112
113 * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
114 (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
115 * optabs.h (enum optab_index): Add new OTI_lceil.
116 (lceil_optab): Define corresponding macro.
117 * optabs.c (init_optabs): Initialize lceil_optab.
118 * genopinit.c (optabs): Implement lceil_optab using lceilsi2
119 and lceildi2 patterns.
120 * builtins.c (expand_builtin_int_roundingfn): Handle
121 BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
122 (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
123 BUILT_IN_LLCEIL{,F,L}.
124 (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
125 BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
126 (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
127 (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
128 BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
129 * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
130 into lceil built-in function and (long long int)ceil{,f,l} into
131 llceil built-in function.
132 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
133 BUILT_IN_LLCEIL.
134
0dbca307
JDA
1352005-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
136
137 * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
138 zero.
139
c5d34bb2
KH
1402005-04-10 Kazu Hirata <kazu@cs.umass.edu>
141
142 * config/arm/arm.c: Fix a comment typo.
143 * doc/tree-ssa.texi: Fix a typo.
144
eb232f4e
SB
1452005-04-10 Steven Bosscher <stevenb@suse.de>
146
147 * cselib.c (clear_table): Rename to cselib_clear_table.
148 * cselib.h (cselib_clear_table): Add prototype.
149 * gcse.c (gcse_main): Make 'f' argument unused.
150 (alloc_gcse_mem): Do not walk the insn chain, walk the contents
151 of each basic block instead.
152 (compute_sets, compute_hash_table_work): Likewise.
153 (constprop_register): Change int 'alter_jumps' argument to bool.
154 (do_local_cprop): Likewise.
155 (local_cprop_pass): Likewise. Also walk basic blocks instead of
156 the insn chain. Explicitly clear the cselib tables after finishing
157 one basic block. Make sure there are no unterminated libcall blocks.
158 Update compute_sets call.
159 (cprop): Walk basic blocks instead of the insn chain.
160 (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
161 Likewise.
162 (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
163 one_cprop_pass calls.
164
ecf9c079
RS
1652005-04-10 Richard Sandiford <rsandifo@redhat.com>
166
167 * combine.c (combine_simplify_rtx): Remove a transformation that
168 relies on an invalid assumption about rtl sign-extension semantics.
169
f1ac52cd
RS
1702005-04-10 Richard Sandiford <rsandifo@redhat.com>
171
172 * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
173 to build_int_cst_wide.
174
46382283
AO
1752005-04-09 Alexandre Oliva <aoliva@redhat.com>
176
177 PR target/20126
178 * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
179 set the original address pseudo to the correct value before the
180 original insn, if possible, and leave the insn alone, otherwise
181 create a new pseudo, set it and replace it in the insn.
182 * recog.c (validate_change_maybe_volatile): New.
183 * recog.h (validate_change_maybe_volatile): Declare.
184
e5e625da
CT
1852005-04-09 Caroline Tice <ctice@apple.com>
186
187 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
188 Remove targetm.have_named_sections test.
189 (fix_edges_for_rarely_executed_code): Likewise.
190 (insert_section_boundary_note): Likewise.
191 (reorder_basic_blocks): Check partitioning flag before calling
192 verify_hot_cold_block_grouping.
193 * dbxout.c (dbxout_function_end): Get hot/cold section labels from
194 the function struct rather than global variables.
195 * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
196 (COLD_END_LABEL): Likewise
197 (cold_text_section_label): New static global variable.
198 (cold_end_label): Likewise.
199 (dwarf2out_switch_text_section): Get hot/cold section labels from
200 the function struct rather than global variables.
201 (output_aranges): Use cold_text_section_label and cold_end_label;
202 check partitioning flag before putting out delta.
203 (output_ranges): Remove incorrect code attempting to use
204 hot/cold labels.
205 (output_line_info): Get cold section label from function struct.
206 (add_location_or_const_value_attribute): Likewise.
207 (get_subprogram_die): Get hot/cold section labels from function struct.
208 (dwarf2out_var_location): Likewise.
209 (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
210 write out cold_text_section_label if partition flag is set.
211 (dwarf2out_finish): Write out cold_end_label if partition flag is set;
212 * function.h (struct function): Add new fields to point to hot/cold
213 section labels: hot_section_label, cold_section_label,
214 hot_section_end_label and cold_section_end_label; also add new field
215 for cold text section name, unlikely_text_section_name.
216 * opts.c (decode_options): Turn off partitioning flag if
217 !targetm.have_named_sections.
218 * output.h (hot_section_label): Remove.
219 (hot_section_end_label): Remove.
220 (cold_section_end_label): Remove.
221 (unlikely_section_label): Remove.
222 (unlikely_text_section_name): Remove.
223 * passes.c (rest_of_handle_final): Remove code that frees
224 unlikely_text_section_name.
225 * varasm.c (unlikely_section_label): Remove.
226 (hot_section_label): Remove.
227 (hot_section_end_label): Remove.
228 (cold_section_end_label): Remove.
229 (unlikely_text_section_name): Remove.
230 (initialize_cold_section_name): Modify to call
231 targetm.strip_name_encoding; to store cold section name in current
232 function struct, if it exists; and to only use the decl_section_name
233 if flag_named_sections is true.
234 (unlikely_text_section): Modify to get section name out of current
235 function struct, if there is one; otherwise build it from
236 UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
237 (in_unlikely_text_section): Likewise.
238 (named_section): Modify to get/put cold section name in current function
239 struct, if there is one.
240 (function_section): Change 'bool unlikely' to 'int reloc'; check
241 targetm.have_named_sections before calling named_section.
242 (current_function_section): Likewise.
243 (assemble_start_function): Modify to get/put unlikely_text_section_name
244 in current function struct; modify to get hot/cold section labels
245 from function struct; initialize labels using
246 ASM_GENERATE_INTERNAL_LABEL;
247 test partitioning flag before writing out hot section label.
248 (assemble_end_function): Test partitioning flag before writing out
249 hot/cold section labels.
250 (default_section_type_flags_1): Modify to use array instead of
251 char* for unlikely_text_section_name; set flags correctly for
252 cold text section if there is not a current function decl.
253
9d30f3c1
JJ
2542005-04-09 Jakub Jelinek <jakub@redhat.com>
255
256 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
257 and TI_VA_LIST_FPR_COUNTER_FIELD.
258 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
259 * tree-pass.h (pass_stdarg): Add.
260 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
261 * tree-stdarg.c: New file.
262 * tree-stdarg.h: New file.
263 * Makefile.in (OBJS-common): Add tree-stdarg.o.
264 (tree-stdarg.o): Add dependencies.
265 * function.h (struct function): Add va_list_gpr_size and
266 va_list_fpr_size fields.
267 * function.c (allocate_struct_function): Initialize them.
268 * target.h (struct gcc_target): Add stdarg_optimize_hook.
269 * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
270 (TARGET_INITIALIZER): Add it.
271
272 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
273 va_list_{g,f}pr_counter_field.
274 (ix86_setup_incoming_varargs): Don't do anything if reg_save
275 area will not be used. Only save registers that tree-stdarg.c
276 detected they need saving.
277 (ix86_va_start): Don't set up fields that won't be used.
278
279 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
280 va_list_{g,f}pr_counter_field.
281 (setup_incoming_varargs): Don't do anything if reg_save
282 area will not be used. Only save registers that tree-stdarg.c
283 detected they need saving.
284 (rs6000_va_start): Don't set up fields that won't be used.
285
286 * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
287 (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
288 (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
289 (TARGET_STDARG_OPTIMIZE_HOOK): Define.
290
1b803355
JJ
2912005-04-09 Jakub Jelinek <jakub@redhat.com>
292
293 PR target/20795
294 * config/i386/i386.c (construct_container): Pass empty aligned
295 struct, union or class in memory.
296
f3b569ca
KH
2972005-04-09 Kazu Hirata <kazu@cs.umass.edu>
298
299 * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
300 tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
301 config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
302 config/rs6000/predicates.md: Fix comment typos.
303
728522c3
KH
304 * sched-int.h (haifa_insn_data): Remove blockage and units.
305 (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
306 ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
307 MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
308
7b0cab99
JH
3092005-04-09 Jan Hubicka <jh@suse.cz>
310 Steven Bosscher <stevenb@suse.de>
311
312 * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
313 * cfgloop.c (get_loop_exit_edges): Likewise.
314 * cfgloopmanip.c (fix_irreducible_loops): Likewise.
315 (unloop): Likewise.
316 * loop-unroll.c (analyze_insns_in_loop): Likewise.
317 * tree-cfg.c (dump_cfg_status): Likewise.
318
5b296c8a
DE
3192005-04-09 David Edelsohn <edelsohn@gnu.org>
320
321 * config/rs6000/predicates.md (altivec_register_operand): Remove
322 redundant match_code test.
323 (gpc_reg_operand): Same.
324 (cc_reg_operand): Same.
325 (cc_reg_not_cr0_operand): Same.
326
0be0a2be
JH
3272005-04-09 Jan Hubicka <jh@suse.cz>
328
329 Forgotten hunk from my last merge patch:
330 * final.c (output_addr_const): Do not call mark_referenced.
331
43ae1e1c
AM
3322005-04-09 Andrew MacLeod <amacleod@redhat.com>
333
334 * doc/tree-ssa.texi: Add immediate use documentation.
335
abac3b49
RE
3362005-04-09 Richard Earnshaw <richard.earnshaw@arm.com>
337
338 * arm.c (FL_WBUF): Define.
339 (arm_tune_strongarm): Renamed from arm_is_strong. All uses changed.
340 (arm_is_6_or_7): Delete.
341 (arm_tune_wbuf): New.
342 (arm_override_options): Set arm_tune_wbuf.
343 * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
344 (arm_is_6_or_7): Delete declaration.
345 (arm_tune_wbuf): New declartion.
346 * arm.md (is_strongarm): Derive from arm_tune_strongarm.
347 (model_wbuf): Derive from arm_tune_wbuf.
348 * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
349 (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
350 (arm740t): Mark CPUs as having a write buffer.
351
17153653
UB
3522005-04-09 Uros Bizjak <uros@kss-loka.si>
353
354 * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
355 of 'const_double_operand' in operand 2 constraints. Update enable
356 condition.
357
d8b42d06
UB
3582005-04-09 Uros Bizjak <uros@kss-loka.si>
359
360 * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
361 (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
362 * optabs.h (enum optab_index): Add new OTI_lfloor.
363 (lfloor_optab): Define corresponding macro.
364 * optabs.c (init_optabs): Initialize lfloor_optab.
365 * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
366 and lfloordi2 patterns.
367 * builtins.c (expand_builtin_int_roundingfn): New prototype.
368 (expand_builtin_int_roundingfn): New function.
369 (fold_builtin_int_roundingfn): New prototype.
370 (fold_builtin_int_roundingfn): New function, renamed from
371 fold_builtin_lround.
372 Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
373 BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
374 (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
375 BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
376 (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
377 (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
378 BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
379 * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
380 into lfloor built-in function and (long long int)floor{,f,l} into
381 llfloor built-in function.
382 * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
383 BUILT_IN_LLFLOOR.
384
fbc315db
ILT
3852005-04-08 Ian Lance Taylor <ian@airs.com>
386
387 * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
388 CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
389 * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
390 (DO_COND, DO_BODY): Likewise.
391 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
392 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
393 (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
394 BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
395 (build_continue_stmt, build_break_stmt): Don't declare.
396 (c_do_switch_warnings): Update declaration.
397 * c-gimplify.c (enum bc_t): Remove.
398 (struct c_gimplify_ctx, ctxp): Remove.
399 (push_context, pop_context): Remove static functions.
400 (c_genericize): Don't call push_context or pop_context.
401 (begin_bc_block, finish_bc_block): Remove static functions.
402 (build_bc_goto): Likewise.
403 (gimplify_c_loop): Likewise.
404 (gimplify_for_stmt, gimplify_while_stmt): Likewise.
405 (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
406 (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
407 DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
408 * c-common.c (c_do_switch_warnings): Rename from
409 c_do_switch_warnings_1.
410 (c_do_switch_warnings) [old version]: Remove.
411 (c_do_switch_expr_warnings): Remove.
412 * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
413 function instead of c_do_switch_expr_warnings.
414 * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
415 CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
416 * c-pretty-print.c (pp_c_statement): Likewise.
417 * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
418
edc2eb9e
DP
4192005-04-08 Devang Patel <dpatel@apple.com>
420
421 * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
422 While selecting replacement condition pay attention to loop header.
423
0bca51f0
DN
4242005-04-08 Diego Novillo <dnovillo@redhat.com>
425
426 Merge from tree-cleanup-branch: VRP, store CCP, store
427 copy-prop, incremental SSA updating of FUD chains and
428 newly exposed symbols.
429
430 * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
431 (OBJS-common): Add tree-vrp.o.
432 (tree-vrp.o): New rule.
433 * basic-block.h (nearest_common_dominator_for_set): Declare.
434 * common.opt (ftree-store-ccp): New flag.
435 (ftree-copy-prop): New flag.
436 (ftree-vrp): New flag.
437 (ftree-store-copy-prop): New flag.
438 * dominance.c (nearest_common_dominator_for_set): New.
439 * domwalk.c (walk_dominator_tree): Only traverse
440 statements in blocks marked in walk_data->interesting_blocks.
441 * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
442 * fold-const.c (fold): Handle ASSERT_EXPR.
443 * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
444 Set flag_tree_store_ccp, flag_tree_store_copy_prop and
445 flag_tree_vrp at -O2.
446 * timevar.def (TV_TREE_VRP): Define.
447 (TV_TREE_COPY_PROP): Define.
448 (TV_TREE_STORE_COPY_PROP): Define.
449 (TV_TREE_SSA_INCREMENTAL): Define.
450 (TV_TREE_STORE_CCP): Define.
451 * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
452 to kill_redundant_phi_nodes from comment.
453 (verify_expr): Handle ASSERT_EXPR.
454 * tree-dfa.c (mark_new_vars_to_rename): Remove second
455 argument. Update all users.
456 (mark_call_clobbered_vars_to_rename): Remove. Update all
457 users.
458 * tree-flow-inline.h (unmodifiable_var_p): New.
459 * tree-flow.h (enum value_range_type): Declare.
460 (struct value_range_def): Declare.
461 (value_range): Declare.
462 (remove_all_phi_nodes_for): Remove. Update all users.
463 (find_phi_node_for): Declare.
464 (add_type_alias): Declare.
465 (count_uses_and_derefs): Declare.
466 (kill_redundant_phi_nodes): Remove.
467 (rewrite_into_ssa): Remove.
468 (rewrite_def_def_chains): Remove.
469 (update_ssa, register_new_name_mapping, create_new_def_for,
470 need_ssa_update_p, name_registered_for_update_p,
471 release_ssa_name_after_update_ssa, dump_repl_tbl,
472 debug_repl_tbl, dump_names_replaced_by,
473 debug_names_replaced_by, mark_sym_for_renaming,
474 mark_set_for_renaming, get_current_def, set_current_def,
475 get_value_range, dump_value_range, debug_value_range,
476 dump_all_value_ranges, debug_all_value_ranges,
477 expr_computes_nonzero, loop_depth_of_name,
478 unmodifiable_var_p): Declare.
479 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
480 ASSERT_EXPR.
481 * tree-into-ssa.c (block_defs_stack): Update comment.
482 (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
483 syms_to_rename, names_to_release, repl_tbl,
484 need_to_initialize_update_ssa_p, need_to_update_vops_p,
485 need_to_replace_names_p): New locals.
486 (NAME_SETS_GROWTH_FACTOR): Define.
487 (struct repl_map_d): Declare.
488 (struct mark_def_sites_global_data): Add field
489 interesting_blocks.
490 (enum rewrite_mode): Declare.
491 (REGISTER_DEFS_IN_THIS_STMT): Define.
492 (compute_global_livein): Use last_basic_block instead of
493 n_basic_blocks.
494 (set_def_block): Remove last argument. Update all callers.
495 (prepare_use_operand_for_rename): Remove. Update all callers.
496 (prepare_def_operand_for_rename): Remove. Update all callers.
497 (symbol_marked_for_renaming): New.
498 (is_old_name): New.
499 (is_new_name): New.
500 (repl_map_hash): New.
501 (repl_map_eq): New.
502 (repl_map_free): New.
503 (names_replaced_by): New.
504 (add_to_repl_tbl): New.
505 (add_new_name_mapping): New.
506 (mark_def_sites): Assume that all the operands in the
507 statement are in normal form.
508 (find_idf): Assert that the block in the stack is valid.
509 (get_default_def_for): New.
510 (insert_phi_nodes_for): Add new argument 'update_p'.
511 Add documentation.
512 If update_p is true, add a new mapping between the LHS of
513 each new PHI and the name that it replaces.
514 (insert_phi_nodes_1): Only call find_idf if needed.
515 (get_reaching_def): Call get_default_def_for.
516 (rewrite_operand): Remove.
517 (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
518 and REWRITE_THIS_STMT are false.
519 Assume that all the operands in the statement are in
520 normal form.
521 (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
522 (rewrite_virtual_phi_arguments): Remove.
523 (invalidate_name_tags): Remove.
524 (register_new_update_single, register_new_update_set,
525 rewrite_update_init_block, replace_use,
526 rewrite_update_fini_block, rewrite_update_stmt,
527 rewrite_update_phi_arguments): New.
528 rewrite_blocks): Remove argument 'fix_virtual_phis'.
529 Add arguments 'entry', 'what' and 'blocks'.
530 Initialize the dominator walker according to 'what' and
531 'blocks'.
532 Start the dominator walk at 'entry'.
533 (mark_def_site_blocks): Add argument 'interesting_blocks'.
534 Use it to configure the dominator walker.
535 (rewrite_into_ssa): Remove argument 'all'.
536 Make internal.
537 (rewrite_all_into_ssa): Remove.
538 (rewrite_def_def_chains): Remove.
539 (mark_def_interesting, mark_use_interesting,
540 prepare_phi_args_for_update, prepare_block_for_update,
541 prepare_def_site_for, prepare_def_sites,
542 dump_names_replaced_by, debug_names_replaced_by,
543 dump_repl_tbl, debug_repl_tbl, init_update_ssa,
544 delete_update_ssa, create_new_def_for,
545 register_new_name_mapping, mark_sym_for_renaming,
546 mark_set_for_renaming, need_ssa_update_p,
547 name_registered_for_update_p, ssa_names_to_replace,
548 release_ssa_name_after_update_ssa,
549 insert_updated_phi_nodes_for, update_ssa): New.
550 * tree-loop-linear.c (linear_transform_loops): Call
551 update_ssa instead of rewrite_into_ssa.
552 * tree-optimize.c (vars_to_rename): Remove.
553 Update all users.
554 (init_tree_optimization_passes): Replace
555 pass_redundant_phi with pass_copy_prop.
556 Add pass_vrp.
557 Replace pass_ccp with pass_store_ccp.
558 Add pass_store_copy_prop after pass_store_ccp.
559 (execute_todo): If the TODO_ flags don't include updating
560 the SSA form, assert that it does not need to be updated.
561 Call update_ssa instead of rewrite_into_ssa and
562 rewrite_def_def_chains.
563 If TODO_verify_loops is set, call verify_loop_closed_ssa.
564 (tree_rest_of_compilation):
565 * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
566 TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
567 TODO_cleanup_cfg): Renumber.
568 (TODO_verify_loops, TODO_update_ssa,
569 TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
570 TODO_update_ssa_only_virtuals): Define.
571 (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
572 Declare.
573 * tree-phinodes.c (make_phi_node): Update documentation.
574 (remove_all_phi_nodes_for): Remove.
575 (find_phi_node_for): New.
576 * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
577 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
578 (interpret_rhs_modify_expr): Likewise.
579 * tree-sra.c (decide_instantiations): Mark all symbols in
580 SRA_CANDIDATES for renaming.
581 (mark_all_v_defs_1): Rename from mark_all_v_defs.
582 (mark_all_v_defs): New function. Update all users to call it
583 with the whole list of scalarized statements, not just the
584 first one.
585 * tree-ssa-alias.c (count_ptr_derefs): Make extern.
586 (compute_flow_insensitive_aliasing): If the tag is
587 unmodifiable and the variable isn't or vice-versa, don't
588 make them alias of each other.
589 (setup_pointers_and_addressables): If the type tag for
590 VAR is about to change, mark the old one for renaming.
591 (add_type_alias): New.
592 * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
593 (ccp_lattice_t): Rename from latticevalue.
594 (value): Remove. Update all users.
595 (const_val): New local variable.
596 (do_store_ccp): New local variable.
597 (dump_lattice_value): Handle UNINITIALIZED.
598 (debug_lattice_value): New.
599 (get_default_value): Re-write.
600 (set_lattice_value): Re-write.
601 (def_to_varying): Remove. Update all users.
602 (likely_value): Return VARYING for statements that make
603 stores when STORE_CCP is false.
604 Return VARYING for any statement other than MODIFY_EXPR,
605 COND_EXPR and SWITCH_EXPR.
606 (ccp_initialize): Re-write.
607 (replace_uses_in, replace_vuse_in, substitute_and_fold):
608 Move to tree-ssa-propagate.c.
609 (ccp_lattice_meet): Handle memory stores when
610 DO_STORE_CCP is true.
611 (ccp_visit_phi_node): Likewise.
612 (ccp_fold): Likewise.
613 (evaluate_stmt): Likewise.
614 (visit_assignment): Likewise.
615 (ccp_visit_stmt): Likewise.
616 (execute_ssa_ccp): Add argument 'store_ccp'. Copy it
617 into DO_STORE_CCP.
618 (do_ssa_ccp): New.
619 (pass_ccp): Use it.
620 (do_ssa_store_ccp): New.
621 (gate_store_ccp): New.
622 (pass_store_ccp): Declare.
623 * tree-ssa-copy.c: Include tree-ssa-propagate.h.
624 (may_propagate_copy): Reformat.
625 Don't abort if ORIG is a virtual and DEST isn't.
626 If NEW does not have alias information but DEST does,
627 copy it.
628 (copy_of, cached_last_copy_of, do_store_copy_prop, enum
629 copy_prop_kind, which_copy_prop): Declare.
630 (stmt_may_generate_copy, get_copy_of_val,
631 get_last_copy_of, set_copy_of_val, dump_copy_of,
632 copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
633 copy_prop_visit_stmt, copy_prop_visit_phi_node,
634 init_copy_prop, fini_copy_prop, execute_copy_prop,
635 gate_copy_prop, do_copy_prop, gate_store_copy_prop,
636 store_copy_prop): New.
637 (pass_copy_prop, pass_store_copy_prop): Declare.
638 * tree-ssa-dom.c (struct opt_stats_d): Add fields
639 'num_const_prop' and 'num_copy_prop'.
640 (cprop_operand): Update them.
641 (dump_dominator_optimization_stats): Dump them.
642 (tree_ssa_dominator_optimize): Call update_ssa instead of
643 rewrite_into_ssa.
644 (loop_depth_of_name): Declare extern.
645 (simplify_cond_and_lookup_avail_expr): Guard against NULL
646 values for LOW or HIGH.
647 (cprop_into_successor_phis): Only propagate if NEW != ORIG.
648 (record_equivalences_from_stmt): Call expr_computes_nonzero.
649 (cprop_operand): Only propagate if VAL != OP.
650 * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
651 statement for renaming.
652 * tree-ssa-loop-im.c (move_computations): Call update_ssa.
653 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
654 add_type_alias if necessary.
655 Call mark_new_vars_to_rename.
656 (tree_ssa_iv_optimize): If new symbols need to be renamed,
657 mark every statement updated, call update_ssa and
658 rewrite_into_loop_closed_ssa.
659 * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
660 from LIVEIN if VAR is a virtual.
661 * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
662 * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
663 (get_call_expr_operands): Reformat statement.
664 (add_stmt_operand): Don't create V_MAY_DEFs for read-only
665 symbols.
666 * tree-ssa-propagate.c (ssa_prop_init): Initialize
667 SSA_NAME_VALUE for every name.
668 (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
669 get_value_loaded_by): New.
670 (replace_uses_in, replace_vuses_in, replace_phi_args_in,
671 substitute_and_fold): Move from tree-ssa-ccp.c.
672 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
673 first_vdef, stmt_makes_single_load, stmt_makes_single_store,
674 get_value_loaded_by, replace_uses_in, substitute_and_fold):
675 Declare.
676 * tree-ssa.c (verify_use): Fix error message.
677 (propagate_into_addr, replace_immediate_uses, get_eq_name,
678 check_phi_redundancy, kill_redundant_phi_nodes,
679 pass_redundant_phi): Remove. Update all users.
680 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
681 add_type_alias, if necessary.
682 * tree-vectorizer.h (struct _stmt_vect_info): Update
683 documentation for field 'memtag'.
684 * tree-vrp.c: New file.
685 * tree.def (ASSERT_EXPR): Define.
686 * tree.h (ASSERT_EXPR_VAR): Define.
687 (ASSERT_EXPR_COND): Define.
688 (SSA_NAME_VALUE_RANGE): Define.
689 (struct tree_ssa_name): Add field 'value_range'.
690 (PHI_REWRITTEN): Remove.
691 (struct tree_phi_node): Remove field 'rewritten'.
692 * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
693 -ftree-store-copy-prop): Document.
694 * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
695 Document usage of update_ssa.
696
334269b9
DE
6972005-04-08 David Edelsohn <edelsohn@gnu.org>
698
699 PR target/20814
700 * config/rs6000/predicates.md (altivec_register_operand): Accept
701 SUBREG.
702 (and64_operand): Do not limit CONST_INT to mask64_operand.
703 (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
704 (and_operand): Do not limit CONST_INT to mask_operand.
705
797e15eb
HPN
7062005-04-09 Hans-Peter Nilsson <hp@axis.com>
707
708 PR rtl-optimization/20466
709 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
710 for overlap of the address of each list member.
711 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
712
ad6aaeb6
MS
7132005-04-08 Mike Stump <mrs@apple.com>
714
715 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
de2ab0ca
MS
716
717 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
718 instead of 4.
ad6aaeb6 719
da25d93e
KH
7202005-04-08 Kazu Hirata <kazu@cs.umass.edu>
721
722 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
723
5acbdd12
KH
724 * function.c (push_function_context_to): Don't set
725 contains_functions.
726 * function.h (function): Remove contains_functions.
727 (current_function_contains_functions): Remove.
728
bdad3e2d
KH
729 * function.h (function): Remove instrument_entry_exit.
730 (current_function_instrument_entry_exit): Remove.
731
df696025
KH
732 * function.h (nonlocal_labels): Remove.
733
54c1f920
KH
734 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
735
db77171d
KH
736 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
737 (check_attr_value, write_attr_get, write_expr_attr_cache,
738 find_attr, make_internal_attr): Don't reference negative_ok or
739 unsigned_p.
740 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
741 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
742 (ATTR_STATIC): Adjust the value.
743
9ff7d88e
KH
744 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
745
937d85ba
UW
7462005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
747
748 * config/s390/tpf.h (ASM_SPEC): Define.
749
e7e09446
KH
7502005-04-08 Kazu Hirata <kazu@cs.umass.edu>
751
752 * tree-flow.h: Remove the prototype for
753 redirect_immediate_uses.
754 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
755
b4a58f80
RE
7562005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
757
758 * arm.c (arm_const_double_by_parts): New function.
759 * arm-protos.h (arm_const_double_by_parts): Add prototype.
760 * arm.md (define_split for 64-bit constants): Add another one.
761
3623aa70
AM
7622005-04-08 Andrew MacLeod <amacleod@redhat.com>
763
764 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
765
627aa08a
KG
7662005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
767
768 * system.h: Revert last change.
769
66beb87a
RS
7702005-04-08 Richard Sandiford <rsandifo@redhat.com>
771
772 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
773 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
774 (TARGET_SWITCHES): Delete.
775 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
776 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
777 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
778 * config/xtensa/xtensa.opt: New file.
779
1a269cbb
BE
7802005-04-08 Ben Elliston <bje@au.ibm.com>
781
782 * config/fp-bit.c: Include L_mul_tf in #endif comment.
783 * config/fp-bit.h: Tidy comments.
784
d502f210
KG
7852005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
786
787 * system.h: Poison PARAMS.
788
80529cc0
RS
7892005-04-07 Richard Sandiford <rsandifo@redhat.com>
790
791 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
792 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
793 (TARGET_SWITCHES): Delete.
794 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
795 * config/vax/vax.opt: New file.
796
773168c7
DB
7972005-04-07 Daniel Berlin <dberlin@dberlin.org>
798
799 * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
800
03359b57
ILT
8012005-04-07 Ian Lance Taylor <ian@airs.com>
802
803 * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
804 define.
805 * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
806 * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
807 Likewise.
808
ab798313
KH
8092005-04-07 Kazu Hirata <kazu@cs.umass.edu>
810
811 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
812 all immediate uses in PHI nodes.
813
9b901d50
RE
8142005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
815
816 * arm.c (arm_const_double_inline_cost): Handle any constant by
817 using gen_lowpart and gen_highpart_mode.
818 (note_invalid_constants): All constants in an RTX with a constraint
819 that permits memory are now pushed to the constant pool.
820 (output_move_double): Delete code to handle reg to reg and
821 constant to reg moves.
822 (const_double_needs_minipool, output_mov_immediate): Delete.
823 * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
824 CONST_INT and CONST_VECTOR.
825 * arm.md (ANY64): New mode macro.
826 (arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
827 (movdf_soft_insn): Split reg-reg and const-reg moves.
828 (split patterns for 64-bit constant and register moves): New.
829 * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
830 (cirrus_movdf_hard_insn): Likewise.
831 * fpa.md (movdf_fpa): Likewise.
832 * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
833 (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
834 constraints.
835 (movv2si_internal_2): Likewise.
836 * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
837 (movdf_vfp): Likewise.
838 * arm-protos.h (output_mov_immediate): Delete prototype.
839
7443a71d
JM
8402005-04-07 Joseph S. Myers <joseph@codesourcery.com>
841
842 PR target/20093
843 * simplify-rtx.c (simplify_unary_operation_1): Check
844 SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
845
c7bcbc2c
JW
8462005-04-06 James E Wilson <wilson@specifixinc.com>
847
848 PR target/20717
849 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
850 ADDR_EXPR.
851
070e3969
RS
8522004-04-06 Richard Sandiford <rsandifo@redhat.com>
853
854 * coverage.h (GCOV_TYPE_NODE): Delete.
855 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
856 (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
857 * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
858 (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
859 * value-prof.c (tree_divmod_fixed_value_transform): Delete.
860
fb72a0a3
RS
8612004-04-06 Richard Sandiford <rsandifo@redhat.com>
862
863 PR other/20792
864 * Makefile.in (gcc.pot): Remove options.c dependency.
865 * optc-gen.awk: Don't quote help strings with N_().
866
3425638a
JM
8672005-04-06 James A. Morrison <phython@gcc.gnu.org>
868
869 * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
870 the function returns a pointer type.
871
31617ef1
DB
8722005-04-06 Daniel Berlin <dberlin@dberlin.org>
873
874 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
875 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
876 * doc/invoke.texi: Documnet salias-max-implicit-fields.
877 * tree-ssa-alias.c (struct used_part): Add implicit_uses and
878 explicit_uses members.
879 (get_or_create_used_part_for): Initialize new fields.
880 (fieldoff_compare): New function.
881 (create_overlap_variables_for): Count number of fields, use
882 heuristic to determine whether to create subvars for vars with
883 only implicit uses.
884 Sort the field list by offset and avoid creating duplicate SFT's.
885
4e994432
RS
8862005-04-06 Richard Sandiford <rsandifo@redhat.com>
887
888 * c.opt (-F): Remove trailing whitespace from help string.
889 (-finput-charset): Use a tab to separate the switch name and help
890 string.
891 * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
892 (-ftree-vectorizer-verbose): Likewise.
893
55b12f0d
KH
8942005-04-06 Kazu Hirata <kazu@cs.umass.edu>
895
896 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
897 a PHI argument where a use occurs instead of all PHI arguments.
898
3693d46c
JM
8992005-04-06 Joseph S. Myers <joseph@codesourcery.com>
900
901 * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
902 scope.
903
f652d14b
KH
9042005-04-06 Kazu Hirata <kazu@cs.umass.edu>
905
906 * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
907 tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
908 config/bfin/bfin.h: Fix comment typos.
909
5a4ffc2a
RM
9102005-04-06 Ranjit Mathew <rmathew@hotmail.com>
911
912 * doc/install.texi: Update the URL for Jacks.
913 * doc/sourcebuild.texi: Likewise.
914
f1b259d5
EB
9152005-04-06 Eric Botcazou <ebotcazou@libertysurf.fr>
916
917 PR target/17245
918 * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
919 Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode.
920
fb201aa4
KC
9212005-04-06 Kelley Cook <kcook@gcc.gnu.org>
922
923 * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
924
0a0da1bc
RS
9252005-04-06 Richard Sandiford <rsandifo@redhat.com>
926
927 * config/v850/v850-protos.h (override_options): Delete.
928 * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
929 (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
930 (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
931 (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
932 (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
933 (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
934 (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
935 (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
936 (OVERRIDE_OPTIONS): Delete.
937 (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
938 (small_memory_info): Remove the value field.
939 (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
940 TARGET_NO_APP_REGS.
941 * config/v850/v850.c (small_memory): Remove the value field.
942 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
943 (override_options): Delete.
944 (v850_handle_memory_option, v850_handle_option): New functions.
945 * config/v850/v850.opt: New file.
946
ed23bd30
GK
9472005-04-06 Geoffrey Keating <geoffk@apple.com>
948
949 * config.host: Add a section for generic hosts, and a subsection
950 for Darwin. Add a case for x86-darwin. Update ppc-darwin case.
951 * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
952 * config/host-darwin.h: New.
953 * config/x-darwin: New.
954 * config/i386/host-i386-darwin.c: New.
955 * config/i386/x-darwin: New.
956 * config/rs6000/host-darwin.c: Include host-darwin.h.
957 (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
958 (darwin_rs6000_gt_pch_use_address): Likewise.
959 * config/rs6000/x-darwin: Change name of .o built, update
960 dependencies for changes to rs6000/host-darwin.c.
961
0df9bf63
RC
9622005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
963
964 PR target/17824
965 * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
966
d401de95
DN
9672005-04-06 Dorit Naishlos <dorit@il.ibm.com>
968
969 * tree-vect-analyze.c (vect_analyze_loop_form): Call
970 split_loop_exit_edge instead of loop_split_edge_with.
971
27ffac37
PB
9722005-04-06 Paolo Bonzini <bonzini@gnu.org>
973
974 * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
975 UNSPEC_SET_VSCR): New constants, used throughout.
976 (*andc3_v4sf): New.
977 (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
978 Replace with...
979 (altivec_vspltis<VI_char>): ... this pattern, using
980 a QImode const_int_operand for the immediate.
981 (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
982 define_expands.
983
05b205e8
RC
9842005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
985
986 PR target/17822
987 * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
988
d34a464a
KC
9892005-04-06 Kelley Cook <kcook@gcc.gnu.org>
990
991 * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
992
8ecf5a68
BE
9932005-04-06 Ben Elliston <bje@au.ibm.com>
994
995 * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
996 DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
997 macros as living in "this file" and not gcc.h.
998
3c632d89
BE
9992005-04-06 Ben Elliston <bje@au.ibm.com>
1000
1001 * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
1002 -ftree-live_range_split. Perhaps renamed at some point?
1003
d482f417
ZD
10042005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
1005
1006 PR target/20625
1007 * tree-ssa-loop-ivopts.c (generic_type_for): New function.
1008 (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
1009
c33e657d
ZD
10102005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
1011
1012 * tree-flow.h (number_of_iterations_cond): Declaration removed.
1013 * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
1014 (number_of_iterations_special): New function.
1015 (number_of_iterations_exit): Use number_of_iterations_special.
1016 Use simplify_using_outer_evolutions only at -O3.
1017 (number_of_iterations_cond, tree_simplify_using_condition,
1018 simplify_using_initial_conditions, loop_niter_by_eval,
1019 compare_trees, can_count_iv_in_wider_type_bound,
1020 simplify_using_outer_evolutions): Use fold_build.
1021
c33b7bf0
TF
10222005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
1023
1024 * doc/install.texi (Configuration): Document --with-java-home.
1025
b4e82619
RH
10262005-04-05 Richard Henderson <rth@redhat.com>
1027
1028 PR target/20342
1029 PR target/20447
1030 * config/i386/i386.c (print_operand): Handle vector zeros.
1031 (ix86_split_to_parts): Handle CONST_VECTOR.
1032 (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
1033 (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
1034 what modes to tie for MMX and SSE registers.
1035 * config/i386/i386.h (MMX_REG_MODE_P): Remove.
1036 * config/i386/i386.md: Extend move 0 -> xor peephole to apply
1037 to vector modes as well.
1038 * config/i386/predicates.md (const0_operand): Handle VOIDmode
1039 properly as an input mode.
1040
13148dd2
AM
10412005-04-05 Andrew MacLeod <amacleod@redhat.com>
1042
1043 * tree-ssa-operands.c (verify_abort): Use %p for pointers.
1044
dbb9a00f
AM
10452005-04-05 Andrew MacLeod <amacleod@redhat.com>
1046
1047 * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
1048
f19e3a64
JJ
10492005-04-05 Jakub Jelinek <jakub@redhat.com>
1050
1051 * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
1052 and local functions, set sse_nregs to 8 and float_in_sse.
1053 (function_arg_advance, function_arg): If float_in_sse, pass
1054 SFmode and DFmode arguments in SSE registers.
1055 * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
1056
1057 * config/i386/i386.c (ix86_value_regno): Only optimize local functions
1058 of -funit-at-a-time.
1059
10602005-04-05 Paolo Bonzini <bonzini@gnu.org>
1061
1062 * config/i386/i386-protos.h (ix86_function_value): Accept two
1063 arguments, like the target macro.
1064 * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
1065 * config/i386/i386.c (ix86_function_value): Accept the second
1066 argument of the target macro.
1067 (ix86_function_ok_for_sibcall): Pass a function pointer to
1068 ix86_function_value.
1069 (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
1070 call to ix86_value_regno).
1071 (ix86_value_regno): Add support for returning floating point values
1072 in SSE registers.
1073
4b284111
JJ
10742005-04-05 Jakub Jelinek <jakub@redhat.com>
1075
1076 PR tree-optimization/20076
1077 * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
1078 that call __builtin_return or __builtin_apply_args.
1079
f430bae8
AM
10802005-04-05 Andrew MacLeod <amacleod@redhat.com>
1081
1082 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
1083 Use immediate use iterator.
1084 (stmt_is_bumper_for_loop): Use immediate use iterator.
1085 * predict.c (strip_builtin_expect): Use update_stmt.
1086 * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
1087 on all elements of a STATEMENT_LIST.
1088 (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
1089 (bsi_remove): Remove imm_use links and mark the stmt as modified.
1090 (bsi_replace): Mark stmt as modified and the update it.
1091 * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
1092 (expand_complex_libcal): Call update_stmt.
1093 (expand_complex_comparison): Call mark_stmt_modified.
1094 (expand_complex_operations_1): Call update_stmt_if_modified.
1095 (expand_vector_operations_1): Call mark_stmt_modified.
1096 * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
1097 compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
1098 add_immediate_use, redirect_immediate_use,
1099 redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
1100 dump_immediate_uses_for, debug_immediate_uses_for): Delete.
1101 (mark_new_vars_to_rename): Call update_stmt.
1102 * tree-dump.c (dump_option_value_in): Add "stmtaddr".
1103 * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
1104 Ignore PHI nodes.
1105 (unmodify_stmt): Delete.
1106 (update_stmt): New. Force an update of a stmt.
1107 (update_stmt_if_modified): update a stmt if it is out of date.
1108 (get_stmt_operands): Verify stmt is NOT modified.
1109 (stmt_modified_p): Update comment.
1110 (delink_imm_use): Remove a use node from its immuse list.
1111 (link_imm_use_to_list): Link a use node to a specific list.
1112 (link_imm_use): Link a node to the correct list.
1113 (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
1114 it in the correct list, if appropriate.
1115 (link_imm_use_stmt): Link a use node, and set the stmt pointer.
1116 (relink_imm_use): Link a use node in place of another node in a list.
1117 (relink_imm_use_stmt): LInk a node in place of another node, and set
1118 the stmt pointer.
1119 (end_safe_imm_use_traverse): New. Terminate a safe immuse iterator.
1120 (end_safe_imm_use_p): New. Check for the end of a safe immuse iterator.
1121 (first_safe_imm_use): New. Initialize a safe immuse iterator.
1122 (next_safe_imm_use): New. Proceed to next safe immuse iterator value.
1123 (end_readonly_imm_use_p): New. Check for end of a fast immuse iterator.
1124 (first_readonly_imm_use): New. Initialize a fast immuse iterator.
1125 (next_readonly_imm_use): New. Get the next fast immuse iterator value.
1126 (has_zero_uses): New. Return true if there are no uses of a var.
1127 (has_single_use): New. Return true if there is only a single use of a
1128 variable.
1129 (single_imm_use): New. Return the simgle immediate use.
1130 (num_imm_uses): New. Return the number of immediate uses.
1131 (get_v_must_def_ops): Use is now a pointer.
1132 (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
1133 get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
1134 the use node.
1135 (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
1136 (delink_stmt_imm_use): Delink all immuses from a stmt.
1137 (phi_arg_index_from_use): New. Return a phi arg index for a use.
1138 * tree-flow.h (struct dataflow_d): Delete.
1139 (immediate_use_iterator_d): New. Immediate use iterator struct.
1140 (FOR_EACH_IMM_USE_FAST): New. Macro for read only immuse iteration.
1141 (FOR_EACH_IMM_USE_SAFE): New. Macro for write-safe immuse iteration.
1142 (BREAK_FROM_SAFE_IMM_USE): New. Macro for earlyu exit from write-safe
1143 iteration.
1144 (struct stmt_ann_d): Remove dataflow_t from struct.
1145 * tree-if-conv.c (tree_if_conversion). Don't call free_df.
1146 (if_convertible_phi_p): Use FAST immuse iterator.
1147 (if_convertible_loop_p): Don't call compute_immediate_uses.
1148 (replace_phi_with_cond_modify_expr): Call update_stmt.
1149 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
1150 update_stmt_if_modified.
1151 (rewrite_all_into_ssa): Initialize ssa operands.
1152 * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
1153 compute_immediate_uses.
1154 * tree-optimize.c (execute_todo): Call verify_ssa whenever the
1155 ssa_property is available.
1156 (execute_one_pass): Change parameters passed to execute_todo.
1157 * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
1158 (remove_ssa_form): Call fini_ssa_operands.
1159 (insert_backedge_copies): Delete call to modify_stmt.
1160 * tree-phinodes.c (make_phi_node): Initialize use nodes.
1161 (release_phi_node): Delink any use nodes before releasing.
1162 (resize_phi_node): Relink any use nodes.
1163 (remove_phi_arg_num): Delink the use node.
1164 (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
1165 (remove_all_phi_nodes_for): Release phi node first.
1166 * tree-pretty-print.c (dump_generic_node): Print stmt address.
1167 * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
1168 (scalarize_use, scalarize_copy): Call update_stmt.
1169 * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
1170 (compute_points_to_and_addr_escape): Call mark_stmt_modified.
1171 * tree-ssa-cpp.c (need_imm_uses_for): Delete.
1172 (ccp_initialize): Remove call to compute_immediate_uses.
1173 (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
1174 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
1175 stmts.
1176 (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
1177 (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
1178 (eliminate_redundant_computations): Call mark_stmt_modified.
1179 (cprop_operand): Call mark_stmt_modified.
1180 (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
1181 * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
1182 (dse_optimize_stmt): Use new immuse interface.
1183 (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
1184 * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
1185 (substitute_single_use_vars): Use new immuse interface.
1186 (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
1187 and compute_immediate_uses.
1188 * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
1189 interface.
1190 (rewrite_mem_refs): Call update_stmt.
1191 (determine_lsm): Remove call to compute_imm_uses and free_df.
1192 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
1193 (try_unroll_loop_completely): Call update_stmt.
1194 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
1195 (rewrite_use_compare): Call update_stmt.
1196 (compute_phi_arg_on_exit): Insert each stmt before trying to process.
1197 (rewrite_use) : Call update_stmt.
1198 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
1199 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
1200 update_stmt.
1201 * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
1202 (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
1203 (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
1204 use nodes.
1205 (initialize_vuse_operand): New. Initialize a vuse operand.
1206 (initialize_v_may_def_operand): New. Initialize a maydef operand.
1207 (initialize_v_must_def_operand): New. Initialize a mustdef operand.
1208 (finalize_ssa_defs): Use stmt parameter.
1209 (correct_use_link): Ensure a use node is in the correct list, and has
1210 the correct stmt pointer.
1211 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
1212 finalize_ssa_v_must_defs): Also initialize use nodes.
1213 (finalize_ssa_stmt_operands): Pass extra stmt operands.
1214 (build_ssa_operands): Seperate parsing from final operand construction.
1215 (parse_ssa_operands): New. Parse entry point for operand building.
1216 (swap_tree_operands): New. Swap 2 tree operands.
1217 (update_stmt_operands): Ranamed from get_stmt_operands. Always builds
1218 operands.
1219 (get_expr_operands): Call swap_tree_operands when needed.
1220 (copy_virtual_operands): Use initialize routines for virtual use ops.
1221 (create_ssa_artficial_load_stmt): Add extra stmt parameter.
1222 (verify_abort): New. Issue imm_use error.
1223 (verify_imm_links): New Verify imm_use links for a var.
1224 (dump_immediate_uses_for): New. Dump imm_uses for a var to file.
1225 (dump_immediate_uses): New. Dump imm_uses for all vars to file.
1226 (debug_immediate_uses): New. Dump imm_uses for all vars to stderr.
1227 (debug_immediate_uses_for): New. Dump imm_uses for a var to stderr.
1228 * tree-ssa-operands.h (struct use_operand_ptr): Delete.
1229 (NULL_USE_OPERAND_P) Define.
1230 (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
1231 use node.
1232 (struct vuse_operand_type): New struct.
1233 (SET_USE): Call set_ssa_use_from_ptr.
1234 (USE_STMT): Define.
1235 (PHI_ARG_INDEX_FROM_USE): Define.
1236 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
1237 argument via SET_USE, not PHI_ARG_DEF_TREE.
1238 * tree-ssa-pre.c (eliminate): Call update_stmt.
1239 * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators. Don't
1240 call free_df.
1241 * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
1242 (nearest_common_dominator_of_uses): Use imm_use iterator.
1243 (statement_sink_location): Use imm_use iterator and interface.
1244 (execute_sink_code): Don't call compute_immediate_uses or free-df.
1245 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
1246 PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
1247 * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
1248 (verify_ssa): Ensure no stmt is marked modify after optimization pass
1249 if new parameter is true.
1250 (init_tree_ssa): Don't initialize operand cache here.
1251 (delete_tree_ssa): Don't destroy operand cache here.
1252 (propagate_into_addr): Pass in a use pointer, return true if anything
1253 was changed.
1254 (replace_immediate_uses): Use imm_use iterator, call update_stmt.
1255 (check_phi_redundancy): Use imm_use iterator.
1256 (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
1257 free_df.
1258 * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
1259 (release_ssa_name): Delink node and all elements in its imm_use list.
1260 * tree-tailcall.c (adjust_return_value): Call update_stmt.
1261 * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
1262 * tree-vectorizer.c (need_imm_uses_for): Delete.
1263 (vectorize_loops): Dont call compute_immediate_uses or free_df.
1264 * tree.h (struct ssa_imm_use_d): Define.
1265 (SSA_NAME_IMM_USE_NODE): Define.
1266 (struct tree_ssa_name): Add imm_use node.
1267 (PHI_DF): Delete.
1268 (PHI_ARG_IMM_USE_NODE): Define.
1269 (struct phi_arg_d): Add imm_use node.
1270 (struct tree_phi_node): Remove struct dataflow_d element.
1271 (TDF_STMTADDR): Define.
1272
3450cbc4
DJ
12732005-04-05 Dale Johannesen <dalej@apple.com>
1274
1275 * doc/invoke.texi (Optimization Options): Remove
1276 duplicate -fcse-follow-jumps. Add -fweb.
1277 (-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
1278 (-fivcanon): Fix spelling (-ftree-loop-ivcanon).
1279
bb0a4525
PB
12802005-04-05 Per Bothner <per@bothner.com>
1281
1282 * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
1283 to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
1284 (warn_uninit): Get EXPR_LOCUS from context now instead.
1285 This fixes a USE_MAPPED_LOCATION testsuite failure.
1286
1287 * tree-ssa.c (warn_uninitialized_var): Remove useless local.
1288
b747e45d
PB
12892005-04-05 Per Bothner <per@bothner.com>
1290
1291 * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
1292 of the artification 'return 0' in main() to BUILTINS_LOCATION.
1293 * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
1294 before warning.
1295
3e0de9d1
DP
12962004-04-05 Devang Patel <dpatel@apple.com>
1297
1298 * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
1299 (lhsr<mode>3): ... new name.
1300 (altivec_vsra<VI_char>): Rename to ..
1301 (ashr<mode>3): ... new name.
1302 * config/rs6000/rs6000.c (builtin_description): Rename shift
1303 operations.
1304
bf667275
PB
13052004-04-05 Paolo Bonzini <bonzini@gnu.org>
1306
1307 * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
1308 gen_lowpart_for_combine.
1309 * cse.c (gen_lowpart_if_possible): Move...
1310 * rtlhooks.c (gen_lowpart_if_possible): ... here. Also try
1311 gen_lowpart_SUBREG.
1312 (gen_lowpart_no_emit_general): Use it.
1313
c81739f7
EB
13142005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
1315
1316 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
1317 overriding.
1318
9e9126f3
PB
13192005-04-05 Paolo Bonzini <bonzini@gnu.org>
1320
1321 * system.h: Fix typo.
1322
0d4a78eb
BS
13232005-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
1324
1325 * config/bfin/bfin-modes.def: New file.
1326 * config/bfin/bfin-protos.h: New file.
1327 * config/bfin/bfin.c: New file.
1328 * config/bfin/bfin.h: New file.
1329 * config/bfin/bfin.md: New file.
1330 * config/bfin/bfin.opt: New file.
1331 * config/bfin/crti.s: New file.
1332 * config/bfin/crtn.s: New file.
1333 * config/bfin/elf.h: New file.
1334 * config/bfin/lib1funcs.asm: New file.
1335 * config/bfin/predicates.md: New file.
1336 * config/bfin/t-bfin: New file.
1337 * config/bfin/t-bfin-elf: New file.
1338 * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
1339 Document new attributes.
1340 (interrupt, interrupt_handler, saveall): Update documentation for
1341 these attributes.
1342 * doc/install.texi (Specific): Add entry for the Blackfin.
1343 * doc/invoke.texi (Blackfin Options): New section.
1344 * doc/md.texi (Blackfin family): New section to document constraints.
1345 * config.gcc: Add bfin*-* and bfin*-elf configurations.
1346
1de2bc2a
OH
13472005-04-05 Olivier Hainque <hainque@adacore.com>
1348
1349 * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
1350 match what the system unwinder expects.
1351 * config/mips/mips.c (mips_frame_set): If we're saving the return
1352 address register and the dwarf return address column number differs
1353 from the hard register number, adjust the note reg to refer to the
1354 former.
1355
13dd556c
RS
13562004-04-05 Richard Sandiford <rsandifo@redhat.com>
1357
1358 * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
1359 * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
1360 (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1361 (processor_type): New enum.
1362 (mn10300_processor): New variable.
1363 (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
1364 (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
1365 * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
1366 (PROCESSOR_DEFAULT): New macro.
1367 * config/mn10300/mn10300.c (mn10300_processor): New variable.
1368 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1369 (mn10300_handle_option, mn10300_override_options): New functions.
1370 * config/mn10300/mn10300.opt: New file.
1371
c4cdbeb4 13722005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
eb232f4e 1373 Sebastian Pop <sebastian.pop@cri.ensmp.fr>
c4cdbeb4
EB
1374
1375 PR tree-optimization/19903
1376 * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
1377 that don't fit in their type after conversion.
1378
d8b42d06 13792005-04-05 Uros Bizjak <uros@kss-loka.si>
c9d3aede
UB
1380
1381 PR target/20421
1382 * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
1383 (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
1384 Allocate local stack slots here. Set ix86_optimize_mode_switching.
1385 flag here. Implement using define_insn_and_split.
1386 (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
1387 (frndintxf2_mask_pm_i387): New insn patterns.
1388 (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
1389 Do not set ix86_optimize_mode_switching flag.
1390 (ceilsf2, ceildf2, ceilxf2): Same.
1391 (btruncsf2, btruncdf2, btruncxf2): Same.
1392 (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
1393
3ce9c824
ILT
13942005-04-05 Ian Lance Taylor <ian@airs.com>
1395
1396 PR debug/9963
1397 * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
1398 i386_pe_record_external_function.
1399 (i386_pe_record_external_function): Update declaration.
1400 * config/i386/winnt.c (struct extern_list): Add decl field.
1401 (i386_pe_record_external_function): Add decl parameter.
1402 (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
1403 identifier.
1404 * config/i386/i386-protos.h (i386_pe_record_external_function):
1405 Update declaration.
1406
41b6a5e2
KH
14072005-04-05 Kazu Hirata <kazu@cs.umass.edu>
1408
1409 * config/m68k/m68k-protos.h: Add a prototype for
1410 valid_dbcc_comparison_p_2.
1411 * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
1412 extend_operator, const_uint32_operand, const_sint32_operand,
1413 general_src_operand, nonimmediate_src_operand,
1414 memory_src_operand, post_inc_operand, pre_dec_operand,
1415 pcrel_address): Move to predicates to predicates.md.
1416 * config/m68k/m68k.h (PREDICATE_CODES): Remove.
1417 * config/m68k/m68k.md: Include predicates.md.
1418 * config/m68k/predicates.md: New.
1419
acaa3bf7
RS
14202005-04-04 Roger Sayle <roger@eyesopen.com>
1421
1422 * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
1423
1424 * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
1425
604f5adf
ILT
14262005-04-04 Ian Lance Taylor <ian@airs.com>
1427
1428 * c-typeck.c (struct c_switch): Rename switch_stmt field to
1429 switch_expr.
1430 (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
1431 (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
1432 (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
1433 Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
1434 * c-common.c (c_do_switch_warnings_1): New static function broken
1435 out of c_do_switch_warnings.
1436 (c_do_switch_warnings): Call c_do_switch_warnings_1.
1437 (c_do_switch_expr_warnings): New function.
1438 * c-common.h (c_do_switch_expr_warnings): Declare.
1439
f9013075
DE
14402005-04-04 David Edelsohn <edelsohn@gnu.org>
1441 Daniel Jacobowitz <dan@codesourcery.com>
1442
1443 * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
1444 trapping divide.
1445 * rtlanal.c (may_trap_p): Same.
1446
57e921bc
DJ
14472005-04-04 Dale Johannesen <dalej@apple.com>
1448
1449 * ChangeLog: remove reference to ChangeLog.12.
1450
04539954
HPN
14512005-04-05 Hans-Peter Nilsson <hp@axis.com>
1452
1453 CRIS epilogue as RTL.
1454 * config/cris/cris.md: Change all 0 in unspec 0 to
1455 CRIS_UNSPEC_PLT.
eb232f4e 1456 (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
04539954
HPN
1457 ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
1458 patterns.
1459 ("return"): Change to define_expand. Call cris_expand_return for
1460 actual expansion.
1461 ("*return_expanded"): New pattern.
1462 ("epilogue"): New define_expand.
1463 * config/cris/cris.h (PREDICATE_CODES): Add
1464 cris_load_multiple_op.
1465 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
1466 type.
1467 (enum cris_retinsn_type): New.
1468 (struct machine_function): New member return_type.
1469 (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
1470 (cris_target_asm_function_epilogue): Remove, moving RTLified
1471 contents to...
1472 (cris_expand_epilogue): New function.
1473 (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
1474 (cris_gen_movem_load, cris_load_multiple_op)
1475 (cris_return_address_on_stack_for_return, cris_expand_return): New
1476 functions.
1477 (cris_target_asm_function_prologue)
1478 (cris_initial_frame_pointer_offset): Call
1479 cris_reg_saved_in_regsave_area instead of complicated expression.
1480 Call cris_return_address_on_stack instead of an expression.
1481 (cris_print_operand) <case 'o', case 'O'>: New cases.
1482 (cris_return_address_on_stack): Change return-type to bool.
1483 (cris_simple_epilogue): Ditto. Return false if registers are
1484 saved.
1485 * config/cris/cris-protos.h (cris_simple_epilogue)
1486 (cris_return_address_on_stack): Adjust prototype return type.
1487 (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
1488 (cris_return_address_on_stack_for_return): New prototypes.
1489
71294e1e
KH
14902005-04-04 Kazu Hirata <kazu@cs.umass.edu>
1491
1492 * config/frv/frv.h (PREDICATE_CODES): Add CONST to
1493 gpr_or_int12_operand.
1494
6d26dc3b
KH
1495 * config/frv/frv-protos.h: Add a prototype to
1496 frv_legitimate_memory_operand and frv_const_unspec_p.
1497 (frv_unspec): Move from frv.c.
1498 * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
1499 (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
1500 (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
1501 gpr_or_fpr_operand, gpr_or_int12_operand,
1502 gpr_fpr_or_int12_operand, fpr_or_int6_operand,
1503 gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
1504 int6_operand, int5_operand, uint5_operand, uint4_operand,
1505 uint1_operand, int_2word_operand, uint16_operand,
1506 upper_int16_operand, integer_register_operand,
1507 gpr_no_subreg_operand, fpr_operand, even_reg_operand,
1508 odd_reg_operand, even_gpr_operand, odd_gpr_operand,
1509 quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
1510 dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
1511 move_destination_operand, movcc_fp_destination_operand,
1512 frv_function_symbol_referenced_p, move_source_operand,
1513 condexec_dest_operand, condexec_source_operand,
1514 reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
1515 const_unspec_operand, gpr_or_memory_operand,
1516 gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
1517 icc_operand, fcc_operand, cc_operand, icr_operand,
1518 fcr_operand, cr_operand, call_operand, sibcall_operand,
1519 symbolic_operand, relational_operator,
1520 integer_relational_operator, float_relational_operator,
1521 ccr_eqne_operator, minmax_operator,
1522 condexec_si_binary_operator, condexec_si_media_operator,
1523 condexec_si_divide_operator, condexec_si_unary_operator,
1524 condexec_sf_conv_operator, condexec_sf_add_operator,
1525 condexec_memory_operand, intop_compare_operator, acc_operand,
1526 even_acc_operand, quad_acc_operand, accg_operand: Move to
1527 predicates.md.
1528 * config/frv/frv.h (PREDICATE_CODES): Remove.
1529 * config/frv/frv.md: Include predicates.md.
1530 * config/frv/predicates.md: New.
1531
39b4020c
RS
15322004-04-04 Richard Sandiford <rsandifo@redhat.com>
1533
ac69316a 1534 PR target/19537
39b4020c
RS
1535 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
1536 * tree-ssa-loop-ivopts.c: Include langhooks.h.
1537 (add_standard_iv_candidates_for_size): New function, extracting code
1538 from add_standard_iv_candidates and parameterizing it by type size.
1539 (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
1540
251e2ff2
RS
15412004-04-04 Richard Sandiford <rsandifo@redhat.com>
1542
1543 * system.h (GCOV_SIZE_TYPE): Unposion.
1544 * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
1545 (GCOV_TYPE_SIZE): ...this new macro.
1546 * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
1547 * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
1548 (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
1549 (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
1550 (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
1551 instead of unsigned_intSI_type_node.
1552 * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
1553 (rtl_gen_one_value_profiler_no_edge_manipulation)
1554 (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
1555 * value-prof.c: Include coverage.h.
1556
b89361c6
DB
15572005-04-02 Daniel Berlin <dberlin@dberlin.org>
1558 Diego Novillo <dnovillo@redhat.com>
1559
1560 Fix PR tree-optimization/20703
1561 Fix PR tree-optimization/20725
1562
1563 * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
1564 (create_expression_by_pieces): Ditto.
1565 (valid_in_set): Ditto. Also handle tcc_declaration.
1566 (find_or_generate_expression): Handle comparison class.
1567 (insert_into_preds_of_block): Ditto.
1568 (insert_aux): Ditto.
1569 (create_value_expr_from): Handle comparison class, recursively
1570 handle reference nodes.
1571 (compute_avail): Handle comparison classes, rewrite a little cleaner.
1572 (execute_pre): Fix spacing.
1573 (do_fre): Renamed to execute_fre.
1574
d4e1591f
EB
15752005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1576
1577 * doc/invoke.texi (SPARC options): Document that
1578 -mlittle-endian is not supported on Linux either.
1579
6d6f2d08
EB
15802005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1581
1582 PR target/4198
1583 PR target/12027
1584 * config.gcc (Obsolete configurations): Remove
92e9e0ca 1585 sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
6d6f2d08
EB
1586 (sparclite-*-coff*): Delete.
1587 (sparclite-*-elf*): Likewise.
1588 (sparc86x-*-elf*): Likewise.
1589 (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
1590 * config/sparc/lite.h: Delete.
1591 * config/sparc/litecoff.h: Likewise.
1592 * config/sparc/liteelf.h: Likewise.
1593 * config/sparc/sp86x-elf.h: Likewise.
1594 * config/sparc/t-sparclite: Likewise.
1595 * config/sparc/t-sp86x: Likewise.
1596
15972005-04-04 Adrian Straetling <straetling@de.ibm.com>
0bfc3f69
AS
1598
1599 * config/s390/s390-protos.h: (s390_comparison,
1600 s390_alc_comparison, s390_slb_comparison, const0_operand,
1601 consttable_operand, larl_operand, s_operand,
1602 shift_count_operand, bras_sym_operand, load_multiple_operation,
1603 store_multiple_operation, s390_plus_operand): Remove prototypes.
1604 (s390_legitimate_address_without_index_p): New prototype.
1605 * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
1606 to s390.h.
1607 (s390_comparison, s390_alc_comparison, s390_slb_comparison,
1608 const0_operand, consttable_operand, larl_operand, s_operand,
1609 shift_count_operand, bras_sym_operand, load_multiple_operation,
1610 store_multiple_operation, s390_plus_operand): Move to
1611 predicates.md.
1612 (check_mode): Remove.
1613 (s390_branch_condition_mask): Remove 'static'. Move prototype to
1614 s390-protos.h.
1615 (s390_legitimate_address_without_index_p): New.
1616 * config/s390/s390.h (PREDICATE_CODES): Remove.
1617 * config/s390/s390.md: Include predicates.md.
1618 * config/s390/predicates.md: New.
1619
5e77eb53
EB
16202005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1621
1622 PR target/20446
1623 * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
1624 * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
1625 (NEED_INDICATE_EXEC_STACK): Define to 1.
1626 * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
1627 (NEED_INDICATE_EXEC_STACK): Define to 1.
1628 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
1629 (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
1630 (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
1631 (pic_helper_emitted_p): New global.
1632 (emit_pic_helper): New function extracted from...
1633 (load_pic_register): ...here. Add 'delay_pic_helper' parameter.
1634 Do not call emit_pic_helper if delay_pic_helper is true.
1635 (sparc_expand_prologue): Pass 'false' to load_pic_register.
1636 (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
1637 (sparc_file_end): New function.
1638
54d58eaf
KH
16392005-04-04 Kazu Hirata <kazu@cs.umass.edu>
1640
1641 * config/mcore/mcore-protos.h: Remove the prototypes for
1642 mcore_arith_reg_operand, mcore_general_movsrc_operand,
1643 mcore_general_movdst_operand, mcore_reload_operand,
1644 mcore_arith_J_operand, mcore_arith_K_operand,
1645 mcore_arith_K_operand_not_0, mcore_arith_M_operand,
1646 mcore_arith_K_S_operand, mcore_arith_imm_operand,
1647 mcore_arith_any_imm_operand, mcore_arith_O_operand,
1648 mcore_literal_K_operand, mcore_addsub_operand,
1649 mcore_compare_operand, mcore_load_multiple_operation,
1650 mcore_store_multiple_operation, mcore_call_address_operand.
1651 Add a prototype for const_ok_for_mcore.
1652 * config/mcore/mcore.c (mcore_call_address_operand,
1653 mcore_general_movsrc_operand, mcore_general_movdst_operand,
1654 mcore_arith_reg_operand, mcore_reload_operand,
1655 mcore_arith_J_operand, mcore_arith_K_operand,
1656 mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
1657 mcore_arith_M_operand, mcore_arith_imm_operand,
1658 mcore_arith_any_imm_operand, mcore_arith_O_operand,
1659 mcore_literal_K_operand, mcore_addsub_operand,
1660 mcore_compare_operand, mcore_load_multiple_operation,
1661 mcore_store_multiple_operation): Move to predicates.md.
1662 (const_ok_for_mcore): Export.
1663 * config/mcore/mcore.h (PREDICATE_CODES): Remove.
1664 * config/mcore/mcore.md: Include predicates.md.
1665 * config/mcore/predicates.md: New.
1666
105d7df6
KH
1667 * config/mcore/predicates.md: Fix a comment typo.
1668
ed0e512a
AK
16692005-04-04 Andreas Krebbel <krebbel1@de.ibm.com>
1670 Adrian Straetling <straetling@de.ibm.com>
1671
1672 * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
1673 * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
1674 * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
1675 attribute.
1676 ("imul"): Removed from "type" attribute.
1677 ("*muldi3_sign", "muldi3"): Changed type to imuldi.
1678 ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
1679 Changed type to imulsi.
1680 ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
1681
78fb8038
RS
16822005-04-04 Richard Sandiford <rsandifo@redhat.com>
1683
1684 * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
1685 (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
1686 (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
1687 (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
1688 (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
1689 (TARGET_SWITCHES, mcore_stack_increment_string)
1690 (TARGET_OPTIONS): Delete.
1691 (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
1692 than *_BIT constants.
1693 (TARGET_8ALIGN): #undef old definition before redefining to 1.
1694 * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
1695 (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
1696 (mcore_override_options): Delete mcore_stack_increment code.
1697 Change use of M340_BIT to MASK_M340.
1698 * config/mcore/mcore.opt: New file.
1699
09c3c5dc
ILT
17002005-04-04 Ian Lance Taylor <ian@airs.com>
1701
1702 * config/arm/arm.c (replace_symbols_in_block): Remove static
1703 function.
1704
f17178cf
KH
17052005-04-04 Kazu Hirata <kazu@cs.umass.edu>
1706
1707 * config/fr30/fr30-protos.h: Remove the prototypes for
1708 stack_add_operand, add_immediate_operand,
1709 high_register_operand, low_register_operand, call_operand,
1710 di_operand, and nonimmediate_di_operand.
1711 * config/fr30/fr30.c (stack_add_operand,
1712 add_immediate_operand, high_register_operand,
1713 low_register_operand, call_operand, di_operand,
1714 nonimmediate_di_operand): Move to predicates.md.
1715 * config/fr30/fr30.h (PREDICATE_CODES): Remove.
1716 * config/fr30/fr30.md: Include predicates.md.
1717 * config/fr30/predicates.md: New.
1718
a9563ea3
KH
1719 * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
1720 LABEL_REF to mcore_general_movsrc_operand. Add SYMBOL_REF to
1721 mcore_call_address_operand.
1722
48c961ad
KH
1723 * config/sh/sh.h (PREDICATE_CODES): Add CONST to
1724 general_movsrc_operand.
1725
8785e81a
AM
17262005-04-04 Alan Modra <amodra@bigpond.net.au>
1727
1728 * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
1729 after freeing.
1730
04d8b819
RE
17312005-04-04 Richard Earnshaw <richard.earnshaw@arm.com>
1732
1733 PR target/14812
1734 * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
1735 a negated value.
1736
4b8d544b
JJ
17372005-04-04 Richard Henderson <rth@redhat.com>
1738 Jakub Jelinek <jakub@redhat.com>
1739
1740 PR rtl-optimization/16104
1741 * fold-const.c (fold_unary): Fix folding of vector conversions.
1742
d45d2353
RS
17432005-04-04 Richard Sandiford <rsandifo@redhat.com>
1744
1745 * config.gcc (xstormy16-*-elf): Set extra_options.
1746 * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
1747 * config/stormy16/stormy16.opt: New file.
1748
06ed4795
RS
17492005-04-04 Richard Sandiford <rsandifo@redhat.com>
1750
1751 * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
1752 (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
1753 (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
1754 (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
1755 (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
1756 (TARGET_UNIX_ASM): Delete.
1757 (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
1758 * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
1759 * config/pdp11/pdp11.c (pdp11_handle_option): New function.
1760 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1761 * config/pdp11/pdp11.opt: New file.
1762
283da5df
RS
17632005-04-03 Roger Sayle <roger@eyesopen.com>
1764 Alexandre Oliva <aoliva@redhat.com>
1765
1766 PR c++/19199
1767 * fold-const.c (non_lvalue): Split tests into...
1768 (maybe_lvalue_p): New function.
1769 (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
1770 C++ front-end prior to lowering into gimple form.
1771
e905ac64
KG
17722005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1773
1774 * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
1775 BUILT_IN_STRNCASECMP): New.
1776 * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
1777 and strndup.
1778
1ac3e311
RE
17792005-04-03 Richard Earnshaw <richard.earnshaw@arm.com>
1780
1781 PR target/14812
1782 * arm.md (addsi3_compare0_for_combiner): Delete.
1783 (addsi3_compare0_scratch_for_combiner): Delete.
1784 (cmpsi_neg_shiftsi): Delete.
1785 (compare_negsi_si): New pattern.
1786 (cmpsi_negshiftsi_si): New pattern.
1787 (negated_cbranchsi4): Restrict to equality_operator.
1788
1789 * arm.md (movhi_insn_arch4): delete trailing white space from assembler
1790 template.
1791
315682fb
KH
17922005-04-03 Kazu Hirata <kazu@cs.umass.edu>
1793
1794 * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
1795 Fix comment typos.
1796
e5080aa6
KH
1797 * doc/install.texi: Fix a typo.
1798
00b28cb0
SB
17992005-04-03 Steven Bosscher <stevenb@suse.de>
1800
1801 PR middle-end/20648
1802 * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
1803 a computed goto if the edge to the computed goto block has
1804 incoming abnormal edges. Clarify how the function works.
1805
e16acfcd
NS
18062005-04-03 Nathan Sidwell <nathan@codesourcery.com>
1807
1808 * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
1809 * passes.c (open_dump_file, rest_of_handle_final): Likewise.
1810 * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
1811 hash_scan_set, reg_set_between_after_reload_p,
1812 reg_used_between_after_reload_p, get_avail_load_store_reg,
1813 eliminate_partially_redundant_load): Likewise.
1814 * postreload.c (reload_cse_simplify_set,
1815 reload_combine_note_use): Likewise.
1816 * predict.c (predict_insn, expected_value_to_br_prob,
1817 propagate_freq, expensive_function_p): Likewise.
1818 * print-rtl.c (print_rtx): Likewise.
1819 * profile.c (instrument_edges, instrument_values,
1820 compute_branch_probabilities, branch_prob, union_groups,
1821 tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
1822 * protoize.c (in_system_include_dir, file_could_be_converted,
1823 file_normally_convertible, gen_aux_info_file, seek_to_line,
1824 do_cleaning): Likewise.
1825 * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
1826 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1827 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1828
f73d5666
MH
18292005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1830
1831 * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
1832 * modulo-sched.c (undo_replace_buff_elem): New structure.
1833 (kernel_number_of_cycles, ps_unschedule_node,
1834 undo_generate_reg_moves,free_undo_replace_buff,
1835 undo_permute_partial_schedule, loop_single_full_bb_p,
1836 SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
1837 build_loops_structure, get_sched_window): New.
1838 (generate_reg_moves): Return undo_replace_buff_elem and other
1839 fixes.
1840 (generate_prolog_epilog): Remove old loop versioning.
1841 (sms_schedule): Use loop information and loop_version.
1842 (sms_schedule_by_order): Split part of it to get_sched_window.
1843 * passes.c (rest_of_handle_sms): call cfg_layout_initialize
1844 cfg_layout_finalize and free_dominance_info before/after SMS.
1845
1cb7dfc3
MH
18462005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1847
1848 * cfghooks.c (lv_flush_pending_stmts,
1849 cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
1850 lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
1851 * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
1852 lv_add_condition_to_bb,
1853 lv_adjust_loop_header_phi, extract_cond_bb_edges,
1854 flush_pending_stmts): New in cfg_hooks structure.
1855 (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
1856 extract_cond_bb_edges, lv_adjust_loop_header_phi,
1857 lv_add_condition_to_bb): New declarations.
1858 * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
1859 bool.
1860 (loop_version): Declare.
1861 * cfgloopmanip.c (cfghooks.h): Include.
1862 (duplicate_loop_to_header_edge): Change return type to bool.
1863 (loop_version, lv_adjust_loop_entry_edge): Move here.
1864 * cfgrtl.c (cfgloop.h): Include.
1865 (rtl_verify_flow_info_1): Fix.
1866 (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
1867 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
1868 initialization.
1869 * tree-cfg.c (tree_lv_adjust_loop_header_phi,
1870 tree_lv_add_condition_to_bb): New.
1871 (tree_cfg_hooks): Add new hooks to initialization.
1872 * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
1873 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
1874
c8db7af2
KH
18752005-04-03 Kazu Hirata <kazu@cs.umass.edu>
1876
1877 * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
1878 xstormy16_below100_or_register,
1879 xstormy16_splittable_below100_or_register, and
1880 nonimmediate_nonstack_operand.
1881
25af5506
KH
1882 * config/stormy16/stormy16-protos.h: Remove the prototypes for
1883 xstormy16_ineqsi_operator, equality_operator,
1884 inequality_operator, shift_operator,
1885 xstormy16_below100_operand, xstormy16_below100_or_register,
1886 xstormy16_splittable_below100_or_register,
1887 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
1888 * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
1889 equality_operator, inequality_operator,
1890 xstormy16_below100_operand, xstormy16_below100_or_register,
1891 xstormy16_splittable_below100_or_register,
1892 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
1893 nonimmediate_nonstack_operand, shift_operator): Move to
1894 predicates.md.
1895 * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
1896 * config/stormy16/stormy16.md: Include predicates.md.
1897 * config/stormy16/predicates.md: New.
1898
80ad92e9
KH
18992005-04-02 Kazu Hirata <kazu@cs.umass.edu>
1900
1901 * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
1902 small_int, large_int, reg_or_0_operand, simple_memory_operand,
1903 equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
1904 move_operand, power_of_2_operand): Move to predicates.md.
1905 * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
1906 PREDICATE_CODE): Remove.
1907 * config/iq2000/iq2000.md: Include predicates.md.
1908 * config/iq2000/predicates.md: New.
1909
43849cfa
RS
19102005-04-02 Richard Sandiford <rsandifo@redhat.com>
1911
1912 * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
1913 (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
1914 (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
1915 (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
1916 (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
1917 (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
1918 (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
1919 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1920 (TARGET_M68HC11): Delete.
1921 (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
1922 * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
1923 * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
1924 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1925 (nb_soft_regs): Delete.
1926 (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
1927 (m68hc11_override_options): Remove the code that caters for MASK_M6811
1928 and MASK_M6812 being set simultaneously. Change the code that sets
1929 the default m68hc11_soft_reg_count to use integers instead of strings.
1930 (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
1931 m68hc11_soft_reg_count (which now has an int type) as the number
1932 of soft registers.
1933 * config/m68hc11/m68hc11.opt: New file.
1934
8c1d21e6
KH
19352005-04-02 Kazu Hirata <kazu@cs.umass.edu>
1936
1937 * config/fr30/fr30.h (PREDICATE_CODES): Remove
1938 fp_displacement_operand, sp_displacement_operand.
1939
577e5d76
KH
1940 * config/m68hc11/m68hc11-protos.h: Add a prototype for
1941 m68hcc_auto_inc_p.
1942 Remove the prototypes for tst_operand, cmp_operand,
1943 stack_register_operand, d_register_operand,
1944 hard_addr_reg_operand, splitable_operand,
1945 m68hc11_logical_operator, m68hc11_arith_operator,
1946 m68hc11_non_shift_operator, m68hc11_shift_operator,
1947 m68hc11_unary_operator, m68hc11_eq_compare_operator,
1948 non_push_operand, hard_reg_operand, and
1949 reg_or_some_mem_operand.
1950 * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
1951 extern.
1952 (tst_operand, cmp_operand, non_push_operand,
1953 splitable_operand, reg_or_some_mem_operand,
1954 stack_register_operand, d_register_operand,
1955 hard_addr_reg_operand, hard_reg_operand,
1956 m68hc11_eq_compare_operator, m68hc11_logical_operator,
1957 m68hc11_arith_operator, m68hc11_non_shift_operator,
1958 m68hc11_shift_operator, m68hc11_unary_operator): Move to
1959 predicates.md.
1960 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
1961 * config/m68hc11/m68hc11.md: Include predicates.md.
1962 * config/m68hc11/predicates.md: New.
1963
596b98ce
AO
19642005-04-02 Alexandre Oliva <aoliva@redhat.com>
1965
1966 PR debug/19345
1967 * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
1968 change checked in along with 2005-03-03's patch for debug/20253.
1969 * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
1970 (remap_decl): Insert type decl in map earlier.
1971
e18d4a19
AO
19722005-04-02 Alexandre Oliva <aoliva@redhat.com>
1973
1974 PR tree-optimization/20640
1975 * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
1976 post-dominator if it has phi nodes.
1977 (eliminate_unnecessary_stmts): Remove dead phis in all blocks
1978 before dead statements.
1979
bbe37912
AO
19802005-04-02 Alexandre Oliva <aoliva@redhat.com>
1981
1982 PR middle-end/20491
1983 * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
1984
9f05ff0a
AO
19852005-04-02 Alexandre Oliva <aoliva@redhat.com>
1986
1987 PR rtl-optimization/20290
1988 * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
1989 in every iteration if the entry point is the exit test.
1990
3a5afdfc
HPN
19912005-04-02 Hans-Peter Nilsson <hp@axis.com>
1992
1993 * config/cris/cris.md (attribute "length"): Define.
1994
5f89fef6
GK
19952005-04-02 Geoffrey Keating <geoffk@apple.com>
1996
b6d2248c
GK
1997 * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
1998 (word_offset_memref_operand): New.
1999 * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
2000 (indexed_or_indirect_operand): Delete.
2001 * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
2002 (indexed_or_indirect_operand): Delete.
2003
807ecedf
GK
2004 * config/rs6000/t-darwin8: Comment out ppc64 multilib.
2005
51b75924
GK
2006 PR 20650
2007 * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
2008 a register.
2009
5f89fef6
GK
2010 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
2011 * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
2012
821bde61
JBG
20132005-04-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2014
2015 * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
2016
054e88a8
ILT
20172005-04-01 Ian Lance Taylor <ian@airs.com>
2018
2019 * gcc.c: Don't include <sys/resource.h> or declare getrusage.
2020 (rus, prus): Remove static variables.
2021 (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
2022 (process_command): Permit report_times and use_pipes together.
2023
2c83be0c
JM
20242005-04-01 Joseph S. Myers <joseph@codesourcery.com>
2025
2026 * c-decl.c (validate_proto_after_old_defn): Look at
2027 TYPE_MAIN_VARIANT of argument types.
2028
f972113f
PB
20292005-04-01 Paul Brook <paul@codesourcery.com>
2030
2031 * config/arm/arm.c (thumb_call_via_label): Include space for SP.
2032 (arm_output_function_epilogue): Allow call_via_SP.
2033 (thumb_call_via_reg, arm_file_end): Ditto.
2034 * config/arm/arm.h (struct machine_function): Include space for SP.
2035 (thumb_call_via_label): Update declaration.
2036
a2785739
ILT
20372005-04-01 Ian Lance Taylor <ian@airs.com>
2038
2039 * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
2040 doing a peephole optimization, once again put any notes in the
2041 proper position.
2042
830113fd
KH
20432005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2044
2045 * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
2046
cccd217d
NS
20472005-04-01 Nathan Sidwell <nathan@codesourcery.com>
2048
b5e624c6
NS
2049 * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
2050 (block_alloc, find_free_reg): Likewise.
2051 * loop-doloop.c (doloop_modify): Likewise.
2052 * loop-invariant.c (record_use): Likewise.
2053 * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
2054 get_iv_value, canon_condition, eliminate_implied_condition,
2055 eliminate_implied_condition, simplify_using_initial_values,
2056 shorten_into_mode, canonicalize_iv_subregs,
2057 iv_number_of_iterations): Likewise.
2058 * loop-unroll.c (expand_var_during_unrolling): Likewise.
2059 * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
2060 unswitch_loop): Likewise.
2061 * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
2062 move_movables, replace_call_address, find_and_verify_loops,
2063 rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
2064 record_giv, final_giv_value, general_induction_var,
2065 simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
2066 loop_giv_dump): Likewise.
2067
cccd217d
NS
2068 * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
2069 GCOV_CHECK_WRITING): Remove.
2070 (gcov_position, gcov_rewrite): Use gcc_assert.
2071 * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
2072 gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
2073 * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
2074 gcc_assert.
2075
3cf11075
KH
20762005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2077
2078 * tree-inline.c: Fix a typo.
2079
cdce5c16
NS
20802005-04-01 Nathan Sidwell <nathan@codesourcery.com>
2081
2082 * configure.ac (enable-checking): Explicitly set all variables for
2083 collective switch values. Alphabetize variables. Rename
2084 ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as
2085 synonym for 'no'.
2086 * doc/install.texi (enable-checking): Update documentation.
2087 * configure: Rebuilt.
2088
a7818b66
KH
20892005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2090
2091 * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
2092 possible.
2093
15b5c4c1
RE
20942005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
2095
2096 * arm.c (adjacent_mem_locations): Reject volatile memory refs.
2097 Also reject cases where this pattern will cause load delay stalls
2098 unless optimizing for size and it will produce a shorter sequence.
2099 * arm.md (arith_adjacent_mem): Make better use of ldm addressing
2100 variants to avoid pre-adjusting the base when possible.
2101
7fac69e5
RE
21022005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
2103
2104 * arm.md (minmax_arithsi): Reject all eliminable registers, not just
2105 the frame and argument pointers.
2106 (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
2107 (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
2108 (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
2109 (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
2110 (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
2111 (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
2112
a20f6f00
DS
21132005-04-01 Danny Smith <dannysmith@users.sourceforge.net>
2114
2115 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
2116 with entry for selectany attribute.
2117 * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
2118 Declare.
2119 * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
2120 (i386_pe_asm_named_section): Handle sections generated by
2121 selectany attribute.
2122 * doc/extend.texi (selectany): Document attribute.
2123
7c93c2cc
PB
21242005-04-01 Paolo Bonzini <bonzini@gnu.org>
2125 Jan Hubicka <jh@suse.cz>
2126
2127 * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
2128 to fix addresses involving EBP and ESP.
2129 (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
2130 for SUBREGed registers.
2131 (legitimate_address_p): Accept SUBREGed registers.
2132
a288c5cd
JJ
21332005-04-01 Jakub Jelinek <jakub@redhat.com>
2134
2135 PR c++/19406
2136 * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
2137 (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
2138 for FIELD_DECLs.
2139
38b974a6
KH
21402005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2141
2142 * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
2143
21442005-04-01 James E Wilson <wilson@specifixinc.com>
77270e03
JW
2145
2146 PR c++/20505
2147 * dwarf2out.c (rtl_for_decl_init): New function.
2148 (rtl_for_decl_location): Extracted from here.
2149 (tree_add_const_value_attribute): Call rtl_for_decl_init and
2150 add_const_value_attribute. Delete initializer_constant_valid_p call.
2151
aabcd309
KH
21522005-04-01 Kazu Hirata <kazu@cs.umass.edu>
2153
2154 * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
2155 lambda-code.c, loop.c, machmode.def, mips-tfile.c,
2156 modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
2157 tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
2158 config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
2159 config/i386/i386.md, config/rs6000/predicates.md,
2160 config/rs6000/rs6000.c, config/s390/fixdfdi.h,
2161 config/s390/s390.c, config/stormy16/stormy16.c,
2162 config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
2163 typos.
2164
0223e4f5
JM
21652005-04-01 Joseph S. Myers <joseph@codesourcery.com>
2166
2167 PR c/17855
2168 * gimplify.c (gimplify_expr): Create a temporary for lvalue
2169 COND_EXPR and CALL_EXPR.
2170
96ddf8ef
VM
21712005-03-31 Vladimir Makarov <vmakarov@redhat.com>
2172
2173 PR target/20632
2174 * genautomata.c (first_cycle_unit_presence): Check all alternative
2175 states for unit presence.
2176
2177 * doc/md.texi: Remove remark about impossibility to query unit
2178 presence in non nondeterministic automaton state.
2179
2180 * config/ia64/ia64.c (get_template): Change order of unit querying.
2181
b08ee07e
KH
21822005-03-31 Kazu Hirata <kazu@cs.umass.edu>
2183
2184 * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
2185 obsolete comment.
2186
2ff3e325
ZD
21872005-03-31 Zdenek Dvorak <dvorakz@suse.cz>
2188
2189 * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
2190 flag for edges outside any loops.
2191
0455fecf
JJ
21922005-03-31 Janis Johnson <janis187@us.ibm.com>
2193
2194 * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
2195
27954bdb
KH
21962005-03-31 Kazu Hirata <kazu@cs.umass.edu>
2197
2198 * tree-ssa-alias.c: Follow spelling conventions.
2199 * doc/tree-ssa.texi: Fix a typo.
2200
3f55b339
R
22012005-03-31 J"orn Rennecke <joern.rennecke@st.com>
2202
2203 * postreload-gcse.c: Include target.h.
2204 (gcse_after_reload_main): Return early if we cannot modify jumps.
2205 * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
2206
b4852851
DE
22072005-03-31 David Edelsohn <edelsohn@gnu.org>
2208
2209 * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
2210 expensive operations.
2211
68ec3111
ILT
22122005-03-31 Ian Lance Taylor <ian@airs.com>
2213
2214 * collect2.c (lderrout): New variable.
2215 (collect_exit): Dump ldout to stdout. Dump and unlink lderrout,
2216 if it is set, to stderr.
2217 (handler): Unlink lderrout if it is set.
2218 (dump_file): Add "to" parameter. Change all callers.
2219 (main): Initialize lderrout.
2220 (collect_execute): Add errname parameter. Change all callers.
2221 Rename redir parameter to outname. Never pass
2222 PEX_STDERR_TO_STDOUT to pex_run.
2223 * collect2.h (collect_execute, dump_file): Update declarations.
2224 * tlink.c (tlink_execute): Add errname parameter. Change all
2225 callers.
2226 (do_tlink): Check lderrout as well as ldout.
2227
f7052523
CT
22282005-03-31 Caroline Tice <ctice@apple.com>
2229
2230 * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
2231 (bb-reorder.o): Add errors.h to list of requirements.
2232 (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
2233 profiledbootstrap flags.
2234 * bb-reorder.c (errors.h): Add new include.
2235 (struct bbro_basic_block_data_def): Add new field, in_trace.
2236 (add_unlikely_executed_notes): Remove function.
2237 (mark_bb_for_unlikely_executed_section): Remove function.
2238 (insert_section_boundary_note): New function.
2239 (verify_hot_cold_block_grouping): New function.
2240 (push_to_next_round_p): Remove variables and tests that push all
2241 cold blocks to last round.
2242 (find_traces): Remove code that added extra round of trace finding
2243 when doing partitioning.
2244 (find_traces_1_round) : Remove variable last_round; add code to
2245 update new struct field, in_trace; correct trace_length where it was
2246 incorrect before (after call to copy_bb); change code that pushed all
2247 cold blocks to last round. Instead verify that all blocks going into
2248 a trace belong in the same partition.
2249 (connect_traces): Modify to connect the traces in two passes, if the
2250 function contains both hot and cold blocks. The first pass connects
2251 all the traces for blocks in the partition that the first block in
2252 the function belongs to; the second pass connnects all the traces
2253 containing blocks that belong in the other partition.
2254 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
2255 code that automatically put the first block in a function into the
2256 hot partition if the function had any hot blocks.
2257 (fix_crossing_unconditional_branches): Check number of succ edges
2258 before attempting to get one.
2259 (fix_edges_for_rarely_executed_code): Update comment describing
2260 function.
2261 (reorder_basic_blocks): Add code to initialize new field (in_trace);
2262 remove call to add_unlikely_executed_notes; add call to
2263 verify_hot_cold_block_grouping.
2264 (duplicate_computed_gotos): Don't change computed goto if it's a
2265 crossing edge.
2266 (partition_hot_cold_basic_blocks): Update function comment.
2267 * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
2268 condition.
2269 (try_forward_edges): Likewise.
2270 (merge_blocks_move_predecessor_nojumps): Likewise.
2271 (merge_blocks_move_successor_nojumps): Likewise.
2272 (merge_blocks_move): Likewise.
2273 (try_crossjump_bb): Likewise.
2274 * cfglayout.c (update_unlikely_executed_notes): Remove function.
2275 (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
2276 notes to cold bb's; remove call to update_unlikely_executed_notes.
2277 (duplicate_insn_chain): change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2278 NOTE_INSN_SWITCH_TEXT_SECTIONS.
2279 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
2280 function declaration.
2281 * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
2282 from consideration.
2283 (rtl_can_merge_blocks): Remove redundancy from condition.
2284 (try_redirect_by_replacing_jump): Likewise.
2285 (force_nonfallthru_and_redirect): Remove code for adding
2286 UNLIKELY_EXECUTED_CODE notes to cold bb's.
2287 (commit_one_edge_insertion): Likewise.
2288 (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
2289 * dbxout.c (FORCE_TEXT): Replace function_section with
2290 current_function_section.
2291 (struct dbx_debug_h): Add do_nothing function for new debug_hooks
2292 function, switch_text_section.
2293 (struct xcoff_debug): Likewise.
2294 (dbxout_function_end): Add code to put out label diffs for both
2295 hot and cold sections.
2296 * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
2297 for new debug_hooks funciton, switch_text_section..
2298 * debug.h (struct gcc_debug_hooks): Add new function to debug_hooks,
2299 switch_text_section.
2300 * dwarf2out.c (struct dw_fde_struct): Add five new fields:
2301 dw_fde_hot_section_label, dw_fde_hot_section_end_label,
2302 dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
2303 dw_fde_switched_sections.
2304 (output_call_frame_info): Add test to see if function switches text
2305 sections in the middle; if so, use appropriate extra hot and cold
2306 section labels to compute size deltas for the hot and cold sections.
2307 (dwarf2out_begin_prologue): Add code to initialize new fields in
2308 dw_fde_struct.
2309 (dwarf2out_switch_text_section): New function (invoked through
2310 debug_hook); updates new fields in dw_fde_struct appropriately and
2311 increments separate_line_info_table_in_use.
2312 (dwarf2_debug_hooks): Initialize switch_text_section function to be
2313 dwarf2out_switch_text_section.
2314 (struct var_loc_node): Add new field, section_label.
2315 (output_aranges): Add code to check whether in hot or cold section and
2316 use the appropriate label in calculating deltas.
2317 (output_ranges): Likewise.
2318 (output_line_info): Add code to check which section we're in and
2319 use appropriate hot/cold label.
2320 (add_location_or_constant_value_attribute): Likewise.
2321 (gen_subprogam_die): Modify arange attributes to use correct labels.
2322 (dwarf2out_begin_block): Change call to function_section into call to
2323 current_function_section.
2324 (dwarf2out_end_block): Likewise.
2325 (dwarf2out_source_line): Likewise.
2326 (dwarf2out_var_location): Add code to check whether in hot or cold
2327 section and use the appropriate label.
2328 * except.c (output_function_exception_table): Change call to
2329 function_section into call to current_function_section.
2330 * final.c (profile_function): Likewise.
2331 (scan_ahead_for_unlikely_executed_note): Remove function.
2332 (final_scan_insn): Remove calls to
2333 scan_ahead_for_unlikely_executed_note, and related code for switching
2334 to cold section, except for the single time
2335 NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered; add calls to
2336 debug_hooks->switch_text_sections; replace appropriate calls to
2337 function_section with calls to current_function_section.
2338 * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
2339 test_bb to condition.
2340 (find_if_case_2): Likewise.
2341 * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
2342 NOTE_INSN_SWITCH_TEXT_SECTIONS. Update comment appropriately.
2343 * opts.c (decode_options): Change warning about hot/cold partitioning
2344 with exceptionss to inform (so as not to cause bootstrap failures);
2345 remove warning about partitioning with DWARF debug info.
2346 * output.h (current_function_section): Add new function decl.
2347 (insert_section_boundary_note): Likewise.
2348 (enum in_section): Move this declaration here from varasm.c.
2349 (unlikely_section_label): Likewise.
2350 (unlikely_text_section_name): Likewise.
2351 (last_text_section_name): New global variable.
2352 (last_text_section): Likewise.
2353 (hot_section_label): Likewise.
2354 (hot_section_end_label): Likewise.
2355 (cold_section_end_label): Likewise.
2356 * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
2357 * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
2358 to NOTE_INSN_SWITCH_TEXT_SECTIONS.
2359 * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
2360 insn from consideration.
2361 * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
2362 switch_text_section.
2363 * varasm.c (basic-block.h): Add new include.
2364 (unlikely_section_label_printed): Remove global variable.
2365 (unlikely_section_label): Make global variable not be static any more.
2366 (unlikely_text_section_name): Likewise.
2367 (hot_section_end_label): New global variable (not static)
2368 (first_function_block_is_cold): Likewise.
2369 (hot_section_label): Likewise.
2370 (cold_section_end_label): Likewise..
2371 (last_text_section): New global variable, not static.
2372 (last_text_section_name): New global variable, not static.
2373 (initialize_cold_section_name): New function.
2374 (enum in_section): Move declaration to output.h.
2375 (text_section): Update last_text_section.
2376 (unlikely_text_section): Replace code to determine cold section name
2377 with call to initialize_cold_section_name; Add code to update
2378 last_text_section; remove code for printing out label.
2379 (named_section_real): Add code to update last_text_section and
2380 last_text_section_name as appropriate.
2381 (function_section): Change test for 'unlikely' to depend on
2382 first_function_block_is_cold (moved old test to
00b28cb0 2383 current_function_section).
f7052523
CT
2384 (current_function_section): New function.
2385 (assemble_start_function): Move code that frees
2386 unlikely_text_section_name; initialize hot_section_end_label;
2387 print hot and cold section labels at the start of the function;
2388 set first_function_block_is_cold, if appropriate; initialize l
2389 ast_text_section; add call to insert_section_boundary_note.
2390 (assemble_end_function): Add code to write out hot and cold section
2391 end labels.
2392 *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
2393 switch_text_section.
2394 * config/darwin.c (machopic_select_section): Replace incorrect
2395 function in base_funs; update reloc for cold sections if necessary.
2396 * config/darwin.h (SECTION_FUNCTION): Add code to update
2397 last_text_section if appropriate.
2398 (text_unlikely_section): Remove.
2399 * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
2400 * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
2401 * config/xtensa/xtensa.c (override_options): Turn off hot/cold
2402 partitioning for this architecture.
2403
0992247b
OH
24042005-03-31 Olivier Hainque <hainque@adacore.com>
2405
00b28cb0
SB
2406 * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
2407 defined and non-zero.
0992247b 2408
4e2db7a8
GDR
24092005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2410
2411 PR c++/18644
2412 * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
2413 semantics.
2414
ccbca5e4 24152005-03-31 Alan Modra <amodra@bigpond.net.au>
2767f258 2416
ccbca5e4
AM
2417 PR target/20611
2418 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
2419 label operand. Remove (use (unspec..)). Don't emit a label on
2420 the offset word.
2421 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
2422 generate inline label for load_toc_v4_PIC_1b.
2423 (rs6000_emit_load_toc_table): Likewise.
2767f258 2424
f0d82825
KH
24252005-03-31 Kazu Hirata <kazu@cs.umass.edu>
2426
2427 * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
2428 ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
2429
ae7f3734
DP
24302005-03-29 Devang Patel <dpatel@apple.com>
2431
f0d82825
KH
2432 * tree-sra.c (decide_block_copy): Disable scalarization of
2433 sub-elements.
ae7f3734 2434
8df673d7
SH
24352005-03-30 Stuart Hastings <stuart@apple.com>
2436 Dale Johannesen <dalej@apple.com>
2437
2438 * Makefile.in (print-tree.o): Depend on tree-iterator.h.
2439 * print-tree.c (print_node): Add case STATEMENT_LIST.
2440
a8e04fe6
AM
24412005-03-31 Alan Modra <amodra@bigpond.net.au>
2442
2443 * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
2444 (powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
2445 (powerpc-*-linux*): Build a biarch compiler when --enable-targets
2446 is given with "powerpc64*" or "all", or when --with-cpu chooses
2447 a 64-bit cpu.
2448
fdfa76bd
JW
24492005-03-30 James E. Wilson <wilson@specifixinc.com>
2450
2451 PR debug/20268
2452 * dwarf2out.c (add_high_low_attributes): New function, extracted from
2453 gen_lexical_block_die.
2454 (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
2455
cd9c7bd2
JH
24562005-03-31 Jan Hubicka <jh@suse.cz>
2457
2458 2004-11-02 Jan Hubicka <jh@suse.cz>
2459
2460 * cgraph.c (cgraph_varpool_node_name): New function.
2461 (dump_cgraph_varpool_node): New function.
2462 (dump_varpool): New function.
2463 * cgraphunit.c (cgraph_optimize): Dump varpool.
2464
2465 2004-10-16 Jan Hubicka <jh@suse.cz>
2466
2467 * cgraph.c (decide_is_variable_needed): New function.
2468 (cgraph_varpool_finalize_decl): Use it.
2469 * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
2470 unit-at-a-time.
2471 * final.c (output_addr_const): Do not call mark_referenced.
2472 * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
2473 always go via cgraph.
2474 * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
2475 (check_global_declarations): Ifdef out code clearing DECL_RTL.
2476 * tree-optimize.c (execute_inline): Mark functions called.
2477 * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
2478
2479 2004-10-11 Jan Hubicka <jh@suse.cz>
2480
2481 * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
2482 (cgraph_varpool_last_needed_node): New static variable.
2483 (enqueue_needed_varpool_node): Break out from ...; add items to the
2484 end of queue; update first pointers.
2485 (cgraph_varpool_mark_needed_node): ... here.
2486 (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
2487 (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
2488 * cgraph.h (cgraph_varpool_node): Add analyzed field.
2489 (cgraph_varpool_first_unanalyzed_node): Declare.
2490 * cgraphunit.c: Include output.h.
2491 (cgraph_varpool_analyze_pending_decls): New function.
2492 (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
2493 for errors, analyze pending decls.
2494 (cgraph_finalize_compilation_unit): Only analyze decls.
2495 (cgraph_optimize): Assemble the decls after expanding.
2496
d19e9499
DB
24972005-03-30 Daniel Berlin <dberlin@dberlin.org>
2498
2499 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
2500 subvars get marked properly in tags for grouping.
2501 (add_pointed_to_var): Mark only actual pointed to
2502 variables/subvars in addresses needed.
2503 (create_overlap_variables_for): Clear call clobbered on original
2504 variable.
2505 * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
2506 addresable vars with subvars into list.
2507 * tree-ssa.c (verify_ssa_name): Verify original is not used where
2508 subvar should be.
2509
12527dce
RH
25102005-03-30 Richard Henderson <rth@redhat.com>
2511
2512 * cgraph.h (struct cgraph_node): Add alias.
2513 * varasm.c (assemble_alias): Set it.
2514 * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
2515 avoid calling cgraph_expand_function.
2516
5662a50d
TT
25172005-03-30 Tom Tromey <tromey@redhat.com>
2518
2519 * tree.def (FILE_TYPE): Removed.
2520 * typeclass.h (enum type_class): Removed file_type_class.
2521 * dwarf2out.c (is_base_type): Updated.
2522 (gen_type_die): Likewise.
2523 * dbxout.c (dbxout_type): Updated.
2524 * builtins.c (type_to_class): Updated.
2525 * tree.c (type_contains_placeholder_1): Updated.
2526 * config/sparc/sparc.c (sparc_type_code): Updated.
2527 * config/ia64/ia64.c (hfa_element_mode): Updated.
2528 * expr.c (count_type_elements): Updated.
2529 * stor-layout.c (layout_type): Updated.
2530 * tree-inline.c (remap_type): Updated.
2531 * tree-pretty-print.c (dump_generic_node): Updated.
2532
0b8495ae
FJ
25332005-03-30 Fariborz Jahanian <fjahanian@apple.com>
2534
2535 * builtins.c (expand_builtin_powi): Fix mode of
2536 2nd argument to match int.
2537 * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
2538 2nd argument type to int.
a8e04fe6 2539 * libgcc2.c: Change prototype of __powi* functions to use
0b8495ae
FJ
2540 int.
2541
63579539
DJ
25422005-03-30 Dale Johannesen <dalej@apple.com>
2543
2544 PR middle-end/19225
2545 * calls.c (expand_call): Flush pending deferrals before
2546 throwing call.
2547
16ef3acc
JM
25482005-03-30 Joseph S. Myers <joseph@codesourcery.com>
2549
2550 PR c/772
2551 PR c/17913
2552 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
2553 C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
2554 c_label_context, label_context_stack): New.
2555 * c-decl.c (define_label): Check for jumps into statement
2556 expressions. Add label to list of defined labels.
2557 (start_function): Push context on label_context_stack.
2558 (finish_function): Pop context from label_context_stack.
2559 * c-typeck.c (label_context_stack): New.
2560 (c_finish_goto_label): Check for jumps into statement
2561 expressions. Add label to list of jumped to labels.
2562 (struct c_switch): Add blocked_stmt_expr.
2563 (c_start_case): Initialize it.
2564 (do_case): Check it.
2565 (c_finish_case): Verify !blocked_stmt_expr.
2566 (c_begin_stmt_expr): Push context on label_context_stack.
2567 Increment blocked_stmt_expr. Mark labels jumped to from outside
2568 as undefinable.
2569 (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
2570 defined in the statement expression and no longer jumpable to.
2571 Mark labels jumped to from just outside the statement expression
2572 as again definable. Pop context from label_context_stack.
2573 * doc/extend.texi (Statement Exprs): Update.
2574
1e55c0e2
JM
25752005-03-30 Joseph S. Myers <joseph@codesourcery.com>
2576
2577 PR c/20368
2578 * c-decl.c (start_function): Check for old_decl being
2579 error_mark_node.
2580
c9d691e9
ILT
25812005-03-30 Ian Lance Taylor <ian@airs.com>
2582
2583 * final.c (final): Remove prescan parameter. Change all callers.
2584 (final_scan_insn): Remove prescan parameter. Change all callers.
2585
2228adb2
KH
25862005-03-30 Kazu Hirata <kazu@cs.umass.edu>
2587
2588 * tree-vectorizer.c: Fix comment typos.
2589
fca81712
SP
25902005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
2591
a8e04fe6 2592 * tree-scalar-evolution.c (instantiate_parameters_1): Return
fca81712
SP
2593 as soon as a chrec_dont_know is detected.
2594
2d8a7f23
DS
25952005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
2596
2597 Merge from csl-arm-branch.
2598 2004-02-12 Mark Mitchell <mark@codesourcery.com>
2599
2600 * tlink.c (recompile_files): Do not assume that "rename" can
2601 overwrite an existing file.
2602
33da42bc
PB
26032005-03-31 Paolo Bonzini <bonzini@gnu.org>
2604
2605 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
2606 * gcc/configure: Regenerate.
2607
f0078f86
AM
26082005-03-30 Alan Modra <amodra@bigpond.net.au>
2609
c3a2edb6
AM
2610 * doc/install.texi: Update binutils requirement for powerpc*-linux.
2611
fb63c729
AM
2612 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
2613
f0078f86
AM
2614 * calls.c (struct arg_data): Update "partial" comment.
2615 (load_register_parameters): Update "nregs" comment.
2616
9e1db42d
RS
26172005-03-30 Richard Sandiford <rsandifo@redhat.com>
2618
2619 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
2620 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
2621 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
2622 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
2623 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
2624 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
2625 than target_flags & 0.
2626 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
2627 (iq2000_arch, iq2000_parse_cpu): Delete.
2628 (TARGET_HANDLE_OPTION): Override default.
2629 (iq2000_handle_option): New function.
2630 (override_options): Remove -march= and -mcpu= handling.
2631 * config/iq2000/iq2000.opt: New file.
2632
d12f3c1f
RS
26332005-03-30 Richard Sandiford <rsandifo@redhat.com>
2634
2635 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
2636 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
2637 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
2638 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
2639 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
2640 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
2641 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
2642 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
2643 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
2644 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
2645 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
2646 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
2647 (c4x_rpts_cycles_string, c4x_cpu_version_string)
2648 (TARGET_OPTIONS): Delete.
2649 (c4x_rpts_cycles, c4x_cpu_version): Declare.
2650 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
2651 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
2652 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
2653 (c4x_cpu_version_string): Delete.
2654 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2655 (c4x_handle_option): New function. Map -m3x and -m4x options to the
2656 equivalent -mcpu= option.
2657 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
2658 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
2659 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
2660 or clearing the appropriate MASK_* bit.
2661 (c4x_file_start): Use c4x_cpu_version.
2662 * config/c4x/c4x.opt: New file.
2663
f9b4c1db
RS
26642005-03-30 Richard Sandiford <rsandifo@redhat.com>
2665
2666 * doc/options.texi: Document the new MaskExists flag.
2667 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
2668 if the option has the MaskExists flag.
2669
26702005-03-30 Richard Sandiford <rsandifo@redhat.com>
a56a0779
RS
2671
2672 * opt-functions.awk (flag_set_p, test_flag): New functions.
2673 (switch_flags): Use them.
2674 * opth-gen.awk: Use flag_set_p to check for flags.
2675 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
2676
e5948c83
ILT
26772005-03-30 Ian Lance Taylor <ian@airs.com>
2678
2679 * config.host (i[34567]86-*-mingw32*): Don't set
2680 host_can_use_collect2 to no.
2681
6f6e8901
AM
26822005-03-30 Alan Modra <amodra@bigpond.net.au>
2683
2684 PR target/20203
2685 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
2686 Remove convert_memory_address call duplicating that in memory_address.
2687
aab038d5
RH
26882005-03-29 Richard Henderson <rth@redhat.com>
2689
2690 PR c/20519
2691 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
2692 (build_compound_literal): Likewise. Propagate decl type into the
2693 initializer.
2694 (finish_decl): Likewise. Use new return value from complete_array_type
2695 for zero sized arrays.
2696 (complete_array_type): Move ...
2697 * c-common.c (complete_array_type): ... here. Change first argument
2698 to pointer-to-type-node. Consistently use sizetype for the index
2699 except for zero sized arrays. Detect zero sized arrays for pedantic
2700 mode diagnostics. Create a new type node instead of modifying the
2701 old node in place.
2702 * c-tree.h (complete_array_type): Move decl ...
2703 * c-common.h (complete_array_type): ... here.
2704
0e2ea9b8
RH
27052005-03-29 Richard Henderson <rth@redhat.com>
2706
2707 PR tree-opt/19108
2708 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
2709
5f996627
KH
27102005-03-29 Kazu Hirata <kazu@cs.umass.edu>
2711
2712 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
2713 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
2714 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
2715 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
2716
2f1de187
EC
27172005-03-29 Eric Christopher <echristo@redhat.com>
2718
2719 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
2720 truthvalue conversion removal.
2721
1fff69c9
ILT
27222005-03-29 Ian Lance Taylor <ian@airs.com>
2723
2724 PR bootstrap/14316
2725 * collect2.c: Never include <vfork.h>.
2726 (VFORK_STRING, vfork): Don't define.
2727 (pid): Remove global variable.
2728 (handler): Call raise instead of kill (getpid(), ...).
2729 (collect_wait): Add pex parameter. Change all callers. Use
2730 pex_get_status rather than pwait.
2731 (do_wait): Add pex parameter. Change all callers.
2732 (collect_execute): Return struct pex_obj * rather than void. Use
2733 pex routines rather than pexecute.
2734 (fork_execute): Get pex_obj from collect_execute, and pass it to
2735 do_wait.
2736 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
2737 Only declare quit_handler if SIGQUIT is defined.
2738 (scan_libraries): Likewise.
2739 * collect2.h (collect_execute): Update declaration.
2740 (collect_wait): Update declaration.
2741 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
2742 pass it to collect_wait.
2743
d1edc393
JM
27442005-03-29 Joseph S. Myers <joseph@codesourcery.com>
2745
2746 PR c/20672
2747 * c-parser.c (c_parser_compound_statement_nostart): Give error
2748 message for EOF instead of just setting parser->error.
2749
3ce66cf1
DN
27502005-03-29 Dorit Naishlos <dorit@il.ibm.com>
2751
2752 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
2753 (slpeel_update_phi_nodes_for_guard1): New function.
2754 (slpeel_update_phi_nodes_for_guard2): New function.
2755 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
2756 of slpeel_update_phi_nodes_for_guard.
2757 (vectorize_loops): Remove call to loop_closed_rewrite.
2758 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
2759 assertion.
2760
97b73103
RS
27612005-03-29 Richard Sandiford <rsandifo@redhat.com>
2762
2763 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
2764 (TARGET_LITTLE_ENDIAN): New macro.
2765 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
2766 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
2767 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
2768 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
2769 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
2770 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
2771 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
2772 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
2773 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
2774 (TARGET_OPTIONS): Delete.
2775 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
2776 (CACHE_FLUSH_TRAP): Turn into an integer.
2777 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
2778 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
2779 -mflush-trap is in use.
2780 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
2781 (m32r_cache_flush_trap_string): Delete.
2782 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
2783 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
2784 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
2785 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2786 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
2787 -mmodel= and -msdata= handling from...
2788 (m32r_init): ...here.
2789 * config/m32r/m32r.opt: New file.
2790
8bb46326
DN
27912005-03-29 Keith Besaw <kbesaw@us.ibm.com>
2792
2793 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
2794 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
2795 * tree-vect-analyze.c (vect_object_analysis): additional parm
2796 pass back a "struct ptr_info_def *" with the points-to info.
2797 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
2798 statement using info returned from vect_object_analysis.
2799 * tree-vect-transform.c (update_vuses_to_preheader): New function.
2800 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
2801 for virtual uses and defs when creating a replacement vector
2802 reference. Call duplicate_ssa_name_ptr_info to define points-to
2803 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
2804 (vectorizable_store): copy_virtual_operands and update
2805 definition statements.
2806 (vectorizable_load): copy_virtual_operands. Remove call to
2807 mark_call_clobbered_vars_to_rename for call to "const" builtin.
2808 * tree-vectorizer.c (vectorize_loops): Remove calls to
2809 rewrite_into_ssa and bitmap_clear (vars_to_rename).
2810 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
2811 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
2812 define macro STMT_VINFO_PTR_INFO for use in accessing.
2813 * tree.h add export of duplicate_ssa_name_ptr_info.
2814 * rs6000.c (altivec_init_builtins): Declare builtin function
2815 __builtin_altivec_mask_for_load to be "const".
2816
1a612e0a
JJ
28172005-03-29 Jakub Jelinek <jakub@redhat.com>
2818
2819 PR middle-end/20622
2820 * cgraph.h (struct cgraph_varpool_node): Add alias field.
2821 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
2822 assemble_variable on aliases.
2823 * varasm.c (assemble_alias): Set node->alias.
2824 * toplev.c (wrapup_global_declarations): Don't call
2825 rest_of_decl_compilation on aliases again.
2826
64a1ec40
PB
28272005-03-29 Paul Brook <paul@codesourcery.com>
2828
2829 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
2830 * config/arm/arm.c (arm_dbx_register_number): New function.
2831 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
2832
360ca054
EB
28332005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
2834
2835 PR middle-end/20263
2836 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
2837 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
2838
1f1e8527
DJ
28392005-03-29 Dale Johannesen <dalej@apple.com>
2840
2841 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
2842 $(TREE_H) and $(COVERAGE_H).
2843 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
2844 * opts.c (common_handle_option): Enable tree-based value transforms.
2845 * toplev.c (process_options): Ditto.
2846 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
2847 refers to references to this type.
2848 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
2849 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
2850 for may_be_more, may_be_less.
2851 (rtl_gen_pow2_profiler): Adjust.
2852 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
2853 (rtl_gen_one_value_profiler): Adjust.
2854 (rtl_gen_const_delta_profiler): Adjust.
2855 * tree-profile.c (tree_gen_interval_profiler): Implement.
2856 (tree_gen_pow2_profiler): Ditto.
2857 (tree_gen_one_value_profiler): Ditto.
2858 (tree_profiling): New.
2859 (pass_tree_profile): Reference it.
2860 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
2861 tree.h, gcov-io.h.
a8e04fe6 2862 (insn_divmod_values_to_profile): Rename to
1f1e8527
DJ
2863 rtl_divmod_values_to_profile. Adjust.
2864 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
2865 (insn_prefetch_values_to_profile): Adjust.
2866 (rtl_value_profile_transformations): Adjust.
2867 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
2868 (gen_mod_pow2): Rename to rtl_mod_pow2.
2869 (gen_mod_subtract): Rename to rtl_mod_subtract.
a8e04fe6 2870 (divmod_fixed_value_transform): Rename to
1f1e8527
DJ
2871 rtl_divmod_fixed_value_transform.
2872 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
2873 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
2874 (rtl_find_values_to_profile): Adjust.
2875 (tree_value_profile_transformations): Implement.
2876 (tree_divmod_values_to_profile): New.
2877 (tree_values_to_profile): New.
2878 (tree_divmod_fixed_value): New.
2879 (tree_mod_pow2): New.
2880 (tree_mod_subtract): New.
2881 (tree_divmod_fixed_value_transform): New.
2882 (tree_mod_pow2_value_transform): New.
2883 (tree_mod_subtract_transform): New.
2884 (tree_find_values_to_profile): Implement.
2885 * profile.c (instrument_values): Free histograms.
2886 (compute_value_histograms): Adjust. Implement tree version.
2887
6e858d45
UB
28882005-03-29 Uros Bizjak <uros@kss-loka.si>
2889
2890 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
2891 * config/i386/i386.c (output_fix_trunc): Add new round_mode
2892 variable. Output "fldcw" depending on round_mode.
2893 * config/i386/i386.md (UNSPEC_FIST): New.
2894 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
2895 New isns patterns to implement lrint and llrint built-ins as x87
2896 intrinsic function.
2897 (fistdi2, fist<mode>2 splitters): New splitters.
2898 (lrint<mode>2): New expanders.
2899
37d93e4f
ILT
29002005-03-28 Ian Lance Taylor <ian@airs.com>
2901
2902 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
2903 0 when calling final_scan_insn.
2904
c7f599d0
JH
29052005-03-28 Jan Hubicka <jh@suse.cz>
2906
5c55c2e8
JH
2907 PR middle-end/20635
2908 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
2909 as needed.
2910
c7f599d0
JH
2911 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
2912 types where possible.
2913
8abb6b22
PB
29142005-03-26 Per Bothner <per@bothner.com>
2915
2916 Make -f[no-]show-column also control non-cpp diagnostics.
2917 * c.opt (fshow-column): Move option from here ...
2918 * common.opt (fshow-column): ... to here.
2919 * diagnostic.c (diagnostic_build_prefix): Only print column number
2920 if flag_show_column.
2921
20acd226
SB
29222005-03-27 Steven Bosscher <stevenb@suse.de>
2923
2924 * vax-protos.h (vax_output_int_move, vax_output_int_add,
2925 vax_output_conditional_branch): New prototypes.
2926 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
2927 extracted from vax.md mov and add patterns.
2928 (vax_output_conditional_branch): New function to output conditional
2929 branch instructions.
2930 * vax.md: Use mode macros for arithmetic and mov patterns.
2931 Use code macros for the jump patterns.
2932
f2c79568
AP
29332005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
2934
2935 * Makefile.in (libbackend.o): Depend on version files;
2936 add custom generation command.
2937
d7b1468b
AP
29382005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
2939
2940 PR target/20636
2941 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
2942 sure that we have a REG before getting its REGNO.
2943
1ad81c8e
KG
29442005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2945
2946 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
2947 * builtins.def (BUILT_IN_STRNDUP): New.
2948
a10d70ba
PH
29492005-03-25 Pat Haugen <pthaugen@us.ibm.com>
2950
2951 PR tree-optimization/20470
2952 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
2953 ABS(x-y).
2954
8c3cc7d9
MS
29552005-03-25 Mike Stump <mrs@apple.com>
2956
2957 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
2958 sized objects.
2959
da4c340c
GK
29602005-03-25 Geoffrey Keating <geoffk@apple.com>
2961
7880e30b
GK
2962 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
2963 Use our own structure definitions.
2964
da4c340c
GK
2965 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
2966 (fix_truncdfsi2): Allow registers or memory as destination.
2967 When TARGET_PPC_GFXOPT, generate simplified pattern.
2968 (fix_truncdfsi2_internal): Use define_insn_and_split.
2969 (fix_truncdfsi2_internal_gfxopt): New.
2970 (fctiwz): Don't confuse register allocation by giving it no choices.
2971 (stfiwx): New.
2972 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
2973 (EXTRA_MEMORY_CONSTRAINT): Likewise.
a8e04fe6 2974 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
da4c340c
GK
2975 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2976
bef87a34
KH
29772005-03-25 Kazu Hirata <kazu@cs.umass.edu>
2978
2979 * dominance.c (free_dominance_info): Speed up by freeing et
2980 data structures without maintaining other nodes.
2981 * et-forest.c (et_free_tree_force): New.
2982 * et-forest.h: Add a prototype for et_free_tree_force.
2983
86f1f858
KH
2984 * tree.c (get_set_constructor_bits,
2985 get_set_constructor_bytes): Remove.
2986 * tree.h: Remove the corresponding prototypes.
2987
ccb527e4
JDA
29882005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
2989
2990 PR target/15491
20acd226 2991 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
ccb527e4
JDA
2992 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
2993 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
2994 PRE_DEC, NEG and NOT.
2995
7f20a5b7
KH
29962005-03-25 Kazu Hirata <kazu@cs.umass.edu>
2997
2998 * fold-const.c: Convert uses of fold (build (...)) to
2999 fold_buildN.
3000
cd928652
ZD
30012005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
3002
3003 PR rtl-optimization/20249
3004 * cse.c (insert_regs): Do not record equivalence of registers in
3005 different modes.
3006
cba9e10a
KH
30072005-03-24 Kazu Hirata <kazu@cs.umass.edu>
3008
3009 * emit-rtl.c (reverse_comparison): Remove.
3010 * rtl.h: Remove the corresponding prototype.
3011
a9f15d83
JW
30122005-03-24 James E Wilson <wilson@specifixinc.com>
3013
3014 * doc/install.texi (--enable-altivec): Delete docs.
3015
b6dc5507
DE
30162005-03-24 David Edelsohn <edelsohn@gnu.org>
3017
3018 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
3019 SFmode and DFmode before reload when
3020 flag_unsafe_math_optimizations not enabled.
3021
0a19d49f
GK
30222005-03-24 Geoffrey Keating <geoffk@apple.com>
3023
d0b07283
GK
3024 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
3025
0a19d49f
GK
3026 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
3027 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
3028
b53ef395
NS
30292005-03-24 Nathan Sidwell <nathan@codesourcery.com>
3030
3031 * configure.ac (enable-checking): Add 'runtime' option.
3032 * doc/install.texi (enable-checking): Document 'runtime' checking.
3033 * tsystem.h (gcc_assert, gcc_unreachable): Define.
3034 * config.in: Regenerated.
3035 * configure: Regenerated.
3036
59d4982b
UB
30372005-03-23 Uros Bizjak <uros@kss-loka.si>
3038
3039 * optabs.h (enum optab_index): Remove OTI_llrint.
3040 (llrint_optab): Remove macro.
3041 * optabs.c (init_optabs): Remove llrint_optab initialization.
3042 * genopinit.c (optabs): Remove llrint_optab implementation.
3043 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
3044 using lrint_optab.
3045
fab2f52c
AO
30462005-03-24 Alexandre Oliva <aoliva@redhat.com>
3047
3048 PR rtl-optimization/20532
3049 * simplify-rtx.c (simplify_binary_operation_1): Protect from
3050 overflow when adding coefficients for PLUS or MINUS.
3051 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
3052 two as multiplier.
3053
d101034c
JM
30542005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3055
3056 * langhooks.h (truthvalue_conversion): Remove.
3057 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
3058 LANG_HOOKS_TRUTHVALUE_CONVERSION.
3059 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
3060 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
3061 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3062
2e0ea515
KH
30632005-03-23 Kazu Hirata <kazu@cs.umass.edu>
3064
3065 * params.def: Fix a typo.
3066 * config/mips/mips.c: Follow the spelling convensions.
3067 * doc/invoke.texi: Fix typos.
3068
47c0c7d7
DJ
30692005-03-18 Dale Johannese <dalej@apple.com>
3070
3071 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
3072
9be09bbc
DB
30732005-03-23 Daniel Berlin <dberlin@dberlin.org>
3074
3075 Fix PR tree-optimization/20601
3076
3077 * tree-ssa-pre.c (insert_aux): Add missing condition to
3078 constification.
3079
17ac08e2
ILT
30802005-03-23 Ian Lance Taylor <ian@airs.com>
3081
3082 * final.c (final_scan_insn): Don't remove no-op instructions.
3083 * reload1.c (reload): Remove simple no-op instructions even when
3084 not optimizing.
3085
0e6b0daf 30862005-03-23 Dorit Naishlos <dorit@il.ib.com>
a8e04fe6 3087
0e6b0daf
DN
3088 PR tree-optimization/20501
3089 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
3090 reporting that peeling for alignment is applied moved to...
3091 * (vect_analyze_data_refs_alignment): Here.
3092
81e974f2
ILT
30932005-03-23 Ian Lance Taylor <ian@airs.com>
3094
3095 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
3096
d432c7a5
RO
30972005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3098
3099 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
3100 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
3101
61158923
HPN
31022005-03-23 Hans-Peter Nilsson <hp@axis.com>
3103
3104 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
3105 imply that this is called once, independent of asms in code.
3106 Adjust to now being pased output and input lists. Mention helper
3107 function decl_overlaps_hard_reg_set_p.
3108 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
3109 hook_tree_tree_identity and to take three trees, returning third.
3110 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
3111 prototype.
3112 * stmt.c: include hard-reg-set.h before tree.h.
3113 (decl_overlaps_hard_reg_set_p): New function, broken out from...
3114 (decl_conflicts_with_clobbers_p): Call
3115 decl_overlaps_hard_reg_set_p.
3116 (expand_asm_operands): Pass output and input lists in call to
3117 targetm.md_asm_clobbers.
3118 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
3119 hook_tree_tree_tree_tree_3rd_identity.
3120 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
3121 parameters.
3122 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
3123 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
3124 parameters, first two unused.
3125 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
3126 parameters. Only add MOF to clobbers if there's no 'h' mentioned
3127 in constraint letters and MOF is not mentioned as a asm-declared
3128 register in neither of the input and output lists.
3129
06cd9d72
DD
31302005-03-23 DJ Delorie <dj@redhat.com>
3131
3132 * optabs.c (expand_binop): Make sure the first subword's result
3133 gets stored.
3134
85498824
JM
31352005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3136
3137 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
3138 Call c_common_truthvalue_conversion rather than
3139 lang_hooks.truthvalue_conversion.
3140 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
3141 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
3142 c-typeck.c.
3143 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
3144 c_common_truthvalue_conversion.
3145 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
3146 c_parser_conditional_expression, c_parser_binary_expression): Call
3147 c_objc_common_truthvalue_conversion.
3148 * c-typeck.c (build_unary_op): Call
3149 c_objc_common_truthvalue_conversion.
3150 (build_conditional_expr): Do not call
3151 lang_hooks.truthvalue_conversion.
3152 (build_binary_op): Call c_common_truthvalue_conversion.
3153 (c_objc_common_truthvalue_conversion): Moved from
3154 c-objc-common.c. Call default_function_array_conversion instead
3155 of default_conversion.
3156
522ddfa2
JM
31572005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3158
3159 * c-common.h (default_conversion): Remove.
3160 (perform_integral_promotions): Add.
3161 * c-tree.h (default_conversion): Add.
3162 * c-typeck.c (perform_integral_promotions): New, split out from
3163 default_conversion.
3164 * c-common.c (check_case_value): Use perform_integral_promotions,
3165 not default_conversion.
3166 (c_add_case_label): Don't continue processing case label after
3167 found to be pointer.
3168
54b73ddf
MM
31692005-03-23 Mark Mitchell <mark@codesourcery.com>
3170
3171 * gcc.c (do_spec_1): Do not add a -L path for a directory in
3172 the prefix list if we have already added a multilib directory
3173 based on that path.
3174 (main): Do not add MD_EXEC_PREFIX to the list of directories to
3175 search with -L.
3176
5983a90e
KH
31772005-03-22 Kazu Hirata <kazu@cs.umass.edu>
3178
3179 * reload1.c (indirect_symref_ok, reload_obstack): Make them
3180 static.
3181 * reload.h: Remove the prototype for indirect_symref_ok.
3182
98af7219
KH
3183 * reload1.c (indirect_symref_ok): Make it global.
3184 * reload.h: Add a prototype for indirect_symref_ok.
3185
39f44b0b
KK
31862005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
3187
3188 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
3189 ashlhi3 expander.
3190
4aa708ba
TS
31912005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
3192
3193 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
3194
9e9945c5
DB
31952005-03-22 Daniel Berlin <dberlin@dberlin.org>
3196
3197 * c-opts.c (c_common_parse_file): Only start/end main source file
3198 if debug hooks says the writer wants it.
3199 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
3200 member.
3201 (xcoff_debug_hooks): Ditto.
3202 * debug.c (do_nothing_hooks): Ditto.
3203 * debug.h (gcc_debug_hooks): Ditto.
3204 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
3205 * sdbout.c (sdb_debug_hooks): Ditto.
3206 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
a8e04fe6 3207
8ff24a79
MM
32082005-03-22 Mark Mitchell <mark@codesourcery.com>
3209
3210 * doc/extend.texi: Deprecate C++ min/max operators.
3211
cf5d1802
ZD
32122005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
3213
3214 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
3215 artificial original candidates.
3216
e5c4f28a
RG
32172005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
3218 Jan Hubicka <jh@suse.cz>
20acd226 3219 Steven Bosscher <stevenb@suse.de>
e5c4f28a
RG
3220
3221 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
3222 call cost based on argument sizes.
4aa708ba 3223 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
e5c4f28a
RG
3224 inlining.
3225 * params.def: (max-inline-inssn-single): Set to 450.
3226 (max-inline-insns-auto): Set to 90.
3227 (max-inline-insns-recursive): Set to 450
3228 (max-inline-insns-recursive-auto): Set to 450.
3229 (large-function-insns): Set to 2700.
3230 (inline-call-cost): New parameter.
3231 * tree-inline.c (estimate_move_cost): New function.
3232 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
3233 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
3234 based on arguments.
3235 * tree-inline.h (estimate_move_cost): Declare.
3236 * invoke.texi: (max-inline-inssn-single): Change default to 450.
3237 (max-inline-insns-auto): Change default to 90.
3238 (max-inline-insns-recursive): Change default to 450
3239 (max-inline-insns-recursive-auto): Change default to 450.
3240 (large-function-insns): Change default to 2700.
3241 (inline-call-cost): Document new parameter.
3242
9ea1c2f6
RS
32432005-03-22 Richard Sandiford <rsandifo@redhat.com>
3244
3245 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
3246 (TARGET_DEFAULT): Delete.
3247 * config/i860/i860.opt: New file.
3248
0b2c18fe
RS
32492005-03-22 Richard Sandiford <rsandifo@redhat.com>
3250
3251 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
3252 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3253 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3254 (frv_sched_lookahead): Delete.
3255 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
3256 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
3257 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
3258 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
3259 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
3260 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
3261 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
3262 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
3263 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
3264 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
3265 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
3266 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
3267 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
3268 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
3269 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
3270 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
3271 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
3272 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
3273 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
3274 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
3275 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
3276 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
3277 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
3278 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
3279 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
3280 (frv_sched_lookahead): Delete.
3281 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
3282 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3283 (frv_handle_option): New function. Move -mcpu= handling from...
3284 (frv_override_options): ...here. Remove handling of other
3285 TARGET_OPTIONS.
3286 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
3287 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
3288 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
3289 and TARGET_NO_MULTI_CE.
3290 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
3291 !TARGET_VLIW_BRANCH.
3292 * config/frv/frv.opt: New file.
3293
7cf57259
KH
32942005-03-22 Kazu Hirata <kazu@cs.umass.edu>
3295
3296 * fold-const.c (fold_ternary): Take decomposed arguments of
3297 CALL_EXPR.
3298 (fold): Update a call to fold_ternary.
3299
ba199a53
KH
3300 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
3301 * tree.h: Add corresponding prototypes.
3302
b2a6a2fb
JJ
33032005-03-22 Jakub Jelinek <jakub@redhat.com>
3304
3305 PR target/20561
3306 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
3307 between jump table and its label.
3308 * final.c (shorten_branches): Handle notes in between ADDR_VEC
3309 resp. ADDR_DIFF_VEC and the label preceeding it.
3310 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
3311 is emitted in the right section.
3312
7107fa7c
KH
33132005-03-22 Kazu Hirata <kazu@cs.umass.edu>
3314
3315 * fold-const.c (fold_unary, fold_binary): Update comments
3316 about arguments.
3317
17c9bcdd
HPN
33182005-03-22 Hans-Peter Nilsson <hp@axis.com>
3319
3320 PR rtl-optimization/20527
3321 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
3322 REG_INC note, test that the register also isn't mentioned in PRED
3323 or SUCC.
3324
fd8e4663
BE
33252005-03-22 Ben Elliston <bje@au.ibm.com>
3326
3327 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
3328 and definition.
3329
b0250067
MS
33302005-03-21 Mike Stump <mrs@apple.com>
3331
3332 * varasm.c (default_assemble_visibility): Remove extra ().
3333
ffaf4d3b
RS
33342005-03-21 Roger Sayle <roger@eyesopen.com>
3335
3336 PR middle-end/20557
3337 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
3338 to determine whether a block can be duplicated, rather than test
3339 whether the block contains noncopyable insns ourselves.
3340
59298b1d
KH
33412005-03-21 Kazu Hirata <kazu@cs.umass.edu>
3342
3343 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
3344 predicates.
3345
6ec4845e
RS
33462005-03-21 Richard Sandiford <rsandifo@redhat.com>
3347
3348 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
3349
8c3eeb97
RS
33502005-03-21 Richard Sandiford <rsandifo@redhat.com>
3351
3352 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
3353 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
3354 * config/fr30/fr30.opt: New file.
3355
013cc86f 33562005-03-18 Daniel Berlin <dberlin@dberlin.org>
a8e04fe6 3357
013cc86f
DB
3358 Fix PR tree-optimization/20542
3359
3360 * tree-flow-inline.h (overlap_subvar): Move to here.
3361 * tree-ssa-operands.c: From here.
3362 * tree-flow.h (overlap_subvar): Declare.
3363 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
3364 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
3365 for variables with subvars.
a8e04fe6 3366
d331e204
MH
33672005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
3368
3369 PR middle-end/20177
3370 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
3371 * modulo-sched.c (const_iteration_count): Return on NULL
3372 pre-header.
3373 (print_node_sched_params): Return on NULL dump_file.
3374 (generate_reg_moves): Handle reg-anti dependencies and disregard
3375 closing branch when generating register moves.
3376 (sms_schedule): Mark the SMSed block dirty.
3377 * passes.c (rest_of_handle_sms): Call update_life_info for all
3378 basic-blocks.
3379 * testsuite/gcc.dg/20050321-1.c: New test.
3380
12a8ee33
BW
33812005-03-21 Bob Wilson <bob.wilson@acm.org>
3382
3383 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
3384 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
3385 movqi_internal): Likewise.
3386
8eb1bc5c
BW
33872005-03-21 Bob Wilson <bob.wilson@acm.org>
3388
3389 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
3390 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
3391 xtensa_b4const): Delete prototypes.
3392 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
3393 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
3394 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
3395 xtensa_extra_constraint): New prototypes.
3396 (add_operand, arith_operand, nonimmed_operand, mem_operand,
3397 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3398 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3399 move_operand, const_float_1_operand, fpmem_offset_operand,
3400 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
3401 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
3402 (xtensa_b4const_or_zero): ...this. Change return type to bool and
3403 argument type to HOST_WIDE_INT.
3404 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
3405 xtensa_mask_immediate): Likewise.
3406 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
3407 Likewise. Also make these functions static.
3408 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
3409 (xtensa_const_ok_for_letter_p): New.
3410 (add_operand, arith_operand, nonimmed_operand, mem_operand,
3411 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
3412 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
3413 move_operand, const_float_1_operand, fpmem_offset_operand,
3414 branch_operator, ubranch_operator, boolean_operator): Move to
3415 predicates.md.
3416 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
3417 (xtensa_mem_offset): Change return type to bool.
3418 (xtensa_extra_constraint): New.
3419 (gen_int_relational): Update type of const_range_p function pointer.
3420 Use xtensa_b4const_or_zero.
3421 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
3422 xtensa_const_ok_for_letter_p. Update comments.
3423 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
3424 (PREDICATE_CODES): Delete.
3425 * config/xtensa/xtensa.md: Include predicates.md.
3426 * config/xtensa/predicates.md: New file.
3427
83310f56
KH
34282005-03-21 Kazu Hirata <kazu@cs.umass.edu>
3429
3430 * config/v850/v850-protos.h: Remove the prototypes for
3431 reg_or_int9_operand, reg_or_const_operand,
3432 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
3433 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
3434 movsi_source_operand, power_of_two_operand,
3435 not_power_of_two_operand, special_symbolref_operand,
3436 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
3437 register_is_ok_for_epilogue.
3438 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
3439 reg_or_int9_operand, reg_or_const_operand,
3440 call_address_operand, special_symbolref_operand,
3441 movsi_source_operand, power_of_two_operand,
3442 not_power_of_two_operand, register_is_ok_for_epilogue,
3443 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
3444 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
3445 predicates.md.
3446 * config/v850/v850.h (PREDICATE_CODES): Remove.
3447 * config/v850/v850.md: Include predicates.md.
3448 * config/v850/predicates.md: New.
3449
f08dd1f8
ZW
34502005-03-21 Zack Weinberg <zack@codesourcery.com>
3451
3452 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
3453 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
3454 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
3455 (itoolsdir, itoolsdatadir): Move definition above new first use.
3456 (install-itoolsdirs): New rule.
3457 (install-mkheaders): Depend on install-itoolsdirs, not
3458 install-include-dir.
3459
af5d3a18
KH
34602005-03-21 Kazu Hirata <kazu@cs.umass.edu>
3461
3462 * tree-into-ssa.c: Remove obsolete comments.
3463
37f7367a
RG
34642005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
3465
3466 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
3467 unrolling if -fpeel-loops is specified, too.
3468 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3469 Remove superfluous check for flag_unroll_loops.
3470
21e01bf1
UB
34712005-03-21 Uros Bizjak <uros@kss-loka.si>
3472
3473 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
3474 (lrint_optab, llrint_optab): Define corresponding macros.
3475 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
3476 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
3477 pattern and llrint_optab using llrintdi2 patterns.
3478 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
3479 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
3480 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
3481 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
3482 flag_unsafe_math_optimizations is set.
3483
14f02e73
PB
34842005-03-21 Paolo Bonzini <bonzini@gnu.org>
3485
3486 * combine.c (combine_simplify_rtx, simplify_if_then_else,
3487 simplify_logical, if_then_else_cond, known_cond,
3488 simplify_comparison): Adjust calls to reverse_comparison.
3489 Don't use combine_reversed_comparison_code).
3490 (combine_reversed_comparison_code): Remove.
3491 (reversed_comparison): Using reversed_comparison_code, move it...
3492 * jump.c (reversed_comparison): ... here.
3493 * rtl.h (reversed_comparison): Add prototype.
3494
49d1af89
KH
34952005-03-21 Kazu Hirata <kazu@cs.umass.edu>
3496
3497 * builtins.c (fold_builtin): Take decomposed arguments of
3498 CALL_EXPR.
3499 * fold-const.c (fold_ternary): Update a call to fold_builtin.
3500 * gimplify.c (gimplify_call_expr): Likewise.
3501 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
3502 * tree.h: Update the prototype of fold_builtin.
3503
9ce921ab
PB
35042005-03-21 Paolo Bonzini <bonzini@gnu.org>
3505
3506 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
3507 * rtlhooks.c (gen_lowpart_no_emit_general): New.
3508 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
3509 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
3510 * simplify-rtx.c (simplify_binary_operation_1): Use it.
3511
f399a1a1
KH
35122005-03-21 Kazu Hirata <kazu@cs.umass.edu>
3513
3514 * builtins.c (fold_builtin_1): Take decomposed arguments of
3515 CALL_EXPR.
0a04ccc5 3516 (fold_builtin): Update a call to fold_builtin_1.
f399a1a1 3517
f5d39c3d
NS
35182005-03-21 Nathan Sidwell <nathan@codesourcery.com>
3519
3520 PR other/20564
3521 * gcov.c (output_lines): Only output function block summary when
3522 outputting branch information.
3523 * doc/gcov.texi: Document format of preamble and additional block
3524 information lines.
3525
cfa7bd9c
RS
35262005-03-21 Richard Sandiford <rsandifo@redhat.com>
3527
3528 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
3529 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
3530 the defaults false if BITS_PER_UNIT != 8.
3531 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
3532 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
3533 than BITS_PER_UNIT != 8.
3534 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
3535 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
3536 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
3537 #undefs.
3538 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
3539 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
3540
90ec750d
RS
35412005-03-20 Roger Sayle <roger@eyesopen.com>
3542
3543 PR middle-end/20539
3544 * fold-const.c (fold_binary): Fix type mismatch between
3545 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
3546 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
3547 for non-truth-valued expressions.
3548
3549 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
3550 and FUNCTION_DECL in the main switch.
3551 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
3552 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
3553 we also need to convert their operands to match.
3554 <TRUTH_NOT_EXPR>: Likewise.
3555
37dc0d8d
JM
35562005-03-21 Joseph S. Myers <joseph@codesourcery.com>
3557
3558 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
3559 diagnostic without checking whether an lvalue.
3560 * c-common.h (lvalue_p): Remove.
3561 (enum lvalue_use): Update comment.
3562 (lvalue_or_else): Replace by lvalue_error.
3563 * c-typeck.c (lvalue_p): Make static.
3564 (lvalue_or_else): New. Call lvalue_error.
3565
294bd182
AM
35662005-03-21 Alan Modra <amodra@bigpond.net.au>
3567
3568 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
3569 (function_arg_advance): Use rs6000_parm_start.
3570 (function_arg, rs6000_arg_partial_bytes): Likewise.
3571
ed248cf7
JM
35722005-03-20 Joseph S. Myers <joseph@codesourcery.com>
3573
3574 * c-common.c (check_case_value): Adjust comment about stripping
3575 NOPs.
3576 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
3577 * c-typeck.c (default_conversion, convert_arguments,
3578 build_modify_expr, convert_for_assignment, store_init_value,
3579 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
3580 manually. Remove inaccurate comments.
3581
749053f5
RS
35822005-03-20 Roger Sayle <roger@eyesopen.com>
3583 Joseph S. Myers <joseph@codesourcery.com>
3584
3585 * varasm.c (do_assemble_alias): Restore comment describing function.
3586 Annotate the target parameter as potentially unused.
3587
82b3eb42
MM
35882005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
3589
3590 PR target/18551
3591 * config/avr/avr.c (avr_output_function_prologue): Do not use
3592 current_function_name() in a label, use a local label instead.
3593
e7108df9
DE
35942005-03-20 David Edelsohn <edelsohn@gnu.org>
3595
3596 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
3597 flag_finite_math_only, not flag_unsafe_math_optimizations.
3598
a05a80fc
KH
35992005-03-20 Kazu Hirata <kazu@cs.umass.edu>
3600
3601 * builtins.c (fold_builtin_1): Update a call to
3602 targetm.fold_builtin.
3603 * hooks.c (hook_tree_tree_bool_null): Rename to
3604 hook_tree_tree_tree_bool_null. Take one more argument of type
3605 tree.
3606 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
3607 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
3608 hook_tree_tree_tree_bool_null.
3609 * target.h (gcc_target): Update the prototype of fold_builtin.
3610 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
3611 arguments of CALL_EXPR.
3612 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
3613 new prototype.
3614
1655dc9d
JH
36152005-03-20 Jan Hubicka <jh@suse.cz>
3616
3617 * cgraph.h (cgraph_node): Add prev_clone pointer.
3618 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
3619 (cgraph_clone_node): Produce doubly linked chain.
3620
f6d1c3a6
JM
36212005-03-20 Joseph S. Myers <joseph@codesourcery.com>
3622
3623 * c-common.c (handle_aligned_attribute, check_function_sentinel,
3624 get_nonnull_operand, handle_sentinel_attribute,
3625 check_function_arguments_recurse): Do not strip NOPS from
3626 INTEGER_CSTs.
3627 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
3628 Likewise.
3629 * c-format.c (get_constant): Likewise.
3630 * c-parser.c (c_parser_postfix_expression): Likewise.
3631 * c-typeck.c (set_init_index): Likewise.
3632 (convert_arguments): Don't check for NOP_EXPR containing integer
3633 constant.
3634
e498b9f1
KH
36352005-03-20 Kazu Hirata <kazu@cs.umass.edu>
3636
3637 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
3638 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
3639 Take decomposed arguments of CALL_EXPR.
3640 (fold_builtin_1): Update calls to the functions mentioned
3641 above.
3642
411ffa02
JM
36432005-03-20 Joseph S. Myers <joseph@codesourcery.com>
3644
3645 * c-decl.c (check_bitfield_type_and_width): Require bit-field
3646 width to have integer type.
3647 (build_enumerator): Require enumerator value to have integer type.
3648
9c86fc0b
JM
36492005-03-19 Joseph S. Myers <joseph@codesourcery.com>
3650
3651 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
3652 to __builtin_inff.
3653
3a1e400e
JM
36542005-03-19 Joseph S. Myers <joseph@codesourcery.com>
3655
3656 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
3657 std=iso9899:199x): Correct descriptions.
3658
f42eccdb
JM
36592005-03-19 Joseph S. Myers <joseph@codesourcery.com>
3660
3661 * config.gcc: Consistently use solaris2.1[0-9]* instead of
3662 solaris2.1[0-9].
3663
6e5b9693
KH
36642005-03-19 Kazu Hirata <kazu@cs.umass.edu>
3665
3666 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
3667 of CALL_EXPR.
3668 (expand_builtin_memcpy, fold_builtin_1): Update calls to
3669 fold_builtin_memcpy.
3670
5be245e4
KH
3671 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
3672 arguments of CALL_EXPR.
3673 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
3674 fold_builtin_found, fold_builtin_1): Update calls to
3675 fold_trunc_transparent_mathfn.
3676
6c6d9d33
JDA
36772005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3678
3679 PR middle-end/20493
3680 * fold-const.c (fold_widened_comparison): Don't optimize casts of
3681 function pointers on targets that require function pointer
3682 canonicalization.
3683 (fold_sign_changed_comparison): Likewise.
3684
1ad93fbf
BS
36852005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
3686
3687 * combine.c (try_combine): When changing the mode of a hard reg, make
3688 sure that doing so is valid.
3689
5a41973c
RS
36902005-03-19 Richard Sandiford <rsandifo@redhat.com>
3691
3692 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
3693 (TARGET_HANDLE_OPTION): Override default.
3694 (avr_handle_option): New function.
3695 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
3696 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
3697 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
3698 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
3699 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
3700 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
3701 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
3702 (TARGET_OPTIONS): Delete.
3703 * config/avr/avr.opt: New file.
3704
a16095f6
KH
37052005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3706
3707 * config/m32r/m32r-protos.h: Remove the prototypes for
3708 call_address_operand, symbolic_operand, seth_add3_operand,
3709 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3710 reg_or_uint16_operand, reg_or_cmp_int16_operand,
3711 two_insn_const_operand, move_src_operand,
3712 move_double_src_operand, move_dest_operand,
3713 eqne_comparison_operator, signed_comparison_operator,
3714 large_insn_p, conditional_move_operand, carry_compare_operand,
3715 m32r_block_immediate_operand, extend_operand,
3716 reg_or_eq_int16_operand, int8_operand, and
3717 reg_or_zero_operand.
3718 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3719 seth_add3_operand, int8_operand, cmp_int16_operand,
3720 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3721 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3722 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3723 move_double_src_operand, move_dest_operand,
3724 eqne_comparison_operator, signed_comparison_operator,
3725 extend_operand, small_insn_p, large_insn_p,
3726 conditional_move_operand, carry_compare_operand,
3727 m32r_block_immediate_operand): Move to predicates.md.
3728 (MAX_MOVE_BYTES): Move to m32r.h.
3729 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3730 * config/m32r/m32r.md: Include predicates.md.
3731 * config/m32r/predicates.md: New.
3732
0eb971bd
JW
37332005-03-18 James E Wilson <wilson@specifixinc.com>
3734
3735 PR c++/19769
3736 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
3737 origin.
3738
14755fb0
KH
37392005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3740
3741 * config/mn10300/mn10300-protos.h: Remove the prototypes for
3742 call_address_operand, const_8bit_operand.
3743 * config/mn10300/mn10300.c (call_address_operand,
3744 const_8bit_operand, const_1f_operand): Move to predicates.md.
3745 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
3746 * config/mn10300/mn10300.md: Include predicates.md.
3747 * config/mn10300/predicates.md: New.
3748
c51a1ba9
JM
37492005-03-18 Joseph S. Myers <joseph@codesourcery.com>
3750
3751 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
3752 declarations in diagnostics and %E for identifiers, not %s.
3753
33156717
JH
37542005-03-18 Jan Hubicka <jh@suse.cz>
3755 Dale Johannesen <dalej@apple.com>
3756
3757 * basic-block.h (scale_bbs_frequencies_int,
3758 scale_bbs_frequencies_gcov_type): Declare.
3759 * cfg.c (RDIV): New macro.
3760 (update_bb_frequency_for_threading): Fix.
3761 * basic-block.h (scale_bbs_frequencies_int,
3762 scale_bbs_frequencies_gcov_type): New.
3763 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
3764 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
3765 scale_bbs_frequencies_int.
3766 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
3767
c9a88190 37682005-03-18 Kazu Hirata <kazu@cs.umass.edu>
22a14e0d
KH
3769
3770 * config/m32r/m32r-protos.h: Remove the prototypes for
3771 call_address_operand, symbolic_operand, seth_add3_operand,
3772 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3773 reg_or_uint16_operand, reg_or_cmp_int16_operand,
3774 two_insn_const_operand, move_src_operand,
3775 move_double_src_operand, move_dest_operand,
3776 eqne_comparison_operator, signed_comparison_operator,
3777 large_insn_p, conditional_move_operand, carry_compare_operand,
3778 m32r_block_immediate_operand, extend_operand,
3779 reg_or_eq_int16_operand, int8_operand, and
3780 reg_or_zero_operand.
3781 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3782 seth_add3_operand, int8_operand, cmp_int16_operand,
3783 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3784 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3785 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3786 move_double_src_operand, move_dest_operand,
3787 eqne_comparison_operator, signed_comparison_operator,
3788 extend_operand, small_insn_p, large_insn_p,
3789 conditional_move_operand, carry_compare_operand,
3790 m32r_block_immediate_operand): Move to predicates.md.
3791 (MAX_MOVE_BYTES): Move to m32r.h.
3792 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3793 * config/m32r/m32r.md: Include predicates.md.
3794 * config/m32r/predicates.md: New.
3795
c9a88190
KH
3796 * config/pa/pa-protos.h: Add prototypes for magic_milli and
3797 shadd_constant_p.
3798 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
3799 symbolic_operand, symbolic_memory_operand,
3800 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
3801 indexed_memory_operand, move_dest_operand, move_src_operand,
3802 prefetch_cc_operand, prefetch_nocc_operand,
3803 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
3804 arith_operand, arith11_operand, pre_cint_operand,
3805 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
3806 ireg_operand, int5_operand, uint5_operand, int11_operand,
3807 uint32_operand, arith5_operand, and_operand, ior_operand,
3808 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
3809 pc_or_label_operand, div_operand, plus_xor_ior_operator,
3810 shadd_operand, movb_comparison_operator,
3811 cmpib_comparison_operator): Move to predicates.md.
3812 (magic_milli, shadd_constant_p): Make it extern.
3813 * config/pa/pa.h (PREDICATE_CODES): Remove.
3814 * config/pa/pa.md: Include predicates.md.
3815 * config/pa/predicates.md: New.
3816
24a86d3e 3817 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
76ef0a0d 3818 predicate.
24a86d3e 3819
bc7ffd06
KH
38202005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3821
3822 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
3823 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
3824 config/alpha/freebsd.h, config/alpha/linux.h,
3825 config/alpha/netbsd.h, config/alpha/osf5.h,
3826 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
3827 config/h8300/h8300-protos.h, config/h8300/h8300.c,
3828 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
3829 doc/cppopts.texi: Update copyright.
3830
45676d2b
JH
38312005-03-18 Jan Hubicka <jh@suse.cz>
3832
3833 PR middle-end/20225
3834 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
3835 too late.
3836 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
3837 called too late.
3838
625da0db
KH
38392005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3840
3841 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
3842 VEC_safe_push.
3843
38442005-03-18 Paolo Bonzini <bonzini@gnu.org>
bcb34aa3
PB
3845
3846 * combine.c (gen_binary): Remove.
3847 (known_cond, simplify_shift_const, find_split_point,
3848 combine_simplify_rtx, simplify_if_then_else, simplify_set,
3849 simplify_logical, expand_field_assignment, extract_left_shift,
3850 force_to_mode, if_then_else_cond, apply_distributive_law,
3851 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
3852 simplify_comparison, reversed_comparison): Replace with
3853 simplify_gen_binary, simplify_gen_relational or
3854 distribute_and_simplify_rtx.
3855 (distribute_and_simplify_rtx): New function.
3856
bae802f9
AN
38572005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
3858 Paolo Bonzini <gcc.gnu.org>
3859
3860 * calls.c (setjmp_call_p, special_function_p): Update comments
3861 at the head of the functions.
3862
4a76d91a
JH
38632005-03-18 Jan Hubicka <jh@suse.cz>
3864
4bafe847
JH
3865 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
3866
f08dd1f8 3867 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
4a76d91a
JH
3868 function body should be released; do not proactively release function
3869 bodies in non-unit-at-a-time mode.
3870
49aa94f9
RC
38712005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
3872
3873 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
3874 mno-fp-ret-in-387 multilib variants.
3875
2d6eb6c6
RS
38762005-03-18 Richard Sandiford <rsandifo@redhat.com>
3877
3878 * common.opt (m): Remove.
3879 * opts.c (handle_option): Pass 'm' options to set_target_switch if
3880 table lookup fails.
3881 (common_handle_option): Remove OPT_m case.
3882
61f0284e
KH
38832005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3884
3885 * builtins.c (fold_builtin_bitop): Take decomposed arguments
3886 of CALL_EXPR.
3887 (fold_builtin_1): Update a call to fold_builtin_bitop.
3888
1a0d99a8
KH
3889 * builtins.c (fold_builtin_signbit): Take decomposed arguments
3890 of CALL_EXPR.
3891 (fold_builtin_1): Update a call to fold_builtin_signbit.
3892
d6efd7d6
DN
38932005-03-17 Dorit Naishlos <dorit@il.ibm.com>
3894
3895 PR tree-optimization/20474
f08dd1f8 3896 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
d6efd7d6
DN
3897 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
3898
981c7dce
KH
38992005-03-17 Kazu Hirata <kazu@cs.umass.edu>
3900
3901 * config/h8300/h8300-protos.h: Remove prototypes for
3902 general_operand_src, general_operand_dst, single_one_operand,
3903 single_zero_operand, call_insn_operand,
3904 two_insn_adds_subs_operand, small_call_insn_operand,
3905 jump_address_operand, bit_operand, bit_memory_operand,
3906 stack_pointer_operand, const_int_gt_2_operand,
3907 const_int_ge_8_operand, const_int_qi_operand,
3908 const_int_hi_operand, incdec_operand, bit_operator,
3909 nshift_operator, eqne_operator, gtle_operator,
3910 gtuleu_operator, iorxor_operator.
3911 Add prototypes for h8sx_shift_type h8sx_classify_shift and
3912 h8300_ldm_stm_parallel.
3913 * config/h8300/h8300.c (h8sx_shift_type,): Move to
3914 h8300-protos.h.
3915 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
3916 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
3917 (h8300_ldm_stm_parallel): Make it extern.
3918 (h8300_ldm_parallel, h8300_stm_parallel,
3919 h8300_return_parallel, general_operand_src,
3920 general_operand_dst, h8300_dst_operand, h8300_src_operand,
3921 nibble_operand, reg_or_nibble_operand, single_one_operand,
3922 single_zero_operand, call_insn_operand,
3923 two_insn_adds_subs_operand, small_call_insn_operand,
3924 jump_address_operand, bit_operand, bit_memory_operand,
3925 stack_pointer_operand, const_int_gt_2_operand,
3926 const_int_ge_8_operand, const_int_qi_operand,
3927 const_int_hi_operand, incdec_operand, eqne_operator,
3928 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
3929 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
3930 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
3931 nshift_operator): Move to predicates.md.
3932 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
3933 * config/h8300/h8300.md: Include predicates.md.
3934 * config/h8300/predicates.md: New.
3935
dbdd120f
RH
39362005-03-17 Richard Henderson <rth@redhat.com>
3937
3938 * config.gcc (ia64*-*-hpux*): Add extra_options.
3939 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
3940 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3941 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
3942 (ia64_tls_size_string, ia64_tune_string): Remove.
3943 (ia64_tune): Init to PROCESSOR_ITANIUM2.
3944 (TARGET_DEFAULT_TARGET_FLAGS): New.
3945 (TARGET_HANDLE_OPTION): New.
3946 (ia64_override_options): Move options parsing ...
3947 (ia64_handle_option): ... here. New.
3948 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
f08dd1f8 3949 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
dbdd120f
RH
3950 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
3951 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
3952 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
f08dd1f8
ZW
3953 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
3954 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
dbdd120f
RH
3955 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
3956 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
3957 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
3958 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
3959 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
3960 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
3961 TARGET_EARLY_STOP_BITS): Remove.
3962 (TARGET_ILP32): Default false.
3963 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
3964 (enum ia64_inline_type): New.
3965 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3966 * config/ia64/ia64.md: Update for new definitions of
3967 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
3968 * config/ia64/ia64.opt: New file.
3969 * config/ia64/ilp32.opt: New file.
3970
0c103070
L
39712005-03-17 H.J. Lu <hongjiu.lu@intel.com>
3972
3973 PR target/18380
3974 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
3975
5463c726
KH
39762005-03-17 Kazu Hirata <kazu@cs.umass.edu>
3977
3978 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
3979 instead of MASK_H8300S.
3980 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
3981 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
3982 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
3983 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
3984 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
3985 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
3986 TARGET_SWITCHES): Remove.
3987 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
3988 TARGET_H8300SX.
3989 * config/h8300/h8300.opt: New.
3990
3ad7bb65
KH
3991 * config/alpha/alpha.opt, config/arc/arc.opt,
3992 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
3993 notices.
3994
3bd62c45
ILT
39952005-03-17 Ian Lance Taylor <ian@airs.com>
3996
3997 * gmon.c: Remove.
3998
3ff01d4d
RS
39992005-03-17 Richard Sandiford <rsandifo@redhat.com>
4000
4001 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
4002 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
4003 (TARGET_HANDLE_OPTION): Override default.
4004 (arc_handle_option): New function.
4005 (arc_init): Remove code to set arch_cpu_string.
4006 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
4007 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
4008 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
4009 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
4010 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
4011 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
4012 (arc_rodata_string, TARGET_OPTIONS): Delete.
4013 * config/arc/arc.opt: New file.
4014
52eb57df
RH
40152005-03-17 Richard Henderson <rth@redhat.com>
4016
4017 * doc/extend.texi (Weak Pragmas): New section.
4018 (attribute alias): Clarify that target must be in the same
4019 translation unit.
4020
8bea7f7c
RH
40212005-03-17 Richard Henderson <rth@redhat.com>
4022
4023 * config/alpha/alpha.opt: New file.
4024 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
4025 of alpha_cpu.
f08dd1f8 4026 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
8bea7f7c
RH
4027 alpha_fprm_string, alpha_fptm_string): Make static.
4028 (alpha_tls_size_string): Remove.
4029 (alpha_handle_option): New.
4030 (override_options): Update for alpha_cpu/alpha_tune split.
4031 (alpha_file_start): Likewise.
4032 (TARGET_DEFAULT_TARGET_FLAGS): New.
4033 (TARGET_HANDLE_OPTION): New.
4034 * config/alpha/alpha.h (alpha_tune): Declare.
f08dd1f8 4035 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
8bea7f7c
RH
4036 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
4037 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
4038 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
4039 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
4040 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
4041 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
4042 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
4043 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
4044 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
4045 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
4046 (TARGET_DEFAULT): Remove MASK_FP.
4047 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
4048 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
4049 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
4050 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
4051 alpha_tls_size_string): Remove.
4052 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
4053 (attribute tune): Rename from attribute cpu.
4054 * config/alpha/ev4.md: Update to match.
4055 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
4056 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
4057 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
4058 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
4059 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
4060 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
4061
68e11b42
JW
40622005-03-16 James E. Wilson <wilson@specifixinc.com>
4063
4064 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
4065 and return without creating new state if before_nops_num is nonzero.
4066 * config/ia64/ia64.md (first_insn): New attribute.
4067 (alloc): Set it to yes.
4068
e8b19a77
DB
40692005-03-16 Daniel Berlin <dberlin@dberlin.org>
4070
4071 * tree-vectorizer.c (new_vec_stmt_info): Initialize
4072 STMT_VINFO_SUBVARS to NULL.
4073 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
f08dd1f8 4074
b2df20b4
DJ
40752005-03-16 Dale Johannesen <dalej@apple.com>
4076
4077 * rtlanal.c (find_first_parameter_load): Rewrite to
4078 return actual first param load or the call if none,
4079 instead of first in block, when not all loads exist.
4080
9abd1955
RS
40812005-03-16 Roger Sayle <roger@eyesopen.com>
4082
4083 * optabs.c (expand_copysign_absneg): Make static.
4084 * optabs.h (expand_copysign_absneg): Delete prototype.
4085 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
4086
e4d5432a
RH
40872005-03-16 Richard Henderson <rth@redhat.com>
4088
4089 PR middle-end/15700
4090 * varasm.c (struct alias_pair): Rename from struct output_def_pair.
4091 (alias_pairs): Rename from output_defs.
4092 (find_decl_and_mark_needed): Split out from assemble_alias.
4093 (do_assemble_alias): New.
4094 (assemble_output_def): Remove.
4095 (finish_aliases_1, finish_aliases_2): New.
4096 (process_pending_assemble_output_defs): Remove.
4097 (assemble_alias): Defer aliases for which we don't yet have a
4098 non-external decl for the target symbol.
4099 * passes.c (rest_of_decl_compilation): Register variables with cgraph.
4100 * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
4101 * toplev.c (compile_file): Use finish_aliases_2 instead of
4102 process_pending_assemble_output_defs.
4103 * tree.h (finish_aliases_1, finish_aliases_2): Declare.
4104 (process_pending_assemble_output_defs): Remove.
4105
5f6c8a56 41062005-03-16 Daniel Berlin <dberlin@dberlin.org>
f08dd1f8 4107
5f6c8a56
DB
4108 Fix PR tree-optimization/20489
4109
4110 * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
4111 for empty structures.
4112
70596642
DB
41132005-03-16 Daniel Berlin <dberlin@dberlin.org>
4114
f718710e 4115 Fix PR tree-optimization/20490
f08dd1f8 4116
70596642
DB
4117 * tree-ssa-pre.c (create_expression_by_pieces): Use
4118 force_gimple_operand on result of fold.
4119
13953f0a
AP
41202005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
4121
4122 * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
4123 of closing parenthesis.
4124
a456b432
KH
41252005-03-16 Kazu Hirata <kazu@cs.umass.edu>
4126
4127 * builtins.c (expand_movstr): Update a call to
4128 fold_builtin_strcpy.
4129 (expand_builtin_strncpy): Update a call to
4130 fold_builtin_strncpy.
4131 (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
4132 arguments of CALL_EXPR.
4133 (fold_builtin_1): Update calls to fold_builtin_strcpy and
4134 fold_builtin_strncpy.
4135 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
4136 * tree.h: Update the prototypes of fold_builtin_strcpy and
4137 fold_builtin_strncpy.
4138
00c714ed 41392005-03-16 Steven Bosscher <stevenb@suse.de>
f08dd1f8 4140 Dorit Naishlos <dorit@il.ibm.com>
00c714ed 4141
f08dd1f8
ZW
4142 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
4143 UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
00c714ed
SB
4144 error.
4145
b8c4a565
SB
41462005-03-16 Steven Bosscher <stevenb@suse.de>
4147
4148 * tree-inline.c (walk_type_fields, walk_tree,
4149 walk_tree_without_duplicates): Move from here...
4150 * tree.c: ...to here.
4151
a1286ef5
ZW
41522005-03-15 Zack Weinberg <zack@codesourcery.com>
4153
4154 * BASE-VER, DATESTAMP, DEV-PHASE: New files.
4155 * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
4156 (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
4157 (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
4158 (version): Define using $(BASEVER_c).
4159 (Makefile, config.status, build/gcov-iov.o): No longer depends on
4160 version.c.
4161 (version.o): Depend on version files; add custom generation command.
4162 (prefix.o): Define BASEVER on command line.
4163 (s-iov): Depend on version files; adjust command.
4164 (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
4165 Add gcc-vers.texi.
4166 (gcc-vers.texi): New rule.
4167 (doc/%.info, doc/%.dvi): Add -I . to command line.
4168 (doc/gccinstall.dvi): Likewise.
4169 (PACKAGE): Delete. All uses replaced with "gcc".
4170 * aclocal.m4: Do not include gcc-version.m4.
4171 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
4172 Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
4173 Set is_release based on contents of DEV-PHASE.
4174 Set gcc_version based on contents of BASE-VER.
4175 Define WIN32_REGISTRY_KEY only if the user overrode the default.
4176 * config.in, configure: Regenerate.
4177 * gccbug.in: Determine version of GCC in use at runtime.
4178 * gcov-iov.c: Get version number and development phase from
4179 command line, not by including version.c.
4180 * intl.c: Replace all uses of PACKAGE with "gcc".
4181 * libada-mk.in: Delete unused "gcc_version" variable.
4182 * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
4183 * version.c: (VERSUFFIX): New hook for redistributors; adjust
4184 commentary to match.
4185 (version_string): Put together from pieces.
4186 * config/alpha/x-vms: Do not use $(gcc_version).
4187 * config/i386/t-nwld: Likewise.
4188 * doc/include/gcc-common.texi: Include gcc-vers.texi for
4189 version-GCC and DEVELOPMENT.
4190
0ebfd2c9
RS
41912005-03-15 Roger Sayle <roger@eyesopen.com>
4192
4193 PR tree-optimization/17454
4194 * tree.c (tree_size): Add case for TREE_BINFO.
4195 * fold-const.c (fold_checksum_tree): Only clear the overloaded
4196 field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
4197
69f39b11
RS
41982005-03-15 Roger Sayle <roger@eyesopen.com>
4199
4200 * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
4201 op1 whilst expanding the signed widenening multiply variant.
4202
d522e7a2
RS
42032005-03-15 Richard Sandiford <rsandifo@redhat.com>
4204
4205 * toplev.c (display_target_options): Avoid unused variable warning if
4206 TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
4207 * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
4208 (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
4209 (mips_isa): Initialize to MIPS_ABI_DEFAULT.
4210 (mips_isa_info): New variable.
4211 (mips_parse_cpu): Remove the first argument and leave the caller
4212 to report errors.
4213 (TARGET_HANDLE_OPTION): Override default.
4214 (mips_handle_option): New function. Move option validation code from...
4215 (override_options): ...here. Update calls to mips_parse_cpu.
4216 * config/mips/mips.h (mips_arch_string, mips_tune_string)
4217 (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
4218 (SUBTARGET_TARGET_OPTIONS): Delete.
4219 * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
4220 (mno-flush-func, mtune=): New options.
4221
c064fde5
RS
42222005-03-15 Roger Sayle <roger@eyesopen.com>
4223 Richard Henderson <rth@redhat.com>
4224
4225 * real.c (c4x_single_format, c4x_extended_format): Provide values
4226 for signbit_ro for c4x's single and extended floating point formats.
4227 * optabs.c (expand_copysign): Use the floating point format's
4228 signbit_ro for expanding via expand_copysign_absneg, and it's
4229 signbit_rw field for expanding via expand_copysign_bit.
4230
5f55a1ba
DN
42312005-03-15 Dorit Naishlos <dorit@il.ibm.com>
4232
4233 * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
4234 known_alignment_for_access_p.
4235 (known_alignment_for_access_p): New.
4236 (do_peeling_for_alignment): Field made int instead of bool and renamed
4237 to peeling_for_alignment.
4238 (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
4239 * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
4240 functionality used to be in vect_analyze_operations.
4241 (vect_analyze_operations): Code to determine vectorization factor was
4242 moved to vect_determine_vectorization_factor.
4243 (vect_enhance_data_refs_alignment): Update to correct alignment when it
4244 is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling
4245 factor.
4246 (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
4247 be part of vect_analyze_operations).
4248 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
4249 creating the guard condition, as the number of iterations may be
4250 constant.
4251 (slpeel_tree_peel_loop_to_edge): Use new name of
4252 LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
4253 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
4254 alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
4255 (vect_do_peeling_for_alignment): Use fold.
4256 (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
4257
4258 (vect_update_inits_of_dr): Renamed to
4259 vect_update_init_of_dr.
4260 (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
4261 (vectorizable_store): Fix assertion to use == instead of =.
4262
119bb233
DJ
42632005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
4264
4265 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
4266 call_used_regs for wCG registers.
4267
0ca89db7
UW
42682005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4269
4270 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
4271 for non-offsettable memory references to cope with outstanding reload
4272 replacements, take 2.
4273
9199f050
UB
42742005-03-15 Uros Bizjak <uros@kss-loka.si>
4275
4276 PR target/18668
4277 * config/i386/i386.h (x86_fisttp): New.
4278 (TARGET_FISTTP): New macro.
4279 * config/i386/i386.c (x86_fisttp): Set for NOCONA.
4280 (output_fix_trunc): Add fisttp parameter. Generate fisttp x87
4281 instruction when fisttp flag is set.
4282 * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
4283
4284 * config/i386/i386.md (type attribute): Add fisttp.
4285 (unit attribute): Set to i387 for fisttp type.
4286 (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
4287 (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
4288 TARGET_FISTTP.
4289 (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
4290 Generate fisttp patterns for TARGET_FISTTP. Implement using mode
4291 macros.
4292 (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
4293 patterns for TARGET_FISTTP. Enable patterns for
4294 (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
4295 (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
4296 fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
4297 implement fisttp x87 insn.
4298 (fix_trunc*_i387_fisttp splitters): New patterns.
4299 (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
4300 Rename to *fix_trunc<mode>_i387_1. Implement using mode macros.
4301 Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG
4302 clobber.
4303 (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
4304 Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
4305 Implement using mode macros. Disable patterns for TARGET_FISTTP.
4306 (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
4307 fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
4308 fix_trunc<mode>_i387_with_temp. Implement using mode macros.
4309 Disable patterns for TARGET_FISTTP.
4310 (fix_trunc*_i387 splitters): Implement usign mode macros.
4311 (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
4312 fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
4313 (fix_trunx*_sse peephole2s): Implement using mode macros.
4314
9b12dc4f
R
43152005-03-15 J"orn Rennecke <joern.rennecke@st.com>
4316
4317 PR rtl-optimization/20291
4318 * combine.c (try_combine): If splitting fails, re-try with
4319 original combined pattern, i.e. before clobber stripping.
4320
85bfab36
EC
43212005-03-14 Eric Christopher <echristo@redhat.com>
4322
4323 * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
4324 STACK_GROWS_DOWNWARD.
a1286ef5 4325
b87a0206
RS
43262005-03-14 Roger Sayle <roger@eyesopen.com>
4327
4328 * real.h (struct real_format): Split the signbit field into two
4329 two fields, signbit_ro and signbit_rw.
4330 * real.c (ieee_single_format, mips_single_format, ieee_double_format,
4331 mips_double_format, ieee_extended_motorola_format,
4332 ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
4333 ieee_extended_intel_128_format, ibm_extended_format,
4334 mips_extended_format, ieee_quad_format, mips_quad_format,
4335 vax_f_format, vax_d_format, vax_g_format, i370_single_format,
4336 i370_double_format, c4x_single_format, c4x_extended_format,
4337 real_internal_format): Update initializers for new field.
4338 * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
4339 real_format structure.
4340 * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
4341 field of the real_format structure.
4342
9044951e
DB
43432005-03-14 Daniel Berlin <dberlin@dberlin.org>
4344
4345 Fix PR tree-optimization/20458
4346
4347 * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
4348 DECL_EXTERNAL on STRUCT_FIELD tags.
4349 (clear_call_clobbered): Ditto.
4350 * tree-ssa-operands.c (note_addressable): Make sure the original
4351 variable doesn't slip into the addressable list if we have
4352 subvars.
4353 * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
4354 tags too.
a1286ef5 4355
50668cf6
GK
43562005-03-14 Geoffrey Keating <geoffk@apple.com>
4357
4358 * doc/cppopts.texi (-fexec-charset): Add concept index entry.
4359 (-fwide-exec-charset): Likewise.
4360 (-finput-charset): Likewise.
4361 * doc/invoke.texi (Warning Options): Document -Wnormalized=.
4362 * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
4363 * c.opt (Wnormalized): New.
4364
ce84fa41
DP
43652005-03-14 Devang Patel <dpatel@apple.com>
4366
4367 * doc/invoke.texi: Add reference to Visibility document.
a1286ef5 4368
21c425ee
RS
43692005-03-14 Richard Sandiford <rsandifo@redhat.com>
4370
4371 * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
4372 MASK_SPLIT_ADDRESSES.
4373 * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
4374 (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
4375 (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
4376 (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
4377 (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
4378 (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
4379 (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
4380 (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
4381 (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
4382 (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
4383 (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
4384 (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
4385 (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
4386 (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
4387 (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
4388 (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
4389 (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
4390 (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
4391 (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
4392 (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
4393 (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
4394 (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
4395 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
4396 (TARGET_EXPLICIT_RELOCS): Delete.
4397 (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
4398 (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
4399 * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
4400 (override_options): Set MASK_LONG64 if -mint64 is given and no
4401 -mlongXX option is. Complain about -mint64 -mlong32.
4402 (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
4403 MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
4404 * config/mips/mips.opt: New file.
4405
75685792
RS
44062005-03-14 Richard Sandiford <rsandifo@redhat.com>
4407
4408 * config.gcc (extra_options): New variable for listing option files.
4409 Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
4410 * configure.ac (extra_opt_files): New AC_SUBST variable.
4411 (tm_file_list, tm_include_list): Include options.h first.
4412 * configure: Regenerate.
4413 * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
4414 (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
4415 (s-options-h): New rule.
4416 (options.h): Depend on it.
4417 (TEXI_GCCINT_FILES): Add options.texi.
4418 * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
4419 * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
4420 * target.h (gcc_target): Add default_target_flags and handle_option.
4421 * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
4422 (TARGET_HANDLE_OPTION): New macros.
4423 (TARGET_INITIALIZER): Include them.
4424 * opt-functions.awk (opt_args, nth_arg): New functions.
4425 (switch_flags): Handle the "Target" flag.
4426 (var_args): Delete.
4427 (var_name): Use opt_args and nth_arg.
4428 (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask".
4429 * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_*
4430 macros for the "Mask" and "InverseMask" options.
4431 * opts.h (cl_var_cond): New enum.
a1286ef5 4432 (cl_option): Replace the "has_set_value" and "set_value" fields with
75685792
RS
4433 "var_cond" and "var_value".
4434 (CL_TARGET): New macro.
4435 (option_enabled, print_filtered_help): Declare.
4436 (decode_options): Move definition.
4437 * opts.c (handle_option): Search for the original option before
4438 removing any "no-" prefix. Handle CL_TARGET. Adjust for the new
4439 var_cond and var_value fields. Use targetm.handle_option to handle
4440 target options.
4441 (decode_options): Set target_flags to targetm.default_target_flags.
4442 (print_filtered_help): Make global. Handle CL_TARGET.
4443 (option_enabled): New function.
4444 * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
4445 (display_target_options, set_target_switch, print_switch_values)
4446 (default_pch_valid_p): Guard uses of target_switches with
4447 #ifdef TARGET_SWITCHES. Also...
4448 (display_target_options): Display the CL_TARGET entries in cl_options.
4449 (set_target_option): Don't complain about the "" option when
4450 TARGET_SWITCHES is undefined.
4451 (print_switch_values): Use option_enabled.
4452 (default_pch_valid_p): Check cl_options[] when looking for something
4453 that has changed the value of target_flags.
4454 * c.opt: Remove documentation from top of file.
4455 * doc/gccint.texi: Add an "Options" chapter. Include options.texi.
4456 * doc/sourecebuild.texi: Refer to the new options documentation
4457 instead of c.opt. Document machine-specific .opt files.
4458 * doc/tm.texi (target_flags): Say that this variable is declared
4459 by options.h.
4460 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
4461 (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
4462 an alternative.
4463 * doc/options.texi: New file.
4464
3a3b81e7
AO
44652005-03-14 Alexandre Oliva <aoliva@redhat.com>
4466
4467 PR middle-end/18628
4468 * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
4469 register.
4470
aff98faf
AO
44712005-03-14 Alexandre Oliva <aoliva@redhat.com>
4472
4473 PR c++/20280
4474 * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
4475 temporary variable of pointer type if an lvalues is required.
4476 (gimplify_modify_expr_rhs): Request an rvalue from it.
4477 (gimplify_expr): Pass fallback on.
4478
55b18c19
KH
44792005-03-14 Kazu Hirata <kazu@cs.umass.edu>
4480
4481 * cfgbuild.c: Update comments.
4482
f927760b
RS
44832005-03-14 Roger Sayle <roger@eyesopen.com>
4484
4485 PR rtl-optimization/17236
4486 * optabs.c (expand_doubleword_mult): New helper function split out
4487 from expand_binop. Permute the order in which instructions are
4488 emitted to minimize the number of simultaneously live registers.
4489 (expand_binop): Call expand_doubleword_mult to synthesize a double
4490 word multiplication.
4491
a6ee1a15
KH
44922005-03-14 Kazu Hirata <kazu@cs.umass.edu>
4493
4494 * basic-block.h: Update the prototypes of cached_make_edge and
4495 rtl_make_eh_edge.
4496 * cfg.c (cached_make_edge): Take edge_cache representing one
4497 row of the adjacency matrix of edges.
4498 * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
4499 (make_edges): Initialize edge_cache to represent one row of
4500 the adjacency matrix of edges.
4501
8eaa0f34
ZD
45022005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
4503
4504 * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
4505 New functions.
4506 (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
4507 Remove unused removed_phis variable.
4508 (conditional_replacement): Use build1/build2.
4509 (abs_replacement): Use last_and_only_stmt and build1/build2.
4510
dcd6de6d
ZD
45112005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
4512
4513 * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
4514 ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
4515 * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
4516 (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
4517 * c-common.c (handle_novops_attribute): New function.
4518 (c_common_attribute_table): Add "no vops" entry.
4519 * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
4520 * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
4521 * tree-ssa-operands.c (get_call_expr_operands): Do not
4522 create virtual operands for calls with ECF_NOVOPS flag.
4523 * tree.h (DECL_IS_NOVOPS): New macro.
4524 (struct tree_decl): Add novops_flag.
4525 (ECF_NOVOPS): New constant.
4526
0e8c2b0d
UB
45272005-03-14 Uros Bizjak <uros@kss-loka.si>
4528
4529 PR target/17688
4530 * config/i386/i386.c (x86_use_himode_fiop): New.
4531 (x86_use_simode_fiop): Rename from x86_use_fiop.
4532 * config/i386/i386.h (x86_use_himode_fiop): Declare.
4533 (TARGET_USE_HIMODE_FIOP): New.
4534 (x86_use_simode_fiop): Rename from x86_use_fiop.
4535 (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
a1286ef5 4536
0e8c2b0d
UB
4537 * config/i386/i386.md (X87MODEI12): New mode macro define.
4538 (*cmpfp_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
4539 to implement x87 FP compare with HImode input operands.
4540 (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
4541 Use X87MODEI12 mode macro to handle HImode input operands.
4542 (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
4543 *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
4544 Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
4545 *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
4546 macro to implement x87 operators with HImode input operands.
4547 (fop splitters): Use X87MODEI12 mode macro to handle HImode
4548 input operands.
4549
f1b19062
ZD
45502005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
4551
4552 * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
4553 integer_zerop.
4554 * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
4555 constants invariant.
4556
9e32d2be
ZD
45572005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
4558
4559 * basic-block.h (BB_VISITED): Removed.
4560 * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
4561
18410793
FH
45622005-03-14 Falk Hueffner <falk@debian.org>
4563
4564 PR bootstrap/20424
4565 * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
4566
c1b97125
KH
45672005-03-14 Kazu Hirata <kazu@cs.umass.edu>
4568
4569 * ggc-zone.c: Fix comment typos.
4570
a2130901
KH
4571 * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
4572 stringpool.c, config/mips/mips-protos.h: Update copyright.
4573
9390387d
AM
45742005-03-14 Alan Modra <amodra@bigpond.net.au>
4575
4576 * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
4577 throughout with its typedef, "rtx".
4578 * config/rs6000/rs6000.c: Likewise. Formatting fixes.
4579 (rs6000_tls_symbol_ref_1): Remove inline keyword.
4580 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder
4581 regs in comment to match code.
4582
c148389e
KH
45832005-03-14 Kazu Hirata <kazu@cs.umass.edu>
4584
4585 * except.c (check_handled): Make it static.
4586 * except.h: Remove the corresponding prototype.
4587
7b25e663
KH
4588 * function.c (get_func_frame_size): Make it static.
4589 * function.h: Remove the corresponding type.
4590
1b28cd06
KH
4591 * regclass.c (reg_class_superclasses, reg_class_subclasses):
4592 Make them static.
4593 * hard-reg-set.h: Remove the corresponding declarations.
4594
8de1fc1b
KH
4595 * tree-cfg.c (verify_stmts): Check that
4596 bb_for_stmt (stmt) == bb for every PHI node and statement.
4597
fe3e7450
AM
45982005-03-14 Alan Modra <amodra@bigpond.net.au>
4599
4600 * config.gcc: Remove excess indentation.
4601 (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
4602
362cb1bb
RS
46032005-03-13 Roger Sayle <roger@eyesopen.com>
4604
4605 PR middle-end/19331
4606 * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
4607 * fold-const.c (fold_sign_changed_comparison): Likewise.
4608 (fold_binary): Optimize comparisons against widened operands if
4609 the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
4610
e4a31e19 46112005-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1da4c3a7
EB
4612
4613 * config/sparc/sparc.c (struct_value_alias_set): New global variable.
4614 (sparc_override_options): Initialize it.
4615 (sparc_struct_value_rtx): Set it on the MEM to be returned.
4616
97c54d9a
DE
46172005-03-13 David Edelsohn <edelsohn@gnu.org>
4618
4619 * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
4620 (reg_or_none500mem_operand): New predicate.
4621 (zero_reg_mem_operand): New predicate.
4622 * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
4623 to reg_or_none500mem_operand.
4624 (extendsfdf2_fpr): Add MEM alternative.
4625 (extenddftf2_internal): Change operand2 predicate to
4626 zero_reg_mem_operand.
4627
08cee789
DJ
46282005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
4629
4630 * ggc-zone.c: Rewritten.
4631
4632 * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
4633 if there are none.
4634 * configure.ac: Define GGC_ZONE for --with-gc=zone.
4635 * config.in: Regenerated.
4636 * configure: Regenerated.
ae83e8ae 4637 * gengtype.c (write_types_process_field, write_func_for_structure):
08cee789
DJ
4638 Pass new argument to gt_pch_note_object.
4639 * ggc-common.c (struct ptr_data): Add TYPE.
4640 (gt_pch_note_object): Take TYPE argument and save it.
4641 (call_count): Update call to ggc_pch_count_object.
4642 (call_alloc): Update call to ggc_pch_alloc_object.
4643 (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
4644 file.
4645 * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
4646 * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
4647 (ggc_alloc_zone_stat): Delete.
4648 (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
4649 * ggc.h (gt_pch_note_object, ggc_pch_count_object)
4650 (ggc_pch_alloc_object): Update prototypes.
4651 (garbage_zone): Delete.
4652 (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
4653 GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
4654 pointers.
4655 (tree_id_zone): New variable.
4656 (ggc_alloc_cleared_zone): Remove unused.
4657 (ggc_alloc_zone): Define.
4658 (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
4659 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
4660 ggc_alloc_zone_stat.
4661 * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
4662 * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
4663 (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
4664 (make_node_stat): Likewise. Use tree_id_zone.
4665
69229b81
DJ
46662005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
4667 Joseph S. Myers <joseph@codesourcery.com>
4668
4669 * configure.ac: Check for MIPS TLS.
4670 * configure: Regenerated.
4671 * config/mips/mips-protos.h (enum mips_symbol_type): Add
4672 SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
4673 SYMBOL_GOTTPREL, and SYMBOL_TPREL.
4674 * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
4675 (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
4676 (mips_classify_symbol, mips_symbolic_constant_p)
4677 (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
4678 (mips_tls_operand_p, mips_call_tls_get_addr)
4679 (mips_legitimize_tls_address, mips_cannot_force_const_mem)
4680 (mips_tls_symbol_ref_1): New functions.
4681 (mips_legitimize_address, mips_legitimize_const_move): Call
4682 mips_legitimize_tls_address.
4683 (override_options): Handle V1_REG and TLS symbols. Disable TLS
4684 for MIPS16.
4685 * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
4686 (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
4687 (mips_char_to_class): Document V1_REG.
4688 (HAVE_AS_TLS): Provide default.
4689 * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
4690 constants.
4691 (load_got<mode>): Renamed from *load_got<mode>. Allow when
4692 !TARGET_ABICALLS.
4693 (tls_get_tp_<mode>): New instruction.
4694
b095fe2c
DJ
46952005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
4696
4697 * configure.ac: Update checks for target tools.
4698 * configure: Regenerated.
4699
0bfb33e5
DJ
47002005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
4701
4702 * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
4703
65dc9350
RS
47042005-03-13 Roger Sayle <roger@eyesopen.com>
4705
4706 * expmed.c (expand_mult): Use synthetic multiplication sequences for
4707 more classes of DImode multiplication by constant. Allow both
a1286ef5 4708 multiplication by small negative constants (by performing a
65dc9350
RS
4709 multiplication by a positive constant and negating the result) and
4710 multiplications by large powers of two, by using a left shift.
4711
d357720d
KH
47122005-03-13 Kazu Hirata <kazu@cs.umass.edu>
4713
4714 * tree-into-ssa.c (find_idf): Speed up by putting the indexes
4715 of basic blocks into work_stack.
4716
d4ff96d5
KH
4717 * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
4718 config/mips/vr.h: Update copyright.
4719
13d21cb7
KH
4720 * c-decl.c (c_init_decl_processing): Remove useless calls to
4721 build_function_type.
4722
b87e6936
KH
4723 * builtins.c (fold_trunc_transparent_mathfn,
4724 fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
4725 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
4726 fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
4727 fold_builtin_strcpy, fold_builtin_strncpy,
4728 fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
4729 TREE_TYPE (exp).
4730
b475548e
KH
4731 * builtins.c (expand_builtin_mathfn_3): Remove local variable
4732 before_call.
4733
30a6aaed
KH
4734 * lambda-code.c (lambda_compute_auxillary_space): Remove local
4735 variable determinant.
4736
ed9cef22
KH
4737 * tree-cfg.c (group_case_labels): Remove local variable type.
4738
0b4961d0
KH
4739 * tree-ssa-live.c (build_tree_conflict_graph): Remove local
4740 variable ann.
4741
92c54d2c
KH
4742 * tree-ssa-phiopt.c (value_replacement): Remove local variable
4743 result.
4744
6bbaec09
AH
47452005-03-13 Andy Hutchinson <HutchinsonAndy@netscape.net>
4746
4747 PR target/18251
4748 * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
4749 (*movmemqi_insn): Delete.
4750 (*movmemhi): Delete.
4751
5cb08bab
KH
47522005-03-13 Kazu Hirata <kazu@cs.umass.edu>
4753
4754 * builtins.c (fold_builtin_classify): Take decomposed
4755 arguments of CALL_EXPR.
4756 (fold_builtin_1): Update a call to fold_builtin_classify.
4757
67c2939d
JM
47582005-03-13 Joseph S. Myers <joseph@codesourcery.com>
4759
4760 PR c/20402
4761 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
4762 through into call to parser_xref_tag after parse error.
4763 (c_parser_struct_declaration): Consistently return NULL_TREE on
4764 error.
4765
c75ab022
DB
47662005-03-12 Daniel Berlin <dberlin@dberlin.org>
4767
4768 * tree-flow-inline.h (ref_contains_array_ref): New function.
4769 (lookup_subvars_for_var): Ditto.
4770 (get_subvars_for_var): Ditto.
4771 (var_can_have_subvars): Ditto.
4772
4773 * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
4774 (struct subvar): New type.
4775
4776 * tree-dfa.c (okay_component_ref_for_subvars): New function.
4777
4778 * tree-optimize.c (init_tree_optimization_passes): Call
4779 pass_create_structure_vars.
4780
4781 * tree-ssa-alias.c: Include vec.h.
4782 (init_alias_info): Don't auto-clear call clobbered on struct-field
4783 tags.
4784 (compute_flow_insensitive_aliasing): Handle subvars.
4785 (group_aliases): Handle STRUCT_FIELD aliases.
4786 (setup_pointers_and_addressables): Ditto.
4787 Don't mark variables non-addressable if they still have
4788 addressable subvars.
4789 Also mark subvars addressable when the real variable is marked
a1286ef5 4790 addressable.
c75ab022
DB
4791 (add_pointed_to_var): Try to prune the pointed-to set by only
4792 pointing to subvars when possible.
4793 Otherwise, make sure we set addresses_needed and pt_vars to
4794 properly include subvars.
4795 (bitpos_of_field): New function.
4796 (push_fields_onto_fieldstack): Ditto.
4797 (get_or_create_used_part_for): Ditto.
4798 (create_overlap_variables_for): Ditto.
4799 (find_used_portions): Ditto.
4800 (create_structure_vars): Ditto.
4801 (pass_create_structure_vars): New structure.
4802
4803 * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
4804 (get_expr_operands): Handle subvars. Also try to turn
4805 COMPONENT_REF accesses into must-defs now that we can accurately
4806 portray it.
4807 (note_addressable): Try to only mark as addressable those subvars
4808 we know a COMPONENT_REF touches.
4809 (overlap_subvar): New function.
4810
4811 * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
4812 Handle subvar storing.
4813 (vect_address_analysis): Update caller of vect_object_analysis.
4814
4815 * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
4816
4817 * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
4818 (STMT_VINFO_SUBVARS): New macro.
4819
4820 * common.opts: add flag_tree_salias.
a1286ef5 4821
c75ab022 4822 * opts.c (decode_options): flag_tree_salias defaults to on.
a1286ef5 4823
c75ab022
DB
4824 * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
4825
4826 * doc/tree-ssa.texi: Document structural alias analysis.
a1286ef5 4827
7d3bf067
SB
48282005-03-12 Steven Bosscher <stevenb@suse.de>
4829
4830 * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
4831 * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
4832 * tree-ssa-operands.c (get_expr_operands): Likewise.
4833 (get_expr_operands): Likewise for ERROR_MARK.
4834
84f464e5
KH
48352005-03-12 Kazu Hirata <kazu@cs.umass.edu>
4836
4837 * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
4838 var.
4839
a1c7f471
KH
4840 * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
4841 removed_phis.
4842
84ceaf06
KH
4843 * tree-ssa-pre.c (compute_avail): Remove local variable val.
4844 (mark_operand_necessary): Remove local variable ver.
4845
8b54274e
KH
4846 * tree-vect-transform.c (vect_get_new_vect_var): Remove local
4847 variable prefix_len.
4848
75328849
KH
4849 * value-prof.c (mod_subtract_transform): Remove local variable
4850 value.
4851
7cfb2e10
KH
4852 * builtins.c (fold_builtin_exponent): Take decomposed
4853 arguments of CALL_EXPR.
4854 (fold_builtin_1): Update a call to fold_builtin_exponent.
4855
fba08921
KH
4856 * builtins.c (fold_builtin_logarithm): Take decomposed
4857 arguments of CALL_EXPR.
4858 (fold_builtin_1): Update a call to fold_builtin_logarithm.
4859
9386194f
KH
4860 * c-decl.c (c_init_decl_processing): Remove local variables
4861 ptr_ftype_void and ptr_ftype_ptr.
4862
70e2829d
KH
4863 * gimplify.c (gimplify_expr): Remove local variables r0 and
4864 r1.
4865
f7448d50
KH
4866 * reg-stack.c (move_for_stack_reg): Remove local variable
4867 push_insn.
4868 (compare_for_stack_reg): Remove local variable flags_user.
4869 (convert_regs_1): Remove local variable deleted.
4870
2b74282d
KH
4871 * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
4872 variable new_cond.
4873 (combine_blocks): Remove local variables exits and new_e.
4874
fb2a5747
KH
4875 * tree-inline.c (expand_call_inline): Remove local variable
4876 decl.
4877
f39b4c07
KH
4878 * tree-ssa-live.c (create_ssa_var_map,
4879 calculate_live_on_entry): Remove local variable snn.
4880
47e20491
GK
48812005-03-12 Geoffrey Keating <geoffk@apple.com>
4882
a1286ef5 4883 * c-lex.c (c_lex_with_flags): Add parameter to call to
47e20491
GK
4884 cpp_spell_token.
4885
6037d88d
PB
48862005-03-11 Per Bothner <per@bothner.com>
4887
4888 * c-tree.h (struct c_declarator): New id_loc field.
4889 * c-pragma.h (c_lex_with_flags): Take position reference.
4890 * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
4891 iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
4892 (c_lex): Pass dummy location to c_lex_with_flags.
4893 * c-parser.c (c_lex_one_token): Set c_token's location using
4894 c_lex_with_flags, instead of input_location, which might be "ahead".
4895 (c_parser_direct_declarator): Set declarator's id_loc from
4896 c_token's id_loc.
4897 * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
4898 declarator's id_loc, rather than probably-imprecise input_location.
4899 (build_id_declarator): Initialize c_declarator's id_loc field.
4900
210e1852
RS
49012005-03-11 Roger Sayle <roger@eyesopen.com>
4902
4903 PR middle-end/20419
4904 * builtins.c (expand_builtin_signbit): Force the signbit's word
4905 into an integer register to avoid SUBREGs of floating point modes.
4906
c6c81aa6
KH
49072005-03-12 Kazu Hirata <kazu@cs.umass.edu>
4908
4909 * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
4910 target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
4911 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
4912 config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
4913
c6506442
DE
49142005-03-11 David Edelsohn <edelsohn@gnu.org>
4915
4916 PR rtl-optimization/20306
4917 * expr.c (emit_move_complex): Set try_int false if mode is
4918 MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
4919 emit_block_move if try_int is true.
4920
f817d5d4
RH
49212005-03-11 Richard Henderson <rth@redhat.com>
4922
4923 PR target/20415
4924 * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
4925 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
4926 to match.
4927
0ac40e7a
RS
49282005-03-11 Richard Sandiford <rsandifo@redhat.com>
4929
4930 * config/mips/mips.h (mips_fix_vr4130_string): Declare.
4931 (TARGET_FIX_VR4130): New macro.
4932 (TARGET_OPTIONS): Add -mfix-vr4130.
4933 (ISA_HAS_MACCHI): New macro.
4934 (ASM_SPEC): Add -mfix-vr4130.
4935 * config/mips/mips.c (mips_fix_vr4130_string): New variable.
4936 (override_options): Handle mips_fix_vr4130_string.
4937 (mips_avoid_hazards): Clear all_noreorder_p
4938 if we're working around VR4130 errata and the macc alternatives
4939 are not available.
4940 * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
4941 (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
4942 * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
4943 (MULTILIB_DEFAULTS): Remove leading "march=".
4944 (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
4945 if no architecture option is given.
4946 * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
4947 VR4130 multilibs.
4948 (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
4949 * doc/invoke.texi: Document -mfix-vr4130.
4950
266c6b40
RS
49512005-03-11 Richard Sandiford <rsandifo@redhat.com>
4952
4953 * config/mips/mips.c (override_options): Only warn about -mint64
4954 deprecation if TARGET_INT64.
4955
74124c73
KG
49562005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4957
4958 * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
4959 ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
4960 ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
4961 are non-specific regarding the nonnull parameter positions.
4962 (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
4963 ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
4964 ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
4965 ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
a1286ef5 4966
74124c73
KG
4967 * builtins.def: Use the non-specific "nonnull" attibute lists.
4968
81b29e2f
ZD
49692005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
4970
4971 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4972 single_pred_edge, single_succ, single_pred): Improve comments.
4973
c5cbcccf
ZD
49742005-03-11 Zdenek Dvorak <dvorakz@suse.cz>
4975
4976 * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4977 single_pred_edge, single_succ, single_pred): New inline functions.
4978 * bb-reorder.c (rotate_loop, find_traces_1_round,
4979 add_labels_and_missing_jumps, fix_up_fall_thru_edges,
4980 duplicate_computed_gotos): Use the single_succ/pred functions.
4981 * cfganal.c (forwarder_block_p): Ditto.
4982 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
4983 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4984 outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
4985 merge_seq_blocks): Ditto.
4986 * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
4987 * cfglayout.c (fixup_reorder_chain): Ditto.
4988 * cfgloop.c (mark_single_exit_loops, update_latch_info,
4989 canonicalize_loop_headers, verify_loop_structure): Ditto.
4990 * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
4991 mfb_update_loops, create_preheader, force_single_succ_latches,
4992 create_loop_notes): Ditto.
4993 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
4994 force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
4995 commit_one_edge_insertion, purge_dead_edges,
4996 cfg_layout_can_merge_blocks_p): Ditto.
4997 * except.c (sjlj_emit_function_enter): Ditto.
4998 * flow.c (init_propagate_block_info): Ditto.
4999 * function.c (thread_prologue_and_epilogue_insns): Ditto.
5000 * gcse.c (find_implicit_sets, bypass_conditional_jumps,
5001 insert_insn_end_bb): Ditto.
5002 * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
5003 find_if_case_2): Ditto.
5004 * lambda-code.c (perfect_nestify): Ditto.
5005 * lcm.c (optimize_mode_switching): Ditto.
5006 * loop-doloop.c (doloop_modify): Ditto.
5007 * loop-init.c (loop_optimizer_init): Ditto.
5008 * loop-iv.c (simplify_using_initial_values): Ditto.
5009 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
5010 * loop-unswitch.c (unswitch_loop): Ditto.
5011 * modulo-sched.c (generate_prolog_epilog): Ditto.
5012 * predict.c (combine_predictions_for_insn, estimate_probability,
5013 tree_estimate_probability, last_basic_block_p,
5014 estimate_bb_frequencies): Ditto.
5015 * profile.c (branch_prob): Ditto.
5016 * regrename.c (copyprop_hardreg_forward): Ditto.
5017 * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
5018 * tracer.c (layout_superblocks): Ditto.
5019 * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
5020 cfg_remove_useless_stmts_bb, cleanup_control_flow,
5021 cleanup_control_expr_graph, disband_implicit_edges,
5022 tree_find_edge_insert_loc, bsi_commit_edge_inserts,
5023 tree_verify_flow_info, tree_make_forwarder_block,
5024 tree_forwarder_block_p, remove_forwarder_block,
5025 remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
5026 * tree-if-conv.c (tree_if_conversion): Ditto.
5027 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
5028 * tree-ssa-dce.c (remove_dead_stmt): Ditto.
5029 * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
5030 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
5031 copy_loop_headers): Ditto.
5032 * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
5033 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
5034 * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
5035 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
5036 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
5037 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
5038 * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
5039 * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
5040 * tree-ssa-threadupdate.c (redirect_edges): Ditto.
5041 * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
5042 eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
5043 * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
5044 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
5045 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
5046 slpeel_add_loop_guard): Ditto.
5047
694d73e1
JM
50482005-03-11 James A. Morrison <phython@gcc.gnu.org>
5049
7d3bf067
SB
5050 PR tree-optimization/15784
5051 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
5052 and -1 - A to ~A.
cbefb99c 5053
7d3bf067
SB
5054 * stmt.c (expand_case): Don't change index_type. Convert minval
5055 to the proper type.
cbefb99c 5056
694d73e1
JM
5057 PR tree-optimization/20130
5058 * fold-const.c (fold): Fold x * -1 into -x.
5059
550b7784
KK
50602005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
5061
5062 PR rtl-optimization/20331
5063 * rtlanal.c (modified_between_p): Check its address first for MEM.
5064 (modified_in_p): Likewise.
5065
3f0b8b66
JM
50662005-03-11 Joseph S. Myers <joseph@codesourcery.com>
5067
5068 * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
5069
927630a5
SB
50702005-03-10 Steven Bosscher <stevenb@suse.de>
5071
5072 * expr.c (expand_expr_real_1): If possible, use a conditional
5073 move for expanding MIN_EXPR and MAX_EXPR.
5074 Use temp for moving around rtx-en.
5075
dddcca1d
AP
50762005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
5077
5078 PR rtl-opt/20412
5079 * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
5080 correct mode.
5081
e4fbead1
RS
50822005-03-10 Roger Sayle <roger@eyesopen.com>
5083
5084 * builtins.c (expand_builtin_signbit): Extend to handle floating
5085 point modes wider than the largest integer type, using the
5086 operand_subword_force function to obtain the signbit's word.
5087
985f2d8f
JJ
50882005-03-10 Jakub Jelinek <jakub@redhat.com>
5089
5090 PR target/20322
5091 * combine.c (try_combine): If recog_for_combine added CLOBBERs
5092 to NEWI2PAT, fail to combine if they are used by NEWPAT.
5093
cf379ac0
AH
50942005-03-10 Aldy Hernandez <aldyh@redhat.com>
5095
927630a5 5096 * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
cf379ac0 5097
b25a2407
KH
50982005-03-10 Kazu Hirata <kazu@cs.umass.edu>
5099
5100 * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
5101 type void.
5102 (perform_edge_inserts): Unconditionally call
5103 free_dominator_info.
5104
17008288
KH
5105 * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
5106
9a7363b9
BW
51072005-03-10 Bob Wilson <bob.wilson@acm.org>
5108
5109 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
5110
8117c488
NS
51112005-03-10 Nathan Sidwell <nathan@codesourcery.com>
5112
fd6132db
NS
5113 * bitmap.c (bitmap_copy): Remove manual loop unrolling.
5114
fbc848cc
NS
5115 * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
5116 gcc_unreachable.
5117 (rtl_register_value_prof_hooks,
5118 tree_value_profile_transformations,
5119 tree_register_value_prof_hooks): Likewise.
5120 * var-tracking.c (stack_adjust_offset_pre_post,
5121 variable_htab_free, variable_union, dataflow_set_different_2,
5122 count_uses, variable_was_changed, set_frame_base_location,
5123 set_variable_part, emit_note_insn_var_location, vt_emit_notes,
5124 vt_add_function_parameters): Likewise.
5125 * varasm.c (named_section_real, named_section, make_decl_rtl,
5126 asm_emit_uninitialised, assemble_integer, decode_addr_const,
5127 const_hash_1, compare_constant, copy_constant, force_const_mem,
5128 output_constant_pool_2, output_constant_pool_1, output_constant,
5129 output_constructor, make_decl_one_only, decl_tls_model,
5130 default_no_named_section, default_elf_select_section_1,
5131 default_unique_section_1): Likewise.
5132 * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
5133 * vmsdbgout.c (addr_const_to_string): Likewise.
5134
8117c488
NS
5135 PR c++/20375
5136 * function.c (struct assign_parm_data_one): Remove last_named
5137 field.
5138 (assign_parm_find_data_types): Don't determine last_named.
5139 Reorder named_parm determination.
5140 (assign_parms): Only setup varargs on the last non-varadic
5141 parameter.
5142
91c18512
KI
51432005-03-10 Kazuhiro Inaoka <inaoka.lazuhiro@renesas.com>
5144
5145 * config/m32r/m32r.md (load_sda_base_32): New pattern. Loads
5146 sda base address on medium model.
5147
2b271002
ZD
51482005-03-10 Zdenek Dvorak <dvorakz@suse.cz>
5149
5150 * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
5151 * cfgloop.c (flow_loop_nodes_find): Export.
5152 * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
5153 Declare.
5154 * cfgloopmanip.c (fix_loop_structure): New function.
5155 * predict.c (predict_loops): Clean up the loops information.
5156 * tree-cfg.c (cleanup_tree_cfg_loop): New function.
5157 (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
5158 loop structure.
5159 * tree-flow.h (cleanup_tree_cfg_loop): Declare.
5160 (rewrite_into_loop_closed_ssa): Declaration changed.
5161 * tree-loop-linear.c (linear_transform_loops): Add argument to
5162 rewrite_into_loop_closed_ssa call.
5163 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
5164 * tree-ssa-loop-im.c (move_computations): Ditto.
5165 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
5166 * tree-vectorizer.c (vectorize_loops): Ditto.
5167 * tree-optimize.c: Include cfgloop.h.
5168 (execute_todo): Choose whether to call cleanup_tree_cfg or
5169 cleanup_tree_cfg_loop.
5170 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
5171 (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
5172 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
5173 cleanup_tree_cfg_loop call.
5174 * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
5175 (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
5176 work on part of cfg.
5177
372d72d9
JJ
51782005-03-10 Jakub Jelinek <jakub@redhat.com>
5179
5180 PR inline-asm/20314
5181 * gimplify.c (gimplify_asm_expr): Handle input/output constraints
5182 with multiple alternatives.
5183
5184 * stmt.c (parse_output_constraint): Fix a typo.
5185
4cfdf48f
BW
51862005-03-09 Bob Wilson <bob.wilson@acm.org>
5187
5188 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
5189 assembly directive instead of deprecated "no-generics".
5190
9c90a97e
UW
51912005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
5192
5193 * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
5194 for non-offsettable memory references to cope with outstanding reload
5195 replacements.
5196 * config/s390/s390.md ("reload_outti"): Call find_replacement to
5197 avoid losing outstanding address reloads.
5198 ("reload_outdi", "reload_outdf"): Likewise.
5199
d86dc303
KG
52002005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5201
5202 * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
5203 code. Add more cbrt transformations.
5204
d3592adf
KG
52052005-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5206
5207 * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
5208
62ab45cc
KH
52092005-03-09 Kazu Hirata <kazu@cs.umass.edu>
5210
5211 * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
5212 NULL_TREE when a given tree is not simplified.
5213 (fold): Return the original tree when any of the functions
5214 mentioned above NULL_TREE.
5215
fbaa905c
KH
5216 * fold-const.c (fold_unary, fold_binary): Take decomposed
5217 arguments, code, type, op0, and op1 in case of fold_binary.
5218 (fold): Update calls to fold_unary and fold_binary.
5219
a35da91f
RS
52202005-03-09 Roger Sayle <roger@eyesopen.com>
5221
5222 * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
5223 a fndecl and an arglist instead of a CALL_EXPR, exp.
5224
2b410855
KH
52252005-03-09 Kazu Hirata <kazu@cs.umass.edu>
5226
5227 * cfglayout.c (fixup_reorder_chain): Remove old_bb.
5228
a9b2ee88
KH
5229 * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
5230
b258008a
KH
5231 * expr.c (expand_assignment): Remove orig_to_rtx.
5232
5758c0f1
KH
5233 * fold-const.c (int_const_binop): Remove no_overflow.
5234
40e48138
KH
5235 * ifcvt.c (noce_emit_move_insn): Remove inmode.
5236
3c3f4b56
KH
5237 * loop-iv.c (get_biv_step_1): Remove lhs.
5238
d300f6bb
KH
5239 * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
5240
e140d617
KH
5241 * real.c (real_nan): Remove neg.
5242
5e35992a
KH
5243 * function.c (thread_prologue_and_epilogue_insns): Remove i
5244 and newinsn.
5245
1d846d0d
KH
5246 * tree-data-ref.c (array_base_name_differ_p): Remove ta and
5247 tb.
5248
29b86a49
KH
5249 * tree-eh.c (tree_could_trap_p): Remove idx.
5250
184d1bb5
KH
5251 * tree-into-ssa.c (ann): Remove ann.
5252
df0159b7
KH
5253 * tree-outof-ssa.c (num_nodes): Remove num_nodes.
5254
dc3fcf39
KH
5255 * tree-sra.c (decide_block_copy): Remove inst_count.
5256
a92b9bdf
KH
5257 * tree-ssa-alias.c (may_alias_p): Remove v_ann.
5258
e2b8bd6c
KH
5259 * tree-ssa-loop-im.c (lhs): Remove.
5260
5e91f7a3
KH
5261 * cfgbuild.c (state, STATE, SET_STATE,
5262 BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
5263 make_edges.
5264 (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
5265 (find_basic_blocks): Set the state of each basic block to
5266 BLOCK_NEW.
5267
b0c32a73
JL
52682005-03-08 Jeff Law <law@redhat.com>
5269
5270 * tree-cfg.c (cleanup_control_flow): If removal of a computed
5271 goto results in the removal of edges in the CFG, then we need
5272 to recompute dominators.
5273
b735d54b
BE
52742005-03-09 Ben Elliston <bje@au.ibm.com>
5275
5276 * c-common.c (c_do_switch_warnings): Comment fix.
5277
1fbbc055
JB
52782005-03-08 Julian Brown <julian@codesourcery.com>
5279
5280 * Patch from 2005-03-08 reverted for causing regressions and
5281 ppc-darwin bootstrap failure.
5282
4d3e6fae
FJ
52832005-03-08 Fariborz Jahanian <fjahanian@apple.com>
5284
a1286ef5 5285 * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
4d3e6fae
FJ
5286 Define the real function for ppc-darwin.
5287 * c-typeck.c (convert_arguments): Check for target-specific
5288 invalid argument call to unprototyped function.
a1286ef5 5289 * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
4d3e6fae 5290 New Macro.
a1286ef5 5291 * target.h (invalid_arg_for_unprototyped_fn): New field
4d3e6fae 5292 in struct calls.
a1286ef5 5293 * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
4d3e6fae 5294 default target hook.
a1286ef5 5295 * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
4d3e6fae
FJ
5296 Declare.
5297
802415d1
KH
52982005-03-08 Kazu Hirata <kazu@cs.umass.edu>
5299
5300 * c-typeck.c (constructor_stack, constructor_range_stack,
5301 initializer_stack): Make them static.
5302
06c8f57b
KH
5303 * cfg.c (rbi_pool): Make it static.
5304
1ebf7687
KH
5305 * gimple-low.c (lower_stmt_body): Make it static.
5306 * tree-flow.h: Remove the corresponding prototype. Don't
5307 declare lower_data.
5308
392c64a0
KH
5309 * sched-deps.c (cache_size): Make it static.
5310
1bb11558
KH
5311 * stor-layout.c (lang_adjust_rli): Make it static.
5312
323f0b8f
JB
53132005-03-08 Julian Brown <julian@codesourcery.com>
5314
5315 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
5316 from being used for symbols with vague linkage when
5317 HAVE_GAS_COMDAT_GROUP is true.
5318
77fb4cc1
R
53192005-03-08 J"orn Rennecke <joern.rennecke@st.com>
5320
5321 * jump.c (invert_jump_1): Don't call redirect_jump_1 with
5322 nlabel == JUMP_LABEL (jump).
5323
6c6cfbfd
KH
53242005-03-08 Kazu Hirata <kazu@cs.umass.edu>
5325
5326 * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
5327 gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
5328 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
5329 tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
5330
6e9a3221
AN
53312005-03-08 Alexey Neyman <alex.neyman@auriga.ru>
5332
5333 PR c/14411
5334 * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
5335 * c-common.c (handle_returns_twice): New function.
5336 (c_common_attribute_table): Declare eturns_twice' attribute.
5337 * doc/extend.texi: Document eturns_twice' attribute.
5338 * tree.h (DECL_IS_RETURNS_TWICE): New macro.
5339 (struct tree_decl): Add returns_twice_flag.
5340
4b2bb87d
KH
53412005-03-08 Kazu Hirata <kazu@cs.umass.edu>
5342
5343 * tree-ssa-phiopt.c: Fix a comment typo.
5344
25d8d27d
KH
5345 * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
5346 loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
5347 config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
5348 copyright.
5349
36013987
RH
53502005-03-08 Richard Henderson <rth@redhat.com>
5351
5352 * config/alpha/alpha.c (code_for_builtin): Replace special-case
5353 builtin codes with ctzdi2, clzdi2, popcountdi2.
5354 (struct alpha_builtin_def): Add is_const.
5355 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
5356 (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
5357 (alpha_init_builtins): Init them. Set nothrow and const attributes
5358 on builtins.
a1286ef5
ZW
5359 (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
5360 alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
5361 alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
36013987
RH
5362 alpha_fold_vector_minmax, alpha_fold_builtin_perr,
5363 alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
5364 alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
5365 alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
5366 alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
5367 (TARGET_FOLD_BUILTIN): New.
5368 * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
5369 (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
5370 (ffsdi2): Use ctz.
5371 (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
5372
6cd3dd5b
IR
53732005-03-08 Ira Rosen <irar@il.ibm.com>
5374
5375 PR tree-optimization/20122
5376 * tree-vect-analyze.c (vect_object_analysis): Analyze initial
5377 condition of access function instead of base.
5378
be477406 53792005-03-07 Jeff Law <law@redhat.com>
e7afe656 5380 Steven Bosscher <stevenb@suse.de>
be477406
JL
5381
5382 * tree-cfg.c (find_taken_edge_computed_goto): New function.
5383 (find_taken_edge): Call find_taken_edge_computed_goto as
5384 appropriate. Allow any gimple invariant rather than just
5385 INTEGER_CST for VAL.
5386 (cleanup_control_flow): Cleanup a computed goto which has turned
5387 into a simple goto.
5388 (tree_merge_blocks): If block B has any forced labels, move
5389 them to the start of block A.
5390 * tree-ssa-dom.c (thread_across_edge): Allow threading across
5391 computed gotos as well.
5392 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
5393 removal of unnecessary computed gotos too.
5394 (lookup_redirection_data): Fix type of INSERT argument. Callers
5395 updated.
5396
0385f644
KH
53972005-03-08 Kazu Hirata <kazu@cs.umass.edu>
5398
5399 * tree-ssa-phiopt.c: Update copyright. Fix indentations.
5400 Remove trailing spaces.
5401
c24b7de9
KH
5402 * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
5403 unshare_all_trees): Make them static.
5404 * tree-gimple.h: Remove the corresponding prototypes.
5405
2863ddd2
KH
5406 * diagnostic.h: Remove unused prototype
5407 debug_output_buffer.
5408 * modulo-sched.c: Remove unused prototype
5409 set_row_column_for_ps.
5410
58261bc2
KH
5411 * tree-ssa-phiopt.c (tree_ssa_phiopt,
5412 replace_phi_edge_with_variable): Remove unused variable i.
5413
685ae8c9
PB
54142005-03-07 Per Bothner <per@bothner.com>
5415
5416 * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
5417
80c4ed35 54182005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
a1286ef5 5419
80c4ed35
AP
5420 PR tree-opt/17671
5421 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
5422 bbs on the COND_EXPR instead of the PHI_NODEs.
5423 (candidate_bb_for_phi_optimization): Remove.
5424 (replace_phi_with_stmt): Rename to ...
5425 (replace_phi_edge_with_variable): this and change so that we
5426 replace the phi argument instead of removing the PHI.
5427 (conditional_replacement): Change so we deal with PHI with more
5428 than two arguments.
5429 (value_replacement): Likewise.
5430 (abs_replacement): Likewise.
5431
64022b5d
AH
54322005-03-07 Aldy Hernandez <aldyh@redhat.com>
5433
5434 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
5435 output_e500_flip_gt_bit.
5436
5437 * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
5438 as bit 31.
5439 (rs6000_generate_compare): Fix logic to look at the correct bits.
5440 (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
5441 Look at GT bit.
5442 (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
5443 gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
5444 gen_move_from_CR_gt_bit.
5445
5446 * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
5447 ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
5448 (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
5449
5450 * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
5451 (E500_CR_IOR_COMPARE): New constant.
5452
5fa09df4
EC
54532005-03-08 Earl Chew <earl_chew@agilent.com>
5454 David Billinghurst <David.Billinghurst@riotinto.com>
5455
5456 * config/i386/host-cygwin.c: New file to support precompiled
5457 headers on cygwin
5458 * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
5459 * config.host: Use above files for cygwin host.
5460
92db3ec9
DE
54612005-03-07 David Edelsohn <edelsohn@gnu.org>
5462
5463 * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
5464 ordering ops from earlier change.
5465
dbce1570
PB
54662005-03-07 Per Bothner <per@bothner.com>
5467
5468 Various fixes to allow us to again build if --enable-mapped-location:
5469 * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
5470 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
5471 * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
5472 local variable loc. Change logic appropriately.
5473 * tree-vect-transform.c (vect_finish_stmt_generation): Use
a1286ef5 5474 EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
dbce1570
PB
5475 * c-parser.c (c_parser_for_statement): Initialize loc variable.
5476 * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
5477 DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
5478
1de80b0e
RS
54792005-03-07 Richard Sandiford <rsandifo@redhat.com>
5480
5481 PR rtl-optimization/19683
5482 * reload1.c (choose_reload_regs): Pass the number of bits, not the
5483 number of bytes, to smallest_int_for_mode. Fix arguments to
5484 REG_CANNOT_CHANGE_MODE_P.
5485
4cdc2a35
EB
54862005-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
5487
5488 * reorg.c (relax_delay_slots): Check that the jump is
5489 conditional before trying to invert it.
5490
cd735ab8
KH
54912005-03-07 Kazu Hirata <kazu@cs.umass.edu>
5492
5493 * bb-reorder.c (max_entry_frequency, max_entry_frequency):
5494 Make them static.
5495
0405cc0e
KH
5496 * calls (stack_arg_under_construction): Make it static.
5497
fa8718d7
KH
5498 * flow.c (regs_live_at_setjmp): Make it static.
5499 * flow.h: Remove the corresponding prototype.
5500
cf0fa607
KH
5501 * reload1.c (reload_startobj, reload_firstobj,
5502 something_needs_operands_changed, reload_inherited,
5503 reload_inheritance_insn, reload_override_in,
5504 reload_spill_index): Make them static.
5505
6db31844
KH
5506 * recog.c (verify_changes): Make it static.
5507 * recog.h: Remove the corresponding prototype.
5508
12eff7b7
KH
5509 * cfgbuild.c (find_sub_basic_blocks): Remove.
5510 * basic-block.h: Remove the corresponding prototype.
5511 * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
5512 in comments.
5513 * doc/cfg.texi: Don't mention find_sub_basic_blocks.
5514
249e538f
KH
5515 * tree-ssa-operands.c (check_build_stmt): Remove.
5516
2e56d969
KH
5517 * stor-layout.c (set_alignment): Remove.
5518 * tree.h: Remove the corresponding prototype.
5519
d4222d43
KH
5520 * tree-ssa-pre.c (has_abnormal_preds): Make it static.
5521
8c80c4aa
KH
5522 * tree-ssa-dce.c (control_dependence_map,
5523 visited_control_parents): Make them static.
5524
50f63b1a
KH
5525 * cfghooks.c (verify_flow_info): Remove local variable
5526 num_bb_notes.
5527
94eb5ddb
KH
5528 * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
5529 last_bb_seen.
5530
0d48fcd1
KH
5531 * loop-unswitch.c (unswitch_loop): Remove local variable src.
5532
01c65e8a
DB
55332005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
5534
5535 * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
5536
543144ed
JM
55372005-03-07 Joseph S. Myers <joseph@codesourcery.com>
5538
5539 * config/ia64/hpux.h (LINK_SPEC): Add -z.
5540 * config/ia64/ia64.c (ia64_function_value): Return a REG not a
5541 PARALLEL for an empty structure.
5542
209eaaff
KH
55432005-03-07 Kazu Hirata <kazu@cs.umass.edu>
5544
5545 * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
5546
1eaea409
KH
5547 * fold-const.c (fold_binary): Unroll the very first "for"
5548 loop.
5549
ede62875
DE
55502005-03-06 David Edelsohn <edelsohn@gnu.org>
5551
5552 * config/rs6000/predicates.md (branch_comparison_operator): Remove
5553 redundant match_code test.
5554 (scc_comparison_operator): Swap match_operand and match_code
5555 tests.
5556 (branch_positive_comparison_operator): Same.
5557 (trap_comparison_operator): Use comparison_operator and swap with
5558 match_code test.
5559
a6990185
MM
55602005-03-06 Marek Michalkiewicz <marekm@amelek.gda.pl>
5561
5562 PR target/20288
5563 * config/avr/avr.c (print_operand): Add 'p' and 'r'.
5564 (out_movhi_r_mr): Read low byte of volatile MEM first.
5565 (out_movhi_mr_r): Write high byte of volatile MEM first.
5566
5211d65a
KH
55672005-03-05 Kazu Hirata <kazu@cs.umass.edu>
5568
5569 * cselib.c (reg_values, reg_values_size): Make them static.
f00822b2
KH
5570
5571 * cse.c (cse_reg_info_table): Make it static.
5211d65a 5572
c1a408fd
KH
5573 * fold-const.c (fold_unary): Use build1 instead of copy_node.
5574
21cf294f
ZD
55752005-03-06 Zdenek Dvorak <dvorakz@suse.cz>
5576
5577 * cse.c (find_best_addr): Use canon_for_address.
5578
25910ca4
KH
55792005-03-06 Kazu Hirata <kazu@cs.umass.edu>
5580
5581 * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
5582 (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
5583 SUBREG and MEM, respectively.
5584
c933f71e
KH
5585 * fold-const.c (fold_binary): Use code instead of t.
5586
d7e5b287
KH
5587 * fold-const.c (optimize_minmax_comparison): Take decomposed
5588 arguments code, type, op0, and op1 instead of t.
5589 (fold_binary): Update a call to optimize_minmax_comparison.
5590
e1f04615
KH
5591 * fold-const.c (fold_range_test): Take decomposed arguments
5592 code, type, op0, and op1 instead of t.
5593 (fold_binary): Update a call to fold_range_test.
5594
e9da788c
KH
5595 * fold-const.c (fold_binary_op_with_conditional_arg): Take
5596 decomposed arguments code, type, op0, and op1 instead of t.
5597 (fold_binary): Update a call to fold_range_test.
5598
71047303
KH
55992005-03-06 Kazu Hirata <kazu@cs.umass.edu>
5600
5601 * fold-const.c (fold_binary): Avoid directly using the original
5602 expression t as much as possible.
5603
3f724eb8
KH
56042005-03-05 Kazu Hirata <kazu@cs.umass.edu>
5605
5606 * c-semantics.c (build_stmt): Use TYPE_P instead of
5607 IS_NON_TYPE_CODE_CLASS.
5608 * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
5609 (NON_TYPE_CHECK): Use TYPE_P instead of
5610 IS_NON_TYPE_CODE_CLASS.
5611
75505450
KH
5612 * fold-const.c (fold): Remove handling of binary expressions.
5613
12bcfaa1
JM
56142005-03-05 James A. Morrison <phython@gcc.gnu.org>
5615
5616 * doc/c-tree.texi: Wrap comments in @r{}.
5617 * doc/cpp.texi: Likewise.
5618 * doc/cppinternals.texi: Likewise.
5619 * doc/extend.texi: Likewise.
5620 * doc/md.texi: Likewise.
5621 * doc/objc.texi: Likewise.
5622 * doc/sourcebuild.texi: Likewise.
5623 * doc/tm.texi: Likewise.
5624 * doc/tree-ssa.texi
5625
52c3e649
KH
56262005-03-05 Kazu Hirata <kazu@cs.umass.edu>
5627
5628 * predict.c (apply_return_prediction): Standardize PHI chain
5629 walking.
5630 * tree-ssa.c (ssa_redirect_edge): Likewise.
5631
25f99665
KH
5632 * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
5633 gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
5634 Update copyright.
5635
d19e3ef6
KH
5636 * tree-phinodes.c (remove_phi_node): Drop the last argument.
5637 * tree-flow.h: Adjust the prototype for remove_phi_node.
5638 * lambda-code.c (perfect_nestify): Adjust a call to
5639 remove_phi_node.
5640 * tree-cfg.c
5641 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
5642 * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
5643 Likewise.
5644 * tree-ssa-dce.c (remove_dead_phis): Likewise.
5645 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
5646 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
5647 * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
5648
bb80db7b
KH
5649 * combine.c (simplify_and_const_int): Use gen_int_mode instead
5650 of GEN_INT (trunc_int_for_mode (...)).
5651 * loop-iv.c (iv_number_of_iterations): Likewise.
5652 * postreload.c (reload_cse_move2add): Likewise.
5653 * simplify-rtx.c (simplify_const_unary_operation,
5654 simplify_const_binary_operation): Likewise.
5655 * stor-layout.c (get_mode_bounds): Likewise.
5656
0aee4751
KH
5657 * fold-const.c (fold_binary): New.
5658 (fold): Call fold_binary on binary expressions.
5659
acda0e26
RS
56602005-03-05 Richard Sandiford <rsandifo@redhat.com>
5661
5662 * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
5663 * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
5664 (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
5665 (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
5666 (ASM_SPEC): Pass down -msym32 and -mno-sym32.
5667
537a2904 56682005-03-04 Devang Patel <dpatel@apple.com>
a1286ef5 5669
537a2904
DP
5670 PR tree-optimization/18815
5671 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5672 loops with zero exit edges.
5673
c533f56b
DP
56742005-03-04 Devang Patel <dpatel@apple.com>
5675
5676 * doc/invoke.texi: Remove reference to webpage that does not exist.
a1286ef5 5677
744b2d61
JDA
56782005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
5679 Joseph S. Myers <joseph@codesourcery.com>
5680
5681 PR c++/19797
0022eee3 5682 * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
744b2d61
JDA
5683 (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
5684 * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
5685 * pa.c (get_plabel): Change argument to symbol_ref. Call
5686 maybe_get_identifier instead of get_identifier.
5687 (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
5688 (struct deferred_plabel): Replace name field with symbol field.
5689 (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
5690 ASM_OUTPUT_EXTERNAL_REAL is defined.
5691 (output_global_address): Use output_addr_const for output of all
5692 symbol_refs.
5693 (output_deferred_plabels): Use symbol_ref instead of name for address
5694 output.
5695 * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
5696 ASM_OUTPUT_SYMBOL_REF): New macros.
5697 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
5698 comment.
5699 (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
5700 label.
5701
1fb641a1
JM
57022005-03-05 Joseph S. Myers <joseph@codesourcery.com>
5703
5704 * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
5705 *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
5706
d38ffc55
JL
57072005-03-04 Jeff Law <law@redhat.com>
5708
5709 * basic-block.h (rediscover_loops_after_threading): Declare.
5710 * tree-ssa-dom.c: Include cfgloop.h.
5711 (tree_ssa_dominator_optimize): Discover loops and some basic
5712 properties. Remove forwarder blocks recreated by loop header
5713 canonicalization. Also mark backedges in the CFG.
5714 * tree-ssa-threadupdate.c: Include cfgloop.h
5715 (rediscover_loops_after_threading): Define.
5716 (struct local_info): New field, JUMP_THREADED.
5717 (prune_undesirable_thread_requests): New function.
5718 (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
5719 then record that fact for the callers of redirct_edges.
5720 (thread_block): If BB has incoming backedges, then call
5721 prune_undesirable_thraed_requests. Note when we are
5722 going to have to rediscover loop information. Return a
5723 boolean indicating if any jumps were threaded.
5724 (thread_through_all_blocks): Bubble up boolean indicating
5725 if any jumps were threaded.
5726 * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
5727 (tree-ssa-threadupdate.o): Similarly.
5728
3ea2c264
KH
57292005-03-04 Kazu Hirata <kazu@cs.umass.edu>
5730
5731 * fold-const.c (fold_ternary): Unroll the "for" loop to
a1286ef5 5732 extract operands.
3ea2c264 5733
b120f3b7
AH
57342005-03-04 Andrew Haley <aph@redhat.com>
5735
5736 * unwind-dw2-fde-glibc.c (struct
5737 unw_eh_callback_data.check_cache): New field.
5738 (frame_hdr_cache): New.
5739 (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
5740 Cache frame header info.
5741
7445392c
RS
57422005-03-04 Richard Sandiford <rsandifo@redhat.com>
5743
5744 * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
5745 (print_c_condition): Declare.
5746 * read-rtl.c (ptr_loc): New structure.
5747 (ptr_locs, ptr_loc_obstack, joined_conditions)
5748 (joined_conditions_obstack): New variables.
5749 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
5750 (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
5751 (join_c_conditions, print_c_condition): New functions.
5752 (apply_macro_to_string): Associate the new string with the same
5753 source location as the old one.
5754 (add_condition_to_string): Use join_c_conditions.
5755 (read_string): Use set_rtx_ptr_loc to record a filename and line
5756 number for the string.
5757 (read_rtx): Initialize the new variables above.
5758 * genattrtab.c (write_test_expr, write_attr_value): Use
5759 print_c_condition.
5760 * genconditions.c (write_header): Don't define MAYBE_EVAL. Move its
5761 comment above the GCC_VERSION check.
5762 (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
5763 Inline the definition of MAYBE_EVAL.
5764 * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
5765 * genoutput.c (process_template): Likewise.
5766 * genpreds.c (write_predicate_subfunction): Likewise.
5767 (write_predicate_expr): Use print_c_condition.
5768 * genrecog.c (write_cond): Likewise.
5769 * gensupport.c (process_rtx): Use join_c_conditions to join the
5770 conditions of a define_insn_and_split. Record a source location
5771 for the string after the "&&".
5772 (alter_test_for_insn): Use join_c_conditions.
5773
93516733
AP
57742005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
5775
5776 Revert for now:
5777 2005-03-03 James A. Morrison <phython@gcc.gnu.org>
5778 PR tree-optimization/15784
cbefb99c 5779 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
93516733
AP
5780 and -1 - A to ~A.
5781
ee4c708e
BE
57822005-03-04 Ben Elliston <bje@au.ibm.com>
5783
5784 * gcc.c (option_map): Add --coverage.
5785 (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
5786 (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
5787 * config/darwin.h: Pass -lgcov for `coverage'.
5788 * doc/invoke.texi (Debugging Options): Document --coverage.
5789
c7d1b449
KH
57902005-03-04 Kazu Hirata <kazu@cs.umass.edu>
5791
5792 * gcse.c (bypass_block): Use find_edge wherever possible.
5793
3c0d1020
DB
57942005-03-03 Daniel Berlin <dberlin@dbrelin.org>
5795
5796 Fix PR debug/20253
a1286ef5 5797
3c0d1020
DB
5798 * c-opts.c (c_common_parse_file): Call start_source_file
5799 and end_source_file at the approriate times.
5800
5801 * dwarf2out.c (dwarf2out_finish): Don't auto-end
5802 the main file, it will be done for us now.
a1286ef5 5803
9bdae6af
KH
58042005-03-04 Kazu Hirata <kazu@cs.umass.edu>
5805
5806 * fold-const.c (fold_ternary): New.
5807 (fold): Call fold_ternary on ternary expressions. Remove
5808 handling of ternary expressions.
5809
8d06c809
JM
58102005-03-03 James A. Morrison <phython@gcc.gnu.org>
5811
5812 PR tree-optimization/15784
cbefb99c 5813 * fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
8d06c809
JM
5814 and -1 - A to ~A.
5815
57a71826
DE
58162005-03-03 David Edelsohn <edelsohn@gnu.org>
5817
5818 * config/rs6000/predicates.md (branch_comparison_operator):
5819 Convert from C block to conditional format.
5820
59c982fe
JH
58212005-03-03 Jan Hubicka <jh@suse.cz>
5822
5823 * tree-dfa.c (add_referenced_var): Don't walk initializer of external
5824 and non-constant public variables.
5825
229cc11f
KH
58262005-03-03 Kazu Hirata <kazu@cs.umass.edu>
5827
5828 * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
5829 with LABEL_EXPR.
5830
8fb790fd
KH
5831 * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
5832 EDGE_I.
5833
4430da7f
KH
5834 * tree-phinodes.c (remove_phi_node): Clean up by factoring out
5835 calls to release_ssa_name and release_phi_node.
5836
af85b8e4
KH
5837 * fold-const.c (fold): Remove handling of unary expressions.
5838
4b58fc4d
KH
5839 * fold-const.c (fold_unary): Avoid directly using the original
5840 expression t as much as possible.
5841
9550206b
RS
58422005-03-03 Roger Sayle <roger@eyesopen.com>
5843 Andrew Pinski <pinskia@physics.uc.edu>
5844
5845 * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
5846 RETURN rtx, and not a LABEL_REF containing a NULL pointer.
5847
f60c7155
HPN
58482005-03-03 Hans-Peter Nilsson <hp@axis.com>
5849
5850 Describe special registers SRP and MOF as allocatable registers.
5851 * config/cris/cris.c (cris_md_asm_clobbers): New function.
5852 (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
5853 (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
5854 TARGET_HAS_MUL_INSNS.
5855 (cris_print_operand) <case 'd'>: New case.
5856 <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
5857 * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
5858 define.
5859 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
5860 (REG_ALLOC_ORDER): Update for MOF.
5861 (enum reg_class): New members MOF_REGS, GENERAL_REGS and
5862 SPECIAL_REGS.
5863 (GENERAL_REGS): No longer a define of ALL_REGS.
5864 (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
5865 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
5866 Adjust accordingly.
5867 (CRIS_SPECIAL_REGS_CONTENTS): New macro.
5868 (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
5869 (SECONDARY_RELOAD_CLASS): Define.
5870 (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
5871 (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
5872 (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
5873 (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
5874 (REGISTER_MOVE_COST): Define.
5875 (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
5876 * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
5877 (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
5878 (CRIS_MOF_REGNUM): New define_constants.
5879 ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
5880 special registers.
2a60a1b1
HPN
5881 ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
5882 New patterns.
f60c7155
HPN
5883 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
5884 ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
5885 Adjust for MOF being properly described as a register.
5886 (indir_to_reg_split): Name this split. Conditionalize on the
5887 destination register being a general register.
5888 (movei): Conditionalize on on operands 0 and 1 having the same
5889 register class.
5890
768875a8
AM
58912005-03-03 Alan Modra <amodra@bigpond.net.au>
5892
5893 PR target/20277
5894 * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
5895 -mcpu to override any other explicitly given flags.
5896
0a634832
R
58972005-03-02 J"orn Rennecke <joern.rennecke@st.com>
5898
5899 * recog.c (verify_changes, confirm_change_group): New functions,
5900 broken out of apply_change_group.
5901 (apply_change_group): Use them.
5902 * recog.h (verify_change, confirm_change_group): Declare.
5903 * rtl.h (redirect_jump_2): Declare.
5904 * jump.c (redirect_exp, invert_exp): Delete.
5905 (invert_exp_1): Take second parameter. Return value. Changed caller.
5906 (redirect_jump_2): New function, broken out of redirect_jump.
5907 (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
5908 (invert_jump): Use invert_jump_1 and redirect_jump_2.
5909 * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
5910
0aca3a61
GK
59112005-03-02 Geoffrey Keating <geoffk@apple.com>
5912
7df74013
GK
5913 * varasm.c (named_section): Use xstrdup rather than doing it by
5914 hand.
5915
0aca3a61
GK
5916 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
5917
2af51b88 59182005-03-02 Devang Patel <dpatel@apple.com>
a1286ef5 5919
2af51b88 5920 Undo PR tree-optimization/18815 fix.
a1286ef5 5921
ac0bd801
DP
59222005-03-02 Devang Patel <dpatel@apple.com>
5923
5924 PR tree-optimization/18815
5925 * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5926 loops with zero exit edges.
a1286ef5 5927
adf4a335
KH
59282005-03-02 Kazu Hirata <kazu@cs.umass.edu>
5929
5930 * cfg.c (connect_src, connect_dest, disconnect_src,
5931 disconnct_dest): New.
5932 (unchecked_make_edge, remove_edge, redirect_edge_succ,
5933 redirect_edge_pred): Use the new functions.
5934
13396b14
KH
5935 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
5936 free_dominance_info only when needed.
5937
94dcded2
DE
59382005-03-02 David Edelsohn <edelsohn@gnu.org>
5939
5940 PR target/20276
5941 * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
5942 (reg_or_sub_cint64_operand): Same.
5943
68023570
JL
59442005-03-02 Jeff Law <law@redhat.com>
5945
5946 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
5947 CFG_ALTERED in the main DOM iteration loop.
5948
9560cbde
MM
59492005-03-02 Mark Mitchell <mark@codesourcery.com>
5950
5951 PR c++/19916
5952 * varasm.c (initializer_constant_valid_p): Allow conversions
5953 between OFFSET_TYPEs. Tidy.
5954
bf95bc65
HPN
59552005-03-02 Hans-Peter Nilsson <hp@axis.com>
5956
5957 * config/cris/cris.md ("return"): Remove epilogue delay list
5958 sanity check.
5959
f92ba6d1
DJ
59602005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
5961
5962 * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
5963 for Thumb.
5964 * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
5965
613c5cd0
KH
59662005-03-02 Kazu Hirata <kazu@cs.umass.edu>
5967
5968 * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
5969 loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
5970 config/m68k/m68k.c, config/mips/mips.h,
5971 config/rs6000/rs6000-protos.h, doc/contrib.texi,
5972 doc/include/gcc-common.texi: Update copyright.
5973
92fb2d32
KH
5974 PR middle-end/18029 and PR middle-end/18030
5975 * expr.c (optimize_bitfield_assignment_op): Add a special case
5976 to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
5977
659d8efa
KH
5978 * fold-const.c (fold_unary): New.
5979 (fold): Call fold_unary on unary expressions.
5980
2563c224
RG
59812005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
5982
5983 * cgraph.h (struct cgraph_edge): Add prev_caller and
5984 prev_callee fields.
5985 (cgraph_node_remove_callees): Export.
5986 * cgraph.c (cgraph_create_edge): Initialize prev_caller
5987 and prev_callee.
5988 (cgraph_edge_remove_callee): New function.
5989 (cgraph_edge_remove_caller): Likewise.
5990 (cgraph_remove_edge): Use.
5991 (cgraph_redirect_edge_callee): Likewise.
5992 (cgraph_node_remove_callees): New function.
5993 (cgraph_node_remove_callers): Likewise.
5994 (cgraph_remove_node): Use.
5995 * tree-optimize.c (tree_rest_of_compilation): Use
5996 cgraph_node_remove_callees instead of manual loop.
5997 * cgraphunit.c (cgraph_finalize_function): Likewise.
5998 (cgraph_expand_function): Likewise.
5999 (cgraph_remove_unreachable_nodes): Likewise.
6000
766beb40
JM
60012005-03-02 Joseph S. Myers <joseph@codesourcery.com>
6002
6003 PR c/8927
6004 * c-tree.h (undeclared_variable, build_external_ref): Add extra
6005 argument.
6006 * c-decl.c (undeclared_variable): Take location as argument.
6007 * c-typeck.c (build_external_ref): Likewise.
6008 * c-parser.c (c_parser_postfix_expression): Pass location of
6009 identifier to build_external_ref.
6010
364849ee
DE
60112005-03-01 David Edelsohn <edelsohn@gnu.org>
6012
6013 * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
6014 CCEQ mode for branch_positive_comparison_operator test.
6015 * config/rs6000/predicates (branch_comparison_operator): Revert to
6016 define_predicate.
6017 (scc_comparison_operator): Same.
6018 (branch_positive_comparison_operator): Same.
6019
b6c8b412
HPN
60202005-03-01 Hans-Peter Nilsson <hp@axis.com>
6021
6022 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
6023 (cris_delay_slots_for_epilogue): Remove.
6024 (save_last): Move into cris_target_asm_function_epilogue.
6025 (cris_target_asm_function_epilogue): Remove tests for file being
6026 NULL.
6027 * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
6028 (cris_delay_slots_for_epilogue): Remove prototypes.
6029 * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
6030 (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
6031
4a80dc82
DE
60322005-03-01 David Edelsohn <edelsohn@gnu.org>
6033
6034 * config/rs6000/predicates.md (branch_comparison_operator): Change
6035 to define_special_predicate.
6036 (scc_comparison_operator): Same.
6037 (branch_positive_comparison_operator): Same.
6038
fa555252
DB
60392005-03-01 Daniel Berlin <dberlin@dberlin.org>
6040
6041 * Makefile.in (tree-ssa-sink.o): New.
6042 (OBJS-common): Add tree-ssa-sink.o.
6043 * common.opt: Add -ftree-sink
6044 * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
6045 * timevar.def (TV_TREE_SINK): new timevar.
6046 * tree-flow.h (is_hidden_global_store): Prototype.
6047 * tree-optimize.c (init_tree_optimization_passes): Add
6048 pass_sink_code.
6049 * tree-pass.h (pass_sink_code): New.
6050 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
6051 for non-obvious global store store to is_hidden_global_store, and
6052 call that new function.
6053 * tree-ssa-sink.c: New file.
6054 * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
6055 * doc/passes.texi: Document forward store motion.
6056 * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
6057 * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
6058 * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
6059 * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
6060
255508dd
PB
60612005-03-01 Per Bothner <per@bothner.com>
6062
6063 * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
6064 and we have a non-zero column-number, add it to the message.
6065 Also factor out the diagnostic_kind_text.
6066
70388d94
ZD
60672005-03-01 Zdenek Dvorak <dvorakz@suse.cz>
6068
6069 * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
6070 flow_loop_pre_header_scan, flow_loop_pre_header_find,
6071 flow_loop_scan): Removed.
6072 (flow_loop_dump): Do not dump removed fields.
6073 (flow_loop_free): Do not free removed fields.
6074 (flow_loops_find): Flags argument removed. Do not call flow_loop_scan.
6075 (loop_exit_edge_p): New function.
6076 * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
6077 num_pre_header_edges, entry_edges, num_entries, exit_edges,
6078 num_exits, exits_doms.
6079 (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
6080 LOOP_EDGES, LOOP_ALL): Removed.
6081 (flow_loop_scan): Declaration removed.
6082 (loop_exit_edge_p, mark_loop_exit_edges): Declare.
6083 * cfgloopmanip.c (create_loop_notes): Do not pass flags to
6084 flow_loops_find.
6085 * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
6086 (if_convert): Call flow_loops_find and flow_loops_free
6087 when calling mark_loop_exit_edges.
6088 * cfgloopanal.c (mark_loop_exit_edges): Moved from
6089 ifcvt.c. Removed the flow_loops_find, flow_loops_free and
6090 free_dominance_info calls.
6091 * loop-init.c (flow_loops_find): Ditto.
6092 * passes.c (rest_of_handle_branch_prob): Ditto.
6093 * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
6094 * loop-unroll.c (analyze_insns_in_loop): Do not use
6095 EDGE_LOOP_EXIT.
6096 * predict.c (predict_loops): Do not call flow_loop_scan.
6097 Use get_loop_exit_edges.
6098 (tree_estimate_probability): Do not pass flags to flow_loops_find.
6099 * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
6100 Do not use EDGE_LOOP_EXIT.
6101 (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
6102 to bb_with_exit_edge_p.
6103 (if_convertible_loop_p): Do not call flow_loop_scan. Use
6104 loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop
6105 to bb_with_exit_edge_p.
6106 (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use
6107 EDGE_LOOP_EXIT.
6108 * tree-loop-linear.c (linear_transform_loops): Do not call
6109 flow_loop_scan. Use loop->single_exit.
6110 * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
6111 (vect_analyze_loop_form): Do not call flow_loop_scan.
6112 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
6113 loop->single_exit.
6114 (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
6115 loop->single_exit.
6116 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
6117 slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
6118 slpeel_tree_duplicate_loop_to_edge_cfg,
6119 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
6120 Use loop_preheader_edge and loop->single_exit. Do not call
6121 flow_loop_scan.
6122
b279b20a
NC
61232005-03-01 Nick Clifton <nickc@redhat.com>
6124
6125 * config/arm/arm.c (thumb_find_work_register): Check all of the
6126 argument registers to see if they are free, and a couple of
6127 special cases where the last argument register but can be proved
6128 to be available during the function's prologue.
6129 (print_multi_reg, arm_compute_save_reg0_reg12_mask,
6130 output_return_instruction, emit_multi_reg_push, thumb_pushpop,
6131 thumb_unexpanded_epilogue): Use unsigned long as the type for the
6132 register bit-mask.
6133 (thumb_compute_save_reg_mask): Likewise. Also use
6134 thumb_find_work_register() to ensure that there is agreement about
6135 which work register is going to be used in the prologue.
6136 (thumb_output_function_prologue): Use unsigned long as the type
6137 for the register bit-mask. Also delay pushing the link register if
6138 other high registers are going to be pushed.
6139 (thumb_compute_save_reg_mask, emit_multi_reg_push,
6140 print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
6141 redundant prototypes.
6142
d7459fa8
JDA
61432005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
6144
6145 PR target/19819
6146 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
6147 and after reload in REG+REG indexed addresses without REG_POINTER
6148 set in the base and not set in the index.
6149
65f527e0
KK
61502005-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
6151
6152 * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
6153 Don't undefine here.
6154 (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
6155 (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
6156 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
6157 (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
6158 LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
6159 Delete.
6160 * config.gcc (sh*-*-linux*): Use config/linux.h.
6161
0b5383eb
DJ
61622005-02-28 Dale Johannesen <dalej@apple.com>
6163 Stan Shebs <shebs@apple.com>
6164
6165 Rewrite of 64-bit Darwin structure-by-value pass/return.
6166 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
6167 intoffset, use_stack, named.
6168 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
6169 (rs6000_darwin64_record_arg_advance_flush): New.
6170 (rs6000_darwin64_record_arg_advance_recurse): New.
6171 (rs6000_darwin64_record_arg_flush): New.
6172 (rs6000_darwin64_record_arg_recurse): New.
6173 (rs6000_darwin64_record_arg): New.
6174 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
6175 (function_arg_boundary): Handle 128-bit aligned structs.
6176 (function_arg_advance): Rewrite darwin64 struct handling.
6177 (function_arg): Call rs6000_darwin64_record_arg.
6178 (function_arg_partial_nregs): Handle darwin64 structs.
6179 (rs6000_darwin64_function_value): Remove.
6180 (rs6000_function_value): Call rs6000_darwin64_record_arg.
6181
1a9dddad
RS
61822005-02-28 Roger Sayle <roger@eyesopen.com>
6183
6184 PR tree-optimization/20216
6185 * tree-chrec.c (tree_fold_factorial): Delete.
6186 (tree_fold_binomial): Change argument list to take a return type
6187 and change the type of K to unsigned int. Rewrite to avoid explicit
6188 evaluation of factorials, and (recursively) calling fold to perform
6189 compile-time arithmetic. Return NULL on (internal) overflow.
6190 (chrec_evaluate): Change type of K to an unsigned int. Avoid
6191 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
6192 if any intermediate calculation overflows.
6193 (chrec_apply): Update call to chrec_evaluate.
6194
f50c57ba
JW
61952005-02-28 James E Wilson <wilson@specifixinc.com>
6196
6197 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
6198
4e3d9146
JM
61992005-02-28 Joseph S. Myers <joseph@codesourcery.com>
6200
6201 PR c/20245
6202 * c-parser.c (c_parser_compound_statement): Return error_mark_node
6203 instead of NULL_TREE on error.
6204
48d72335
DE
62052005-02-28 David Edelsohn <edelsohn@gnu.org>
6206
6207 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
6208 (EASY_VECTOR_15_ADD_SELF): Remove.
6209 (num_insns_constant_wide): Not static.
6210 (validate_condition_mode): Not static.
6211 (toc_relative_expr_p): Not static.
6212 (legitimate_indirect_address_p): Not static.
6213 (macho_lo_sum_memory_operand): Not static.
6214 (invalid_e500_subreg): Not static.
6215 (easy_vector_same): Not static.
6216 (easy_vector_splat_const): Not static.
6217 (RS6000_SYMBOL_REF_TLS_P): Remove.
6218 (any_operand): Delete.
6219 (any_parallel_operand): Delete.
6220 (count_register_operand): Delete.
6221 (altivec_register_operand): Delete.
6222 (xer_operand): Delete.
6223 (s8bit_cint_operand): Delete.
6224 (short_cint_operand): Delete.
6225 (u_short_cint_operand): Delete.
6226 (non_short_cint_operand): Delete.
6227 (exact_log2_cint_operand): Delete.
6228 (gpc_reg_operand): Delete.
6229 (cc_reg_operand): Delete.
6230 (cc_reg_not_cr0_operand): Delete.
6231 (reg_or_short_operand): Delete.
6232 (reg_or_neg_short_operand): Delete.
6233 (reg_or_aligned_short_operand): Delete.
6234 (reg_or_u_short_operand): Delete.
6235 (reg_or_cint_operand): Delete.
6236 (reg_or_arith_cint_operand): Delete.
6237 (reg_or_add_cint64_operand): Delete.
6238 (reg_or_sub_cint64_operand): Delete.
6239 (reg_or_logical_cint_operand): Delete.
6240 (got_operand): Delete.
6241 (got_no_const_operand): Delete.
6242 (easy_fp_constant): Delete.
6243 (easy_vector_constant): Delete.
6244 (easy_vector_constant_add_self): Delete.
6245 (zero_constant): Delete.
6246 (zero_fp_constant): Delete.
6247 (volatile_mem_operand): Delete.
6248 (offsettable_mem_operand): Delete.
6249 (mem_or_easy_const_operand): Delete.
6250 (add_operand): Delete.
6251 (non_add_cint_operand): Delete.
6252 (logical_operand): Delete.
6253 (non_logical_cint_operand): Delete.
6254 (mask_operand): Delete.
6255 (mask_operand_wrap): Delete.
6256 (mask64_operand): Delete.
6257 (mask64_2_operand): Delete.
6258 (and64_operand): Delete.
6259 (and64_2_operand): Delete.
6260 (and_operand): Delete.
6261 (reg_or_mem_operand): Delete.
6262 (lwa_operand): Delete.
6263 (symbol_ref_operand): Delete.
6264 (call_operand): Delete.
6265 (current_file_function_operand): Delete.
6266 (input_operand): Delete.
6267 (rs6000_nonimmediate_operand): Delete.
6268 (rs6000_tls_symbol_ref): Delete.
6269 (save_world_operation): Delete.
6270 (restore_world_operation): Delete.
6271 (load_multiple_operation): Delete.
6272 (store_multiple_operation): Delete.
6273 (vrsave_operation): Delete.
6274 (mfcr_operation): Delete.
6275 (mtcrf_operation): Delete.
6276 (lmw_operation): Delete.
6277 (stmw_operation): Delete.
6278 (branch_comparison_operator): Delete.
6279 (branch_positive_comparison_operator): Delete.
6280 (scc_comparison_operator): Delete.
6281 (trap_comparison_operator): Delete.
6282 (boolean_operator): Delete.
6283 (boolean_or_operator): Delete.
6284 (min_max_operator): Delete.
6285 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
6286 (EASY_VECTOR_15): Moved to here.
6287 (EASY_VECTOR_15_ADD_SELF): Move to here.
6288 (PREDICATE_CODES): Delete.
6289 * config/rs6000/rs6000-protos.h: Delete predicate functions.
6290 Declare functions no longer static.
6291 * config/rs6000/predicates.md: New.
6292 * config/rs6000/rs6000.md: Include predicates.md
6293
321cf1f2
KH
62942005-02-28 Kazu Hirata <kazu@cs.umass.edu>
6295
6296 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
6297 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
6298 REG_ALWAYS_RETURN.
6299 * cfgrtl.c (need_fake_edge_p): Likewise.
6300 * combine.c (distribute_notes): Likewise.
6301 * emit-rtl.c (try_split): Likewise.
6302 * recog.c (peephole2_opimize): Likewise.
6303 * reg-notes.def (ALWAYS_RETURN): Remove.
6304 * rtl.h (LCT_ALWAYS_RETURN): Remove.
6305 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
6306 * tree.h (ECF_ALWAYS_RETURN): Remove.
6307
4f380bf8
RS
63082005-02-28 Roger Sayle <roger@eyesopen.com>
6309
6310 PR middle-end/19874
6311 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
6312 between different machine modes is never a "useless" conversion.
6313
63142005-02-28 Geert Bosch <bosch@gnat.com>
dd1f53fb
GB
6315
6316 PR ada/15977
6317 * doc/contrib.texi: List contributors for Ada front end
6318
0a67e02c
PB
63192005-02-28 Paolo Bonzini <bonzini@gnu.org>
6320
6321 * simplify-rtx.c (simplify_unary_operation_1,
6322 simplify_const_unary_operation): New, extracted from...
6323 (simplify_unary_operation): ... this one.
6324 (simplify_binary_operation_1,
6325 simplify_const_binary_operation): New, extracted from...
6326 (simplify_binary_operation): ... this one.
6327 * rtl.h (simplify_const_unary_operation,
6328 simplify_const_binary_operation): Add prototypes.
6329
920b9c8d
JB
63302005-02-28 Julian Brown <julian@codesourcery.com>
6331
6332 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
6333 building libjava and caused PR regression/20228.
6334
215c351a
PB
63352005-02-28 Paolo Bonzini <bonzini@gnu.org>
6336
6337 PR bootstrap/17383
6338 * Makefile.in (host_subdir): New.
6339 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
6340 * configure: Regenerate.
6341
f51d6cb4
ZW
63422005-02-27 Zack Weinberg <zack@codesourcery.com>
6343
6344 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
6345 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
6346 installation directory first.
6347
23369bef
HPN
63482005-02-28 Hans-Peter Nilsson <hp@axis.com>
6349
6350 PR target/19065.
6351 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
6352 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
6353 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
6354 * config/cris/cris.md: Tweak comments referring to Q.
a8e04fe6 6355 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
23369bef
HPN
6356 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
6357 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
6358 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
6359 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
6360 Insert spaces in constraints to align alternatives vertically for
6361 readability.
17c1e037 6362 ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
23369bef
HPN
6363 operand 1: "M".
6364
c0d12712
JDA
63652005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6366
6367 PR rtl-optimization/17728
6368 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
6369 operand 0 from general_operand to move_dest_operand.
6370
478a1f5e
JDA
63712005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6372
6373 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
6374 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
6375 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
6376 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
6377
5395b47b
NN
63782005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
6379
6380 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
6381 * configure: Regenerate.
f51d6cb4 6382 * libada-mk.in: Remove CC; rename
5395b47b
NN
6383 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
6384
c529e0fe
AP
63852005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
6386
6387 PR tree-opt/20188
6388 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
6389 for the lhs, also walk over the tree. Likewise for rhs.
6390
f67e783f
ZD
63912005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
6392
6393 * tree-ssa-dom.c (simple_iv_increment_p): New function.
6394 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
6395 Do not propagate value of iv before increment over the increment.
6396
27bf414c
JM
63972005-02-25 Joseph S. Myers <joseph@codesourcery.com>
6398
6399 * c-parser.c: New file.
6400 * c-parse.in: Remove.
6401 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
6402 Remove.
6403 (c-parser.o): Add dependencies.
6404 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
6405 maintainer-clean, TAGS): Update.
6406 * c-config-lang.in (gtfiles): Update.
6407 * gengtype-lex.l: Don't handle "@@".
6408 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
6409 objc_build_synchronized, objc_begin_try_stmt,
6410 objc_begin_catch_clause, objc_finish_catch_clause,
6411 objc_build_finally_clause, objc_finish_try_stmt): New.
6412 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
6413 type_seen_p.
6414 (c_parse_init): Update comment.
6415 * c-decl.c (c_init_decl_processing): Update comment.
6416 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6417 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
6418 new c_declspecs members.
6419
d8652772
JB
64202005-02-25 Julian Brown <julian@codesourcery.com>
6421
6422 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
6423 from being used for symbols with vague linkage when
6424 HAVE_GAS_COMDAT_GROUP is true.
6425
04270aa4
MM
64262005-02-25 Mark Mitchell <mark@codesourcery.com>
6427
6428 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
6429
4e9db8b2
SE
64302005-02-25 Steve Ellcey <sje@cup.hp.com>
6431
6432 PR target/19930
6433 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
6434 (LIBGCC2_HAS_DF_MODE): New.
6435 (LIBGCC2_HAS_XF_MODE): New.
6436 (LIBGCC2_HAS_TF_MODE): New.
6437 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
6438 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
6439 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
6440 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
6441 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
6442 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
6443 and add _fixtfdi, _fixunstfdi, _floatditf
6444 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
6445 L_fixunstfdi, L_floatditf.
6446 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
6447 (LIBGCC2_HAS_TF_MODE): Define.
6448
736c86ad
DN
64492005-02-25 Diego Novillo <dnovillo@redhat.com>
6450
6451 PR tree-optimization/20204
6452 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
6453 REWRITE_THIS_STMT markers on PHI nodes.
6454 (rewrite_initialize_block): Likewise.
6455
3bf4da72
MM
64562005-02-25 Mark Mitchell <mark@codesourcery.com>
6457
6458 * version.c (version_string): Update to 4.1.
6459
a1e73046
PC
64602005-02-25 Paolo Carlini <pcarlini@suse.de>
6461
6462 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
6463 Clarify that the alternative way doesn't work in GNU C++.
6464
9e7376e5
ZD
64652005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
6466
6467 PR tree-optimization/19937
6468 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
6469 to the type of the induction variable.
6470
bd182be8
KK
64712005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
6472
6473 PR rtl-optimization/20117
6474 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
6475 the block including noncopyable insn.
6476
2b5936fd
KH
64772005-02-24 Kazu Hirata <kazu@cs.umass.edu>
6478
6479 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
6480 calls to find_reg_note.
6481
964a9831
RH
64822005-02-24 Richard Henderson <rth@redhat.com>
6483
6484 PR tree-opt/20127
6485 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
6486 the type.
6487
78796ad5
FJ
64882005-02-24 Fariborz Jahanian <fjahanian@apple.com>
6489
6490 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
6491 vector types if to use base reg for misaligned non-word ld/std.
6492
b2142ad8
HPN
64932005-02-24 Hans-Peter Nilsson <hp@axis.com>
6494
6495 PR target/14619
6496 * config/cris/cris.c (cris_target_asm_function_prologue): Create
6497 dwarf2 label manually and put it after, not before the prologue.
6498
b436d712
DE
64992005-02-24 David Edelsohn <edelsohn@gnu.org>
6500
6501 PR target/19019
6502 * reload.c (operands_match_p): Only increment register number for
6503 SCALAR_INT_MODE_P modes in multiple hard registers.
6504
589b3fda
DE
6505 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
6506 Fix formatting.
6507
3f117656
VR
65082005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6509
6510 * ChangeLog.5: Fix log message typo(s).
6511 * ChangeLog.7: Likewise.
6512 * ChangeLog.tree-ssa: Likewise.
6513 * cfgexpand.c: Fix comment typo(s).
6514 * conflict.c: Likewise.
6515 * defaults.h: Likewise.
6516 * dwarf2out.c: Likewise.
6517 * gcse.c: Likewise.
6518 * ggc-page.c: Likewise.
6519 * tree-eh.c: Likewise.
6520 * tree-ssa-dom.c: Likewise.
6521
04fa46cf
JJ
65222005-02-24 Jakub Jelinek <jakub@redhat.com>
6523
df8a7c49
JJ
6524 PR target/19019
6525 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
6526 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
6527 if SHARED is defined.
6528
04fa46cf
JJ
6529 PR target/20196
6530 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
6531 allow splitting only if operands 0 and 3 don't overlap.
6532
a0d2281e
RH
65332005-02-24 Richard Henderson <rth@redhat.com>
6534
6535 PR middle-end/19953
6536 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
6537 (fold_builtin_1): Call them.
6538 * fold-const.c (fold_complex_mult_parts): Split out from ...
6539 (fold_complex_mult): ... here. Fix typo in both imaginary case.
6540 (fold_complex_div_parts, fold_complex_div): New.
6541 (fold): Use them.
6542 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
6543
4961152d
RK
65442005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6545
ae95537a
RK
6546 * tree-ssa-ccp.c (visit_assignment): Verify that result of
6547 VIEW_CONVERT_EXPR is_gimple_min_invariant.
6548
4961152d
RK
6549 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
6550 (print_node): Likewise.
6551 Print TYPE_SIZES_GIMPLIFIED.
6552
ef6201a6
HPN
65532005-02-24 Hans-Peter Nilsson <hp@axis.com>
6554
6555 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
6556 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
6557 operands as commutative in constraints.
6558
7256233c
DN
65592005-02-24 Diego Novillo <dnovillo@redhat.com>
6560
6561 * tree-into-ssa.c: Re-organize internal functions.
6562
c7463669
RH
65632005-02-24 Richard Henderson <rth@redhat.com>
6564
6565 PR middle-end/18902
6566 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
6567 for c99.
6568 * common.opt (fcx-limited-range): New.
6569 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
6570 * toplev.c (flag_complex_method): Initialize to 1.
6571 (process_options): Set flag_complex_method to 0 if
6572 flag_cx_limited_range.
6573 * doc/invoke.texi (-fcx-limited-range): New.
6574
03ce14db
KH
65752005-02-24 Kazu Hirata <kazu@cs.umass.edu>
6576
6577 * cse.c (delete_trivially_dead_insns): Speed up by using
6578 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
6579 prev_real_insn.
6580
b86ba8a3
AT
65812005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
6582
6583 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
6584 functions when -mid-shared-library is being used.
6585
57642751
DJ
65862005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
6587
6588 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
6589 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
6590 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
6591 * system.h: Poison LINK_LIBGCC_SPECIAL.
6592
79e4e6a6
JW
65932005-02-23 James E Wilson <wilson@specifixinc.com>
6594
6595 * gengtype.c (note_insn_name): Make 1 element larger.
6596
61961eff
RS
65972005-02-23 Roger Sayle <roger@eyesopen.com>
6598
6599 PR target/20018
6600 PR rtl-optimization/20097
6601 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
6602 BImode SUBREGs of SImode registers which confuse the ia64 backend.
6603
1628a835
DE
66042005-02-23 David Edelsohn <edelsohn@gnu.org>
6605
6606 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
6607 * t-aix52 (SHLIB_INSTALL): Same.
6608
f439764f
KH
66092005-02-23 Kazu Hirata <kazu@cs.umass.edu>
6610
6611 * genpreds.c: Update copyright.
6612
3f9f087b
MB
66132005-02-23 Michael Beach <michaelb@ieee.org>
6614
6615 PR target/20159
6616 * config/sparc/t-elf (startup files): Assemble with CPP.
6617
bb56fc39
PB
66182005-02-23 Paolo Bonzini <bonzini@gnu.org>
6619
6620 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
6621 (write_predicate_expr): Likewise.
6622
90c1d75a
DN
66232005-02-22 Diego Novillo <dnovillo@redhat.com>
6624
6625 PR tree-optimization/20100
6626 PR tree-optimization/20115
6627 * tree-optimize.c (init_tree_optimization_passes): Remove
6628 pass_maybe_create_global_var.
6629 * tree-pass.h (pass_maybe_create_global_var): Remove.
6630 * tree-ssa-alias.c (aliases_computed_p): Declare.
6631 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
6632 (count_calls_and_maybe_create_global_var): Remove.
6633 (pass_maybe_create_global_var): Remove.
6634 (init_alias_info): Do not declare aliases_computed_p.
6635 (maybe_create_global_var): If the function contains no
6636 call-clobbered variables and a mix of pure/const and regular
6637 function calls, create .GLOBAL_VAR.
6638 Mark all call-clobbered variables for renaming.
6639 (merge_pointed_to_info): Update comment.
6640 (add_pointed_to_var): Likewise.
6641 (is_escape_site): Likewise.
6642 Accept struct alias_info * instead of size_t *.
6643 Update all users.
6644 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
6645 as necessary.
6646 * tree-ssa-operands.c (get_call_expr_operands): If
6647 ALIASES_COMPUTED_P is false, do not add call-clobbering
6648 operands.
6649 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
6650 (delete_tree_ssa): Likewise.
6651
e59ba1bc
JW
66522005-02-22 James E Wilson <wilson@specifixinc.com>
6653
6654 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
6655 (do_compile): Do call it here.
6656
78d5a34b
KH
66572005-02-22 Kazu Hirata <kazu@cs.umass.edu>
6658
6659 PR rtl-optimization/20017.
6660 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
6661 rest_of_handle_cse2, rest_of_handle_gcse): Call
6662 delete_dead_jumptables immediately before calling cleanup_cfg.
6663
263fb23d
DP
66642005-02-22 Devang Patel <dpatel@apple.com>
6665
6666 PR 19952
f51d6cb4 6667 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
263fb23d 6668 all labels
f51d6cb4 6669
466db3c1
DE
66702005-02-22 David Edelsohn <edelsohn@gnu.org>
6671
6672 * config/rs6000/aix.h (WINT_TYPE): Define.
6673
d9168963
SS
66742005-02-22 Stan Shebs <shebs@apple.com>
6675
6676 * config/rs6000/rs6000.c (rs6000_override_options): Default to
6677 natural alignment for 64-bit Darwin.
6678 (rs6000_parse_alignment_option): Warn about uses of -malign-power
6679 on 64-bit Darwin.
6680 * doc/invoke.texi: Document this.
6681
19b3ffbc
DD
66822005-02-22 DJ Delorie <dj@redhat.com>
6683
6684 * c-common.c (c_common_type_for_mode): Pass the mode's precision
6685 to make_[un]signed_type, not the mode itself.
6686
e2c879a1
KH
66872005-02-22 Kazu Hirata <kazu@cs.umass.edu>
6688
6689 * cfg.c (cached_make_edge): Call make_edge if edge cache is
6690 not available. Use tail calls wherever possible.
6691 (make_edge): Call unchecked_make_edge to create an edge.
6692
35bea171
KH
6693 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
6694 (coalesce_ssa_name): Don't check for
6695 SSANORM_USE_COALESCE_LIST.
6696 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
6697
554beb3a
DN
66982005-02-22 Diego Novillo <dnovillo@redhat.com>
6699
6700 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
6701 (rewrite_into_ssa): ... here.
6702
bb2e1640
AO
67032005-02-21 Alexandre Oliva <aoliva@redhat.com>
6704
6705 PR tree-optimization/19786
6706 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
6707 tag to another's may-alias bitmap when adding to the other's list.
6708
1d27fed4
DD
67092005-02-21 DJ Delorie <dj@redhat.com>
6710
6711 * tree-ssa-loop-ivopts.c (computation_cost): Start register
6712 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
6713 registers in unsupported ways.
6714 * expmed.c (init_expmed): Likewise.
f51d6cb4 6715
10e70392
SC
67162005-02-21 Stan Cox <scox@redhat.com>
6717
6718 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
6719
fca01525
KH
67202005-02-21 Kazu Hirata <kazu@cs.umass.edu>
6721
6722 * tree-cfg.c (fold_cond_expr_cond): New.
6723 (make_edges): Call fold_cond_expr_cond.
6724 (find_taken_edge): Accept nothing but INTEGER_CST.
6725 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
6726 and 1.
6727 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
6728
88312d26
KH
6729 * flow.c (delete_dead_jumptables): Speed up by scanning insns
6730 that do not belong to any basic block.
6731
0b612e0b
JL
67322005-02-21 Jeff Law <law@redhat.com>
6733
6734 * cfganal.c (find_unreachable_blocks): Manually CSE load of
6735 e->dest.
6736
dfd9f74c
KH
67372005-02-21 Kazu Hirata <kazu@cs.umass.edu>
6738
6739 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
6740 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
6741 Adjust their definitions.
6742 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
6743 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
6744
a4de48bc
KH
6745 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
6746 genautomata.c, langhooks.c, langhooks.h, system.h,
6747 config/arm/lib1funcs.asm: Update copyright.
6748
4a22dcdd
UW
67492005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
6750
6751 * dbxout.c (dbxout_function_end): Emit Lscope label always.
6752
5dd90688
RG
67532005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
6754
6755 PR bootstrap/13770
6756 * doc/install.texi: Document --with-gc.
6757
35ef372d
PB
67582005-02-21 Paolo Bonzini <bonzini@gnu.org>
6759
6760 * simplify-rtx.c (simplify_unary_operation): Add a missing
6761 "break" statement.
6762
ee167207
EB
67632005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
6764
6765 PR tree-optimization/18663
6766 * tree-ssa-dom.c (extract_range_from_cond): Return 0
6767 if the type has variable bounds.
6768
a3c28ba2
KH
67692005-02-20 Kazu Hirata <kazu@cs.umass.edu>
6770
6771 * gcse.c: Remove an obsolete comment.
6772
a811c672
KH
6773 * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
6774
50c177f7
HPN
67752005-02-20 Hans-Peter Nilsson <hp@axis.com>
6776
6777 * doc/extend.texi (Function Attributes) <Attribute const>: The
6778 attribute "pure" is below this text, not above.
6779
cdcb88d7
JDA
67802005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6781
6782 * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
6783 (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
6784 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
6785
c5ff069d
ZW
67862005-02-20 Zack Weinberg <zack@codesourcery.com>
6787
6788 PR 18785
6789 * langhooks.h (struct lang_hooks): Add to_target_charset.
6790 * langhooks.c (lhd_to_target_charset): New function.
6791 * langhooks-def.h: Declare lhd_to_target_charset.
6792 (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
6793 (LANG_HOOKS_INITIALIZER): Update.
6794 * c-common.c (c_common_to_target_charset): New function.
6795 * c-common.h: Declare it.
6796 * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
6797 c_common_to_target_charset.
6798
6799 * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
6800 (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
6801 Delete definitions.
6802 * system.h: Poison them.
6803 * doc/tm.texi: Don't discuss them.
6804 * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
6805 * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
6806 (pp_c_char): Do not attempt to generate letter escapes for
6807 newline, tab, etc.
6808 * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
6809 * config/mips/mips.c (mips_output_ascii): Likewise.
6810
ac59a959
DN
68112005-02-20 Dorit Naishlos <dorit@il.ibm.com>
6812
6813 PR tree-optimization/19951
6814 * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
6815 is abnormal.
c5ff069d 6816
a310245f
SB
68172005-02-19 Steven Bosscher <stevenb@suse.de>
6818
c5ff069d 6819 PR middle-end/19698
a310245f
SB
6820 * function.h (struct function): New field `max_loop_depth'.
6821 * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
6822 (flow_loops_find): Reset the max loop depth count before finding loops.
6823 * flow.c (MAX_LIVENESS_ROUNDS): New constant.
6824 (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
6825 (calculate_global_regs_live): Make sure the loop will terminate
6826 when the initial sets are not empty.
6827
2cdc2073
ZW
68282005-02-19 Zack Weinberg <zack@codesourcery.com>
6829
6830 * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
6831 object inside.
6832 * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
6833
4e8d0554
RS
68342005-02-19 Richard Sandiford <rsandifo@redhat.com>
6835
6836 PR other/19525
6837 * doc/invoke.texi: Remove documentation of %M spec.
6838 * gcc.c: Likewise.
6839 (init_spec): Remove %M suffix from -lgcc_s.
6840 (do_spec_1): Remove 'M' case.
6841 * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
6842 to put shared libraries in the multilib directory. Remove the
6843 shlib_so_soname substitution variable. Don't add a multilib encoding
6844 to shlib_base_name. Set shlib_slibdir_qual to the full pathname
6845 reported by -print-multi-os-directory. Pass @multilib_dir@ to
6846 SHLIB_INSTALL as well as SHLIB_LINK.
6847 * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
6848 (SHLIB_NAME): Delete.
6849 (SHLIB_DIR): New macro.
6850 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
6851 (SHLIB_INSTALL): Adjust accordingly.
6852 * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
6853 * config/t-slibgcc-sld: Likewise.
6854 * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
6855 (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
6856 (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
6857 in $(SHLIB_DIR).
6858 (SHLIBUNWIND_INSTALL): Adjust accordingly.
6859 * config/i386/t-nwld (SHLIB_SONAME): Delete.
6860 (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
6861 Use @shlib_base_name@ instead of @shlib_so_name@.
6862 * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
6863 and @shlib_base_name@.so in @multilib_dir@.
6864 (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
6865 to the install path.
6866 * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
6867 (SHLIB_LINK): Remove previous workaround.
6868 * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
6869 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
6870 (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
6871 the install path.
6872 * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
6873 @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
6874 (SHLIB_INSTALL): Adjust accordingly.
6875 (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
6876 * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
6877 * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
6878 config/t-slibgcc-elf-ver.
6879
f10a6654
ZD
68802005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
6881 Jakub Jelinek <jakub@redhat.com>
6882
6883 PR tree-optimization/19828
6884 * tree-ssa-loop-im.c: Add a TODO comment.
6885 (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
6886 without side-effects.
6887
5ff489f1
JM
68882005-02-18 James A. Morrison <phython@gcc.gnu.org>
6889
6890 * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
6891 call fold_convert.
6892
4c334b37
JW
68932005-02-18 James E. Wilson <wilson@specifixinc.com>
6894
6895 * doc/invoke.texi (IA-64 Options): Delete -mb-step.
6896 * config/ia64/ia64.c (last_group, group_idx): Delete variables.
6897 (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
6898 functions.
6899 (ia64_reorg): Delete fixup_errata call.
6900 * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
6901 (TARGET_SWITCHES): Delete -mb-step entry.
6902
58cb41e6
JJ
69032005-02-19 Jakub Jelinek <jakub@redhat.com>
6904
6905 PR c/20043
6906 * c-typeck.c (composite_type): Handle quals in transparent unions.
6907 (type_lists_compatible_p): Likewise.
6908
b79d4265
SS
69092005-02-18 Stan Shebs <shebs@apple.com>
6910
6911 * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
6912 expressions in the .literal8 section.
6913
a7138657
GK
69142005-02-18 Geoffrey Keating <geoffk@apple.com>
6915
6916 * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
6917
0a9c6fdf
RS
69182005-02-18 Roger Sayle <roger@eyesopen.com>
6919
6920 * fold-const.c (constant_boolean_node): Always create values of the
6921 specified type, don't bother calling truthvalue_conversion.
6922
f6775e78
JM
69232005-02-18 Joseph S. Myers <joseph@codesourcery.com>
6924
6925 * except.c (output_function_exception_table): Call
6926 assemble_external_libcall (eh_personality_libfunc).
6927
5b4275db
JM
69282005-02-18 Joseph S. Myers <joseph@codesourcery.com>
6929
6930 PR target/19886
6931 * config/ia64/ia64.h (struct machine_function): Add state_num.
6932 * config/ia64/ia64.c (process_epilogue,
6933 process_for_unwind_directive): Use new unwind state numbers each
6934 time rather than state 1.
6935
d6083c7d
UW
69362005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
6937
6938 PR target/20054
6939 * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
6940 before the "*llgt_didi" pattern.
6941
258dba8f
JM
69422005-02-18 Jason Merrill <jason@redhat.com>
6943
6944 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
6945
2155b886
RE
69462005-02-18 Richard Earnshaw <rearnsha@arm.com>
6947
6948 * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
6949 (div0): Use it in place of ARM_FUNC_ALIAS.
6950 (lshrdi3, ashrdi3, ashlrdi3): Likewise.
6951
0d56ab33
AP
69522005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
6953
6954 PR middle-end/20030
a310245f
SB
6955 * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
6956 access, the lower bound of the array type if it exists.
0d56ab33 6957
2aabee29
AO
69582005-02-18 Alexandre Oliva <aoliva@redhat.com>
6959
6960 PR c++/20008
6961 * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
6962 cases that are out-of-range for the index type.
6963
aeba6c28
JM
69642005-02-18 James A. Morrison <phython@gcc.gnu.org>
6965
6966 * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
6967 (estimate_case_costs): Don't call convert.
6968 * expmed.c (expand_shift): Likewise.
2cdc2073 6969 (make_tree): Call fold_convert instead of convert.
aeba6c28 6970
3a96c3b9
JJ
69712005-02-18 Jakub Jelinek <jakub@redhat.com>
6972
6973 PR c++/19813
6974 * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
6975 that ref to be marked MEM_READONLY_P doesn't have base that needs
6976 constructing.
6977
9fd64c63
JM
69782005-02-18 Joseph S. Myers <joseph@codesourcery.com>
6979
6980 * genautomata.c (output_get_cpu_unit_code_func,
6981 output_cpu_unit_reservation_p): Don't generate old-style function
6982 definitions.
6983
58203599
JJ
69842005-02-18 Jakub Jelinek <jakub@redhat.com>
6985
0948e392
JJ
6986 PR c++/20023
6987 PR tree-optimization/20009
6988 * convert.c (convert_to_integer): Revert 2005-02-16 change.
6989
58203599
JJ
6990 PR tree-optimization/18947
6991 * cgraphunit.c (cgraph_finalize_function): When redefining an extern
6992 inline, remove all nodes that are inlined into the extern inline
6993 being redefined.
6994
c8d3e15a
KH
69952005-02-17 Kazu Hirata <kazu@cs.umass.edu>
6996
6997 * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
6998 loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
6999 tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
7000 config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
7001 Update copyright.
7002
9b396d7c
RS
70032005-02-17 Roger Sayle <roger@eyesopen.com>
7004
7005 PR tree-optimization/19917
7006 * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
7007 to be potentially trapping.
7008
2e681715
KH
70092005-02-17 Kazu Hirata <kazu@cs.umass.edu>
7010
7011 * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
7012
c6d01079
AK
70132005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
7014
7015 * builtins.c (expand_builtin_return_addr): Remove tem parameter.
2cdc2073 7016 tem becomes a local variable which is set to the value of the
c6d01079 7017 back end defined INITIAL_FRAME_ADDRESS macro.
2cdc2073 7018 (expand_builtin_frame_address): Omit the base parameter to
c6d01079
AK
7019 expand_builtin_return_addr.
7020 (expand_builtin_profile_func): Likewise.
7021 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
7022 (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
7023 * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
7024
7b210806
JJ
70252005-02-17 Jakub Jelinek <jakub@redhat.com>
7026
7027 * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
7028 s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
7029 * config/frv/frv.c (frv_function_epilogue): Likewise.
7030
eae600b9
DB
70312005-02-17 Daniel Berlin <dberlin@dberlin.org>
7032
7033 * lambda-code (perfect_nestify): Remove mark/unmark
7034 for rewriting hack.
7035 * tree-loop-linear.c (linear_transform_loops): Add
7036 rewrite_into_ssa call so that ssa is correct for
7037 rewriting into loop closed.
7038
8bdbfff5
NS
70392005-02-17 Nathan Sidwell <nathan@codesourcery.com>
7040
7041 * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
7042 * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
7043 BITMAP_FREE.
7044 * bt-load.c (btr_def_live_range, combine_btr_defs,
7045 migrate_btr_def, migrate_btr_defs): Likewise.
7046 * cfgcleanup.c (thread_jump): Likewise.
7047 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
7048 * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
7049 df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
7050 df_rd_local_compute, df_reg_info_compute): Likewise.
7051 * dominance.c (init_dom_info, free_dom_info): Likewise.
7052 * flow.c (init_propagate_block_info,
7053 free_propagate_block_info): Likewise.
7054 * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
7055 * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
7056 modify_reg_pav): Likewise.
7057 * loop-invariant.c (find_defs, find_invariant_insn,
7058 find_invariants, free_inv_motion_data): Likewise.
7059 * predict.c (tree_predict_by_opcode,
7060 estimate_bb_frequencies): Likewise.
7061 * stmt.c (expand_case): Likewise.
7062 * tree-cfg.c (tree_duplicate_sese_region): Likewise.
7063 * tree-dfa.c (mark_new_vars_to_rename): Likewise.
7064 * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
7065 * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
7066 get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
7067 rewrite_ssa_into_ssa): Likewise.
7068 * tree-optimize.c (tree_rest_of_compilation): Likewise.
7069 * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
7070 analyze_edges_for_bb, perform_edge_inserts): Likewise.
7071 * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
7072 * tree-sra.c (tree_sra): Likewise.
7073 * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
7074 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
7075 * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
7076 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
7077 * tree-ssa-dse.c (tree_ssa_dse): Likewise.
7078 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
7079 Likewise.
7080 * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
7081 calculate_live_on_entry, calculate_live_on_exit,
7082 build_tree_conflict_graph): Likewise.
7083 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
7084 record_important_candidates, set_use_iv_cost, find_depends,
7085 determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
7086 tree_ssa_iv_optimize_finalize): Likewise.
7087 * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
7088 find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
7089 tree_duplicate_loop_to_header_edge): Likewise.
7090 * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
7091 * tree-ssa.c (verify_flow_insensitive_alias_info,
7092 verify_name_tags, verify_ssa, init_tree_ssa,
7093 delete_tree_ssa): Likewise.
7094 * tree-ssanames.c (marked_ssa_names, init_ssanames,
7095 fini_ssanames): Likewise.
7096 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
7097
3abbb738
RC
70982005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
7099
2cdc2073 7100 * config/rs6000/t-rtems: Completely reworked.
3abbb738 7101
9d182aa5
IR
71022005-02-17 Ira Rosen <irar@il.ibm.com>
7103
2cdc2073 7104 * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
9d182aa5 7105
2427fa80
IR
71062005-02-17 Ira Rosen <irar@il.ibm.com>
7107
7108 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
7109 POINTER_TYPE_P when checking that type is a pointer.
7110 (vect_get_memtag): Remove.
7111 (vect_address_analysis): Use POINTER_TYPE_P. Call
7112 vect_object_analysis with dummy parameter for memtag.
7113 (vect_object_analysis): Extract memtag (functionality that
7114 used to be in vect_get_memtag and moved here). Fix printings.
7115 (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
7116 with correct parameters. Remove call to vect_get_memtag.
7117
f7064d11
DN
71182005-02-17 Dorit Naishlos <dorit@il.ibm.com>
7119
7120 * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
7121 (tree-vectorizer.o): Added missing dependencies.
7122
7123 * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
7124 decleration.
7125 (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
7126 declaration in tree-vectorizer.c, now has an extern declaration in
7127 tree-vectorizer.h).
7128 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2cdc2073
ZW
7129 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
7130 get_vectype_for_scalar_type, vect_is_simple_use,
f7064d11
DN
7131 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
7132 vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
2cdc2073 7133 new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
f7064d11
DN
7134 vectorizable_store, vectorizable_operation, vectorizable_assignment,
7135 vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
7136 find_loop_location): Likewise.
7137
7138 * tree-vectorizer.c (langhooks.h): #include removed.
7139 (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
7140 moved to tree-vectorized.h.
7141 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
7142 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
7143 get_vectype_for_scalar_type, vect_is_simple_use,
7144 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
7145 vect_supportable_dr_alignment, new_loop_vec_info,
7146 destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
7147 vect_set_verbosity_level, find_loop_location): Likewise.
7148
2cdc2073 7149 (vect_analyze_loop): Function externalized. Declaration moved to
f7064d11
DN
7150 tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
7151 (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
7152 (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
7153 vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
7154 vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
7155 vect_enhance_data_refs_alignment, vect_analyze_operations,
7156 exist_non_indexing_operands_for_use_p, vect_mark_relevant,
7157 vect_stmt_relevant_p, vect_get_loop_niters,
7158 vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
7159 vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
7160 vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
7161 vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
7162 vect_get_memtag): Likewise.
7163
2cdc2073 7164 (vectorizable_load): Function externalized. Declaration moved to
f7064d11
DN
7165 tree-vectorized.h. Function definition moved to tree-vect-transform.c.
7166 (vectorizable_store, vectorizable_operation, vectorizable_assignment,
7167 vect_transform_loop): Likewise.
7168 (vect_transform_stmt): Moved to tree-vect-transform.c.
2cdc2073 7169 (vect_align_data_ref, vect_create_destination_var,
f7064d11
DN
7170 vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
7171 vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
7172 vect_get_vec_def_for_operand, vect_init_vector,
7173 vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
7174 vect_build_loop_niters, vect_update_ivs_after_vectorizer,
7175 vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
7176 vect_update_inits_of_drs, vect_do_peeling_for_alignment,
7177 vect_do_peeling_for_loop_bound): Likewise.
2cdc2073 7178
f7064d11
DN
7179 * tree-vect-analyze.c: New file.
7180 * tree-vect-transform.c: New file.
7181
eff9a5d0
JM
71822005-02-17 Jason Merrill <jason@redhat.com>
7183
7184 PR mudflap/19319, c++/19317
7185 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
7186 slot explicit.
7187
beb5f807
GP
71882005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
7189
7190 * doc/install.texi (Specific): Update link for Darwin-specific
7191 tool binary site.
2cdc2073 7192
9ace7f9e
JM
71932005-02-16 James A. Morrison <phython@gcc.gnu.org>
7194
7195 * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
7196 constant_boolean_node.
7197
ee01c339 71982005-02-16 David Edelsohn <edelsohn@gnu.org>
53de343a
DE
7199
7200 PR target/19019
7201 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7202 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
7203
4f2e0d5e
RH
72042005-02-16 Richard Henderson <rth@redhat.com>
7205
7206 PR 19920
7207 * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
7208 with W_TYPE_SIZE.
7209 (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
7210 replace uses with Wtype_MAXp1_F.
7211 (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
7212 L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
7213 L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
7214 L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
7215 and HAVE_TFMODE as appropriate.
7216 (__fixunssfDI): Provide an implementation that doesn't need DFmode.
7217 (__floatdisf): Likewise.
7218 * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
7219 (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
7220 (Wtype_MAXp1_F): New.
7221 (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
7222 __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
7223
9f7bf991
RE
72242005-02-16 Richard Earnshaw <rearnsha@arm.com>
7225
7226 * PR target/19162
7227 * arm.c (arm_apply_result_size): New function.
7228 * arm.h (APPLY_RESULT_SIZE): Define.
7229 * arm-protos.h (arm_apply_result_size): Add prototype.
7230 * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
7231 (movxf): New expand.
7232 (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
7233 (call_value_symbol): Remove predicate for operand 0.
7234 (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
7235 (untyped_call): Rework to correclty return values for any type.
7236 (untyped_return): New expand.
7237 * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
7238
f0b81cbc
SS
72392005-02-16 Stan Shebs <shebs@apple.com>
7240
7241 * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
7242 * config/rs6000/t-darwin8: New, for 64-bit multilib.
7243
25c62e24
EB
72442005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
7245
927c8259 7246 * doc/install.texi (sparc-sun-solaris2*): Document required GMP
25c62e24
EB
7247 configure settings on Solaris 7 and later.
7248
3bd09563
DN
72492005-02-16 Diego Novillo <dnovillo@redhat.com>
7250
7251 PR tree-optimization/19865
7252 * tree-optimize.c (init_tree_optimization_passes): Run
7253 pass_may_alias after pass_sra.
7254
847d0c08
RH
72552005-02-16 Richard Henderson <rth@redhat.com>
7256 Stuart Hastings <stuart@apple.com>
7257
7258 PR debug/19521
7259 * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
7260 Do nothing if debug info suppressed for this function.
7261 (dbxout_begin_function): Early exit if debug info suppressed for
7262 this function.
7263
de332a85
KH
72642005-02-16 Kazu Hirata <kazu@cs.umass.edu>
7265
7266 PR target/20007
7267 * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
7268 find_basic_blocks.
7269 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7270
5fcfe0b2
KH
7271 PR tree-optimization/19967
7272 * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
7273 expand_builtin_strchr, expand_builtin_strrchr): Take a new
7274 argument TYPE. Adjust calls to fold_builtin_XXX.
7275 (expand_builtin, fold_builtin_1): Adjust calls to
7276 expand_builtin_XXX.
7277 (fold_builtin_strchr, fold_builtin_strpbrk,
7278 fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
7279 result to a requested type TYPE.
7280
8940b3b2
JJ
72812005-02-16 Jakub Jelinek <jakub@redhat.com>
7282
7283 PR middle-end/19857
7284 * fold-const.c (fold): Don't optimize (T)(x & cst) to
7285 (T)x & (T)cst if (T)cst overflows.
7286 * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
7287 TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
7288
aa47fcfa
JL
72892005-02-15 Jeff Law <law@redhat.com>
7290
7291 * gcse.c (blocks_with_calls): New bitmap.
7292 (alloc_gcse_mem): Allocate it.
7293 (free_gcse_mem): Free it.
7294 (clear_modifY_mem_tables): Clear it.
7295 (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
7296 when we encounter CALL_INSNs.
7297 (compute_transp, case MEM): Handle blocks with calls separate
7298 from blocks without calls. Use bitmap iterators rather than
7299 FOR_EACH_BB.
7300
489ce9e7
PG
73012005-02-15 Peter O'Gorman <peter@pogma.com>
7302
7303 PR bootstrap/18810
7304 * mklibgcc.in (vis_hide): Use a temporary object file, not
7305 -o /dev/null.
7306
1dd8ce20
AH
73072005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
7308
7309 PR target/19924
7310 * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
7311 access optimization.
7312
6f85d0c4 73132005-02-15 David Edelsohn <edelsohn@gnu.org>
fd9850d5 7314 Alan Modra <amodra@bigpond.net.au>
6f85d0c4
DE
7315
7316 PR target/19019
7317 * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
7318 (_xlqsub): Rename to __gcc_qsub.
7319 (_xlqmul): Rename to __gcc_qmul.
7320 (_xlqdiv): Rename to __gcc_qdiv.
7321 Provide versioned symbol aliases with old names.
7322 * config/rs6000/libgcc-ppc64.ver: Rename symbols.
7323 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
7324 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
7325 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
7326 * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
7327
40f84775
JM
73282005-02-15 James A. Morrison <phython@gcc.gnu.org>
7329
7330 * fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
7331 Fold ~(A - 1) and ~(A + -1) to -A.
7332
14be52a2
JM
73332005-02-15 James A. Morrison <phython@gcc.gnu.org>
7334
7335 PR pch/14940
7336 PR target/19300
7337 * config/host-linux.c (linux_gt_pch_use_address): Copy from
7338 config/pa/pa-host.c:pa_gt_pch_use_address.
7339
eace8c18
DB
73402005-02-15 Daniel Berlin <dberlin@dberlin.org>
7341
7342 * tree-vn.c (get_value_handle): Make sure that given an
7343 is_gimple_min_invariant expression, we always return it.
7344
83cc36c8
KH
73452005-02-15 Kazu Hirata <kazu@cs.umass.edu>
7346
7347 * passes.c (rest_of_handle_gcse): Fix a comment.
7348
9a6cf911
JL
73492005-02-15 Jeff Law <law@redhat.com>
7350
7351 * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
7352 bitmap.
7353 (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
7354 (canon_list_insert, record_last_mem_set_info): Similarly.
7355 (clear_modify_mem_tables): Similarly.
7356
6a6305e4
KH
73572005-02-15 Kazu Hirata <kazu@cs.umass.edu>
7358
7359 * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
7360 tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
7361 config/mips/mips.md, config/rs6000/aix.h,
7362 config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
7363
934677f9
RH
73642005-02-15 Richard Henderson <rth@redhat.com>
7365
2cdc2073 7366 * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
934677f9
RH
7367 call to be best_edge.
7368
2e09ee33
KH
73692005-02-14 Kazu Hirata <kazu@cs.umass.edu>
7370
7371 * basic-block.h: Adjust the prototype for find_basic_blocks.
7372 * cfgbuild.c (find_basic_blocks): Remove unused arguments.
7373 * passes.c (rest_of_handle_loop_optimize): Adjust the call to
7374 find_basic_blocks.
7375
e22857eb
KH
7376 * flow.c (recompute_reg_usage): Remove all arguments.
7377 * passes.c (rest_of_compilation): Adjust the call to
7378 recompute_reg_usage.
7379 * rtl.h: Adjust the prototype for recompute_reg_usage.
7380
f46fe224 73812005-02-14 Daniel Berlin <dberlin@dberlin.org>
2cdc2073 7382
f46fe224
DB
7383 * tree-dump.c (dump_files): Update to reflect new member
7384 of dump_file_info.
7385 (dump_register): Add new argument.
7386 Set glob name.
7387 (dump_switch_p_1): Check against glob name if doglob was passed.
7388 (dump_switch_p): Check against regular first, then glob if
7389 we didn't have any hits on the dump name.
7390 * tree-optimize.c (register_one_dump_file):
7391 Pass in glob name as well.
7392 * tree-pass.h (struct dump_file_info): Add glob
7393 member.
7394
90689ae1
JM
73952005-02-14 Joseph S. Myers <joseph@codesourcery.com>
7396
7397 PR preprocessor/16323
7398 * doc/invoke.texi: Document that -Wendif-labels is on by default.
7399
8cb320b8
DE
74002005-02-14 David Edelsohn <edelsohn@gnu.org>
7401
7402 PR target/19019
2fe433c2 7403 * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
8cb320b8 7404 (trunctfdf2_internal1): New.
2fe433c2 7405 (trunctfdf2_internal2): Renamed from trunctfdf2.
8cb320b8 7406
9a06c1cb
DN
74072005-02-14 Diego Novillo <dnovillo@redhat.com>
7408
7409 PR tree-optimization/19853
7410 * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
7411
0c86d709
KH
74122005-02-14 Kazu Hirata <kazu@cs.umass.edu>
7413
7414 * passes.c (rest_of_handle_loop_optimize): Remove calls to
7415 delete_dead_jumptables and cleanup_cfg.
7416
e88d55cd
UW
74172005-02-14 Ulrich Weigand <uweigand@de.ibm.com>
7418
7419 * reload.c (find_reloads): Swap address_reloaded flags when
7420 swapping commutative operands.
7421
92d2b330 74222005-02-14 Sebastian Pop <pop@cri.ensmp.fr>
9a06c1cb 7423
92d2b330
SP
7424 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
7425 Use standard_iv_increment_position for computing the bsi position
7426 for create_iv.
7427 * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
7428 the bsi position.
7429
af9ecd0c
ZD
74302005-02-13 Zdenek Dvorak <dvorakz@suse.cz>
7431
7432 PR target/17428
9a06c1cb
DN
7433 * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
7434 life range of hard registers.
7435 * value-prof.c (insn_prefetch_values_to_profile): Only
7436 scan normal insns.
af9ecd0c
ZD
7437
7438 * value-prof.c (rtl_find_values_to_profile): Do not look for values to
7439 profile in libcalls.
7440
90bb1c1f
NS
74412005-02-13 Nathan Sidwell <nathan@codesourcery.com>
7442
7443 * bitmap.h (bitmap_and_compl_into): Return bool.
7444 * bitmap.c (bitmap_and_compl_into): Return changed flag.
7445
623049aa
JM
74462005-02-13 James A. Morrison <phython@gcc.gnu.org>
7447
7448 PR tree-optimization/19944
7449 * fold-const.c (fold): Re-add ABS_EXPR folding.
7450
de17c25f
DE
74512005-02-13 David Edelsohn <edelsohn@gnu.org>
7452
7453 PR target/19019
7454 * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
7455 {TARGET,MASK}_XL_COMPAT.
7456 (SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use
7457 MASK_XL_COMPAT.
7458 * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
7459 * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
7460 TARGET_XL_COMPAT.
7461 (rs6000_arg_partial_bytes): Same.
7462 (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
7463 and XL compatibility enabled.
7464 * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
7465 * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
7466 test to final condition.
7467 (cmptf_internal2): New.
7468 * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
7469 xl-compat. Add TFmode information to description.
7470
e04369ac
KH
74712005-02-13 Kazu Hirata <kazu@cs.umass.edu>
7472
7473 * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
7474
38116e3d
JM
74752005-02-13 Jason Merrill <jason@redhat.com>
7476
38116e3d
JM
7477 PR c++/16405
7478 * fold-const.c (fold_indirect_ref_1): Split out from...
7479 (build_fold_indirect_ref): Here.
7480 (fold_indirect_ref): New fn.
7481 * tree.h: Declare it.
7482 * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
7483 (gimplify_modify_expr_rhs): Likewise.
7484 (gimplify_expr): Likewise.
7485
60a8fb5e
JM
74862005-02-13 James A. Morrison <phython@gcc.gnu.org>
7487
7488 PR tree-optimization/14303
7489 PR tree-optimization/15784
7490 * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
7491 Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
7492 ABS_EXPR<x> != 0 to x != 0.
7493
647eea9d
KH
74942005-02-12 Kazu Hirata <kazu@cs.umass.edu>
7495
7496 * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
7497 simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
7498 spelling conventions.
7499
6f9087d7
KH
7500 * passes.c (rest_of_handle_gcse): Don't run cse_main and
7501 delete_trivially_dead_insns too many times.
7502
ea24f64b
KH
7503 * passes.c (rest_of_handle_gcse): Remove dead assignments to
7504 tem and tem2.
7505
8ad833ac
IR
75062005-02-12 Ira Rosen <irar@il.ibm.com>
7507
7508 * tree-vectorizer.c (vect_get_base_and_offset): Remove.
7509 (vect_is_simple_iv_evolution): Remove redundant parameter
7510 and step check.
7511 (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
7512 without last parameter.
7513 (vect_analyze_pointer_ref_access): Get access_fn as parameter.
7514 Return pointer step. Call vect_is_simple_iv_evolution without
7515 last parameter. Check only that the step is multiple of size
7516 type. Remove stmt_vinfo updates.
7517 (vect_get_memtag_and_dr): Remove.
7518 (vect_get_memtag): New function.
7519 (vect_address_analysis): New function.
7520 (vect_object_analysis): New function.
7521 (vect_analyze_data_refs): Call vect_object_analysis and
7522 vect_get_memtag. Update stmt_vinfo fields.
7523
e3a8a4ed
IR
75242005-02-12 Ira Rosen <irar@il.ibm.com>
7525
7526 * tree-data-ref.c (array_base_name_differ_p): Check that the bases
7527 exist and are objects. Remove checks for pointer.
7528 * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
7529 STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
7530 (vect_create_data_ref_ptr): Likewise.
7531 (vect_base_addr_differ_p): New function.
7532 (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
7533 (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
7534 Don't set the DR_BASE_NAME field of data-ref.
7535 (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
7536
c94a75af
UB
75372005-02-12 Uros Bizjak <uros@kss-loka.si>
7538
7539 * optabs.h (enum optab_index): Add new OTI_ldexp.
7540 (ldexp_optab): Define corresponding macro.
7541 * optabs.c (init_optabs): Initialize ldexp_optab.
7542 * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
7543 patterns.
7544 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
7545 using ldexp_optab.
7546 (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
7547 expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
7548
7549 * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
7550 to implement ldexpf, ldexp and ldexpl built-ins as inline x87
7551 intrinsics.
7552
e3a8a4ed 75532005-02-12 Ira Rosen <irar@il.ibm.com>
a5ae3ad6
IR
7554
7555 * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
7556 to base_address.
7557 * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
7558 stmt_vec_info.
7559 (vect_get_base_and_offset): Always return an address.
7560 (vect_create_addr_base_for_vector_ref): Remove treatment for
7561 different data reference types.
7562 (vect_compute_data_ref_alignment): Rename base to base_address in
7563 stmt_vec_info. Get the object in order to force its alignment.
7564 (vect_get_memtag_and_dr): Rename base to base_address in
7565 stmt_vec_info. Extract the object for memtag analysis.
7566
f4ddaddd
HPN
75672005-02-12 Hans-Peter Nilsson <hp@axis.com>
7568
7569 PR regression/19898.
7570 * config/cris/cris.c (cris_notice_update_cc): When testing if insn
7571 changes cc_status, use apply modified_in_p to part of cc_status
7572 and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
7573 body.
7574
7e7e470f
RH
75752005-02-11 Richard Henderson <rth@redhat.com>
7576
7577 * tree-complex.c (expand_complex_libcall): New.
7578 (expand_complex_multiplication): Use it for c99 compliance.
7579 (expand_complex_division): Likewise.
7580 * fold-const.c (fold_complex_add, fold_complex_mult): New.
7581 (fold): Call them.
7582 * builtins.c (built_in_names): Remove const.
7583 * tree.c (build_common_builtin_nodes): Build complex arithmetic
7584 builtins.
7585 * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
7586 (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
7587 (built_in_names): Remove const.
7588 * c-common.c (c_common_type_for_mode): Handle complex modes.
7589 * flags.h, toplev.c (flag_complex_method): Rename from
7590 flag_complex_divide_method.
7591 * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
7592 __mulsc3, __muldc3, __mulxc3, __multc3): New.
7593 * libgcc2.h: Declare them.
a310245f 7594 * libgcc-std.ver: Export them.
7e7e470f
RH
7595 * mklibgcc.in (lib2funcs): Build them.
7596
c33bae88
SB
75972005-02-11 Steven Bosscher <stevenb@suse.de>
7598
7599 PR tree-optimization/19876
7600 Partially revert my change from 2005-01-14
7601 * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
7602 (compute_antic): ...and remove the loop here.
7603
28f8ecf9
JJ
76042005-02-11 Jakub Jelinek <jakub@redhat.com>
7605
97e9692b
JJ
7606 PR middle-end/19858
7607 * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
7608 is number of inner's bits, avoid creating a BIT_FIELD_REF.
7609
28f8ecf9
JJ
7610 * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
7611 crtend.o if -pie. Use %{x:a;:b} spec syntax.
7612
d04b77ac
DJ
76132005-02-11 Daniel Jacobowitz <dan@codesourcery.com>
7614
7615 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
7616 offsets for the big-endian 32-bit case.
7617
70406574
JM
76182005-02-11 Joseph S. Myers <joseph@codesourcery.com>
7619
7620 * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
7621
7e42db17
DJ
76222005-02-11 Dale Johannesen <dalej@apple.com>
7623
7624 * cselib.c (cselib_process_insn): Clear out regs where
7625 HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
7626 * reload.c (find_equiv_reg): Ditto.
7627
f6254da4
ILT
76282005-02-11 Ian Lance Taylor <ian@airs.com>
7629
c5d97f6e
ILT
7630 * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
7631 with no elements.
7632
f6254da4
ILT
7633 * tree.c (build_function_type_list): Work correctly if there are
7634 no arguments.
7635
f4f41b4e
UW
76362005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
7637
7638 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
7639 "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
7640 ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
7641 TARGET_ZARCH instead of TARGET_64BIT.
7642
f203217e
RC
76432005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
7644
7645 * config/rs6000/t-rtems:
7646 (MULTILIB_OPTIONS): Remove mcpu=602.
7647 (MUTLILIB_DIRNAMES): Remove m602.
2cdc2073 7648 (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
f203217e
RC
7649 Let mcpu=602 match mcpu=603.
7650 (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
7651
9dcab61e
JDA
76522005-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7653
7654 * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
7655 signal trampolines.
7656
70ad1f9f
DD
76572005-02-10 David Daney <ddaney@avtrex.com>
7658
7659 * config/alpha/linux-unwind.h: Add exception clause to copyright.
7660 * config/i386/linux-unwind.h: Likewise.
7661 * config/ia64/linux-unwind.h: Likewise.
7662 * config/mips/linux-unwind.h: Likewise.
7663 * config/pa/linux-unwind.h: Likewise.
7664 * config/rs6000/linux-unwind.h: Likewise.
7665 * config/s390/linux-unwind.h: Likewise.
7666 * config/sh/linux-unwind.h: Likewise.
7667 * config/sparc/linux-unwind.h: Likewise.
7668
3b6616dd
SB
76692005-02-10 Steven Bosscher <stevenb@suse.de>
7670
7671 PR tree-optimization/17549
7672 * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
7673 TER to replace a DEF with its expression if the DEF and the
7674 rhs of the expression we replace into have the same root
7675 variable.
7676
a0c5992a
RS
76772005-02-10 Richard Sandiford <rsandifo@redhat.com>
7678
7679 * config/mips/mips.md: Fix the placement of the match_scratch in the
7680 lea64 peephole2.
7681
0388d40a
KH
76822005-02-10 Kazu Hirata <kazu@cs.umass.edu>
7683
7684 * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
7685 Fix comment typos.
7686
f5e2738c
ZD
76872005-02-10 Zdenek Dvorak <dvorakz@suse.cz>
7688
7689 * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
7690 (strip_offset): Handle addresses.
7691 (add_address_candidates): Use strip_offset.
7692 (difference_cost): Reflect strip_offset change.
7693 (force_var_cost, difference_cost): Strip nops.
7694
33d6a74c
KH
76952005-02-10 Kazu Hirata <kazu@cs.umass.edu>
7696
7697 * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
7698
c486021d
KH
7699 * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
7700 tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
7701 config/cris/cris-protos.h, config/cris/cris.c: Update
7702 copyright.
7703
8d6f7195
JL
77042005-02-10 Jeff Law <law@redhat.com>
7705
7706 * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
7707 (lookup_avail_expr): Similarly.
7708
ba78d452
RG
77092005-02-10 Richard Guenther <rguenth@gcc.gnu.org>
7710
7711 * builtins.c (fold_builtin_powi): New function.
7712 (fold_builtin_1): Call it.
7713
0d3e9f35
SB
77142005-02-10 Steven Bosscher <stevenb@suse.de>
7715
7716 PR documentation/19309
7717 * doc/cpp.texi: The __GNUC__ and related predefined macros
7718 are also defined for the "standalone" cpp.
7719 Some non-GCC compilers may also define __GNUC__.
7720
ccf7f880
JJ
77212005-02-10 Jakub Jelinek <jakub@redhat.com>
7722
7723 PR c/19342
7724 * c-typeck.c (common_type): New routine. Old common_type renamed
7725 to...
7726 (c_common_type): ...this.
7727 (build_conditional_expr, build_binary_op): Use c_common_type instead
7728 of common_type.
7729
b49900cc
SB
77302005-02-10 Steven Bosscher <stevenb@suse.de>
7731
7732 * doc/md.texi: Replace @samp{length} with @code{length}.
7733
ca4c3169
ZD
77342005-02-09 Zdenek Dvorak <dvorakz@suse.cz>
7735
7736 PR tree-optimization/18687
7737 * tree-flow.h (find_loop_niter): Declare.
7738 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
7739 Try using scev even for loops with more than one exit.
7740 * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
7741 (struct ivopts_data): Added niters field.
7742 (struct nfe_cache_elt): New.
7743 (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
7744 functions.
7745 (tree_ssa_iv_optimize_init): Initialize niters cache.
7746 (determine_number_of_iterations): Removed.
7747 (find_induction_variables): Do not call determine_number_of_iterations.
7748 Access niters for single exit through niter_for_single_dom_exit.
7749 (add_iv_outer_candidates): Access niters for single exit through
7750 niter_for_single_dom_exit.
7751 (may_eliminate_iv): Take data argument. Use niter_for_exit. Do not use
7752 number_of_iterations_cond.
7753 (iv_period): New function.
7754 (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
7755 (may_replace_final_value): Take data argument. Use
7756 niter_for_single_dom_exit.
7757 (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
7758 (rewrite_use_compare): Pass data to may_eliminate_iv.
7759 (rewrite_use_outer): Pass data to may_replace_final_value.
7760 (free_loop_data): Clean up the niters cache.
7761 (tree_ssa_iv_optimize_finalize): Free the niters cache.
7762 (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
7763 * tree-ssa-loop-niter.c (find_loop_niter): New function.
7764 (find_loop_niter_by_eval): Use tree_int_cst_lt.
7765 (num_ending_zeros): Moved to tree.c.
7766 * tree.h (num_ending_zeros): Declare.
7767 * tree.c (num_ending_zeros): Moved from tree.c.
7768
c6a912da
RH
77692005-02-09 Richard Henderson <rth@redhat.com>
7770
7771 * builtins.c (DEF_BUILTIN): Add COND argument.
7772 * tree.h (DEF_BUILTIN): Likewise.
7773 * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
7774 DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
7775 match.
7776 (DEF_BUILTIN_STUB): New.
7777 (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
7778 BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
7779 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
7780 * c-common.c (DEF_BUILTIN): Add COND argument.
7781 * tree.c (local_define_builtin): New.
7782 (build_common_builtin_nodes): New.
7783
e3bb43c0
RS
77842005-02-09 Roger Sayle <roger@eyesopen.com>
7785
7786 * fold-const.c (fold_strip_sign_ops): New function to simplify a
7787 floating point expression ignoring the sign of the result.
7788 (fold) <ABS_EXPR>: Use it to simplify fabs(x).
7789 (fold) <MULT_EXPR>: Use it to simplify x*x.
7790 * tree.h (fold_strip_sign_ops): Prototype here.
7791 * builtins.c (fold_builtin_copysign): Take an additional FNDECL
7792 argument. Use fold_strip_sign_ops to simplify the first argument.
7793 (fold_builtin_pow): Use fold_strip_sign_ops to simplify the
7794 first argument when the second argument is an even integer
7795 constant, but only with -funsafe_math_optimizations.
7796 (fold_builtin_1): Update call to fold_builtin_copysign.
7797
5eefcf2f
ILT
77982005-02-09 Ian Lance Taylor <ian@airs.com>
7799
7800 PR middle-end/19583
7801 * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
7802 just check whether EH_FILTER_FAILURE falls through.
7803
dab80c81
AK
78042005-02-09 Andreas Krebbel <krebbel1@de.ibm.com>
7805
7806 * gcc/haifa-sched.c (schedule_block): Make queued sched group
7807 insns return to ready list in the next turn.
7808
17684d46
RG
78092005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
7810
7811 PR middle-end/19402
7812 * builtins.def: New __builtin_powi[lf].
7813 * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
7814 (expand_builtin_powi): New function.
7815 (expand_builtin): Dispatch to expand_builtin_powi.
7816 * libgcc2.h: Add prototypes for __builtin_powi[lf].
7817 * libgcc2.c: Add __builtin_powi[lf] implementation.
7818 * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
7819 * optabs.h: Add powi_optab.
7820 * optabs.c (init_optabs): Initialize powi_optab.
7821 * doc/extend.texi: Document __builtin_powi[lf].
7822
8ca3515f
DN
78232005-02-09 Dorit Naishlos <dorit@il.ibm.com>
7824
2cdc2073 7825 * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
8ca3515f
DN
7826 exists.
7827
0c6c135b
RG
78282005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
7829
7830 PR middle-end/19854
7831 * fold-const.c (try_move_mult_to_index): Remove redundant
7832 type argument. Create ADDR_EXPR with correct type.
7833 (fold): Update callers of try_move_mult_to_index. Convert
7834 result to the appropriate type.
7835
8f2bf9f1
RS
78362005-02-09 Roger Sayle <roger@eyesopen.com>
7837
7838 PR target/19597
7839 * config/avr/avr.c (default_rtx_costs): Delete.
7840 (avr_operand_rtx_cost): New function.
7841 (avr_rtx_costs): Completely rewrite.
7842
453bd0f5
HPN
78432005-02-08 Hans-Peter Nilsson <hp@axis.com>
7844
7845 PR target/19806
7846 * config/cris/cris.c (in_code): New variable.
7847 (cris_output_addr_const): Now a static function, a wrapper for
7848 output_addr_const.
7849 (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
7850 case from old cris_output_addr_const.
7851 (cris_asm_output_label_ref): Similar for LABEL_REF.
7852 (cris_output_addr_const_extra): Similar for UNSPEC.
7853 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
7854 (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
7855 * config/cris/cris-protos.h (cris_output_addr_const): Remove
7856 declaration.
7857 (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
7858 (cris_asm_output_label_ref): Declare.
7859
749c6ef9
PB
78602005-02-08 Paolo Bonzini <bonzini@gnu.org>
7861
7862 PR preprocessor/19801
7863 * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
7864 filenames that changed when libcpp was moved to the toplevel.
7865
f8eacd97
RS
78662005-02-07 Roger Sayle <roger@eyesopen.com>
7867
7868 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
7869 zero extensions of BImode operands. Call lowpart_subreg instead
7870 of gen_lowpart_common and gen_lowpart_SUBREG.
7871
1e3fad21
NN
78722005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
7873
7874 PR ada/19489
7875 * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
7876 * configure.ac: Set cc_for_cross_gnattools.
7877 * configure: Regenerate.
7878
b0ad2de2
AM
78792005-02-08 Alan Modra <amodra@bigpond.net.au>
7880
7881 PR target/19803
7882 * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
7883
b950a32e
EB
78842005-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
7885
7886 PR debug/19327
7887 * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
7888 of nested functions.
7889
6871294a
JW
78902005-02-07 Jonathan Wakely <redi@gcc.gnu.org>
7891
7892 * doc/extend.texi: Document deprecated extensions allowing
7893 static floating-point members to have initializers and allowing
7894 floating-point literals in integral constant expressions.
7895
17385e0d
KH
78962005-02-07 Kazu Hirata <kazu@cs.umass.edu>
7897
7898 * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
7899 config/darwin7.h, config/mips/mips.c,
7900 config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
7901 Update copyright.
7902
459281be
KH
7903 * cse.c: Update comments.
7904
6a96f5c1
RG
79052005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
7906
7907 PR middle-end/19775
7908 * builtins.c (fold_builtin_sqrt): Transform
7909 sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
7910 pow(x,y*0.5).
7911
c866976a
LB
79122005-02-07 Leehod Baruch <leehod@il.ibm.com>
7913 Dorit Naishlos <dorit@il.ibm.com>
7914
7915 * doc/invoke.texi (ftree-vectorizer-verbose): New.
7916 * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
7917 * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
7918 was added.
7919 * tree.h (vect_set_verbosity_level): New extern function declaration
7920 added.
7921 * tree-vectorizer.h (verbosity_levels): New enum type.
7922 * tree-vectorizer.c (vect_debug_stats): Function removed.
7923 (vect_debug_details): Likewise.
7924 (vect_verbosity_level): Global variable was defined and initialized.
7925 (vect_dump): Global variable definition.
7926 (vect_print_dump_info): New function.
7927 (vect_set_dump_settings): New function.
7928 (vect_set_verbosity_level): New function.
7929 (vectorize_loops): Add call to vect_set_dump_settings.
7930
7931 (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
7932 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7933 (slpeel_tree_peel_loop_to_edge): Likewise.
7934
7935 (vect_analyze_offset_expr): Call to vect_print_dump_info with
2cdc2073
ZW
7936 appropriate verbosity level instead of call to vect_debug_details
7937 or vect_debug_stats.
c866976a
LB
7938 (vect_get_base_and_offset):
7939 (vect_create_addr_base_for_vector_ref):
7940 (get_vectype_for_scalar_type):
7941 (vect_create_data_ref_ptr):
7942 (vect_init_vector):
7943 (vect_get_vec_def_for_operand):
7944 (vect_finish_stmt_generation):
7945 (vectorizable_assignment):
7946 (vectorizable_operation):
7947 (vectorizable_store):
7948 (vectorizable_load):
7949 (vect_transform_stmt):
7950 (vect_update_ivs_after_vectorizer):
7951 (vect_do_peeling_for_loop_bound):
7952 (vect_update_inits_of_drs):
7953 (vect_do_peeling_for_alignment):
7954 (vect_transform_loop):
7955 (vect_is_simple_use):
7956 (vect_analyze_operations):
7957 (vect_is_simple_iv_evolution):
7958 (vect_analyze_scalar_cycles):
7959 (vect_analyze_data_ref_dependence):
7960 (vect_analyze_data_ref_dependences):
7961 (vect_compute_data_ref_alignment):
7962 (vect_enhance_data_refs_alignment):
7963 (vect_analyze_data_refs_alignment):
7964 (vect_analyze_data_ref_access):
7965 (vect_analyze_data_ref_accesses):
7966 (vect_analyze_pointer_ref_access):
7967 (vect_get_memtag_and_dr):
7968 (vect_analyze_data_refs):
7969 (vect_mark_relevant):
7970 (vect_stmt_relevant_p):
7971 (vect_mark_stmts_to_be_vectorized):
7972 (vect_can_advance_ivs_p):
7973 (vect_get_loop_niters):
7974 (vect_analyze_loop_form):
7975 (vect_analyze_loop):
7976 (vectorize_loops): Likewise.
7977
7978 (vect_do_peeling_for_loop_bound): Dump format slightly changed.
7979 (vect_update_inits_of_drs):
7980 (vect_do_peeling_for_alignment):
7981 (vect_transform_loop):
7982 (vect_analyze_operations):
7983 (vect_analyze_scalar_cycles):
7984 (vect_analyze_data_ref_dependences):
7985 (vect_analyze_data_refs_alignment):
7986 (vect_analyze_data_ref_accesses):
7987 (vect_analyze_data_refs):
7988 (vect_mark_stmts_to_be_vectorized):
7989 (vect_get_loop_niters):
7990 (vect_analyze_loop_form):
2cdc2073 7991 (vect_analyze_loop): Likewise.
c866976a
LB
7992 (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
7993
88ab13d6
RS
79942005-02-07 Richard Sandiford <rsandifo@redhat.com>
7995
7996 PR bootstrap/19796
7997 Revert:
7998 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
7999 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
8000 either -ffast-math or -funsafe-math-optimizations is in use.
8001
8002 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
8003 * config/mips/irix-csr.c: New file.
8004 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
8005 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
8006 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
8007 executables.
8008
a701780f
AO
80092005-02-07 Alexandre Oliva <aoliva@redhat.com>
8010
dcb15c6c
AO
8011 * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
8012 redundant, incorrect definitions.
8013
a701780f
AO
8014 * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
8015 expand.
8016 ("*tls_indirect_call"): New, reference hard regs directly.
8017 * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
8018
888b0310
RC
80192005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
8020
2cdc2073 8021 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
888b0310
RC
8022 Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
8023
b1a22407
RS
80242005-02-06 Roger Sayle <roger@eyesopen.com>
8025
8026 PR rtl-optimization/19800
7f5c93ac 8027 * simplify_rtx.c (simplify_relational_operation_1): Explicitly
b1a22407
RS
8028 call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
8029 gen_lowpart.
8030
149056b0
RC
80312005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
8032
8033 * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
8034
3e8cb558
JM
80352005-02-07 Joseph S. Myers <joseph@codesourcery.com>
8036
8037 PR other/17135
8038 * doc/invoke.texi: Correct documentation of -freorder-functions.
8039
ee86feaf
JM
80402005-02-06 Joseph S. Myers <joseph@codesourcery.com>
8041
8042 PR other/14402
8043 * doc/invoke.texi: Don't mention gccbug.
8044
1419a885
RS
80452005-02-06 Roger Sayle <roger@eyesopen.com>
8046 Andrew Pinski <pinskia@physics.uc.edu>
8047 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
8048
8049 * simplify-rtx.c (simplify_relational_operation_1): Simplify
8050 (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
8051 into just (zero_extract:SI FOO (const_int 1) BAR).
8052
706bb773
JM
80532005-02-06 Joseph S. Myers <joseph@codesourcery.com>
8054
8055 * doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
8056 macro locally. Don't give last revision date. Use GCC version
8057 number from gcc-common.texi.
8058 * doc/cppinternals.texi: Include gcc-common.texi. Don't give last
8059 revision date. Use GCC version number from gcc-common.texi.
8060 Describe being a library as current state rather than as 3.x
8061 history.
8062 * doc/gcc.texi: Remove last update date.
8063 * doc/gccint.texi: Likewise. Update copyright dates.
8064 * doc/install.texi: Update copyright dates.
8065
69cdf050
JM
80662005-02-06 Joseph S. Myers <joseph@codesourcery.com>
8067
8068 PR other/7549
8069 * doc/invoke.texi: Mention for each option included in -Wall that
8070 it is included in -Wall.
8071 * doc/gcc.texi: Update copyright and last modification date.
8072
3520b745
ZD
80732005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
8074
8075 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
8076 unnecessary cast to original induction variable increments.
8077
b0a168b6
ZD
80782005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
8079
8080 PR tree-optimization/18219
8081 * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
8082 in distributed form.
8083
2c58f7dd
RS
80842005-02-06 Richard Sandiford <rsandifo@redhat.com>
8085
8086 * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
8087 Set bitpos and offset later in the function. Do nothing if the
8088 target is a register and if the bitfield lies completely outside
8089 that register.
8090 (extract_bit_field): Make the same SUBREG, bitpos and offset changes
8091 here. Return an uninitialised register if the source value is stored
8092 in a register and the bitfield lies completely outside that register.
8093
55c4ae3f
SB
80942005-02-06 Steven Bosscher <stevenb@suse.de>
8095
8096 * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
8097 not SET_DEST.
8098
cbd13f8a
MD
80992005-02-06 Marcin Dalecki <martin@dalecki.de>
8100
8101 * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
8102
f1b4c8d8
GK
81032005-02-06 Geoffrey Keating <geoffk@apple.com>
8104
8105 * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
8106 * config/darwin8.h: New.
8107 * config/darwin7.h: Update comment.
8108
773af5d0
LB
81092005-02-03 Leehod Baruch <leehod@il.ibm.com>
8110 Dorit Naishlos <dorit@il.ibm.com>
8111
8112 * tree-vectorizer.h (LOC): New type.
8113 (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
8114 (loop_line_number): New field in struct _loop_vec_info.
8115 (LOOP_VINFO_LOC, LOOP_LOC): New macros.
8116
8117 * tree-vectorizer.c (input.h): Included.
8118 (find_loop_location): New function.
8119 (vect_debug_stats): Argument changed from loop to LOC. Computation of
8120 loop line number removed.
8121 (vect_debug_details): Likewise.
8122 (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
8123
8124 (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
8125 call to vect_debug_details/stats changed from loop to loop_loc.
8126 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
8127 (slpeel_tree_peel_loop_to_edge): Likewise.
8128
8129 (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
8130 changed from NULL to UNKNOWN_LOC.
8131 (vect_get_base_and_offset):
8132 (vect_create_addr_base_for_vector_ref):
8133 (get_vectype_for_scalar_type):
8134 (vect_create_data_ref_ptr):
8135 (vect_init_vector):
8136 (vect_get_vec_def_for_operand):
8137 (vect_finish_stmt_generation):
8138 (vectorizable_assignment):
8139 (vectorizable_operation):
8140 (vectorizable_store):
8141 (vectorizable_load):
8142 (vect_transform_stmt):
8143 (vect_update_ivs_after_vectorizer):
8144 (vect_do_peeling_for_loop_bound):
8145 (vect_do_peeling_for_alignment):
8146 (vect_transform_loop):
8147 (vect_is_simple_use):
8148 (vect_analyze_operations):
8149 (vect_is_simple_iv_evolution):
8150 (vect_analyze_scalar_cycles):
8151 (vect_analyze_data_ref_dependences):
8152 (vect_compute_data_ref_alignment):
8153 (vect_enhance_data_refs_alignment):
8154 (vect_analyze_data_ref_access):
8155 (vect_analyze_data_ref_accesses):
8156 (vect_analyze_pointer_ref_access):
8157 (vect_get_memtag_and_dr):
8158 (vect_analyze_data_refs):
8159 (vect_mark_relevant):
8160 (vect_stmt_relevant_p):
8161 (vect_mark_stmts_to_be_vectorized):
8162 (vect_can_advance_ivs_p):
8163 (vect_get_loop_niters):
8164 (vect_analyze_loop):
8165 (vectorize_loops): Likewise.
8166
8167 (vectorizable_load): Argument in call to vect_debug_details/stats
8168 changed from loop to LOOP_LOC (loop_vinfo).
8169 (vect_transform_loop):
8170 (vect_analyze_operations):
8171 (vect_analyze_scalar_cycles):
8172 (vect_analyze_data_ref_dependence):
8173 (vect_enhance_data_refs_alignment):
8174 (vect_analyze_data_ref_accesses):
8175 (vect_analyze_pointer_ref_access):
8176 (vect_analyze_data_refs):
8177 (vect_analyze_loop): Likewise.
8178
8179 (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
8180 changed from loop to loop_loc.
8181
2cdc2073 8182 (vect_enhance_data_refs_alignment): Removed unused variable loop.
773af5d0 8183
ef302293
LB
81842005-02-03 Leehod Baruch <leehod@il.ibm.com>
8185 Dorit Naishlos <dorit@il.ibm.com>
8186
8187 * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
8188 declaration added.
8189 (vect_analyze_data_ref_dependences): Likewise.
8190
8191 (vect_is_simple_use): Argument changed from loop structure to
8192 loop_vect_info structure.
8193 (vect_can_advance_ivs_p): Likewise.
8194 (vect_create_index_for_vector_ref): Likewise.
8195 (vect_update_ivs_after_vectorizer): Likewise.
8196 (new_stmt_vec_info): Likewise.
2cdc2073 8197
ef302293
LB
8198 (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
8199 changed from loop to loop_vinfo.
8200 (vect_create_data_ref_ptr): First argument in call to
8201 vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
8202 (vectorizable_assignment): Second argument in call to vect_is_simple_use
8203 was changed from loop to loop_vinfo.
8204 (vectorizable_operation): Likewise.
8205 (vectorizable_store): Likewise.
8206 (vect_mark_stmts_to_be_vectorized): Likewise.
8207 (vect_do_peeling_for_loop_bound): First argument in call to
8208 vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
8209 (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
8210 was changed from loop to loop_vinfo.
8211 (vect_analyze_data_ref_dependences): Third argument in call to
8212 vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2cdc2073 8213
ef302293
LB
8214 (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
8215 (vect_create_data_ref_ptr): Likewise.
8216 (vect_init_vector): Likewise.
8217 (vect_get_vec_def_for_operand): Likewise.
8218 (vectorizable_assignment): Likewise.
8219 (vectorizable_operation): Likewise.
8220 (vectorizable_store): Likewise.
8221 (vectorizable_load): Likewise.
8222 (vect_update_ivs_after_vectorizer): Likewise.
8223 (vect_is_simple_use): Likewise.
8224 (vect_analyze_data_ref_dependence): Likewise.
8225 (vect_analyze_pointer_ref_access): Likewise.
8226 (vect_can_advance_ivs_p): Likewise.
8227
8228 * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
8229 before _stmt_vec_info.
8230 (_stmt_vec_info): Loop field replaced by loop_vec_info.
8231 (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
8232 (new_stmt_vec_info): Argument changed from loop structure to
8233 loop_vect_info structure
8234
8235 (vect_analyze_data_ref_dependences): Unnecessary line was removed.
8236 (vect_analyze_offset_expr): Avoid 80 columns overflow.
8237 (vect_create_addr_base_for_vector_ref): Likewise.
8238 (vect_analyze_pointer_ref_access): Likewise.
8239
9df935d8
AP
82402005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
8241
8242 PR tree-opt/19768
8243 * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
8244 phi flag if the phi is abnormal.
8245
50d4a707
AP
82462005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
8247
8248 PR tree-opt/19736
8249 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
8250 information for the new statement.
8251
cd21f044
JM
82522005-02-03 Joseph S. Myers <joseph@codesourcery.com>
8253
8254 PR driver/19117
8255 * gcc.c (main): Include the target in -v output.
8256
aa2d0bc3
AO
82572005-02-03 Alexandre Oliva <aoliva@redhat.com>
8258
8259 * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
8260 Do not drop the extend if we'd have to add a paradoxical subreg
8261 later. Include optabs.h and insn-codes.h.
8262 * Makefile.in (combine.o): Depend on $(OPTABS_H).
8263
762297d9
RS
82642005-02-02 Roger Sayle <roger@eyesopen.com>
8265
8266 PR middle-end/19405
8267 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
8268 * fold-const.c (const_binop): Avoid constant folding floating
8269 point operations in modes that use composite representations.
8270 * simplify-rtx.c (simplify_binary_operation): Likewise.
8271
666158b9
GK
82722005-02-02 Geoffrey Keating <geoffk@apple.com>
8273
8274 * config/rs6000/altivec.md (altivec_dst): Make the first operand
8275 a REG, not a MEM.
8276 (altivec_dstt): Likewise.
8277 (altivec_dstst): Likewise.
8278 (altivec_dststt): Likewise.
8279 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
8280 of first operand.
8281
cce4ca55
DN
82822005-02-03 Dorit Naishlos <dorit@il.ibm.com>
8283
8284 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
8285 EXPR_LOCUS from orig_cond to the new cond_stmt.
8286 (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
8287 the new vec_stmt.
8288
82892005-02-03 Dorit Naishlos <dorit@il.ibm.com>
8290
8291 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2cdc2073 8292 standard_iv_increment_position. Remove call to bsi_next
cce4ca55
DN
8293 (no need to bump the iterator anymore).
8294 (vect_create_index_for_vector_ref): Call
8295 standard_iv_increment_position. Remove second function argument.
2cdc2073 8296 (vect_finish_stmt_generation): Remove call to bsi_next
cce4ca55
DN
8297 (no need to bump the iterator anymore).
8298 (vect_create_data_ref_ptr): Remove second argument (bsi) in call
8299 to vect_create_index_for_vector_ref.
8300
83012005-02-03 Dorit Naishlos <dorit@il.ibm.com>
8302
8303 * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
8304 phis are used out of the loop.
8305
73aea290
JM
83062005-02-03 Joseph S. Myers <joseph@codesourcery.com>
8307
8308 PR c/17807
8309 * c-decl.c (undef_nested_function): New variable.
8310 (pop_scope): Diagnose undefined nested functions.
8311 (finish_function): Don't attempt cgraph processing or genericizing
8312 if current top-level function contained an undefined nested
8313 function. Reset undef_nested_function at the end of a top-level
8314 function.
8315
89d12f5d
ZD
83162005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
8317
8318 * tree.c (build_int_cst_type): Take sign of the value into account
8319 when deciding whether sign extend the value.
8320
740ca4b2
JM
83212005-02-02 Joseph S. Myers <joseph@codesourcery.com>
8322
8323 PR c/18502
8324 * gcc.c (cpp_unique_options): Remove %{trigraphs}.
8325 (cpp_options, cc1_options): Change %{std*&ansi} to
8326 %{std*&ansi&trigraphs}.
8327
a52aff23
KH
83282005-02-02 Kazu Hirata <kazu@cs.umass.edu>
8329
8330 * cse.c: Update comments.
8331
cf676baa
AH
83322005-02-02 Aldy Hernandez <aldyh@redhat.com>
8333
8334 * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
8335 arguments go on the stack. Do not put complex doubles in odd/even
8336 pairs.
8337
08711fdf
SB
83382005-02-02 Steven Bosscher <stevenb@suse.de>
8339
8340 * doc/invoke.texi: Update the options enabled at -O1, -O2,
8341 and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
8342 -ftree-pre, and -fthread-jumps.
8343
7ded35b4
RS
83442005-02-02 Richard Sandiford <rsandifo@redhat.com>
8345
8346 PR tree-optimization/19578
8347 * tree-flow.h (modified_noreturn_calls): Declare.
8348 (noreturn_call_p): Declare.
8349 * tree-flow-inline.h (noreturn_call_p): New function.
8350 (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
8351 * tree-cfg.c (modified_noreturn_calls): New variable.
8352 (cleanup_control_flow): Use noreturn_call_p. Split basic blocks
8353 that contain a mid-block noreturn call.
8354 * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
8355
d01da8bd
KH
83562005-02-02 Kazu Hirata <kazu@cs.umass.edu>
8357
8358 * df.c (df_def_record_1, df_uses_record): Don't use
8359 DF_FOR_REGALLOC.
8360 * df.h (DF_FOR_REGALLOC): Remove.
8361
493179da
JM
83622005-02-02 Joseph S. Myers <joseph@codesourcery.com>
8363
8364 PR c/19435
8365 * c-typeck.c (really_start_incremental_init): Reset
8366 constructor_max_index for arrays of incomplete type.
8367
ed425871
JL
83682005-02-02 Jeff Law <law@redhat.com>
8369
8370 * gcse.c (struct reg_set): Store the block index where the register
8371 was set rather than the setting insn.
8372 (record_one_set, compute_transp): Corresponding changes.
8373 (pre_insert_copy_insn): Do not call replace_one_set.
8374 (replace_one_set): Remove.
8375
d02d7104
JM
83762005-02-02 Joseph S. Myers <joseph@codesourcery.com>
8377
8378 PR other/15514
8379 * doc/gcov.texi: Fix typo.
8380
c1c5b5e3
RH
83812005-02-01 Richard Henderson <rth@redhat.com
8382
8383 PR target/19680
8384 * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
8385 * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
8386 type to bool.
8387 (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
8388 * config/i386/i386-protos.h: Update.
8389
7a442a1d
SB
83902005-02-01 Steven Bosscher <stevenb@suse.de>
8391
8392 PR tree-optimization/19217
8393 * tree-cfg.c (verify_expr): Use the data field to see if TP was
8394 seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
8395 (verify_stmts): Pass (void*)1 as data to verify_expr to signal
8396 that it is walking a PHI node.
8397
475b6e22
JM
83982005-02-01 Joseph S. Myers <joseph@codesourcery.com>
8399
8400 * doc/extend.texi (Nested Functions): Update.
8401
ca58f2bc
RH
84022005-02-01 Richard Henderson <rth@redhat.com>
8403
8404 PR 19696
8405 * optabs.c (expand_copysign_absneg): Export.
8406 * optabs.h (expand_copysign_absneg): Declare.
8407 * config/rs6000/rs6000.md (copysigntf3): New.
8408
a1d13fa1
DN
84092005-02-01 Diego Novillo <dnovillo@redhat.com>
8410
8411 PR tree-optimization/19633
8412 * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
8413 * tree-ssa-alias.c (init_alias_info): Initialize.
8414 (merge_pointed_to_info): Set.
8415 (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
8416 (dump_points_to_info_for): Show value of pt_null.
8417 (struct count_ptr_d): Declare.
8418 (find_ptr_dereference): Remove.
8419 (ptr_is_dereferenced_by): Remove.
8420 (count_ptr_derefs): New local function.
8421 (count_uses_and_derefs): New local function.
8422 (compute_points_to_and_addr_escape): Call it. If the number
8423 of dereferences is greater than zero, mark the pointer as
8424 dereferenced. If there are fewer dereferences than uses of
8425 the pointer, the pointer's value escapes.
8426
28a3618f
DN
84272005-02-01 Diego Novillo <dnovillo@redhat.com>
8428
8429 PR tree-optimization/19670
8430 * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
8431 here...
8432 (verify_use): ... set it here, instead.
8433
8d2d2ec6
JJ
84342005-02-01 Janis Johnson <janis187@us.ibm.com>
8435
cc95a845
JJ
8436 * doc/sourcebuild.texi (Test directives): Fix formatting.
8437
8d2d2ec6
JJ
8438 * doc/sourcebuild.texi (Test directives): Describe selector
8439 expressions.
8440
d1c8addb
SB
84412005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
8442
8443 * config.gcc (powerpc64-*-linux*): Default to -m64 also for
8444 specific 64-bit CPUs.
8445
6555b6bd
RE
84462005-02-01 Richard Earnshaw <rearnsha@arm.com>
8447
8448 PR target/16201
8449 * arm.c (arm_eliminable_register): New function.
8450 (adjacent_mem_locations): Don't allow eliminable registers. Use
8451 HOST_WIDE_INT for address offsets.
8452 * arm-protos.h (arm_eliminable_register): Add prototype.
8453
bbcb0c05
SB
84542005-02-01 Steven Bosscher <stevenb@suse.de>
8455
8456 PR optimization/15242
8457 * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
8458 * basic-block.h (duplicate_computed_gotos): Add prototype.
8459 * bb-reorder.c (duplicate_computed_gotos): New function to
8460 duplicate sufficiently small blocks ending in a computed jump.
8461 * passes.c (rest_of_compilation): Call duplicate_computed_gotos
8462 if not optimizing for size.
8463 * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
8464 never do tail merging for blocks ending in a computed jump.
8465 * doc/invoke.texi: Document the max-goto-duplication-insns param.
8466
9c0a30c3
EB
84672005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
8468
8469 Patch from Richard Sandiford <rsandifo@redhat.com>
8470 * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
8471 from inheriting a subreg equivalence with a non-spill register.
8472
8473 * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
8474
7b150713
AO
84752005-02-01 Alexandre Oliva <aoliva@redhat.com>
8476
8477 * config/frv/frv.c (movcc_fp_destination_operand): New.
8478 (gpr_or_memory_operand): Fix typo in comment.
8479 (gpr_or_memory_operand_with_scratch): New.
8480 * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
8481 * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
8482 movcc_fp_destination_operand.
8483 (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
8484 Legitimize memory addresses using a scratch register.
8485
dc5d4efb
JL
84862005-01-31 Jeff Law <law@redhat.com>
8487
7d793e36
JL
8488 * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
8489 bitmap a sparse bitmap instead of a simple bitmap.
8490 (mark_def_sites_initialize_block): Corresponding changes.
8491 (ssa_mark_def_sites_initialize_block): Likewise.
8492 (ssa_mark_phi_uses): Likewise.
8493 (mark_def_site, ssa_mark_def_sites): Likewise.
8494 (mark_def_site_blocks): Likewise.
8495 (rewrite_ssa_into_ssa): Likewise.
8496
5746637c
JL
8497 * tree-ssa-dom.c (record_cond): Pass correct variable type
8498 for last argument to htab_find_slot_with_hash.
8499
8500 * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
8501 effects when optimizing 0 % X. Do not try to optimize X % 0.
dc5d4efb 8502
3dcec1e9
JW
85032005-01-31 James E. Wilson <wilson@specifixinc.com>
8504
8505 * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
8506 1_mmalua.
8507
fc474307
EC
85082005-02-01 Eric Christopher <echristo@redhat.com>
8509
8510 * config/mips/mips.c (override_options): Warn if -mint64
8511 is used.
8512 * doc/invoke.texi (MIPS Options): Document that -mint64 is
8513 deprecated.
8514
bc5e3b54
KH
85152005-02-01 Kazu Hirata <kazu@cs.umass.edu>
8516
8517 * cse.c (cse_reg_info): Remove hash_next, next, regno. Add
8518 timestamp.
8519 (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
8520 REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
8521 cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
8522 (cached_regno): Initialize to INVALID_REGNUM.
8523 (cse_reg_info_table_size,
8524 cse_reg_info_table_first_uninitialized,
8525 cse_reg_info_timestamp): New.
8526 (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
8527 get_cse_reg_info.
8528 (init_cse_reg_info, get_cse_reg_info_1): New.
8529 (get_cse_reg_info): Cache the last look-up.
8530 (new_basic_block): Update the code to clear mappings from
8531 registers to cse_reg_info entries.
8532 (cse_main): Call init_cse_reg_info.
8533
782c0a3e
KH
8534 * cse.c (get_cse_reg_info): Update a comment.
8535
b4519d39
SB
85362005-01-31 Steven Bosscher <stevenb@suse.de>
8537
8538 PR c/19333
8539 * c-decl.c (start_decl): Do not warn about arrays of elements with
8540 an incomplete type here.
8541 (grokdeclarator): Do it here by making a pedwarn an error.
8542 * c-typeck.c (push_init_level): If there were previous errors with
8543 the constructor type, do not warn about braces for initializers.
8544 (process_init_element): Likewise for excess initializer elements.
8545
65e9fa10
KH
85462005-01-31 Kazu Hirata <kazu@cs.umass.edu>
8547
8548 * cse.c (delete_trivially_dead_insn): Don't iterate.
8549
0530bc70
AP
85502005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
8551
8552 * config/rs6000/rs6000.md (copysignsf3): New expand.
8553 (copysigndf3): Likewise.
8554
9ea88834
SB
85552005-01-31 Steven Bosscher <stevenb@suse.de>
8556
8557 * recog.c (constrain_operands): Only look for earlyclobber operand
8558 conflicts if an '&' constraint was seen.
8559
75a3bd9d
ME
85602005-01-31 Marc Espie <espie@openbsd.org>
8561
8562 * config.gcc: Don't include embedded systems fragment, switches default
8563 debugging format to ELF.
2cdc2073 8564 * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
75a3bd9d
ME
8565 longer pick it up there.
8566
28697267 85672005-01-31 Dale Johannesen <dalej@apple.com>
2cdc2073 8568
28697267
DJ
8569 * doc/extend.texi (nested functions): Fix linkage description.
8570 Clarify that static is not allowed.
8571
e87d92f4 85722005-01-31 Dale Johannesen <dalej@apple.com>
2cdc2073 8573
e87d92f4
DJ
8574 * config/rs6000/darwin.md (movsf_low_di): Make work.
8575 (movdf_low_di): Make work.
8576
42d262fa
DJ
85772005-01-31 Dale Johannesen <dalej@apple.com>
8578
8579 * config/rs6000/darwin-tramp.asm (__trampoline_setup):
8580 Make work for 64 bit.
8581
3b70b82a
DJ
85822005-01-31 Roger Sayle <roger@eyesopen.com>
8583 Dale Johannesen <dalej@apple.com>
8584
8585 PR middle-end/19650
8586 * fold-const.c (fold_binary_op_with_conditional_arg):
8587 Make types match original operands, before STRIP_NOPS.
8588
a7a52913
AM
85892005-01-31 Alan Modra <amodra@bigpond.net.au>
8590
8591 * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
8592 (struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
8593 (struct gcc_sigcontext): Delete. Merge contents to..
8594 (struct gcc_ucontext): ..here.
8595 (get_sigcontext): Delete.
8596 (get_regs): New function, like get_sigcontext but return regs ptr.
8597 64-bit version finds regs from r1 to support vdso.
8598 (ppc_linux_aux_vector): New function.
8599 (ppc_fallback_frame_state): Modify for get_regs. Restore fprs
8600 and vector regs.
8601
261ba0c8
IR
86022005-01-31 Ira Rosen <irar@il.ibm.com>
8603
8604 * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
8605 sizetype.
8606 (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
8607 redundant fold. Fix misalignment for MINUS_EXPR.
8608 (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
8609 (vect_analyze_pointer_ref_access): Likewise.
8610 (vect_get_memtag_and_dr): Likewise.
8611
2ae1ac77
RH
86122005-01-31 Richard Henderson <rth@redhat.com>
8613
8614 * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
8615 (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
8616 absnegdf2_i387, absnegxf2_i387): Likewise.
8617
ae394659
RH
86182005-01-31 Richard Henderson <rth@redhat.com>
8619
8620 PR 19696
8621 * optabs.c (expand_copysign_absneg): New.
8622 (expand_copysign_bit): Split out from ...
8623 (expand_copysign): ... here. Use expand_copysign_absneg.
8624
ebcaaa21
RS
86252005-01-30 Roger Sayle <roger@eyesopen.com>
8626
8627 PR middle-end/19697
8628 * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
8629 constant as the second operand and a register as the third.
8630
6cc37e7e
DS
86312005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
8632
8633 PR target/19704
8634 * config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
8635 that dllimport'd functions do not use all call-clobbered registers
8636 to pass parameters.
8637
8c55a142
RH
86382005-01-30 Richard Henderson <rth@redhat.com>
8639
8640 PR 19696
8641 * optabs.c (expand_absneg_bit): Split out from expand_unop and
8642 expand_abs_nojump and generalize. Use operand_subword and
8643 emit_no_conflict_block. Support large modes.
8644 (expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
8645 back to maximum.
8646 (expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
8647 negation to subtraction.
8648 (expand_copysign): Check that the format has signed zeros.
8649 Use operand_subword and emit_no_conflict_block. Support large modes.
8650
338bc65e
DB
86512005-01-30 Daniel Berlin <dberlin@dberlin.org>
8652
8653 Fix PR tree-optimization/19624
2cdc2073 8654
338bc65e
DB
8655 * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
8656 * tree-ssa-pre.c: Add cfgloop.h.
8657 Update comment.
8658 (pre_stats): New member, constified.
8659 (inserted_exprs): New static variable.
8660 (NECESSARY): New macro.
8661 (create_expression_by_pieces): Fold the expression, and
8662 mark it as defaulting to not necessary. Also put in
8663 inserted_exprs.
8664 (fully_constant_expression): New function.
8665 (insert_into_preds_of_block): Modify to not insert phis when we
8666 are playing with induction variables.
8667 Push phis onto the inserted_exprs vector, and mark them as not
8668 necessary by default.
8669 (insert_aux): Call fully_constant_expression on eprime.
8670 If all edges produce the same value, mark it constant.
8671 (mark_operand_necessary): New function.
8672 (remove_dead_inserted_code): New function.
8673 (init_pre): Init loop optimizer to get loop info.
8674 (fini_pre): Free loop_optimizer, and inserted_exprs vec.
8675 (execute_pre): Commit edge inserts, then remove dead code.
8676
237f420b
RH
86772005-01-30 Richard Henderson <rth@redhat.com>
8678
8679 * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
8680 * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
8681
b99d6d2b
RH
86822005-01-30 Richard Henderson <rth@redhat.com>
8683
8684 PR target/19700
8685 * config/i386/i386.c (ix86_expand_copysign): New.
8686 (ix86_split_copysign_const): New.
2cdc2073 8687 (ix86_split_copysign_var): Rename from ix86_split_copysign,
b99d6d2b
RH
8688 rearrange op1/nmask operands.
8689 * config/i386/i386-protos.h: Update.
8690 * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
8691 (copysigndf3): Likewise.
8692 (copysignsf3_const, copysigndf3_const): New.
8693 (copysignsf3_var): Rename from copysignsf3, split out splitter
8694 and fix split predicate for X constraint.
8695 (copysigndf3_var): Similarly.
8696
c5c367ac
KH
86972005-01-30 Kazu Hirata <kazu@cs.umass.edu>
8698
8699 * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
8700 doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
8701 doc/tm.texi, doc/tree-ssa.texi: Update copyright.
8702
d6eabd43
RH
87032005-01-29 Richard Henderson <rth@redhat.com>
8704
8705 PR target/19690
8706 * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
8707 of # and * in constraints.
8708
8d740330
RH
87092005-01-29 Richard Henderson <rth@redhat.com>
8710
8711 PR middle-end/19689
8712 * expr.c (store_field): Don't strip sub-mode cast when the input
8713 data is even smaller.
8714
486e4326
RH
87152005-01-29 Richard Henderson <rth@redhat.com>
8716
8717 PR middle-end/19687
8718 * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
8719 union being empty.
8720
eb2ab511
RH
87212005-01-29 Richard Henderson <rth@redhat.com>
8722
8723 * combine.c (make_field_assignment): Fix argument order
8724 to gen_int_mode.
8725
020d90ee
RG
87262005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
8727
8728 PR tree-optimization/15791
8729 * fold-const.c (extract_array_ref): New function.
8730 (fold): Fold comparisons between &a[i] and &a[j] or
8731 semantically equivalent trees.
8732
b6e47ceb
JL
87332005-01-29 Jeff Law <law@redhat.com>
8734
8735 * gcse.c (insert_expr_in_table): Revamp handling of available
8736 and anticipatable occurrence lists to avoid unnecessary list
8737 walking.
8738 (insert_set_in_table): Similarly.
8739
46df2823
JM
87402005-01-29 Joseph S. Myers <joseph@codesourcery.com>
8741
8742 * c-common.c (fix_string_type): Just use c_build_qualified_type to
8743 build string type.
8744 (c_build_qualified_type): Build qualified array types with
8745 TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
8746 * c-decl.c (c_make_fname_decl): Build unqualified array type
8747 before qualified type.
8748 (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
8749 type is qualified, not just if type itself is. Don't apply
8750 qualifiers to array type when declarator is processed. Apply
8751 qualifiers to field type whether or not it is an array type.
8752 Don't handle array types specially for applying qualifiers to
8753 variables.
8754 * c-typeck.c (composite_type): Build unqualified element type and
8755 array type when forming composite of array types.
8756 (common_pointer_type, comptypes, comp_target_types,
8757 type_lists_compatible_p, build_indirect_ref, build_array_ref,
8758 convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
8759 types.
8760 (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
8761 (args2) in variables a1 and a2.
8762
26af0046
KH
87632005-01-29 Kazu Hirata <kazu@cs.umass.edu>
8764
8765 * cse.c (n_elements_made, max_elements_made): Remove.
8766 (insert): Don't touch n_elements_made.
8767 (cse_main): Don't touch n_elements_made or max_elements_made.
8768
3a951664
SC
87692005-01-28 Stephane Carrez <stcarrez@nerim.fr>
8770
8771 PR target/15384
8772 * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
8773 configuration part of dp-bit.c to be lost.
8774
82dfb9a5
RS
87752005-01-28 Roger Sayle <roger@eyesopen.com>
8776
8777 * expmed.c (expand_mult_highpart_optab): When attempting to use
8778 a non-widening multiplication in a wider mode, the operands need
8779 to be converted (zero or sign extended) to that mode.
8780
09f8cf2d
ILT
87812005-01-28 Ian Lance Taylor <ian@airs.com>
8782
8783 PR middle-end/16558
8784 PR middle-end/19583
8785 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
8786 through if both operands fall through.
8787
01aa1d43
KH
87882005-01-28 Kazu Hirata <kazu@cs.umass.edu>
8789
8790 * cse.c (fold_rtx) <PC>: Don't optimize.
8791
139c978a
JL
87922005-01-28 Jeff Law <law@redhat.com>
8793
8794 * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
8795 (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
8796
1590d0d4
KH
87972005-01-28 Kazu Hirata <kazu@cs.umass.edu>
8798
8799 * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
8800 cse_reg_info_used_list_end): Remove.
8801 (cse_reg_info_list, cse_reg_info_list_free): New.
8802 (get_cse_reg_info): When allocating an instance of
8803 cse_reg_info, add it to the beginning of the cse_reg_info_list
8804 list. Remove code to maintain cse_reg_info_used_list.
8805 (new_basic_block): Reset the free list to the beginning of
8806 cse_reg_info_list.
8807
a738d848
RS
88082005-01-28 Richard Sandiford <rsandifo@redhat.com>
8809
8810 * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
8811 (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
8812 (frv_expand_mdpackh_builtin): New function.
8813 (frv_expand_builtin): Use it to expand __MDPACKH.
a738d848
RS
8814 * doc/extend.texi (__MDPACKH): Update documentation.
8815
2aa3d033
UB
88162005-01-28 Uros Bizjak <uros@kss-loka.si>
8817
8818 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
8819 SSE_FLOAT_MODE_P for use_sse computation.
8820
7d7f3b95
RC
88212005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
8822
8823 PR target/19663
8824 * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
8825
046625fa
RH
88262005-01-27 Richard Henderson <rth@redhat.com>
8827
8828 * builtins.c (expand_builtin_copysign): New.
8829 (expand_builtin): Call it.
8830 * genopinit.c (optabs): Add copysign_optab.
8831 * optabs.c (init_optabs): Initialize it.
8832 (expand_copysign): New.
8833 * optabs.h (OTI_copysign, copysign_optab): New.
8834 (expand_copysign): Declare.
8835
8836 * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
8837 (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
8838
8839 * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
8840 (ix86_expand_fp_absneg_operator): ... here.
8841 (ix86_split_copysign): New.
8842 * config/i386/i386-protos.h: Update.
8843 * config/i386/i386.md (UNSPEC_COPYSIGN): New.
8844 (copysignsf3, copysigndf3): New.
8845
8846 * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
8847 (copysignsf3, ncopysignsf3): New.
8848 (copysigndf3, ncopysigndf3): New.
8849 (copysignxf3, ncopysignxf3): New.
8850 * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
8851
6c667859
AB
88522005-01-27 Arend Bayer <arend.bayer@web.de>
8853 Kazu Hirata <kazu@cs.umass.edu>
8854
8855 * cse.c: (find_best_addr): Don't call copy_rtx before calling
8856 fold_rtx. Save cost recomputation if fold_rtx did nothing.
8857 (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
8858 NULL_RTX.
8859
88af764e
JL
88602005-01-27 Jeff Law <law@redhat.com>
8861
8862 * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
8863 definitions of SSA_NAMEs which are not being rewritten.
8864 (rewrite_ssa_into_ssa): Only initialize the current definition
8865 of an SSA_NAME if that SSA_NAME has been marked for rewriting.
8866 If checking is enabled, assert that SSA_NAME_AUX is clear for all
8867 SSA_NAMEs before returning.
8868
f93089d2
KH
88692005-01-27 Kazu Hirata <kazu@cs.umass.edu>
8870
8871 * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
8872 cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
8873 tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
8874 config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
8875 config/mips/iris6.h, config/sh/sh.c: Update copyright.
8876
116cb604
SB
88772005-01-27 Steven Bosscher <stevenb@suse.de>
8878
8879 PR middle-end/17278
8880 * opts.c (decode_options): Move flag_thread_jumps from -O1 and
8881 higher to -O2 and higher. Likewise for tree PRE.
8882 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
8883 and better.
8884
09f8cf2d 88852005-01-27 Ian Lance Taylor <ian@airs.com>
6737ba67
ILT
8886
8887 PR middle-end/19583
8888 * gimple-low.c (try_catch_may_fallthru): New static function.
8889 (block_may_fallthru): Handle TRY_CATCH_EXPR.
8890 * tree-inline.c (expand_call_inline): Don't warn about reaching
8891 the end of a non-void function being inlined if the function uses
8892 a return slot.
8893
d8dd2f3a
JJ
88942005-01-27 Jakub Jelinek <jakub@redhat.com>
8895
9d72d996
JJ
8896 * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
8897
d8dd2f3a
JJ
8898 PR c/18946
8899 * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
8900 (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
8901 (implicitly_declare): Handle error_mark_node.
8902
dad2a933
RH
89032005-01-27 Richard Henderson <rth@redhat.com>
8904
8905 PR tree-opt/14329
8906 * tree.h (struct tree_decl): Add debug_expr_is_from.
8907 (DECL_DEBUG_EXPR_IS_FROM): New.
8908 (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
8909 * dwarf2out.c (dwarf2out_var_location): Update to match.
8910 * tree-outof-ssa.c (create_temp): Likewise.
8911 * var-tracking.c (track_expr_p): Likewise.
8912 * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
8913 * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
8914 * toplev.c (default_tree_printer): Likewise.
8915
17c21957
AO
89162005-01-27 Alexandre Oliva <aoliva@redhat.com>
8917
8918 * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
8919 GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
8920
ebaae582
SB
89212005-01-27 Steven Bosscher <stevenb@suse.de>
8922
8923 * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
8924 CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
8925 ASM_CLOBBERS): Add tree checks.
8926
8927 * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
8928 (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
8929 * c-common.def (SWITCH_STMT): Update to match.
8930 * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
8931 macros instead of SWITCH_EXPR ones.
8932 * c-dump.c (c_dump_tree): Likewise.
8933 * c-gimplify.c (gimplify_switch_stmt): Likewise.
8934 * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
8935
8936 * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
8937
7a706738
AM
89382005-01-27 Alan Modra <amodra@bigpond.net.au>
8939
8940 * unwind-dw2.c (execute_stack_op): Add missing cases for
8941 DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
8942
fe15407d
EB
89432005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
8944
8945 * config.gcc (Obsolete configurations): Remove 'dummy', add
8946 sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
8947 sparc-*-openbsd*.
8948
87637d21
DN
89492005-01-26 Diego Novillo <dnovillo@redhat.com>
8950
8951 PR tree-optimization/19633
8952 * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
8953 CALL_EXPRs.
8954 (maybe_create_global_var): Do not create .GLOBAL_VAR if there
8955 are no call-clobbered variables.
8956 * tree-outof-ssa.c (check_replaceable): Return false for calls
8957 with side-effects.
8958
9ff93eb0
UW
89592005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
8960
8961 * dbxout.c (dbxout_symbol_location): Resolve constant pool references
8962 even for variables with NULL DECL_INITIAL.
8963
4356a1bf
SH
89642005-01-26 Stuart Hastings <stuart@apple.com>
8965
00adda9f 8966 * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
4356a1bf 8967
48cc8d3b
RH
89682005-01-26 Richard Henderson <rth@redhat.com>
8969
8970 PR middle-end/18008
8971 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8972 field's type.
8973 * expr.c (store_field): Strip conversions to odd-bit-sized types
8974 if the destination field width matches.
8975
eec6bb06
RH
89762005-01-26 Richard Henderson <rth@redhat.com>
8977
8978 * c-decl.c, expmed.c, expr.c: Revert last change.
8979
78ef1e3d
RH
89802005-01-26 Richard Henderson <rth@redhat.com>
8981
8982 PR middle-end/18008
8983 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8984 field's type.
8985 * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
8986 if we don't need the bits above those present in the current mode.
8987 * expr.c (store_field): Strip conversions to odd-bit-sized types
8988 if the destination field width matches.
8989
5596990f
RS
89902005-01-26 Richard Sandiford <rsandifo@redhat.com>
8991
8992 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
8993 either -ffast-math or -funsafe-math-optimizations is in use.
8994
a3cf5992
MM
89952005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
8996
8997 PR target/19293
8998 PR target/19329
8999 * config/avr/avr.c (notice_update_cc): Only set condition code for
9000 ashrqi3 if shift count > 0.
9001 (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
9002 (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
9003 ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
9004 count <= 0 as a no-op, and shift count >= width by copying zero
9005 or sign bit to all bits of the result.
9006 * config/avr/avr.md (all shifts): Add alternatives for zero shift
9007 count, with attribute "length" set to 0 and "cc" set to "none".
9008
e4dd71de
AH
90092005-01-26 Aldy Hernandez <aldyh@redhat.com>
9010
9011 * doc/invoke.texi: Document -mTLS.
9012
9013 * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
9014 * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
9015 * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
9016 * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
9017 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
9018 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
9019 * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
9020 * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
9021
9022 * configure.ac: Check for a TLS capable gas.
9023
9024 * configure: Regenerate.
78ef1e3d 9025
55e79aef
RH
90262005-01-26 Richard Henderson <rth@redhat.com>
9027
9028 PR middle-end/18008
9029 * combine.c (make_field_assignment): Simplify store to zero_extract
9030 from a source with an overlapping mask.
9031
af30facd
AH
90322005-01-26 Aldy Hernandez <aldyh@redhat.com>
9033
9034 2004-11-11 Eric Christopher <echristo@redhat.com>
9035
ebaae582
SB
9036 * config/frv/frv.md: Add fr400_integer automaton. Don't
9037 allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
9038 to TYPE_MACC.
af30facd 9039
f7aa1423
SB
90402005-01-26 Steven Bosscher <stevenb@suse.de>
9041
9042 PR middle-end/16585
9043 * cfgbuild.c (make_edges): Do not clear or set
9044 current_function_has_computed_jump.
9045 * function.h (struct function): Remove the has_computed_jump field.
9046 (current_function_has_computed_jump): Do not define.
9047 * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
9048 in a computed jump. Ignore current_function_has_computed_jump.
9049
6f642f98
RH
90502005-01-26 Richard Henderson <rth@redhat.com>
9051
9052 PR middle-end/19515
9053 * expr.c (categorize_ctor_elements): New argument p_must_clear.
9054 (categorize_ctor_elements_1): Likewise. Detect a union that isn't
9055 fully initialized.
9056 (mostly_zeros_p): Update for new categorize_ctor_elements argument.
9057 * gimplify.c (gimplify_init_constructor): Likewise. Only shove
9058 objects into static storage if they have more than one non-zero value.
9059 * tree.h (categorize_ctor_elements): Update decl.
9060
ead553a1
SB
90612005-01-26 Steven Bosscher <stevenb@suse.de>
9062
2cdc2073 9063 PR middle-end/19616
ead553a1
SB
9064 * tree.h (CALL_EXPR_TAILCALL): Add comment.
9065 * calls.c (check_sibcall_argument_overlap_1): Revert the change
9066 to this function from 2004-07-10.
9067 * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
9068 the current function for tail call optimizations if the address
9069 of one of it its arguments is taken.
9070
75335440
KH
90712005-01-26 Kazu Hirata <kazu@cs.umass.edu>
9072
9073 * cse.c (fold_rtx): Call equiv_constant only when necessary.
9074
40184445
BS
90752005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
9076
9077 * function.c (expand_function_end): If current_function_calls_alloca,
9078 emit stack restore in a place that is reached when the function falls
9079 through at the end.
9080
144023ad
AO
90812005-01-26 Alexandre Oliva <aoliva@redhat.com>
9082
9083 * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
9084 rule to avoid matching inappropriate suffix rule.
9085
e4cf29ae
JH
90862005-01-26 Jan Hubicka <jh@suse.cz>
9087
97bd954f 9088 PR tree-optimization/19241
e4cf29ae
JH
9089 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
9090
fe04ce06
HPN
90912005-01-26 Hans-Peter Nilsson <hp@axis.com>
9092
9093 * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
9094 -lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
9095 of doubling.
9096 (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
ead553a1 9097 <sim*>: Always use crt1.o, regardless of N in simN.
fe04ce06
HPN
9098 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
9099 (ENDFILE_SPEC): Add crtn.o, after crtend.o.
9100 (CRT_CALL_STATIC_FUNCTION): Remove.
9101 * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
9102 use crt1.o, regardless of N in simN.
9103 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
9104 (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
9105 (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
9106 case isystem setting.
9107 (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
9108
6a03afdf
ILT
91092005-01-25 Ian Lance Taylor <ian@airs.com>
9110
9111 * gimple-low.c (block_may_fallthru): Correct handling of
9112 SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
9113
c555b47f
HPN
91142005-01-26 Hans-Peter Nilsson <hp@axis.com>
9115
9116 * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
9117 handlers to match indentation; nested under the mtune=* handler.
9118 Similar for mcpu= and march=.
9119
9841a1a7
DJ
91202005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
9121
9122 * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
9123 * config/mips/linux64.h (LIB_SPEC): Likewise.
9124 * config/mn10300/linux.h (LIB_SPEC): Likewise.
9125 * config/sh/linux.h (LIB_SPEC): Likewise.
9126
bef8809e
AH
91272005-01-25 Aldy Hernandez <aldyh@redhat.com>
9128
9129 * config/frv/frv.c (frv_legitimize_tls_address): New.
9130 (TARGET_HAVE_TLS): Define.
9131 (FRV_SYMBOL_REF_TLS_P): Define.
9132 (frv_override_options): Handle new register classes.
9133 (frv_legitimate_address_p): Reject tls addresses.
9134 (frv_legitimize_address): Handle TLS addresses.
9135 (gen_inlined_tls_plt): New.
9136 (gen_tlsmoff): New.
9137 (frv_legitimize_tls_address): New.
9138 (unspec_got_name): Add TLS entries.
9139 (got12_operand): Add R_FRV_TLSMOFF12 case.
9140 (frv_emit_move): Fixup TLS addresses.
9141 (frv_emit_movsi): Legitimize TLS addresses.
9142
9143 * config/frv/frv.h (MASK_BIG_TLS): New.
9144 (TARGET_BIG_TLS): New.
9145 (HAVE_AS_TLS): Define.
9146 (TARGET_SWITCHES): Add -mTLS and -mtls options.
9147 (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
9148 (REG_CLASS_NAMES): Same.
9149 (REG_CLASS_CONTENTS): Same.
9150 (CONSTRAINT_LEN): New.
9151 (REG_CLASS_FROM_CONSTRAINT): New.
9152 (PREDICATE_CODES): Add symbolic_operand.
9153
9154 * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
9155 UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
9156 UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
9157 UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
9158 R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
9159 R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
9160 R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
9161 GR9_REG, GR14_REG, LRREG.
9162 (type): Add load_or_call attribute.
9163 ("load_or_call"): New reservation.
9164 ("call_gettlsoff"): New.
9165 ("tls_indirect_call"): New.
9166 ("tls_load_gottlsoff12"): New.
9167 ("tlsoff_hilo"): New.
9168 ("tls_tlsdesc_ldd"): New.
9169 ("tls_tlsoff_ld"): New.
9170 ("tls_lddi"): New.
9171
9172 * config/frv/frv-protos.h (symbolic_operand): Protoize.
9173
9174 2005-01-25 Alexandre Oliva <aoliva@redhat.com>
9175
ead553a1
SB
9176 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9177 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
9178 * config/frv/frv.c (TLS_BIAS): Define.
9179 (frv_output_dwarf_dtprel): New.
bef8809e 9180
b8e48b98
JJ
91812005-01-26 Jakub Jelinek <jakub@redhat.com>
9182
9183 PR rtl-optimization/19579
9184 * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
9185 both A and B, see if they don't clobber registers the other expr uses.
9186
1c673473
R
91872005-01-25 J"orn Rennecke <joern.rennecke@st.com>
9188
9189 * real.c (do_add): Initialize signalling and canonical members.
9190
9191 * real.c (real_from_integer): Zero out destination.
9192
ed464869
JH
91932005-01-18 Jan Hubicka <jh@suse.cz>
9194
9195 PR tree-optimize/19337
9196 * tree-inline.c (initialize_inlined_parameters): Copy
9197 saved_static_chain_decl only.
9198
51df7179
RH
91992005-01-25 Richard Henderson <rth@redhat.com>
9200
9201 PR target/19556
9202 PR target/19584
9203 * config/i386/i386.c (x86_inter_unit_moves): Zero.
9204 (ix86_preferred_reload_class): Rewrite fp-constant section, with
9205 80387 enabled, to return a proper subclass. Return the subset that
9206 overlaps with GENERAL_REGS for PLUS.
9207 * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
9208
c63f5a42
RH
92092005-01-25 Richard Henderson <rth@redhat.com>
9210
9211 PR middle-end/19609
9212 * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
9213
e71c0aa7
RS
92142005-01-25 Roger Sayle <roger@eyesopen.com>
9215
9216 * expmed.c (choose_multiplier): Change interface to return the
9217 multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
9218 (expand_divmod): Update calls to choose_multiplier.
9219
a6d2976a
JDA
92202005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9221
9222 PR middle-end/19330
9223 * expmed.c (extract_bit_field): Use adjust_address instead of
9224 gen_lowpart when op0 is a MEM.
9225
7315a949
SB
92262005-01-24 Steven Bosscher <stevenb@suse.de>
9227
9228 * cfgexpand.c (expand_gimple_tailcall): Fix typo.
9229
c0fd73a9
RS
92302005-01-24 Richard Sandiford <rsandifo@redhat.com>
9231
9232 * config/mips/irix-csr.c: New file.
9233 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
9234 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
9235 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
9236 executables.
9237
81b47219
EB
92382005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
9239
9240 PR bootstrap/19364
9241 * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
9242 sparc/elf.h, add sparc/sp-elf.h.
9243 (sparc-*-rtems*): Likewise.
9244 (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
9245 tm-dwarf2.h, add sparc/sp-elf.h.
9246 (sparc86x-*-elf): Likewise.
9247 (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
9248 * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
9249 TARGET_OS_CPP_BUILTINS.
9250 * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9251 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9252 Undefine it.
9253 * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
9254 * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
9255 (SWITCH_TAKES_ARG): Likewise.
9256 (LOCAL_LABEL_PREFIX): Likewise.
9257 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
9258 (TARGET_N_FORMAT_TYPES): Delete.
9259 (TARGET_FORMAT_TYPES): Likewise.
9260 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9261 * config/sparc/elf.h: Delete.
9262 * config/sparc/sp-elf.h: New file.
9263
3a2f1f06
KH
92642005-01-24 Kazu Hirata <kazu@cs.umass.edu>
9265
9266 * tree-flow-inline.h (phi_arg_from_edge): Remove.
9267 * tree-flow.h: Remove the corresponding prototype.
9268 * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
9269 tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
9270
b723e82f
JJ
92712005-01-24 Jakub Jelinek <jakub@redhat.com>
9272
9273 PR target/17751
9274 * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
9275 for AIX ABI or ELF -fPIC.
9276 (rs6000_emit_load_toc_table): Don't create toc_section here.
9277 (rs6000_xcoff_file_start): Nor here.
9278
1a9ce0b7
JR
92792005-01-24 J"orn Rennecke <joern.rennecke@st.com>
9280
9281 * sh.c (ra.h): Don't #include.
9282 (hard_regs_intersect_p): New function, resurrected from ra.c.
9283
9284 * sh.c: Fix 1996 Copyright.
9285
226c62c7 92862005-01-24 Richard Henderson <rth@redhat.com>
97bd954f 9287 Aldy Hernandez <aldyh@redhat.com>
226c62c7 9288
97bd954f 9289 * regrename.c (note_sets): Handle subregs.
226c62c7 9290
2429f3d4
JM
92912005-01-24 Joseph S. Myers <joseph@codesourcery.com>
9292
9293 PR bootstrap/18058
9294 * genconditions.c (write_header, write_conditions): Elide file if
9295 not GCC >= 3.0.1.
9296
deeec1d8
KH
92972005-01-24 Kazu Hirata <kazu@cs.umass.edu>
9298
9299 * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
9300 config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
9301 Update copyright.
9302
7b922122
JJ
93032005-01-24 Jakub Jelinek <jakub@redhat.com>
9304
9305 * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
9306 expand_builtin_printf, expand_builtin_fprintf,
9307 expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
9308 checking against POINTER_TYPE.
9309 (validate_arglist): Handle POINTER_TYPE code by checking
9310 POINTER_TYPE_P.
9311
cf94b0fc
PB
93122005-01-24 Paolo Bonzini <bonzini@gnu.org>
9313
9314 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
9315 init_rtlanal): New.
9316 (for_each_rtx): Call for_each_rtx_1.
9317 * rtl.h (init_rtlanal): Declare.
9318 * toplev.c (backend_init): Call init_rtlanal.
9319
b77302be
JJ
93202005-01-24 Jakub Jelinek <jakub@redhat.com>
9321
9322 * flow.c (propagate_one_insn): Formatting.
9323
9324 PR middle-end/19551
9325 * flow.c (libcall_dead_p): Be more conservative if unsure.
9326 If there are any instructions between insn and call, see if they are
9327 all dead before saying the libcall is dead.
9328
11c56af5
UB
93292005-01-24 Uros Bizjak <uros@kss-loka.si>
9330
9331 * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
9332 operand constraint for operand 0.
9333
520f34fa
RH
93342005-01-23 Richard Henderson <rth@redhat.com>
9335
9336 PR 19486
9337 * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
9338 edges leading to join block.
9339
0d282692
RS
93402005-01-23 Roger Sayle <roger@eyesopen.com>
9341
9342 * expmed.c (expand_mult_highpart): Make static. Change type of
9343 constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
9344 (expand_divmod): Updates calls to expand_mult_highpart by using
9345 gen_int_mode to pass a CONST_INT rtx.
9346 * rtl.h (expand_mult_highpart): Remove prototype.
9347
edd517b1
KH
93482005-01-23 Kazu Hirata <kazu@cs.umass.edu>
9349
9350 * flow.c (regset_bytes, regset_size): Remove.
9351
708bde14
KH
9352 * cfganal.c: Fix a reference to Harvey's paper.
9353
85840349
SB
93542005-01-23 Steven Bosscher <stevenb@suse.de>
9355
9356 PR rtl-optimization/19464
9357 * tree-optimize.c (init_tree_optimization_passes): Add one more
9358 copyrename pass just before out-of-ssa.
9359
9fcdd891
JM
93602005-01-23 Joseph S. Myers <joseph@codesourcery.com>
9361
9362 PR bootstrap/18058
9363 * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
9364 * ggc-none.c (ggc_free): Define.
9365
d0754bc6
KH
93662005-01-23 Kazu Hirata <kazu@cs.umass.edu>
9367
9368 * cse.c (max_reg, max_insn_uid): Remove.
9369 (cse_main): Don't access max_reg or max_insn_uid.
9370
f3b303fd
KH
9371 * c-common.c (explicit_flag_signed_bitfields,
9372 lang_statement_code_p, lang_expand_function_end): Remove.
9373 * c-common.h: Remove the corresponding declarations.
9374 * c-opts.c (c_common_handle_option): Remove all write access
9375 to explicit_flag_signed_bitfields.
9376
15f0d971
KH
9377 * cgraph.c (cgraph_varpool_n_nodes): Remove.
9378 (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
9379 * cgraph.h: Remove the corresponding declaration.
9380
6d77cdc3
KH
9381 * gcse.c (null_pointer_info): Remove.
9382
b9750434
RS
93832005-01-23 Roger Sayle <roger@eyesopen.com>
9384 Eric Botcazou <ebotcazou@libertysurf.fr>
9385
9386 * combine.c (simplify_logical): Only simplify logical expressions
9387 of the form ior(and(x,y),z) by the inverse distributive law if the
9388 result is cheaper than the original.
9389
35fd3193
KH
93902005-01-23 Kazu Hirata <kazu@cs.umass.edu>
9391
9392 * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
9393 fold-const.c, gimplify.c, params.h, tree-data-ref.c,
9394 tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
9395 tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
9396 config/freebsd-spec.h, config/arm/arm.h,
9397 config/h8300/h8300.md, config/i386/i386.md,
9398 config/i386/predicates.md, config/i386/sse.md,
9399 config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
9400 config/vax/vax.md: Fix comment typos. Follow spelling
9401 conventions.
9402
a62a0172
SB
94032005-01-23 Steven Bosscher <stevenb@suse.de>
9404
9405 * gengtype.c (walk_type): Produce `not equal to' compares for loop
9406 tests, instead of `less than'.
9407
a561d88b
RS
94082005-01-23 Richard Sandiford <rsandifo@redhat.com>
9409
9410 * function.c (assign_parm_setup_block): When creating a new stack slot
9411 for a parameter, get its alignment from the parameter's DECL_ALIGN
9412 rather than the type's TYPE_ALIGN. Make sure that the parameter
9413 is at least word aligned.
9414
d2ebe27c
RS
94152005-01-22 Roger Sayle <roger@eyesopen.com>
9416
9417 PR middle-end/19378
9418 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
9419
a059cdb8
RH
94202005-01-22 Richard Henderson <rth@redhat.com>
9421
9422 PR target/19506
9423 * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
9424 in both compare operands.
9425 (movdfcc_1_sse_max): Likewise.
9426 (movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
9427 (movdfcc_1_sse): Likewise.
9428 * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
9429 scratch register as needed.
9430
eabd294f
RH
94312005-01-22 Richard Henderson <rth@redhat.com>
9432
b8f06586
RH
9433 * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
9434
eabd294f
RH
9435 * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
9436
5ccbd309
RH
94372005-01-22 Richard Henderson <rth@redhat.com>
9438
9439 * genopinit.c (optabs): Use smin/smax for floating point too.
9440 * doc/md.texi: Update to match. Clarify that floating point
9441 results are undefined for +0/-0 and NaN.
9442 * doc/rtl.texi: Likewise.
9443 * rtl.def (SMIN, SMAX): Likewise
9444 * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
9445
9446 * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
9447 leading 's' to the name.
9448 * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
9449 smaxxf3, sminxf3): Likewise.
9450 * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
9451 Likewise.
9452
b4b2332c
PB
94532005-01-22 Paul Brook <paul@codesourcery.com>
9454
9455 * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
9456
6fa5b390
MD
94572005-01-21 Mark Dettinger <dettinge@de.ibm.com>
9458
2cdc2073 9459 * config/s390/s390.c (struct processor_costs): New fields
6fa5b390
MD
9460 dlgr, dlr, dr, dsgfr, dsgr.
9461 (z900_cost, z990_cost): Values for new fields.
9462 (s390_rtx_costs): New cases MEM und COMPARE in switch
9463 statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
9464 DIV, MOD, UDIV, UMOD.
9465
eb862a88
UW
94662005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
9467
9468 * config/s390/s390.md ("doloop_si64"): Reload input value directly
9469 into the register being decremented.
9470 ("doloop_si31", "doloop_di"): Likewise.
9471 ("*doloop_si_long"): Adapt pattern.
9472
3776ada0
UW
94732005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
9474
9475 * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
9476 access registers.
9477 (CLASS_MAX_NREGS): Likewise.
9478
d7c71ee3
DB
94792005-01-21 Daniel Berlin <dberlin@dberlin.org>
9480
9481 * doc/tree-ssa.texi (Statement Operands): Add example for new
9482 must-def macro. Note deprecation of old operands interface.
9483
d7f3fc19
RS
94842005-01-22 Richard Sandiford <rsandifo@redhat.com>
9485
9486 PR tree-optimization/19484
9487 * tree-cfg.c (remove_fallthru_edge): New function.
9488 (cleanup_control_flow): Remove fallthru edges from calls that are
9489 now known not to return.
9490
111e0c9f
DB
94912005-01-20 Daniel Berlin <dberlin@dberlin.org>
9492
9493 Fix PR tree-optimization/19038
9494 * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
9495 copies with loop variant ones.
9496
1e052c19
KH
94972005-01-22 Kazu Hirata <kazu@cs.umass.edu>
9498
9499 * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
9500 config/alpha/alpha-protos.h, config/alpha/alpha.h,
9501 config/alpha/alpha.md, config/alpha/predicates.md,
9502 config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
9503 config/sparc/sol2.h: Update copyright.
9504
28773f15
KH
9505 * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
9506 first label to see if it is a nonlocal label.
9507
1e052c19 95082005-01-22 David Edelsohn <edelsohn@gnu.org>
ead553a1 9509 Andrew Pinski <pinskia@physics.uc.edu>
987732e0
DE
9510
9511 PR target/19491
9512 * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
9513 maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
9514
80d15bce
RC
95152005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
9516
9517 * config/rs6000/rtems.h: Update copyright.
9518
b9d13999
RC
95192005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
9520
9521 PR target/19548
9522 * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
9523 (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
9524 (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
9525
20913689
VR
95262005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
9527
9528 PR c/18809
9529 * c-typeck.c (convert_arguments): Check for error_mark_node.
9530
1e052c19 95312005-01-21 Ian Lance Taylor <ian@airs.com>
089efaa4
ILT
9532
9533 PR tree-optimization/13000
9534 * tree-inline.c: Include "tree-flow.h".
9535 (expand_call_inline): If warn_return_type, warn if non-void inline
9536 function falls through.
9537 * tree-cfg.c (execute_warn_function_return): Don't warn about
9538 control reaching end if TREE_NO_WARNING is set. Set
9539 TREE_NO_WARNING.
9540 * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
9541 has been lowered.
9542 * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
9543 branch if we don't need one.
9544 * c-typeck.c: Include "tree-flow.h"
9545 (c_finish_bc_stmt): Don't add a goto if the current statement
9546 list doesn't fall through to the current point.
9547
d284eb28
RS
95482005-01-21 Roger Sayle <roger@eyesopen.com>
9549
9550 PR rtl-optimization/576
9551 * real.c (real_arithmetic): Change return type from void to bool
9552 to return an indication that the result may be inexact.
9553 * real.h (real_arithmeric): Update prototype.
9554 * fold-const.c (const_binop): Don't constant fold floating
9555 point expressions when the user specifies -frounding-math and
9556 the result may depend upon the run-time rounding mode.
9557 (fold_convert_const_real_from_real): Clean-up.
9558 (fold_initializer): Ignore flag_rounding_math for initializers.
9559 * simplify-rtx.c (simplify_binary_operation): Likewise, don't
9560 constant fold FP operations with flag_rounding_math if the
9561 result may depend upon the run-time rounding mode.
9562
a101957b
TT
95632005-01-21 Tom Tromey <tromey@redhat.com>
9564
9565 * c-cppbuiltin.c (define__GNUC__): Correct assertion.
9566
a85ba5a8
KH
95672005-01-21 Kazu Hirata <kazu@cs.umass.edu>
9568
9569 * tree-cfg.c: Fix comment typos.
9570
5b5e3a31
R
95712005-01-21 J"orn Rennecke <joern.rennecke@st.com>
9572
9573 * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
9574 around the call to rest_of_handle_branch_target_load_optimize.
9575
0b85af22
EB
95762005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
9577
9578 * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
9579 (sparc64-*-openbsd*): Likewise.
9580 (sparclite-*-elf*): Include tm-dwarf2.h.
9581 (sparc86x-*-elf*): Likewise.
9582 (sparc64-*-elf*): Likewise.
9583 * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
9584 (DBX_DEBUGGING_INFO): Likewise.
9585 * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
9586 (PREFERRED_DEBUGGING_TYPE): Likewise.
9587 * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
9588 * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
9589 (PREFERRED_DEBUGGING_TYPE): Likewise.
ac11d73b 9590 * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
0b85af22
EB
9591 (PREFERRED_DEBUGGING_TYPE): Likewise.
9592 * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
9593
3eacd71f
HPN
95942005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
9595
9596 PR target/18701
9597 * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
9598
eacf8912
PB
95992005-01-20 Paul Brook <paul@codesourcery.com>
9600
9601 * doc/rtl.texi: Document value extension requirements for CONST_INT.
9602
548414c6
KH
96032005-01-20 Kazu Hirata <kazu@cs.umass.edu>
9604
9605 * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
9606 label is first in a sequence of labels.
9607
cde68236
KH
9608 * tree-cfg.c (tree_verify_flow_info): Fix a typo.
9609
35fdf04e
JJ
96102005-01-20 Janis Johnson <janis187@us.ibm.com>
9611 Giovanni Bajo <giovannibajo@gcc.gnu.org>
9612
9613 * doc/sourcebuild.texi (Test Directives): New.
9614
8ffeac67
RS
96152005-01-20 Roger Sayle <roger@eyesopen.com>
9616
9617 * real.c (real_floor): Don't leave the result uninitialized when
9618 mode is VOIDMode, but return the unrounded intermediate value.
9619 (real_ceil): Likewise.
9620
07ff6dac 96212005-01-20 Paul Brook <paul@codesourcery.com>
b65e6318
PB
9622
9623 * config/arm/arm.md (insv): Use gen_int_mode.
9624
62da8647
EB
96252005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
9626
9627 * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
9628 * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9629 * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9630 * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9631 * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
9632
3c46c513
DB
96332005-01-20 Daniel Berlin <dberlin@dberlin.org>
9634
9635 Fix PR debug/19124
9636 * dwarf2out.c (concat_loc_descriptor): We don't know we can use
9637 fbreg, so we have to assume we can't.
9638 (loc_descriptor_from_tree_1): Ditto.
9639 (containing_function_has_frame_base): New function.
9640 (add_location_or_const_value_attribute): Use it.
9641 Also try to generate a frame_base from a single element location
9642 list.
2cdc2073 9643
23ab2e4e
KH
96442005-01-20 Kazu Hirata <kazu@cs.umass.edu>
9645
9646 PR tree-optimization/15349
9647 * timevar.def (TV_TREE_MERGE_PHI): New.
9648 * tree-cfg.c (tree_forwarder_block_p): Add a new argument
9649 PHI_WANTED.
9650 (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
9651 calls to tree_forwarder_block_p.
9652 (remove_forwarder_block_with_phi, merge_phi_nodes,
9653 gate_merge_phi, pass_merge_phi): New.
9654 * tree-optimize.c (init_tree_optimization_passes): Add
9655 pass_merge_phi.
9656 * tree-pass.h: Add an extern for pass_merge_phi;
9657
edd5b7da
RH
96582005-01-20 Richard Henderson <rth@redhat.com>
9659
9660 PR target/19418
9661 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
9662 (_mm_castps_pd, _mm_castps_si128): New.
9663 (_mm_castsi128_ps, _mm_castsi128_pd): New.
9664
0f2698d0
RH
96652005-01-20 Richard Henderson <rth@redhat.com>
9666
9667 PR target/19530
9668 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
9669 __builtin_ia32_vec_init_v2si.
9670 (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
9671 * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
9672 (ix86_init_mmx_sse_builtins): Create it.
9673 (ix86_expand_builtin): Expand it.
9674 (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
9675 * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
9676 (vec_extractv2si_0, vec_extractv2si_1): New.
9677
6b79c03c
RH
96782005-01-20 Richard Henderson <rth@redhat.com>
9679
58b03a2d 9680 PR target/16533
6b79c03c
RH
9681 * config/i386/i386.c (ix86_expand_push): New.
9682 * config/i386/mmx.md (push<MMXMODE>1): New.
9683 * config/i386/sse.md (push<SSEMODE>1): New.
9684 * config/i386/i386-protos.h: Update.
9685
e42febca
KH
96862005-01-20 Kazu Hirata <kazu@cs.umass.edu>
9687
9688 * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
9689 copyright.
9690
f4770271
RH
96912005-01-20 Richard Henderson <rth@redhat.com>
9692
9693 * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
9694 * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
9695
b4bb3199
RH
96962005-01-19 Richard Henderson <rth@redhat.com>
9697
9698 PR target/19350
9699 * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
9700 to V4SFmode in SSE1 fallback load path.
9701
ceda96fc
RH
97022005-01-19 Richard Henderson <rth@redhat.com>
9703
9704 * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
9705 in QImode expansion to ix86_expand_vector_set.
9706 (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
9707
f75959a6
RH
97082005-01-19 Richard Henderson <rth@redhat.com>
9709
9710 PR target/19511
9711 * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
9712 subclass of the input class.
9713 (ix86_secondary_memory_needed): Always true for cross-MMX classes.
9714 Always true for cross-SSE1 classes. Rationalize conditionals.
9715 * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
9716 * config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
9717 for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
9718 (movdi_2): Add MMX/SSE zeros.
9719 (movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
9720 (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
9721 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
9722 (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
9723 (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
9724 (zero_extendsidi2_rex64_1): Remove.
9725 (MOV0 peephole): Check GENERAL_REG_P.
9726
b100079f
RH
97272005-01-19 Richard Henderson <rth@redhat.com>
9728
9729 PR target/19427
9730 * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
9731 shufps elements.
9732 (ix86_expand_vector_extract): Likewise.
9733
539eaa3a
RH
97342005-01-19 Richard Henderson <rth@redhat.com>
9735
9736 PR middle-end/19304
9737 * expr.c (emit_move_change_mode): New argument force; use
9738 simplify_gen_subreg if true.
9739 (emit_move_via_alt_mode): Merge into ...
9740 (emit_move_via_integer): ... here.
9741 (emit_move_ccmode): Use emit_move_change_mode directly.
9742
72910a0b
RH
97432005-01-19 Richard Henderson <rth@redhat.com>
9744
9745 PR target/19518
9746 * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
9747 (alpha_preferred_reload_class): Handle CONST_VECTOR.
9748 (alpha_emit_set_const_1): Add no_output parameter; don't emit
9749 rtl if true.
9750 (alpha_emit_set_const): Likewise. Make static.
9751 (alpha_emit_set_long_const): Make static.
9752 (alpha_extract_integer): Split out from alpha_expand_mov.
9753 (alpha_split_const_mov): Likewise.
9754 (alpha_expand_mov): Use them. Handle CONST_VECTOR.
9755 (alpha_legitimate_constant_p): New.
9756 * config/alpha/alpha-protos.h: Update.
9757 * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
9758 (LEGITIMATE_CONSTANT_P): Re-implement with a function.
9759 * config/alpha/alpha.md (movsi): Add n alternative.
9760 (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
9761 (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
9762 (splitters for all of the above): Use alpha_split_const_mov.
9763 * config/alpha/predicates.md (non_add_const_operand): New.
9764 (non_zero_const_operand): New.
9765 (input_operand): Use alpha_legitimate_constant_p after reload.
9766
4366cf6d
ZD
97672005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
9768
9769 PR tree-optimization/19038
9770 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
9771 (add_candidate): Add ivs with increment in latch only if
9772 allow_ip_end_pos_p is true.
9773 (determine_iv_cost): Use empty_block_p.
9774
4c7f5fea
DB
97752005-01-19 Daniel Berlin <dberlin@dberlin.org>
9776
9777 * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
9778 (compute_dominance_frontiers): Ditto.
9779
be33b729
RC
97802005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
9781
9782 PR target/19529
2cdc2073 9783 * config/sh/t-rtems: New.
be33b729
RC
9784 * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
9785
53dba802
ZD
97862005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
9787
9788 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
9789 the offset of the selected field.
9790
04d38c3b
KH
97912005-01-19 Kazu Hirata <kazu@cs.umass.edu>
9792
9793 * tree-cfg.c (remove_forwarder_block): Fix the check to
9794 prevent a nonlocal label from appearing in the middle of a
9795 basic block.
9796
09f9e288
HPN
97972005-01-19 Hans-Peter Nilsson <hp@axis.com>
9798
9799 PR rtl-optimization/19462
9800 * reorg.c (find_end_label): Create return insn only if
9801 current_function_epilogue_delay_list is empty.
9802
625d4524
PB
98032005-01-19 Paolo Bonzini <bonzini@gnu.org>
9804
9805 * doc/passes.texi: Remove paragraph mentioning new-ra.
9806
e89be13b
JJ
98072005-01-19 Jakub Jelinek <jakub@redhat.com>
9808
49c3b9a8
JJ
9809 PR rtl-optimization/15139
9810 * combine.c: Include params.h.
9811 (count_rtxs): New function.
9812 (record_value_for_reg): If replace_rtx would replace at least
9813 2 occurrences of REG in VALUE and TEM is really large, replace REG with
9814 (clobber (const_int 0)) instead of TEM.
9815 * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
9816 * params.h (MAX_LAST_VALUE_RTL): New.
9817 * Makefile.in (combine.o): Depend on $(PARAMS_H).
9818 * doc/invoke.texi (--param max-last-value-rtl=N): Document.
9819
e89be13b
JJ
9820 PR c/17297
9821 * c-typeck.c (digest_init): Only call build_vector if all constructor
9822 elements are *_CST nodes.
9823 * gimplify.c (gimplify_init_constructor): Likewise.
9824
9825 PR middle-end/19164
9826 * c-typeck.c (digest_init): Only call build_vector if inside_init
9827 is a CONSTRUCTOR.
9828
d74e09c6
TS
98292005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
9830
9831 * toplev.c (init_asm_output): Remove dead #ifdef.
9832
e35b30c7
KK
98332005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
9834
9835 * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
9836
8c96cd51
EB
98372005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
9838
9839 * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
9840 accessing DECL_FUNCTION_CODE.
9841 * dojump.c (do_jump): Likewise.
9842 * gimplify.c (gimplify_call_expr): Likewise.
9843 * predict.c (expr_expected_value): Likewise.
9844 (strip_builtin_expect): Likewise.
9845 * tree-inline.c (estimate_num_insns_1): Likewise.
9846 * tree-ssa-loop-im.c (stmt_cost): Likewise
9847 * fold-const.c (fold): Test for BUILT_IN_NORMAL.
9848 (tree_expr_nonnegative_p): Likewise.
9849
eb7a7903
EB
98502005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
9851
9852 * config/sparc/sparc.c (load_pic_register): Emit the appropriate
9853 variant of the load_pcrel_sym pattern.
9854 * config/sparc/sparc.md (P macro): Move to the top.
9855 (load_pcrel_sym): Macroize using P.
9856 (save_register_window): Likewise.
9857
7836a61f
AH
98582005-01-18 Aldy Hernandez <aldyh@redhat.com>
9859
9860 * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
9861 ("sordered"): Same.
9862
b4c33883
AP
98632005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
9864
9865 PR C/19472
9866 * c-typeck.c (build_asm_expr): Strip nops off
9867 input memory operands.
9868
56015cee
DE
98692005-01-18 David Edelsohn <edelsohn@gnu.org>
9870
9871 * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
9872 _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
9873 * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
9874 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
9875
de004e6d
JS
98762005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
9877
9878 PR target/19379
9879 * config/i386/i386.c (override_options): If the 80387 is disabled,
9880 then do not return FP values using FP registers.
9881
ad616de1
KH
98822005-01-18 Kazu Hirata <kazu@cs.umass.edu>
9883
9884 * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
9885 c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
9886 combine.c, config.gcc, coverage.h, cse.c, cselib.c,
9887 defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
9888 flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
9889 gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
9890 output.h, postreload-gcse.c, postreload.c, recog.c,
9891 resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
9892 targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
9893 tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
9894 tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
9895 tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
9896 tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
9897 tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
9898 unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
9899
5b86a469
KH
9900 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
9901 config/alpha/alpha.c, config/arm/vfp.md,
9902 config/i386/emmintrin.h, config/i386/i386-modes.def,
9903 config/i386/i386-protos.h, config/i386/i386.h,
9904 config/i386/pmmintrin.h, config/i386/ppro.md,
9905 config/i386/predicates.md, config/i386/xmmintrin.h,
9906 config/i860/i860.c, config/ia64/ia64-modes.def,
9907 config/ia64/ia64-protos.h, config/ia64/ia64.h,
9908 config/ia64/ia64.md, config/ia64/itanium1.md,
9909 config/ia64/itanium2.md, config/ia64/predicates.md,
9910 config/iq2000/iq2000.h, config/mips/linux64.h,
9911 config/rs6000/aix41.h, config/rs6000/aix43.h,
9912 config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
9913 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
9914 config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
9915 config/sparc/linux64.h, config/sparc/litecoff.h,
9916 config/sparc/sp64-elf.h, config/sparc/sparc.c,
9917 config/sparc/sparc.h, config/sparc/sparc.md,
9918 config/sparc/sysv4-only.h: Update copyright.
9919
51d7bae6
RH
99202005-01-18 Richard Henderson <rth@redhat.com>
9921
9922 PR target/19496
9923 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
9924
f5975bd5
ME
99252005-01-18 Marc Espie <espie@openbsd.org>
9926 * config/i386/openbsdelf.h: Typo.
9927
9f61886e
RH
99282005-01-18 Richard Henderson <rth@redhat.com>
9929
9930 * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
9931 special case for sse.
9932 * config/i386/predicates.md (sse_comparison_operator): Likewise.
9933
16630a2c
DN
99342005-01-18 Dorit Naishlos <dorit@il.ibm.com>
9935
9936 * tree-inline.c (estimate_num_insns_1): Added cases for
9937 ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
9938
f917ae96
EB
99392005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
9940
9941 PR rtl-optimization/19296
9942 * combine.c (simplify_comparison): Rewrite the condition under
9943 which a non-paradoxical SUBREG of a PLUS can be lifted when
9944 compared against a constant.
9945
06da3c24
AK
99462005-01-18 Andi Kleen <ak@muc.de>
9947
9948 * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
9949 * c.opt (-Wpointer-sign): Add.
9950 * doc/invoke.texi: (-Wpointer-sign): Add.
9951
ded1c605
UB
99522005-01-18 Uros Bizjak <uros@kss-loka.si>
9953
9954 * config/i386/i386.c (override_options): Revert 2004-11-24 change.
9955 * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
9956 *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
9957 logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
9958 exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
9959 nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
9960 for TARGET_MIX_SSE_I387.
9961 (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
9962 sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
9963 atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
9964 log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
9965 floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
9966 (TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
9967 TARGET_MIX_SSE_I387.
9968 (atan2sf3, atan2df3, atan2xf3): Remove register constraints
9969 from expander.
9970
d0405259
UB
99712005-01-18 Uros Bizjak <uros@kss-loka.si>
9972
9973 PR target/19424
9974 * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
9975 Add movaps alternative for xmm reg->reg move.
9976
0bd65483
JL
99772005-01-17 Jeff Law <law@redhat.com>
9978
9979 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
9980 at the end of the main DOM loop rather than just before DOM exits.
9981
e03a46f5
DN
99822005-01-17 Diego Novillo <dnovillo@redhat.com>
9983
9984 PR tree-optimization/19121
9985 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
9986 adding aliases to a name tag, also add them to the pointer's
9987 type tag.
9988 * tree-ssa-copy.c (merge_alias_info): Do not merge flow
9989 sensitive alias info at all. Only check that the two pointers
9990 have compatible pointed-to sets.
9991 * tree-ssa.c (verify_name_tags): Verify that the alias set of
9992 a pointer's type tag is a superset of the alias set of the
9993 pointer's name tag.
9994
696a2ca1
JW
99952005-01-17 James E Wilson <wilson@specifixinc.com>
9996
9997 PR target/19357
9998 * config/ia64/ia64.md (movxf): Handle general register source. Adjust
9999 comment to document why.
10000
115a33c2
RH
100012005-01-17 Richard Henderson <rth@redhat.com>
10002
10003 * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
10004 sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
10005 sse2_vmsmaxv2df3_finite, sminv2df3_finite,
10006 sse2_vmsminv2df3_finite): New.
10007 (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
10008 sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
10009 Force op1 into register.
10010
ded73657
KC
100112005-01-17 Kelley Cook <kcook@gcc.gnu.org>
10012
10013 * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
10014 bubblestrap from always rebuilding build directory.
10015
d4f52f0e
UW
100162005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
10017
10018 * config/s390/s390.md ("*clc"): Remove incorrect '='.
10019 ("*cmpmem_short"): Likewise.
10020
740ce53d
SB
100212005-01-17 Steven Bosscher <stevenb@suse.de>
10022
10023 * basic-block.h: Document BB_* flags.
10024 * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
10025 use an sbitmap instead.
10026 * sched-rgn.c (compute_trg_info): Likewise.
10027
2184a120
RS
100282005-01-17 Richard Sandiford <rsandifo@redhat.com>
10029
10030 * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
10031 redundant target_cpu_default and extra_parts lines. Use the default
10032 "from-abi" ISA.
10033 * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
10034 (SUBTARGET_EXTRA_SPECS): Delete.
10035 (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
10036 (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
10037 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
10038 and "n32" for -mabi=n32.
10039
812ad338
ILT
100402005-01-17 Ian Lance Taylor <ian@airs.com>
10041
10042 PR c/5675
10043 * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
10044 fold constant variables into initial values.
10045
26e75214
KH
100462005-01-17 Kazu Hirata <kazu@cs.umass.edu>
10047
10048 * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
10049
f8ef82ea
KH
10050 * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
10051 through the statements backward.
10052
81bafd36
ILT
100532005-01-17 Ian Lance Taylor <ian@airs.com>
10054
10055 PR middle-end/13127:
10056 * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
10057 a variable set to the return value of the inlined function.
10058
edb81165
MD
100592005-01-17 Mark Dettinger <dettinge@de.ibm.com>
10060
10061 * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
10062 when modes are tieable.
10063
658acbb2
RM
100642005-01-17 Ranjit Mathew <rmathew@hotmail.com>
10065
10066 * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
10067 of pthread_create to find out if threads are enabled.
10068 * gthr-posix95.h (__gthread_active_p): Likewise.
10069
cd280abb
PB
100702005-01-17 Paolo Bonzini <bonzini@gnu.org>
10071
10072 * common.opt (-fnew-ra): Remove.
10073 * ra*.*: Remove.
10074 * toplev.h (flag_new_regalloc): Remove.
10075 * Makefile.in (ra*.*): Don't mention.
10076 * passes.c (rest_of_handle_new_regalloc): Remove.
10077 (rest_of_handle_combine, rest_of_compilation): Always consider
10078 flag_new_regalloc as false.
10079 * doc/invoke.texi: Don't document -fnew-ra.
10080
100812005-01-17 Paolo Bonzini <bonzini@gnu.org>
c80a0f26
PB
10082
10083 * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
10084 last parameter to reg_scan.
10085 * loop.c (loop_optimize): Likewise.
10086 * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
10087 rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
10088 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10089 rest_of_handle_gcse, rest_of_handle_loop_optimize,
10090 rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
10091 * regclass.c (reg_scan): Likewise, for the declaration.
10092 * rtl.h (reg_scan): Likewise, for the prototype.
10093
724e4d44
KH
100942005-01-17 Kazu Hirata <kazu@cs.umass.edu>
10095
10096 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
10097 mark_dfs_back_edges.
10098
7f233d9f
DB
100992005-01-16 Daniel Berlin <dberlin@dberlin.org>
10100
10101 * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
10102 (compute_avail): Uses don't go in tmp_gen.
10103
6f0947e4
SB
101042005-01-16 Steven Bosscher <stevenb@suse.de>
10105
10106 * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
10107 loop to look for a free slot in a page entry.
10108
083b6717
JDA
101092005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10110
10111 PR target/16304
10112 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
10113 * toplev.c (compile_file): Call process_pending_assemble_output_defs
10114 just before targetm.asm_out.file_end.
10115 * tree.h (process_pending_assemble_output_defs): Declare.
10116 * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
10117 New functions.
10118 (assemble_alias): Defer generation of assembly code for defines when
10119 TARGET_DEFERRED_OUTPUT_DEFS is true.
10120 * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
10121 * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
10122 * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
10123
2d5ca9a0
JDA
101242005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10125
83c32f2e
JDA
10126 PR target/19336
10127 * pa.c (pa_scalar_mode_supported_p): New function.
10128 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10129 * pa.h (MIN_UNITS_PER_WORD): Add comment.
10130
2d5ca9a0
JDA
10131 * pa-protos.h (prefetch_operand): Delete.
10132 (prefetch_cc_operand, prefetch_nocc_operand): New declations.
10133 * pa.c (prefetch_operand): Delete.
10134 (prefetch_cc_operand, prefetch_nocc_operand): New functions.
10135 * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
10136 (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
10137 and prefetch_nocc_operand.
10138 * pa.md (prefetch): Rework to avoid reload problems handling short
10139 displacements when a cache control completer needs to be provided.
10140 (prefetch_32, prefetch_64): Delete.
10141 (prefetch_cc, prefetch_nocc): New patterns.
10142
6a9836b1
DE
101432005-01-15 David Edelsohn <edelsohn@gnu.org>
10144
10145 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
10146
22f549fd
JDA
101472005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10148
10149 PR ada/19388
10150 * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
10151 exceeds maximum alignment for global common data.
10152 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
10153 * som.h (MAX_OFILE_ALIGNMENT): Likewise.
10154
19e1af6e
RS
101552004-01-15 Roger Sayle <roger@eyesopen.com>
10156
10157 * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
10158
778f72f2
RS
101592004-01-15 Roger Sayle <roger@eyesopen.com>
10160
10161 * harg-reg-set.h (reg_class_names): Prototype global array.
10162 * regclass.c (reg_class_names): Declare here and initialize to
10163 REG_CLASS_NAMES.
10164 (dump_regclass): Remove local declaration of reg_class_names.
10165 (regclass): Likewise.
10166 * cfg.c (dump_flow_info): Likewise.
10167 * ra-debug.c (reg_class_names): Likewise.
10168 * regrename.c (reg_class_names): Likewise.
10169 * reload.c (reg_class_names): Likewise.
10170 * reload1.c (spill_failure): Likewise.
10171 * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
10172
9c3c3dcc
UW
101732005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
10174
10175 * config/s390/s390.md ("reload_outti"): Remove predicate for
10176 output operand. Abort if operand is not a MEM.
10177 ("reload_outdi", "reload_outdf"): Likewise.
10178
378b66d4
ME
101792005-01-15 Marc Espie <espie@openbsd.org>
10180
10181 * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
10182 (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
10183 * config/openbsd.h: Fix C++ includes for native configurations.
10184 Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
10185 Add trampoline support.
10186 * config/i386/openbsdelf.h: New.
10187
60828cbd
ME
101882005-01-15 Marc Espie <espie@openbsd.org>
10189
10190 * collect2.c (main): Explicitly parse -dynamic-linker option.
10191
75b9aa9f
JJ
101922005-01-15 Jakub Jelinek <jakub@redhat.com>
10193
10194 PR tree-optimization/19060
10195 * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
10196 Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
10197 (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
10198 and handle extract_range_from_cond returning false.
10199 * fold-const.c (fold): Optimize comparisons with min/max even for
10200 width > HOST_BITS_PER_WIDE_INT.
10201
4ba9f2a1
RC
102022005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
10203
10204 * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
2cdc2073 10205 * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4ba9f2a1
RC
10206 Remove little endian multilib variants.
10207 Add mips32 multilib variant.
10208
bbc8fb00
KH
102092005-01-15 Kazu Hirata <kazu@cs.umass.edu>
10210
10211 * explow.c (copy_all_reg, stabilize): Remove.
10212 * expr.h: Remove the corresponding prototypes.
10213
6a29dc8b
KH
10214 * rtlanal.c (regs_set_between_p): Remove.
10215 * rtl.h: Remove the corresponding prototype.
10216
165a5bad
DE
102172005-01-14 David Edelsohn <edelsohn@gnu.org>
10218
10219 * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
10220 to rs6000_nonimmediate_operand.
10221 * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
10222 rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
10223 * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
10224 rs6000_nonimmediate_operand.
10225 * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
10226 rs6000_nonimmediate_operand.
10227
7f9e6d2a
AP
102282005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
10229
10230 * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
10231
54b695e7
AH
102322005-01-14 Aldy Hernandez <aldyh@redhat.com>
10233
10234 * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
10235 on e500v2.
10236 (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
10237 (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
10238
10239 * config/rs6000/rs6000.c (invalid_e500_subreg): New.
10240 (rs6k_nonimmediate_operand): New.
10241 (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
10242 correctly.
10243 (legitimate_lo_sum_address_p): Same.
10244 (rs6000_legitimize_address): Same.
10245 (rs6000_legitimize_reload_address): Same.
10246 (rs6000_legitimate_address): Same.
10247 (spe_build_register_parallel): Pass DF and DC modes in a DI
10248 register.
10249
10250 * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
10251 to rs6k_nonimmediate_operand.
10252
10253 * config/rs6000/spe.md ("*frob_df_di"): New.
10254 ("*frob_di_df"): New.
10255 ("*frob_di_df_2"): New.
10256 ("*mov_sidf_e500_subreg0"): New.
10257 ("*mov_sidf_e500_subreg4"): New.
10258 ("*movdf_e500_double"): Change predicate to
10259 rs6k_nonimmediate_operand.
10260
05075d4e
AH
102612005-01-14 Aldy Hernandez <aldyh@redhat.com>
10262
10263 * postreload.c (move2add_note_store): Only call
10264 trunc_int_for_mode on scalar integers.
10265
a28fee03
SB
102662005-01-14 Steven Bosscher <stevenb@suse.de>
10267
10268 * tree-ssa-dce.c (visited_control_parents): New sbitmap to
10269 replace BB_VISITED uses.
10270 (find_obviously_necessary_stmts): Don't clear BB_VISITED.
10271 (propagate_necessity): Check the bitmap instead of BB_VISITED.
10272 (tree_dce_done): Free visited_control_parents.
10273 (perform_tree_ssa_dce): Allocate and clear it.
10274 * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
10275 (compute_antic): Iterate from here using a DFS. Use an sbitmap
10276 instead of BB_VISITED.
10277
103a83e0
KH
102782005-01-14 Kazu Hirata <kazu@cs.umass.edu>
10279
10280 * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
10281 rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
10282 Remove unused prototypes.
10283
b5a5beb9
AH
102842005-01-14 Aldy Hernandez <aldyh@redhat.com>
10285
10286 * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
10287 64-bit register usage.
10288 (spe_func_has_64bit_regs_p): Add FIXME note.
10289
5ca18999
AH
102902005-01-14 Aldy Hernandez <aldyh@redhat.com>
10291
10292 * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
10293 flag_finite_math_only with flag_unsafe_math_optimizations.
10294
783d2650
J
102952005-01-14 J. D. Johnston <jjohnst@us.ibm.com>
10296
10297 * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
10298 end-of-stack check.
10299 (__tpf_eh_return): Copy TPF private stack area from the module
10300 boundary stack frame. Add check for when module addresses are
10301 equal, but no stub address is found.
10302
b12a00f1
RE
103032005-01-14 Richard Earnshaw <rearnsha@arm.com>
10304
10305 PR target/7525
10306 * arm.h (struct machine_function): Add call_via field.
10307 (thumb_call_via_label): Declare.
10308 * arm.c (thumb_call_via_label): New variable.
10309 (thumb_call_reg_needed): New variable.
10310 (arm_output_function_epilogue): For Thumb code, output any per-function
10311 call-indirect trampolines.
10312 (thumb_call_via_reg): New function.
10313 (arm_file_end): New function.
10314 (TARGET_ASM_FILE_END): Call arm_file_end.
10315 (aof_file_end): Likewise.
10316 * arm-protos.h (thumb_call_via_reg): Declare.
2cdc2073 10317 * arm.md (call_reg_thumb, call_value_reg_thumb): Call
b12a00f1
RE
10318 thumb_call_via_reg in normal case.
10319
08a0c536
JJ
103202005-01-14 Jakub Jelinek <jakub@redhat.com>
10321
10322 PR middle-end/19084
10323 PR rtl-optimization/19348
10324 * recog.c (peephole2_optimize): Do global life update if some peephole
10325 decides it doesn't need at least one of its inputs and that change
10326 influences liveness at the start of the basic block.
10327
10328 * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
10329 arguments instead of 1.
10330
eebeecac
EB
103312005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
10332
10333 PR middle-end/18820
10334 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
10335 zero for nested functions needing a static chain or functions
10336 with a non-constant address.
10337
a0ee8b5f
RS
103382005-01-13 Roger Sayle <roger@eyesopen.com>
10339
10340 * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
10341 (and (sign_extend X) C) into (zero_extend (and X C)).
10342
92018897
DB
103432005-01-13 David O'Brien <obrien@FreeBSD.org>
10344
10345 * config/freebsd-spec.h: Make KSE pthread lib logic the default.
10346
eaa49b49
RH
103472005-01-13 Richard Henderson <rth@redhat.com>
10348
2d1d3cb2 10349 PR target/19009
eaa49b49
RH
10350 PR target/19250
10351 PR target/19252
10352 * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
10353 bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
10354 not just TARGET_SSE.
10355 (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
10356 (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
10357 (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
10358 (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
10359 (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
10360 (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
10361 (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
10362 fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
10363 (movdicc_c_rex64): Rename with '*'.
10364 (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
10365 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
10366 (movsfcc_1_387): Rename from movsfcc_1.
10367 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
10368 (movdfcc_1, movdfcc_1_rex64): Add check for 387.
10369 (sminsf3, smaxsf3, smindf3, smaxdf3): New.
10370 (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
10371 mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
10372 maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
10373 sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
10374 sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
10375 sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
10376 sse_movdfcc_const0_4): Remove.
10377 * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
10378 recognize min/max early. Update for changed sse cmove patterns.
10379 (ix86_split_sse_movcc): New.
10380 * config/i386/i386-protos.h: Update.
10381
1dff80c0
SB
103822005-01-13 Steven Bosscher <stevenb@suse.de>
10383
10384 * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
10385 (fix_stmt_v_may_defs): Likewise.
10386
bb129a4f
RH
103872005-01-13 Richard Henderson <rth@redhat.com>
10388
10389 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
10390 for converting the mask.
10391
2cba2c8b
DE
103922005-01-13 David Edelsohn <edelsohn@gnu.org>
10393
10394 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
10395 definition to 600.
10396
ed9b5396
RH
103972005-01-13 Richard Henderson <rth@redhat.com>
10398
10399 * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
10400 IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
10401 IX86_BUILTIN_MOVDQ2Q): Remove.
10402 (IX86_BUILTIN_VEC_EXT_V4SI): New.
10403 (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
2cdc2073 10404 (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
ed9b5396
RH
10405 shuffling.
10406 * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
10407 (sse2_pextrw): Fix immediate constraint.
10408 (sse2_loadq, sse2_loadq_rex64): Remove.
10409 * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
10410 Use __builtin_ia32_vec_ext_<size>.
10411 (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
10412
17284759
AH
104132005-01-13 Aldy Hernandez <aldyh@redhat.com>
10414
10415 * function.c (assign_parm_setup_block): Look inside original
10416 entry_parm when inspecting PARALLEL.
10417
5d58d2f8
RC
104182005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
10419 Joel Sherrill <joel@oarcorp.com>
10420
10421 PR target/19399
10422 * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
10423 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
10424 rtems_gxx_recursive_mutex_init.
10425 (__gthread_recursive_mutex_lock): New function.
10426 (__gthread_recursive_mutex_trylock): Likewise.
10427 (__gthread_recursive_mutex_unlock): Likewise.
10428
52786878
RC
104292005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
10430
10431 * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
10432
16d8386b
JB
104332005-01-13 Jan Beulich <jbeulich@novell.com>
10434
10435 * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
10436 (ashrti3_internal): Indicate output is early clobber. Generate result
10437 into output rather than first input. Use move for low word of output
10438 if shift count is exactly 64.
10439 (lshrti3_internal): Likewise.
10440
0149f412
HPN
104412005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
10442
10443 PR target/18329
10444 PR target/18330
10445 * reload1.c (delete_output_reload): Don't delete an output reload
10446 if the pseudo lives longer than a single basic block. Adjust and
10447 improve wording of comment.
10448
e1e04267
AP
104492005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
10450
10451 PR target/19334
10452 * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
10453 of TYPE_SIZE where we mean the number of bytes.
10454
640019aa
AH
104552005-01-12 Aldy Hernandez <aldyh@redhat.com>
10456
10457 * function.c (assign_parm_setup_block): Relax condition on
10458 multi-register optimization.
10459
98e20ffd
NC
104602005-01-12 Nick Clifton <nickc@redhat.com>
10461
10462 * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
10463 an "in_delay_slot" attribute of "no" to prevent them being used in
10464 delay slots. This is forbidden because they might generate
10465 exceptions.
10466
409f61cd
AM
104672005-01-12 Alan Modra <amodra@bigpond.net.au>
10468
10469 PR target/19389
10470 * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
10471 with r->Y and Y->r.
10472
ef6f5655
NC
104732005-01-12 Nick Clifton <nickc@redhat.com>
10474
10475 * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
10476 passed on to GAS) but do not define, as GAS no longer supports or
10477 needs the -m2000 option.
10478
157b3890
RS
104792005-01-11 Roger Sayle <roger@eyesopen.com>
10480
10481 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
10482 type as args of unprototyped builtins aren't automatically promoted.
10483 (fold_builtin_abs): Likewise.
10484
9a43b902
KG
104852005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10486
10487 * Makefile.in: Set a `build-warn' variable.
10488
0a915e3d
ZD
104892005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
10490
10491 PR tree-optimization/17949
10492 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
10493 (find_interesting_uses_address): Use it.
10494
f351bfed
AH
104952005-01-11 Aldy Hernandez <aldyh@redhat.com>
10496
10497 * regrename.c (kill_value): Handle subreg's that won't simplify.
10498
eb701deb
RH
104992005-01-11 Richard Henderson <rth@redhat.com>
10500
10501 PR target/13366
10502 * config/i386/i386.h (enum ix86_builtins): Move ...
10503 * config/i386/i386.c: ... here.
10504 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
10505 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
10506 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
10507 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
10508 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
10509 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
10510 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
10511 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
10512 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
10513 IX86_BUILTIN_LOADDDUP): Remove.
10514 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
10515 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
10516 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
10517 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
10518 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
10519 (ix86_init_builtins): Make static.
10520 (ix86_init_mmx_sse_builtins): Update for changed builtins.
10521 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
10522 if all the modes match. Otherwise, fake it.
10523 (get_element_number, ix86_expand_vec_init_builtin,
10524 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
10525 (ix86_expand_builtin): Make static. Update for changed builtins.
10526 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
10527 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
10528 (ix86_expand_vector_init_duplicate): New.
10529 (ix86_expand_vector_init_low_nonzero): New.
10530 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
10531 Split out from ix86_expand_vector_init; handle integer modes.
10532 (ix86_expand_vector_init): Use them.
10533 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
10534 * config/i386/i386-protos.h: Update.
10535 * config/i386/predicates.md (reg_or_0_operand): New.
10536 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
10537 (movv2sf_internal): Likewise. And a splitter to match them all.
10538 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
10539 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
10540 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
10541 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
10542 (mmx_pinsrw): Fix operand ordering.
10543 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
10544 rather than sse_loadss expander.
10545 (movv2df splitter): Similarly.
10546 (sse_loadss, sse_loadlss): Remove.
10547 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
10548 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
10549 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
10550 (sse3_movddup): Rename with '*'.
10551 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
10552 (sse2_loadsd): Remove.
10553 (vec_dupv2df_sse3): Rename from sse3_loadddup.
10554 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
10555 (sse2_pinsrw): Fix argument ordering.
10556 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
10557 (sse2_stored): Remove 'r' destination.
10558 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
10559 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
10560 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
10561 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
10562 vec_extractv16qi, vec_initv16qi): New.
10563
10564 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
2cdc2073 10565 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
eb701deb
RH
10566 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
10567 constructor form.
10568 (_mm_load_pd, _mm_store_pd): Use plain dereference.
10569 (_mm_load_si128, _mm_store_si128): Likewise.
10570 (_mm_load1_pd): Use _mm_set1_pd.
10571 (_mm_load_sd): Use _mm_set_sd.
10572 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
10573 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
10574 (_mm_set_epi64): Use _mm_set_epi64x.
10575 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
10576 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
10577 _mm_setr_epi8): Use _mm_set_foo form.
10578 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
10579 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
10580 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
10581 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
10582 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
10583 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
10584 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
10585 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
10586 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
10587 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
10588 (_mm_movedup_pd): Use _mm_shuffle_pd.
10589 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
10590 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
10591 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
10592 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
10593 Use _mm_setzero_ps.
10594 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
10595 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
10596 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
10597 (_mm_store_ps): Use raw dereference.
10598 (_mm_store1_ps): Use _mm_storeu_ps.
10599 (_mm_storer_ps): Use _mm_store_ps.
10600 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
10601 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
10602
d9e4e4f5
SS
106032005-01-11 Stan Shebs <shebs@apple.com>
10604
10605 * config/rs6000/rs6000.c (machopic_output_stub): Issue
10606 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
10607
85962ac8
AP
106082005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
10609
10610 PR target/18761
10611 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10612 Skip all DECLs except for FIELD_DECLs.
10613
6b78f6be
AK
106142005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
10615
10616 * config/s390/s390.c (override_options): Return error if
10617 -mbackchain, -mpacked-stack and -mhard-float are used together.
10618 (s390_va_start): Remove the backchain && packed-stack special case.
10619 (s390_gimplify_va_arg): Likewise.
10620 * doc/invoke.texi: Remove the ABI incompatibility note.
10621
66480e91
AK
106222005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
10623
fc474307 10624 * config/s390/s390.c (struct s390_frame_layout): Remove
66480e91
AK
10625 save_backchain_p.
10626 (s390_frame_info, s390_emit_prologue): Replace occurrences of
10627 save_backchain_p with TARGET_BACKCHAIN.
10628
bfc45551
AM
106292005-01-11 Alan Modra <amodra@bigpond.net.au>
10630
10631 PR target/18916
10632 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
10633 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
10634 * function.c (locate_and_pad_parm): Set new field.
10635 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
10636 Tweak where_pad test to include "none". Always set mem align for
10637 stack_parm.
10638 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
10639 not sufficient for type.
10640 (assign_parm_setup_block): If stack_parm is zero on entry, always
10641 make a new stack local. Block move old stack parm if necessary
10642 to new aligned stack local.
10643 (assign_parm_setup_stack): Use a block move to handle
10644 potentially misaligned entry_parm.
10645 (assign_parms_unsplit_complex): Specify required alignment when
10646 creating stack local.
10647 * calls.c (compute_argument_addresses): Override alignment of stack
10648 arg calculated from its type with the alignment given by
10649 FUNCTION_ARG_BOUNDARY.
10650 (store_one_arg): Likewise.
10651
d3f6e07b 106522005-01-11 Jan Beulich <jbeulich@novell.com>
bfc45551 10653
d3f6e07b
JB
10654 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
10655 Change respective itanium_class attribute to ialu.
10656 (shladdp4_internal): New.
10657 * config/ia64/predicates.md (shladd_log2_operand): New.
10658
201dd46b
RH
106592005-01-11 Richard Henderson <rth@redhat.com>
10660
10661 * expr.c (store_constructor): Use rtvec_alloc instead of
10662 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
10663
35c0104b
KH
106642005-01-11 Kazu Hirata <kazu@cs.umass.edu>
10665
10666 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
10667
abb8b19a
AM
106682005-01-11 Alan Modra <amodra@bigpond.net.au>
10669
10670 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
10671 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
10672 (TARGET_RWRELOC): Define.
10673 (ia64_rwreloc_section_type_flags): Delete.
10674 (ia64_section_type_flags): New function.
10675 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
10676 (TARGET_RWRELOC): Define.
10677
b1eae416
DM
106782005-01-10 David Mosberger <davidm@hpl.hp.com>
10679
10680 PR target/18987
10681 * config/ia64/ia64.c (process_set): For alloc insn, only call
10682 process_epilogue is !frame_pointer_needed.
10683
18d00205
RS
106842005-01-10 Roger Sayle <roger@eyesopen.com>
10685
10686 PR c++/19355
10687 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
10688 unary operator and can't be treated as a binary/comparison operator.
10689
b3a1ca49
RH
106902005-01-10 Richard Henderson <rth@redhat.com>
10691
10692 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
10693 (ix86_return_in_memory): Likewise.
10694 (function_arg_advance): Likewise. Mirror structure in function_arg
10695 for choosing register to advance.
10696
1618f948
KH
106972005-01-10 Kazu Hirata <kazu@cs.umass.edu>
10698
10699 * tree-vectorizer.c, tree.def: Fix comment typos.
10700
98fd0d70
MD
107012005-01-10 Mark Dettinger <dettinge@de.ibm.com>
10702
10703 * config/s390/s390.c (struct processor_costs): 4 new fields:
10704 ddbr, ddr, debr, der.
10705 (s390_rtx_costs): More precise handling of divide instructions.
10706
99757961
DE
107072005-01-10 David Edelsohn <edelsohn@gnu.org>
10708
10709 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
10710
826eb7ed
JB
107112005-01-10 Jan Beulich <jbeulich@novell.com>
10712
10713 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
10714 names resulting from -ffunction-sections/-fdata-sections and linkonce
10715 ones.
10716 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
10717 based on the section name. Rearrange the section name comparison logic
10718 slightly so that each section name is compared against at most once.
10719
068d4f38
BE
107202005-01-10 Ben Elliston <bje@au.ibm.com>
10721
10722 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
10723 targets for which -fPIC reduces limitations on the GOT size.
10724
351bae3d
FH
107252005-01-09 Falk Hueffner <falk@debian.org>
10726
10727 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
10728 X/C1 cmpop C2.
10729
7142ae77
DE
107302005-01-09 David Edelsohn <edelsohn@gnu.org>
10731
10732 PR target/18720
10733 * collect2.c (main): Set aixrtl_flag for -brtl option.
10734 (resolve_lib_name): Search for .so file extension before .a
10735 if aixrtl_flag set.
10736
5a3ed97a
DN
107372005-01-09 Dorit Naishlos <dorit@il.ibm.com>
10738
10739 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
10740 (vect_analyze_data_refs_alignment): Add dump prints.
10741
db5dc63d
IR
107422005-01-09 Ira Rosen <irar@il.ibm.com>
10743
fc474307 10744 * tree-vectorizer.c (vect_analyze_offset_expr): Use
db5dc63d
IR
10745 expr_invariant_in_loop_p.
10746 Initialize outputs first thing in the function.
10747 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
10748 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
fc474307 10749 (vect_analyze_pointer_ref_access): Check that the initial condition of
db5dc63d
IR
10750 the access function is loop invariant.
10751
80e8bb90
RH
107522005-01-09 Richard Henderson <rth@redhat.com>
10753
10754 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
10755 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
10756 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
10757 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
10758 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
10759 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
10760 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
10761 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
10762 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
10763 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
10764 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
10765 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
10766 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
10767 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
10768 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
10769 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
10770 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
fc474307 10771 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
80e8bb90
RH
10772 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
10773 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
10774 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
10775 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
10776 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
10777 mmx_ prefix.
10778 (mmx_clrdi, pavgusb): Remove.
fc474307 10779 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
80e8bb90
RH
10780 with leading sse_ prefix.
10781 * config/i386/sse.md: Receive them.
10782 * config/i386/mmx.md: New file.
10783 (MMXMODE12, MMXMODE24, mmxvecsize): New.
10784 (subrv2sf3): Turn into expander for normal subtraction.
10785 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
10786 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
10787 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
10788 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
10789 commutative; use ix86_binary_operator_ok.
10790 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
10791 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
10792 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
fc474307 10793 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
80e8bb90
RH
10794 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
10795 Macroize from existing patterns; use ix86_binary_operator_ok.
10796 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
10797 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
10798 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
10799 with vec_select+vec_concat.
10800 (mmx_pshufw, mmx_pshufw_1): Likewise.
10801 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
10802 (mmx_uavgv4hi3): Model correctly.
10803 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
10804 _mm_xor_si64): Remove casts.
10805
eb0bc7af
ZD
108062005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
10807
10808 PR tree-optimization/19224
10809 * tree-scalar-evolution.c (get_instantiated_value,
10810 set_instantiated_value): New functions.
10811 (instantiate_parameters_1): Cache the results.
10812 (instantiate_parameters, resolve_mixers): Initialize and free
10813 the cache.
10814
d1c9ce9f
DE
108152005-01-08 David Edelsohn <edelsohn@gnu.org>
10816
10817 * config/i386/i386.md (addhi_4): Correct reference in comment.
10818 (addqi_4): Same.
10819
ef719a44
RH
108202005-01-08 Richard Henderson <rth@redhat.com>
10821
10822 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
10823 (_mm_cvtsi128_si64x): Likewise.
10824 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
10825 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
10826 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
10827 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
10828 * config/i386/i386-protos.h: Update.
10829 * config/i386/i386.c (print_operand): Add 'H'.
10830 (ix86_fixup_binary_operands): Split out from ...
10831 (ix86_expand_binary_operator): ... here.
10832 (ix86_fixup_binary_operands_no_copy): New.
10833 (ix86_expand_fp_absneg_operator): Handle vector mode results.
10834 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
10835 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
10836 (safe_vector_operand): Use CONST0_RTX.
10837 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
10838 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
10839 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
10840 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
10841 special cases.
10842 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
10843 (IX86_BUILTIN_CMPNGESS): New.
10844 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
10845 (attr type): Add sselog1.
10846 (attr unit, attr memory): Handle it.
10847 (movti, movti_internal, movti_rex64): Move near other integer moves.
10848 (movtf, movtf_internal): Move near other fp moves.
10849 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
10850 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
fc474307 10851 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
ef719a44
RH
10852 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
10853 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
10854 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
10855 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
10856 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
10857 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
fc474307
EC
10858 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
10859 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
10860 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
ef719a44
RH
10861 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
10862 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
10863 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
10864 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
10865 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
10866 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
10867 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
10868 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
10869 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
10870 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
10871 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
10872 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
10873 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
10874 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
10875 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
10876 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
10877 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
fc474307 10878 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
ef719a44
RH
10879 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
10880 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
10881 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
fc474307 10882 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
ef719a44
RH
10883 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
10884 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
fc474307 10885 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
ef719a44
RH
10886 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
10887 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
10888 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
10889 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
10890 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
10891 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
10892 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
10893 same time.
10894 (SSEPUSH, push<SSEPUSH>): Remove.
10895 (MMXPUSH, push<MMXPUSH>): Remove.
10896 (sse_movaps, sse_movaps_1, sse_movups): Remove.
10897 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
10898 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
10899 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
10900 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
10901 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
10902 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
10903 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
10904 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
10905 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
10906 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
10907 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
10908 (ppro_sse_log_V4SF): Handle sselog1.
10909 * config/i386/predicates.md (const_0_to_1_operand): New.
10910 (const_0_to_255_mul_8_operand): New.
10911 (const_1_to_31_operand): Rename from const_int_1_31_operand.
10912 (const_2_to_3_operand, const_4_to_7_operand): New.
10913 * config/i386/sse.md: New file.
10914 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
10915 (sse_movups): Rename from sse_movups_1.
10916 (sse_loadlss): Rename from sse_loadss_1.
10917 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
10918 from the name.
10919 (negv4sf2): Use ix86_expand_fp_absneg_operator.
10920 (absv4sf2, negv2df, absv2df): New.
10921 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
10922 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
10923 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
10924 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
10925 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
10926 (sse3_addsubv4sf3): Model correctly.
10927 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
10928 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
10929 (sse_movhlps): Model with vec_select+vec_concat.
fc474307 10930 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
ef719a44
RH
10931 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
10932 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
10933 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
10934 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
fc474307 10935 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
ef719a44
RH
10936 sse2_pshufhw_1): Likewise.
10937 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
10938 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
10939 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
10940 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
10941 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
fc474307 10942 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
ef719a44
RH
10943 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
10944 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
10945 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
10946 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
10947 sminv8hi3): Mark commutative
10948 operands. Use ix86_binary_operator_ok.
10949 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
10950 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
10951 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
10952 sse2_punpcklqdq): Allow operand2 in memory.
10953 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
10954 sse2_movsd): Add memory alternatives.
10955 (sse_storelps): Turn expander into an insn; split after reload.
10956 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
10957 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
10958
080a5bb0
EB
109592005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
10960
10961 * configure.ac (DWARF-2 debug_line): Use objdump.
10962 * configure: Regenerate.
10963
e79b60a7
DN
109642005-01-08 Jeff Law <law@redhat.com>
10965 Diego Novillo <dnovillo@redhat.com>
10966
a6331d85 10967 PR tree-optimization/18241
e79b60a7
DN
10968 * tree-nrv.c (tree_nrv): Ignore volatile return values.
10969 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
10970 statements with volatile operands.
10971 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
10972 operands after marking a statement with has_volatile_ops.
10973
4634cf7e
RS
109742005-01-08 Roger Sayle <roger@eyesopen.com>
10975
10976 * tree.c (int_fits_type_p): Always honor integer constant
10977 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
10978
88c0f1c6
RS
109792005-01-08 Roger Sayle <roger@eyesopen.com>
10980
10981 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
10982 the latent bug in rtl_delete_block has been resolved.
10983
37e30acc
RS
109842005-01-08 Richard Sandiford <rsandifo@redhat.com>
10985
10986 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
10987 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
10988
943cb1d0
RS
109892005-01-08 Richard Sandiford <rsandifo@redhat.com>
10990
10991 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
10992 library as @multilib_dir@/$(SHLIB_SONAME).
10993
1b5c0152
EB
109942005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
10995
10996 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
10997 * configure: Regenerate.
10998
b827788f
JJ
109992005-01-07 Jakub Jelinek <jakub@redhat.com>
11000
11001 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
11002 TYPE_MODE.
11003
4937d02d
DE
110042005-01-07 David Edelsohn <edelsohn@gnu.org>
11005
11006 PR target/13674
11007 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
11008 Convert non-word aligned offset address using ld/std into
11009 indirect address.
11010
db396999
RH
110112005-01-07 Richard Henderson <rth@redhat.com>
11012
11013 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
11014
4600cc14
RS
110152005-01-07 Richard SAndiford <rsandifo@redhat.com>
11016
11017 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
11018
8870e212
JJ
110192005-01-07 Jakub Jelinek <jakub@redhat.com>
11020
2a0958c5
JJ
11021 PR tree-optimization/19283
11022 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
11023 is not shorter than the original type.
11024
ebc0c8bb
JJ
11025 PR rtl-optimization/19012
11026 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
11027
0210ae14
JJ
11028 PR rtl-optimization/18861
11029 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
11030 (FULL_STATE): Define.
11031 (mark_tablejump_edge): New function.
11032 (purge_dead_tablejump_edges): New function.
11033 (find_bb_boundaries): Use it.
11034
8870e212
JJ
11035 PR tree-optimization/18828
11036 * builtins.c (expand_builtin_next_arg): Remove argument and all
11037 the argument checking.
11038 (expand_builtin): Adjust caller.
11039 (expand_builtin_va_start): Likewise. Remove error for too many
11040 arguments.
11041 (fold_builtin_next_arg): Issue error for too many arguments.
11042 After checking arguments, replace them with magic arguments that
11043 prevent further checking of the args.
11044
9fb29c46
JDA
110452005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11046
11047 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
11048
9a3bf943
RS
110492005-01-06 Roger Sayle <roger@eyesopen.com>
11050
11051 PR target/6077
11052 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
11053 and %{.S:...} (and their negative variants) to test whether the
11054 input file is assembler or pre-processed-assembler independent of
11055 the actual filename extension.
11056
c79fc296
RS
110572005-01-06 Roger Sayle <roger@eyesopen.com>
11058
11059 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
11060 of sign or zero extended values.
11061
59d7d767
GK
110622005-01-06 Geoffrey Keating <geoffk@apple.com>
11063
11064 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
11065 for IBM long double format correctly.
11066
1f24dd47 110672005-01-06 Daniel Berlin <dberlin@dberlin.org>
fc474307 11068
1f24dd47
DB
11069 Fix PR tree-optimization/18792
11070
11071 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
11072 to first_loop_depth, and use loop depth instead of loop number.
11073 (build_classic_dir_vector): Ditto.
11074 (compute_data_dependences_for_loop): Use depth, not loop number.
fc474307 11075 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
1f24dd47
DB
11076 number. Pass in loops, instead of loop numbers.
11077 (gather_interchange_stats): Ditto.
11078 (linear_transform_loops): Ditto.
11079
27916b83
RS
110802005-01-06 Richard Sandiford <rsandifo@redhat.com>
11081
11082 PR rtl-opt/13299
11083 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
11084 biv_fits_mode_p, extension_within_bounds_p): New functions.
11085 (check_ext_dependent_givs): Use them.
11086
4ab80063
RS
110872005-01-06 Roger Sayle <roger@eyesopen.com>
11088
11089 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
11090 more than one barrier, in which case we should delete them all.
11091
12d3e34b
TS
110922005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
11093
11094 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
11095
9acf766f 110962005-01-05 Daniel Berlin <dberlin@dberlin.org>
fc474307 11097
9acf766f
DB
11098 Fix PR middle-end/19286
11099 Fix PR debug/19267
11100 * dwarf2out.c (gen_subprogram_die): If we've already tried to
11101 output this subprogram, simply ignore this attempt to do it again.
11102 (add_abstract_origin_attribute): Don't abort trying to add the abstract
11103 origin attribute if it's not possible.
11104 (gen_block_die): Don't ignore subblocks of "unused" blocks.
11105 (decls_for_scope): Ditto.
11106 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
11107 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
fc474307 11108
e358acde
RH
111092005-01-05 Richard Henderson <rth@redhat.com>
11110
11111 PR target/11327
11112 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
11113 (bdesc_2arg): Use it.
11114 (ix86_expand_binop_builtin): Force operands into registers
11115 when optimizing.
11116 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
fc474307 11117 ix86_expand_sse_compare, ix86_expand_sse_comi,
e358acde
RH
11118 ix86_expand_builtin): Likewise.
11119
051d8245
RH
111202005-01-05 Richard Henderson <rth@redhat.com>
11121
11122 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
11123 and VEC_SELECT.
11124 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
11125 (mulv4hi3): Set itanium_class mmmul.
11126 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
11127 (fpack): Rename from fpack_sfsf.
11128
19f17bb9
RH
111292005-01-05 Richard Henderson <rth@redhat.com>
11130
11131 PR rtl-opt/10692
11132 * reload1.c (do_input_reload): Restrict the optimization deleteing
11133 a previous output reload to RELOAD_FOR_INPUT.
11134
46d096a3
SB
111352005-01-05 Steven Bosscher <stevenb@suse.de>
11136
11137 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
11138 comment that we fall through after case.
11139 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
11140 (distribute_links): Likewise.
11141 * cse.c (cse_insn): Likewise.
11142 * cselib.c (cselib_invalidate_mem): Likewise.
11143 * df.c: Update comments at the top of the file.
11144 (read_modify_subreg_p): Update comments here too.
11145 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
11146 * flow.c (mark_set_1): Likewise.
11147 (mark_used_regs): Likewise.
11148 * gcse.c (mems_conflict_for_gcse_p): Likewise.
11149 (canon_list_insert): Likewise.
11150 (mark_set): Likewise.
11151 (try_replace_reg): Likewise.
11152 (store_killed_in_insn): Likewise.
11153 * loop.c (count_one_set): Likewise.
11154 (basic_induction_var): Likewise.
11155 * postreload-gcse.c (find_mem_conflicts): Likewise.
11156 * postreload.c (reload_combine_note_store): Likewise.
11157 (move2add_note_store): Likewise.
11158 * reload.c (find_equiv_reg): Likewise.
11159 (mark_referenced_resources): Likewise.
11160 * rtlanal.c (set_noop_p): Likewise.
11161 (note_stores): Likewise.
11162 (note_uses): Likewise.
11163 * sched-deps.c (sched_analyze_1): Likewise.
11164 * sched-rgn.c (check_live_1): Likewise.
11165 (update_live_1): Likewise.
11166 * config/i860/i860.c: Likewise.
11167
11168 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
11169 an lvalue.
11170 (ZERO_EXTRACT): Mention that this one can be an lvalue.
11171
11172 * doc/rtl.texi: Update documentation for bit-fields and SET.
11173
65a878f5
RS
111742005-01-05 Roger Sayle <roger@eyesopen.com>
11175
11176 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
11177
d2ad2c8a
JH
111782005-01-05 Jan Hubicka <jh@suse.cz>
11179 Richard Henderson <rth@redhat.com>
11180
11181 PR target/18910
fc474307 11182 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
d2ad2c8a
JH
11183 with an offset.
11184
2cdb3148
RH
111852005-01-05 Richard Henderson <rth@redhat.com>
11186
11187 PR target/12902
11188 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
11189 (sse_shufps): Change operand 3 to const_int_operand.
11190 (sse2_storelps): Fix typo in template.
11191 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
11192 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
11193 (ix86_expand_builtin): Likewise.
11194
111952005-01-05 Julian Brown <julian@codesourcery.com>
3dd7ab65
JB
11196
11197 * config/arm/arm.c (arm_return_in_memory): Treat complex types
11198 as aggregates for AAPCS ABIs.
11199
59d8fe27
SS
112002005-01-05 Stan Shebs <shebs@apple.com>
11201
11202 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
11203 Mach-O getters if ppc64.
11204 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
11205 size argument.
11206 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11207 signed four-byte field for global code case.
11208 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
11209
010c4d9c
RS
112102005-01-05 Roger Sayle <roger@eyesopen.com>
11211
11212 PR middle-end/19100
11213 * c-common.c: Include real.h.
11214 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
11215 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
11216 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
11217 * Makefile.in (c-common.o): Update dependencies.
11218
9368fb8f
JM
112192005-01-05 Joseph S. Myers <joseph@codesourcery.com>
11220
11221 * c-parse.in (asm_string): Add trailing semicolon.
11222
9143de5c
JM
112232005-01-05 Joseph S. Myers <joseph@codesourcery.com>
11224
11225 * c-parse.in (asm_string): New. Don't allow wide strings in
11226 'asm'.
11227 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
11228 asm_string instead of STRING.
11229
0953878d
JM
112302005-01-05 Joseph S. Myers <joseph@codesourcery.com>
11231
11232 * c-typeck.c (constructor_no_implicit): Remove.
11233 (set_designator, process_init_element): Don't check
11234 constructor_no_implicit.
11235
cf99f196
R
112362005-01-05 J"orn Rennecke <joern.rennecke@st.com>
11237 Kaz Kojima <kkojima@gcc.gnu.org>
11238
11239 PR target/16482
11240 * lcm.c (create_pre_exit): New.
11241 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
11242 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
11243
712ecf4d
RE
112442004-01-05 Richard Earnshaw <rearnsha@arm.com>
11245
11246 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
11247 -msoft-float in target_float_switch.
11248 * arm.c (arm_override_options): Fix processing of target_float_switch.
11249
082cca25
RE
112502004-01-05 Richard Earnshaw <rearnsha@arm.com>
11251
11252 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
11253 preferencing.
11254
c2b43d7a
UB
112552004-01-05 Uros Bizjak <uros@kss-loka.si>
11256
11257 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
ead553a1 11258 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
c2b43d7a 11259
e82f5749
RS
112602005-01-04 Roger Sayle <roger@eyesopen.com>
11261
11262 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
11263 if deleting the then-block allows the test-block to fallthru to the
11264 else-block.
11265
f8f5c4b3
AP
112662005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
11267
11268 PR c/19152
11269 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
11270 after the full declaration if the are in two different TUs.
11271
112722005-01-04 Richard Henderson <rth@redhat.com>
fa588429
RH
11273
11274 PR tree-opt/19158
11275 * tree-sra.c (generate_one_element_init): Just
11276 call gimplify_and_add.
11277 (generate_element_init): Record the
11278 new referenced variables and mark them for renaming
11279 and split out to ...
11280 (generate_element_init_1): This.
11281 (scalarize_init): Don't call push_gimplify_context/
11282 pop_gimplify_context.
11283
5f0c48ed
GK
112842005-01-04 Geoffrey Keating <geoffk@apple.com>
11285
11286 * toplev.c (get_src_pwd): Handle failure of getpwd().
11287
e3523f56
RS
112882005-01-04 Roger Sayle <roger@eyesopen.com>
11289
11290 * fold-const.c (fold_single_bit_test): Delete unreachable handling
11291 of TRUTH_NOT_EXPR.
11292 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
11293 all the cases handled by it are inverted by invert_truthvalue.
11294
9746bb27
EB
112952005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
11296
11297 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
11298 (save_register_windowsi): Likewise.
11299
bfee926b
RH
113002005-01-04 Richard Henderson <rth@redhat.com>
11301
11302 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
11303
21e5076a
UB
113042005-01-04 Uros Bizjak <uros@kss-loka.si>
11305
11306 PR middle-end/17767
11307 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
11308 any simplifications of vector mode comparison operators.
11309 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
11310
8ea9d0c7
PB
113112005-01-04 Paolo Bonzini <bonzini@gnu.org>
11312 Devang Patel <dpatel@apple.com>
11313
11314 PR tree-optimization/18308
8ea9d0c7
PB
11315 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
11316 the operands before creating a new expression.
11317 * dojump.c (do_jump): Make drop_through_label available
11318 for all cases. Add expansion of COND_EXPR.
11319
8c427b58
IR
113202005-01-04 Ira Rosen <irar@il.ibm.com>
11321
11322 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
11323 INTEGER_CST instead of TREE_CONSTANT.
11324 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
11325 instead of TREE_CONSTANT.
11326 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
11327 instead of TREE_CONSTANT.
11328
8287d24a
EB
113292005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
11330
11331 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
11332
9e4ae64b
UB
113332005-01-04 Uros Bizjak <uros@kss-loka.si>
11334
11335 PR target/19240
11336 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
11337 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
11338
c756af79
RH
113392005-01-03 Richard Henderson <rth@redhat.com>
11340
11341 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
11342 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
11343 fold_convert_const_real_from_real): Split out from ...
11344 (fold_convert_const): ... here.
11345
d30c9461
RH
113462005-01-03 Richard Henderson <rth@redhat.com>
11347
11348 PR target/19235
11349 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
11350 (mov<MMXMODEI>_internal): Likewise.
11351 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
11352 Add V2SF case; use it for SSE1; don't use TI.
11353 (movdf_integer): Likewise.
11354 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
11355
7d23434b
IR
113562005-01-03 Ira Rosen <irar@il.ibm.com>
11357
11358 * tree-vectorizer.c (vect_strip_conversions): New function.
11359 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
fc474307 11360 check for binary class.
7d23434b 11361
1eb3331e
DB
113622005-01-03 Daniel Berlin <dberlin@dberlin.org>
11363
11364 Fix PR debug/17924
11365 Fix PR debug/19191
11366 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
11367 is a decl.
11368 * gimple-low.c (mark_blocks_with_used_vars): New function.
11369 (mark_blocks_with_used_subblocks): Ditto.
11370 (mark_used_blocks): Ditto.
11371 (pass_mark_used_blocks): New pass.
11372 * tree-inline.c: Include debug.h.
11373 (expand_call_inline): Call outlining_inline_function here.
11374 * tree-optimize.c (init_tree_optimization_passes): Add
fc474307 11375 pass_mark_used_blocks.
1eb3331e
DB
11376 * tree-pass.h (pass_mark_used_blocks): New.
11377 * Makefile.in (tree-inline.o): Add debug.h dependency.
11378
a035080c
GK
113792005-01-03 Geoffrey Keating <geoffk@apple.com>
11380
d7001ae5
GK
11381 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
11382 VAR_DECLs to have weak_import attribute.
11383
a035080c
GK
11384 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
11385 'struct ucontext'.
11386
1ab219d3
SB
113872004-01-03 Steven Bosscher <stevenb@suse.de>
11388
11389 * passes.c (rest_of_compilation): Don't run regmove if only
11390 flag_expensive_optimizations, require flag_regmove instead.
11391
e6abef61
EB
113922005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
11393
11394 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
11395 register "sparc".
11396 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
11397 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
11398 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
11399 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
11400
f61134e8
RH
114012005-01-03 Richard Henderson <rth@redhat.com>
11402
11403 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
11404 (ia64_const_ok_for_letter_p): New.
11405 (ia64_const_double_ok_for_letter_p): New.
11406 (ia64_extra_constraint): New.
11407 (ia64_expand_vecint_compare): New.
11408 (ia64_expand_vcondu_v2si): New.
11409 (ia64_expand_vecint_cmov): New.
11410 (ia64_expand_vecint_minmax): New.
11411 (ia64_print_operand): Add 'v'.
11412 (ia64_preferred_reload_class): New.
11413 (ia64_vector_mode_supported_p): New.
11414 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
11415 (PREFERRED_RELOAD_CLASS): Move to function.
11416 (CONST_OK_FOR_LETTER_P): Move to function.
11417 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
11418 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
11419 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
11420 (EXTRA_CONSTRAINT): Move to function.
11421 * config/ia64/ia64.md: Include vect.md.
11422 (itanium_class): Add mmalua.
11423 (type): Handle it.
11424 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
11425 (1b_mmalua): New.
11426 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
11427 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
11428 CONST0_RTX.
11429 (const_int_2bit_operand): New.
11430 (fr_reg_or_0_operand): New.
11431 * config/ia64/ia64-modes.def: Add vector modes.
11432 * config/ia64/ia64-protos.h: Update.
11433 * config/ia64/vect.md: New file.
11434
3198b947
RH
114352005-01-03 Richard Henderson <rth@redhat.com>
11436
11437 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
11438
088df4c2
UB
114392005-01-03 Uros Bizjak <uros@kss-loka.si>
11440
11441 PR target/19236
11442 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
11443 to SFmode.
11444 (log1pdf2): Change mode of operands[0,1] to DFmode.
11445
548a6c4f
EB
114462005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
11447
11448 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
11449 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
11450 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
11451 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
11452 SPARC_RELAXED_ORDERING.
11453
0703dceb
RH
114542005-01-03 Richard Henderson <rth@redhat.com>
11455 Uros Bizjak <uros@kss-loka.si>
11456
11457 PR target/14631
11458 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
11459 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
11460 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
11461 handling.
11462 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
11463 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
11464 const_pow2_1_to_128_operand): New predicates.
11465
97236777
GM
114662005-01-02 Greg McGary <greg@mcgary.org>
11467
11468 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
11469 anonymous decls.
11470 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
11471 object. [ptr_type]: Remove unused variable.
11472 Remember nearest addressable array-element or record-component
11473 when checking bitfield components. Tolerate empty BIND_EXPR.
11474
155a8213
RH
114752005-01-01 Richard Henderson <rth@redhat.com>
11476
11477 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
11478 that don't narrow the value. Fail for other conversions.
11479
bedb9fc0
RH
114802005-01-01 Richard Henderson <rth@redhat.com>
11481
11482 PR c/19031
11483 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
11484 * c-lang.c (finish_file): Don't do it here.
11485 * objc/objc-act.c (objc_finish_file): Likewise.
11486
11487 * cgraph.c (decl_assembler_name_equal): New.
11488 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
11489 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
11490 * cgraph.h (struct cgraph_varpool_node): Add next.
11491 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
11492 * varasm.c (assemble_alias): Mark the target as needed.
11493
1cb2fc7b
AP
114942005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
11495
11496 PR middle-end/19221
11497 * function.c (get_arg_pointer_save_area): Use entry_of_function
11498 instead of get_insns.
11499
0ca5fbc0
RS
115002005-01-01 Roger Sayle <roger@eyesopen.com>
11501 Andrew Pinski <pinskia@physics.uc.edu>
11502 James E. Wilson <wilson@specifixinc.com>
11503
11504 PR rtl-optimization/12092
11505 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
11506 is zero.
11507
91c537b7
RS
115082005-01-01 Roger Sayle <roger@eyesopen.com>
11509 Olivier Hainque <hainque@act-europe.fr>
11510
11511 * tree.c (int_fits_type_p): A narrower type always fits in a
11512 wider one, except for negative values into unsigned types.
11513
69618c49
RS
115142005-01-01 Roger Sayle <roger@eyesopen.com>
11515
11516 * tree.c (int_fits_type_p): Compare the result of force_fit_type
11517 with the original constant rather than require TREE_OVERFLOW.
11518
43e05e45
SB
115192005-01-01 Steven Bosscher <stevenb@suse.de>
11520
11521 PR middle-end/17544
11522 * c-decl.c (finish_function): If compiling C99, annotate the
11523 compiler generated return with the current file name and line 0.
11524 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
11525 the source line is greater than 0.
11526 (remove_bb): Likewise.